Q:作為數(shù)據(jù)庫(kù)行業(yè)的“老司機(jī)”,您能否先介紹一下自己?

Danny:我叫Danny,是巨杉數(shù)據(jù)庫(kù)核心研發(fā)團(tuán)隊(duì)的成員,是一名數(shù)據(jù)庫(kù)資深工程師和架構(gòu)師,有超過(guò)20年的數(shù)據(jù)庫(kù)核心研發(fā)經(jīng)驗(yàn),曾經(jīng)作為DB2 內(nèi)核研發(fā)團(tuán)隊(duì)成員參與了DB2 ,DPF等產(chǎn)品的架構(gòu)設(shè)計(jì)和研發(fā)工作。

目前,我們北美研發(fā)實(shí)驗(yàn)室的團(tuán)隊(duì)已經(jīng)有很多數(shù)據(jù)庫(kù)的專家“老司機(jī)”加入,全部來(lái)自DB2 的核心技術(shù)團(tuán)隊(duì)。

雖然我們團(tuán)隊(duì)很多都是來(lái)自IBM、華為的“傳統(tǒng)企業(yè)級(jí)IT人”,不太喜歡拋頭露面。但是現(xiàn)在是技術(shù)圈一個(gè)變革的新時(shí)代,我們的產(chǎn)品已經(jīng)開(kāi)源了,所以我們之后也會(huì)讓我們團(tuán)隊(duì)的技術(shù)大牛們多多參與社區(qū)活動(dòng),分享一下我們做數(shù)據(jù)庫(kù)核心研發(fā)的心得,同時(shí)也和大家一起進(jìn)步。

Q:作為“老IBM”,您認(rèn)為像IBM這樣歷史悠久的IT企業(yè),他們的核心研發(fā)團(tuán)隊(duì)是怎么樣的呢?您對(duì)此感受最深的是什么?

Danny:IBM是最早提出“關(guān)系型數(shù)據(jù)庫(kù)”這一概念和理論體系的公司,從技術(shù)上看,傳統(tǒng)三大關(guān)系型數(shù)據(jù)庫(kù)在發(fā)展過(guò)程中,其實(shí)已經(jīng)具有很深遠(yuǎn)的技術(shù)儲(chǔ)備了。DB2是三大傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)中唯一的分布式產(chǎn)品,因此我們團(tuán)隊(duì)在分布式技術(shù)方面的積累是一脈相承的。

我在DB2的十幾年里,感受最深的就是技術(shù)底蘊(yùn)和沉淀。

比如說(shuō),在Unix真正支持線程機(jī)制之前,針對(duì)多線程模型,甚至是針對(duì)不同的硬件設(shè)備,他們?cè)缫咽褂脜R編語(yǔ)言實(shí)現(xiàn)了邏輯線程的切換和調(diào)用,這些機(jī)制在當(dāng)時(shí)其實(shí)是相當(dāng)領(lǐng)先的。

而說(shuō)到研發(fā)團(tuán)隊(duì),IBM的實(shí)驗(yàn)室也是臥虎藏龍。從最初使用匯編語(yǔ)言開(kāi)始的技術(shù)專家們,一直在參與數(shù)據(jù)庫(kù)、操作系統(tǒng)和編譯器底層的研發(fā)工作,可以說(shuō)正是他們創(chuàng)造了最早的關(guān)系型數(shù)據(jù)庫(kù)的概念,也是他們真正把數(shù)據(jù)庫(kù)打造成為一個(gè)通用的軟件平臺(tái)。

Q:像數(shù)據(jù)庫(kù)這樣的基礎(chǔ)軟件,技術(shù)上的難度是什么?

Danny:數(shù)據(jù)庫(kù)軟件,特別是一款真正企業(yè)級(jí)ready的產(chǎn)品,并沒(méi)有大家想象的,只是開(kāi)發(fā)一款軟件那么簡(jiǎn)單。

從技術(shù)上來(lái)說(shuō),數(shù)據(jù)庫(kù)既需要有技術(shù)基因的傳承,又需要?jiǎng)?chuàng)新。

數(shù)據(jù)庫(kù)技術(shù)到現(xiàn)在已經(jīng)發(fā)展了40多年了。在技術(shù)的發(fā)展中,數(shù)據(jù)庫(kù)軟件/平臺(tái)已經(jīng)成為一個(gè)功能復(fù)雜,架構(gòu)龐大,安全要求很高的龐大軟件產(chǎn)品體系。因此,技術(shù)上既需要技術(shù)的積累,也需要新的創(chuàng)新。

