摘要:一直以來,數(shù)據(jù)庫的核心研發(fā)團隊都十分神秘,作為隱藏在幕后的隱士高人,他們對數(shù)據(jù)庫發(fā)展以及數(shù)據(jù)庫研發(fā)團隊的看法是什么呢本文我們就由巨杉數(shù)據(jù)庫核心技術(shù)研發(fā)團隊的老司機,向大家分享他分布式數(shù)據(jù)庫的自研之路。
一直以來,數(shù)據(jù)庫的核心研發(fā)團隊都十分神秘,作為隱藏在幕后的隱士高人,他們對數(shù)據(jù)庫發(fā)展以及數(shù)據(jù)庫研發(fā)團隊的看法是什么呢?本文我們就由巨杉數(shù)據(jù)庫核心技術(shù)研發(fā)團隊的“老司機”,向大家分享他分布式數(shù)據(jù)庫的自研之路。
Q:作為數(shù)據(jù)庫行業(yè)的“老司機”,您能否先介紹一下自己?
A:我叫Danny,是巨杉數(shù)據(jù)庫核心研發(fā)團隊的成員,是一名數(shù)據(jù)庫資深工程師和架構(gòu)師,有超過20年的數(shù)據(jù)庫核心研發(fā)經(jīng)驗,曾經(jīng)作為DB2 內(nèi)核研發(fā)團隊成員參與了DB2 ,DPF等產(chǎn)品的架構(gòu)設(shè)計和研發(fā)工作。
目前,我們北美研發(fā)實驗室的團隊已經(jīng)有很多數(shù)據(jù)庫的專家“老司機”加入,全部來自DB2 的核心技術(shù)團隊。
雖然我們團隊很多都是來自IBM、華為的“傳統(tǒng)企業(yè)級IT人”,不太喜歡拋頭露面。但是現(xiàn)在是技術(shù)圈一個變革的新時代,我們的產(chǎn)品已經(jīng)開源了,所以我們之后也會讓我們團隊的技術(shù)大牛們多多參與社區(qū)活動,分享一下我們做數(shù)據(jù)庫核心研發(fā)的心得,同時也和大家一起進步。
Q:作為“老IBM”,您認為像IBM這樣歷史悠久的IT企業(yè),他們的核心研發(fā)團隊是怎么樣的呢?您對此感受最深的是什么?
A:IBM是最早提出“關(guān)系型數(shù)據(jù)庫”這一概念和理論體系的公司,從技術(shù)上看,傳統(tǒng)三大關(guān)系型數(shù)據(jù)庫在發(fā)展過程中,其實已經(jīng)具有很深遠的技術(shù)儲備了。DB2是三大傳統(tǒng)關(guān)系型數(shù)據(jù)庫中唯一的分布式產(chǎn)品,因此我們團隊在分布式技術(shù)方面的積累是一脈相承的。
我在DB2的十幾年里,感受最深的就是技術(shù)底蘊和沉淀。
比如說,在Unix真正支持線程機制之前,針對多線程模型,甚至是針對不同的硬件設(shè)備,他們早已使用匯編語言實現(xiàn)了邏輯線程的切換和調(diào)用,這些機制在當時其實是相當領(lǐng)先的。
說到研發(fā)團隊,IBM的實驗室也是臥虎藏龍。從最初使用匯編語言開始的技術(shù)專家們,一直在參與數(shù)據(jù)庫、操作系統(tǒng)和編譯器底層的研發(fā)工作,可以說正是他們創(chuàng)造了最早的關(guān)系型數(shù)據(jù)庫的概念,也是他們真正把數(shù)據(jù)庫打造成為一個通用的軟件平臺。
Q:像數(shù)據(jù)庫這樣的基礎(chǔ)軟件,技術(shù)上的難度是什么?
A:數(shù)據(jù)庫軟件,特別是一款真正企業(yè)級ready的產(chǎn)品,并沒有大家想象的,只是開發(fā)一款軟件那么簡單。
從技術(shù)上來說,數(shù)據(jù)庫既需要有技術(shù)基因的傳承,又需要創(chuàng)新。
數(shù)據(jù)庫技術(shù)到現(xiàn)在已經(jīng)發(fā)展了40多年了。在技術(shù)的發(fā)展中,數(shù)據(jù)庫軟件/平臺已經(jīng)成為一個功能復雜,架構(gòu)龐大,安全要求很高的龐大軟件產(chǎn)品體系。因此,技術(shù)上既需要技術(shù)的積累,也需要新的創(chuàng)新。
同時,在應用端這邊,由于用戶都是銀行、政府等這些30年前就開始使用數(shù)據(jù)庫的老客戶,他們通常無法承擔全盤遷移的風險,因此在業(yè)務(wù)技術(shù)架構(gòu)上,難免保留了各個時代的歷史遺留,比如說,北美一些銀行的核心IT系統(tǒng),直到目前仍然運行在40年前的技術(shù)平臺之上。這也要求企業(yè)級ready的數(shù)據(jù)庫基礎(chǔ)軟件需要有很強的兼容能力,不但可以保證舊業(yè)務(wù)的運行,還可以不斷地推陳出新。
這種創(chuàng)新是必須的,但在技術(shù)上卻又是最難的。
Q:以您近20年的數(shù)據(jù)庫行業(yè)經(jīng)驗,您認為數(shù)據(jù)庫核心團隊應該是怎么樣的?
A:我認為數(shù)據(jù)庫核心研發(fā)團隊的基因很重要,就比如說IBM的DB2團隊,就是以多位數(shù)據(jù)庫領(lǐng)域的“老炮兒”為核心,搭配有技術(shù)實力的資深工程師,而不像現(xiàn)在很多的開源新產(chǎn)品,他們都是以年輕的創(chuàng)新團隊為主。
就像我上面提到的技術(shù)復雜度和產(chǎn)品歷史跨度的問題,數(shù)據(jù)庫產(chǎn)品如果要在大型企業(yè)內(nèi)使用,技術(shù)團隊必須要有傳統(tǒng)數(shù)據(jù)庫的開發(fā)經(jīng)驗,這也就是技術(shù)老炮兒存在的作用。
簡單說,數(shù)據(jù)庫基礎(chǔ)軟件就是創(chuàng)新技術(shù)和技術(shù)經(jīng)驗積累的融合體。
Q:海內(nèi)外基礎(chǔ)軟件研發(fā)有什么不同?
A:相對來說,海外擁有技術(shù)人才的基礎(chǔ),也有像IBM Oracle這樣的體系的沿襲,培養(yǎng)出了一批批技術(shù)人才和團隊。所以現(xiàn)在北美很多新一代基礎(chǔ)軟件產(chǎn)品團隊其實還是圍繞了老一輩的“老司機”構(gòu)建的。
國內(nèi)基礎(chǔ)軟件的人才積累還不夠,因此基礎(chǔ)軟件領(lǐng)域還沒有完全形成基礎(chǔ)軟件領(lǐng)域的武林門派,這也是近年來基礎(chǔ)軟件和AI領(lǐng)域國內(nèi)企業(yè)瘋狂往外招人的原因。但是數(shù)據(jù)庫由于歷史原因,國內(nèi)無論是互聯(lián)網(wǎng)還是科研團隊想要形成獨特的門派,還需要時間。
巨杉這邊我們的團隊擁有以王濤為代表的很多DB2 團隊的核心技術(shù)專家,以及來自華為的技術(shù)核心團隊成員,是技術(shù)基因和技術(shù)創(chuàng)新很好的結(jié)合。
Q:數(shù)據(jù)庫開發(fā)和其他軟件有什么不同?
A:因為剛才提到的這些特點,基礎(chǔ)軟件特別是數(shù)據(jù)庫的研發(fā),和其他應用軟件有很大的不同。其中最大的一個不同點就是開發(fā)語言和開發(fā)模式。
從計算機的發(fā)展來看,C是最面向機器語言(匯編代碼)的,原則上每一行C代碼都可以很精準地映射到一些匯編指令上,因此從對操作系統(tǒng)底層的操控來看最為精準。
C++則是在C之上發(fā)展起來的面向?qū)ο笳Z言。在底層編程中,C++的高級特性被使用的非常少,但是其設(shè)計模式對于模塊化開發(fā)很有幫助。因此使用C++既可以兼顧對操作系統(tǒng)底層最精準的把控,也可以將一些面向?qū)ο蟮睦砟钊谌氪a中,在復雜系統(tǒng)構(gòu)建時起到重要作用。
如今新的一些新型開發(fā)語言則不是面向?qū)ο?,因此在設(shè)計模式上不適合大型復雜系統(tǒng)的開發(fā)。同時,這些語言語言簡化了很多C/C++里最為重要的指針概念,使其對內(nèi)存的精準操作變得不可能完成。指針這個概念用好了是神器,用差了是垃圾,大部分能力不高的程序員,或者沒有非常完善測試框架的項目很難完美把握指針這類高級特性,使得大型項目開發(fā)里面內(nèi)存泄露和崩潰漏洞遍地都是。
但是對于我們巨杉來說,有著DB2數(shù)據(jù)庫內(nèi)核的研發(fā)經(jīng)驗,從人員能力,到代碼質(zhì)量管理,到測試框架的完善都能夠完美駕馭這類高級特性,最大程度挖掘出操作系統(tǒng)和數(shù)據(jù)庫底層的性能與處理能力。
Q:分布式數(shù)據(jù)庫方向是什么?
A:根據(jù)Gartner和我們CTO王濤的共同觀點,真正特別大使得傳統(tǒng)關(guān)系型數(shù)據(jù)庫存不下的表相對來講數(shù)量都是可控的。因此有很多workaround都可以搞定這個問題,這也是為什么傳統(tǒng)以來大家用分庫分表雖然麻煩,但也不是解決不了應用問題。
數(shù)據(jù)庫其實真正面臨的痛點是“微服務(wù)”下,數(shù)據(jù)服務(wù)的資源池化。
應用程序從傳統(tǒng)煙囪式構(gòu)建,向微服務(wù)轉(zhuǎn)型的過程中,在每一個微服務(wù)上都放一個獨立的數(shù)據(jù)庫已經(jīng)是不可能的事情了。這種情況下,數(shù)據(jù)服務(wù)資源池需要直接面向上層成百上千個,來自不同開發(fā)商、不同團隊的,開發(fā)能力不一、應用類型不同、SLA安全級別不同等等的各類需求。
因此,資源池必須擁有彈性擴張、資源隔離、多租戶、可配置一致性、多模式(支持各類SQL協(xié)議)、集群內(nèi)可配置容災策略等一系列功能,同時每個數(shù)據(jù)庫實例的計算和存儲能力需要做到能夠無限擴張,畢竟有些微服務(wù)可能會涉及到極多的流水數(shù)據(jù),不能限定每個數(shù)據(jù)庫實例使用的資源僅局限于一臺物理設(shè)備。
所以說,單純?yōu)榱朔植际降腛LTP只是解決了不構(gòu)成剛需的問題(分庫分表早可以解決),但是在微服務(wù)應用開發(fā)的環(huán)境下,數(shù)據(jù)庫更是要從資源池化的角度對上層提供服務(wù),同時資源池中的每個數(shù)據(jù)庫實例內(nèi)部也要支持分布式交易等一系列特性,做到與傳統(tǒng)數(shù)據(jù)庫的全兼容。
Q:SequoiaDB自從發(fā)布3.0版本以來,在社區(qū)和市場得到的反饋都很好,能否透露一下產(chǎn)品的一些新動向?
A:近期,我們會發(fā)布一個新的版本,其中OLTP場景選性能會有大的提升,同時對于SQL處理能力也會有很大提升。在分布式的交易型業(yè)務(wù)下,整體性能提升將比現(xiàn)在版本有2~3倍的提升,對比同類產(chǎn)品性能將高出5~6倍以上。
這些在本周的活動我們也會做一個簡單的分享和介紹。
3月30號,本周末我們巨杉Techday的第二期活動也會在北京舉辦,我們也會帶來一些深度的技術(shù)分享,屆時也會有現(xiàn)場的視頻直播,希望大家也能多多關(guān)注和參與!未來我們也會有更多“神秘”的數(shù)據(jù)庫“老司機”給大家?guī)砑夹g(shù)、趨勢、見聞的分享~
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17977.html
摘要:近日,第六屆中國廣東國際智慧城市大會智慧園區(qū)和社區(qū)高峰論壇暨年度智慧城市建設(shè)評優(yōu)活動頒獎盛典在廣州圓滿舉行。巨杉數(shù)據(jù)庫榮獲年度智慧城市大數(shù)據(jù)十佳技術(shù)創(chuàng)新獎及年度大數(shù)據(jù)新銳人物獎兩項獎項。 近日,第六屆中國(廣東)國際智慧城市大會智慧園區(qū)和社區(qū)高峰論壇暨2018-2019年度智慧城市建設(shè)評優(yōu)活動頒獎盛典在廣州圓滿舉行。SequoiaDB巨杉數(shù)據(jù)庫榮獲2018-2019年度智慧城市大數(shù)據(jù)十...
摘要:年月,小邪正式入職阿里巴巴,首次接觸淘寶商城項目開啟了其十年的阿里技術(shù)生涯,去年月加入阿里云,任飛天八部掌門人。技術(shù)成長角色轉(zhuǎn)變也是職責轉(zhuǎn)變在阿里云意味著更貼近客戶,這對小邪來說是最大的改變。 摘要: 從2008年到2018年,從阿里巴巴中間件團隊到飛天八部——小邪與阿里的十年。 編者按:從2008年到2018年,從阿里巴巴中間件團隊到飛天八部——小邪與阿里的十年。 2008年4月,小...
閱讀 1535·2021-11-23 09:51
閱讀 3648·2021-09-26 09:46
閱讀 2138·2021-09-22 10:02
閱讀 1864·2019-08-30 15:56
閱讀 3335·2019-08-30 12:51
閱讀 2240·2019-08-30 11:12
閱讀 2070·2019-08-29 13:23
閱讀 2332·2019-08-29 13:16