同時(shí),在應(yīng)用端這邊,由于用戶都是銀行、政府等這些30年前就開(kāi)始使用數(shù)據(jù)庫(kù)的老客戶,他們通常無(wú)法承擔(dān)全盤(pán)遷移的風(fēng)險(xiǎn),因此在業(yè)務(wù)技術(shù)架構(gòu)上,難免保留了各個(gè)時(shí)代的歷史遺留,比如說(shuō),北美一些銀行的核心IT系統(tǒng),直到目前仍然運(yùn)行在40年前的技術(shù)平臺(tái)之上。這也要求企業(yè)級(jí)ready的數(shù)據(jù)庫(kù)基礎(chǔ)軟件需要有很強(qiáng)的兼容能力,不但可以保證舊業(yè)務(wù)的運(yùn)行,還可以不斷地推陳出新。

這種創(chuàng)新是必須的,但在技術(shù)上卻又是最難的。

Q:以您近20年的數(shù)據(jù)庫(kù)行業(yè)經(jīng)驗(yàn),您認(rèn)為數(shù)據(jù)庫(kù)核心團(tuán)隊(duì)?wèi)?yīng)該是怎么樣的?

Danny:我認(rèn)為數(shù)據(jù)庫(kù)核心研發(fā)團(tuán)隊(duì)的基因很重要,就比如說(shuō)IBM的DB2團(tuán)隊(duì),就是以多位數(shù)據(jù)庫(kù)領(lǐng)域的“老炮兒”為核心,搭配有技術(shù)實(shí)力的資深工程師。

就像我上面提到的技術(shù)復(fù)雜度和產(chǎn)品歷史跨度的問(wèn)題,數(shù)據(jù)庫(kù)產(chǎn)品如果要在大型企業(yè)內(nèi)使用,技術(shù)團(tuán)隊(duì)必須要有傳統(tǒng)數(shù)據(jù)庫(kù)的開(kāi)發(fā)經(jīng)驗(yàn),這也就是技術(shù)老炮兒存在的作用。

簡(jiǎn)單說(shuō),數(shù)據(jù)庫(kù)基礎(chǔ)軟件就是創(chuàng)新技術(shù)和技術(shù)經(jīng)驗(yàn)積累的融合體。

Q:海內(nèi)外基礎(chǔ)軟件研發(fā)有什么不同?

Danny:相對(duì)來(lái)說(shuō),海外擁有技術(shù)人才的基礎(chǔ),也有像IBM、Oracle這樣的體系的沿襲,培養(yǎng)出了一批批技術(shù)人才和團(tuán)隊(duì)。所以現(xiàn)在北美很多新一代基礎(chǔ)軟件產(chǎn)品團(tuán)隊(duì)其實(shí)還是圍繞了老一輩的“老司機(jī)”構(gòu)建的。

而國(guó)內(nèi)基礎(chǔ)軟件的人才積累還不夠,因此基礎(chǔ)軟件領(lǐng)域還沒(méi)有完全形成基礎(chǔ)軟件領(lǐng)域的武林門(mén)派,這也是近年來(lái)基礎(chǔ)軟件和AI領(lǐng)域國(guó)內(nèi)企業(yè)瘋狂往外招人的原因。但是數(shù)據(jù)庫(kù)由于歷史原因,國(guó)內(nèi)無(wú)論是互聯(lián)網(wǎng)還是科研團(tuán)隊(duì)想要形成獨(dú)特的門(mén)派,還需要時(shí)間。

巨杉這邊我們的團(tuán)隊(duì)擁有以王濤為代表的很多DB2 團(tuán)隊(duì)的核心技術(shù)專家,以及來(lái)自華為的技術(shù)核心團(tuán)隊(duì)成員,是技術(shù)基因和技術(shù)創(chuàng)新很好的結(jié)合。

Q:數(shù)據(jù)庫(kù)開(kāi)發(fā)和其他軟件有什么不同?

Danny:因?yàn)閯偛盘岬降倪@些特點(diǎn),基礎(chǔ)軟件特別是數(shù)據(jù)庫(kù)的研發(fā),和其他應(yīng)用軟件有很大的不同。其中最大的一個(gè)不同點(diǎn)就是開(kāi)發(fā)語(yǔ)言和開(kāi)發(fā)模式。

從計(jì)算機(jī)的發(fā)展來(lái)看,C是最面向機(jī)器語(yǔ)言(匯編代碼)的,原則上每一行C代碼都可以很精準(zhǔn)地映射到一些匯編指令上,因此從對(duì)操作系統(tǒng)底層的操控來(lái)看最為精準(zhǔn)。

而C++則是在C之上發(fā)展起來(lái)的面向?qū)ο笳Z(yǔ)言。在底層編程中,C++的高級(jí)特性被使用的非常少,但是其設(shè)計(jì)模式對(duì)于模塊化開(kāi)發(fā)很有幫助。因此使用C++既可以兼顧對(duì)操作系統(tǒng)底層最精準(zhǔn)的把控,也可以將一些面向?qū)ο蟮睦砟钊谌氪a中,在復(fù)雜系統(tǒng)構(gòu)建時(shí)起到重要作用。

而如今新的一些新型開(kāi)發(fā)語(yǔ)言則不是面向?qū)ο?,因此在設(shè)計(jì)模式上不適合大型復(fù)雜系統(tǒng)的開(kāi)發(fā)。同時(shí),這些語(yǔ)言語(yǔ)言簡(jiǎn)化了很多C/C++里最為重要的指針概念,使其對(duì)內(nèi)存的精準(zhǔn)操作變得不可能完成。指針這個(gè)概念用好了是神器,用差了是垃圾,大部分能力不高的程序員,或者沒(méi)有非常完善測(cè)試框架的項(xiàng)目很難完美把握指針這類高級(jí)特性,使得大型項(xiàng)目開(kāi)發(fā)里面內(nèi)存泄露和崩潰漏洞遍地都是。

但是對(duì)于我們巨杉來(lái)說(shuō),有著DB2數(shù)據(jù)庫(kù)內(nèi)核的研發(fā)經(jīng)驗(yàn),從人員能力,到代碼質(zhì)量管理,到測(cè)試框架的完善都能夠完美駕馭這類高級(jí)特性,最大程度挖掘出操作系統(tǒng)和數(shù)據(jù)庫(kù)底層的性能與處理能力。

Q:分布式數(shù)據(jù)庫(kù)方向是什么?

Danny:根據(jù)Gartner和我們CTO王濤的共同觀點(diǎn),真正特別大使得傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)存不下的表相對(duì)來(lái)講數(shù)量都是可控的。因此有很多workaround都可以搞定這個(gè)問(wèn)題,這也是為什么傳統(tǒng)以來(lái)大家用分庫(kù)分表雖然麻煩,但也不是解決不了應(yīng)用問(wèn)題。

數(shù)據(jù)庫(kù)其實(shí)真正面臨的痛點(diǎn)是“微服務(wù)”下,數(shù)據(jù)服務(wù)的資源池化。

應(yīng)用程序從傳統(tǒng)煙囪式構(gòu)建,向微服務(wù)轉(zhuǎn)型的過(guò)程中,在每一個(gè)微服務(wù)上都放一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)已經(jīng)是不可能的事情了。這種情況下,數(shù)據(jù)服務(wù)資源池需要直接面向上層成百上千個(gè),來(lái)自不同開(kāi)發(fā)商、不同團(tuán)隊(duì)的,開(kāi)發(fā)能力不一、應(yīng)用類型不同、SLA安全級(jí)別不同等等的各類需求。

因此,資源池必須擁有彈性擴(kuò)張、資源隔離、多租戶、可配置一致性、多模式(支持各類SQL協(xié)議)、集群內(nèi)可配置容災(zāi)策略等一系列功能,同時(shí)每個(gè)數(shù)據(jù)庫(kù)實(shí)例的計(jì)算和存儲(chǔ)能力需要做到能夠無(wú)限擴(kuò)張,畢竟有些微服務(wù)可能會(huì)涉及到極多的流水?dāng)?shù)據(jù),不能限定每個(gè)數(shù)據(jù)庫(kù)實(shí)例使用的資源僅局限于一臺(tái)物理設(shè)備。

所以說(shuō),單純?yōu)榱朔植际降腛LTP只是解決了不構(gòu)成剛需的問(wèn)題(分庫(kù)分表早可以解決),但是在微服務(wù)應(yīng)用開(kāi)發(fā)的環(huán)境下,數(shù)據(jù)庫(kù)更是要從資源池化的角度對(duì)上層提供服務(wù),同時(shí)資源池中的每個(gè)數(shù)據(jù)庫(kù)實(shí)例內(nèi)部也要支持分布式交易等一系列特性,做到與傳統(tǒng)數(shù)據(jù)庫(kù)的全兼容。

Q:SequoiaDB自從發(fā)布3.0版本以來(lái),在社區(qū)和市場(chǎng)得到的反饋都很好,能否透露一下產(chǎn)品的一些新動(dòng)向?

Danny:近期,我們會(huì)發(fā)布一個(gè)新的版本,其中OLTP場(chǎng)景選性能會(huì)有大的提升,同時(shí)對(duì)于SQL處理能力也會(huì)有很大提升。在分布式的交易型業(yè)務(wù)下,整體性能提升將比現(xiàn)在版本有2~3倍的提升,對(duì)比同類產(chǎn)品性能將高出5~6倍以上。。

當(dāng)然本周的活動(dòng)我們也會(huì)做一個(gè)簡(jiǎn)單的分享。

3月30號(hào),本周六的上午,我們巨杉Techday的第二期活動(dòng)也會(huì)在北京中關(guān)村機(jī)械騎士咖啡書(shū)店舉辦,我們也會(huì)帶來(lái)一些深度的技術(shù)分享,屆時(shí)也會(huì)有現(xiàn)場(chǎng)的視頻直播,希望大家也能多多關(guān)注和參與!未來(lái)我們也會(huì)有更多“神秘”的數(shù)據(jù)庫(kù)“老司機(jī)”給大家?guī)?lái)技術(shù)、趨勢(shì)、見(jiàn)聞的分享~

分享到

zhupb

相關(guān)推薦