巨杉數據庫 CTO 王濤:新一代分佈式數據庫

2019數據技術嘉年華於11月16日在京落下了帷幕。大會歷時兩天,來自全國各地上千名學術精英、數據庫領袖人物、數據庫專家、技術愛好者在這裡匯聚一堂,圍繞“

開源 • 智能 • 雲數據 - 自主驅動發展 創新引領未來”的大會主題,共享"開源自研,雲和數據,智能運維,智能業務,數據前沿,用戶實踐"六大主題盛宴。

在此小編為大家精心準備了“2019數據技術嘉年華——大咖演講系列整理”,沒來參會的朋友們,可以通過我們的系列報道,瞭解在本次大會中最新的數據行業資訊。愛好技術的朋友們不可錯過哦~

本文是小編依據王濤老師在“2019數據技術嘉年華”大會現場演講速記稿整理而來。

關注公眾號“數據和雲”,回覆:2019dtc ,更多精彩ppt等你下載!(PPT還在不斷更新當中,請持續關注)

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

SequoiaDB 巨杉數據庫 CTO 王濤

各位尊敬的領導、各位專家,大家早上好!今天非常榮幸能夠參與這次“2019數據技術嘉年華”大會,我是巨杉數據庫的CTO 王濤,今天我彙報的主題是:“新一代分佈式數據庫”。

分佈式數據庫也並不是最近幾年剛興起的詞語,我自己原來做IBM DB2的,可能很多人不知道DB2是支持分佈式事務的關係型數據庫。IBM DB2從上世紀90年代開始做分佈式數據庫,同時也支持分佈式事務。

先來回顧一下整個數據庫的行業是怎樣發展的,當前整個數據庫的行業分佈是什麼樣的。從數據庫的發展史來看,大家都知道關係型數據庫並不是最古老的數據庫,它從上個世紀70年代發展而來,這之前有IBM類似網狀或者層次性的數據庫,到了70年代IBM研究員發表了關係型數據庫的論文才促成第一款關係型數據庫Oracle的誕生。關係型數據庫作為一個巨無霸,像Oracle、DB2一統江湖到了現在。就像現在很多新型數據庫,包括我們也都開始支持分佈式的事務,比如說MongoDB這一類也在開始支持分佈式的交易,向很多事務型數據庫靠攏。

在幾十年過程當中,我們發現除了軟件本身之外最大的變化是硬件。從最開始的大型主機到90年代的小型機,直到現在大家使用PC服務器做部署,數據庫發展和硬件發展息息相關綁在一起。

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

數據庫行業的技術發展路線

隨著金融業務的移動互聯網化和智能化,傳統數據庫已經無法應對數據量大、系統架構僵化及成本過高等諸多問題。與此同時,這些問題的存在也成為推動傳統業務向分佈式架構轉型的驅動力

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

分佈式架構轉型的驅動力

所以我們認為分佈式數據庫當前要解決的問題,它的目標是什麼?它有兩個目標:第一是要解決數據的彈性擴展,一個機器存不下用十個機器來存;第二,我們認為微服務的應用架構中,它所面臨的嚴重的數據碎片化的問題,過去用一個數據庫搞定的事現在用一百個數據庫,怎麼管理怎麼使用這些數據庫。

當前數據庫的業界有幾種做法:

第一種做法,這種做法最直接、最常規就是應用程序的改造。這樣我們對底層數據庫使用最傳統的類似於Oracle或者DB2傳統數據庫,從應用程序層面我們把一個緊耦合數據庫拆分成上百個服務,這種機制依然存在數據的瓶頸,包括它的數據緊耦合,無法彈性擴張還有單點故障的問題,還有一個連接處極速增加。這樣對於傳統數據庫來講壓力非常大。

第二種做法,每一組的微服務對應一個獨立的小數據庫。往往大家使用像MySQL或者像PG這種數據庫來做。這種機制它是能夠解決集中式存儲的問題,但是會帶來新的巨大的挑戰,數據的碎片化以及運維非常難的問題。比如這種架構之下,假設上面四個微服務是來自同一個業務它的四個不同的模塊,比如一個是用戶賬戶,如果我們現在有一個應用報表需要來看某一個賬戶相關的登陸請求,我的數據分散多個子的數據庫裡,我想把它聯合的集中起來是非常困難的。

所以我們認為真正的分佈式數據庫它要做的架構是什麼樣子?在某種程度,現在很多人說雲數據庫但我們認為整個思路都是接近的,大家可以看作整個分佈式數據庫是一個大的資源池,這個資源池裡負責的是存儲跟事務控制,所有的數據是存儲在整個的底座裡,但它這個底座之上可以通過創建不同類型的數據庫實例滿足上面多種業務需求。這個是我們認為

分佈式數據庫它的整體的設計思路就是計算、存儲、分離,整個計算層在上面的實例層,底下存儲層負責數據本身存儲和分佈式事務。

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

數據庫如何應對微服務應用框架

說到分佈式數據庫本身,我們再看一下分佈式數據庫的業界都有幾種玩法。

首先,第一種玩法也是我們最經典的玩法,那就是所謂的應用程序的

分庫分表,某種程度上我們不能說這是分佈式數據庫,而是說一種分佈式應用的開發策略。但也帶來數據的極大碎片化,數據無法整合。

第二種做法,原生數據庫分佈。不管像巨杉還是高斯還是阿里都是使用類似的架構,其本質就是在數據庫原生層面按照分佈式策略來進行設計,所有代碼是完全自研的。

還有一種是,垂直分庫

就這三種架構,我做了一個簡單的對比,這是我自己總結的一些東西,供大家參考一下。

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

分佈式數據庫技術發展體系對比

說到分佈式數據庫,大家真正所關心的是什麼?還是交易。我們現在再說分佈式數據庫,大家所指的都是分佈式的交易型數據庫。

我們認為在評價一個新型分佈式數據庫有兩大維度、六個技術的方向。兩大維度分別是傳統技術兼容性新技術的前瞻性。我們使用新產品時,對於傳統機器兼容性還是十分看重的,不可能拋棄所有應用開發框架,再重新起一套東西。新技術的前瞻也一樣,既然是新的一種技術,自然要和分佈式彈性擴展雲服務結合起來,所以這塊我們又列出了六個特性(六個維度):

第一,ACID的支持。

第二,SQL完整支持。

第三,安全性。

第四,分佈式與擴展性。

第五,HTAP。

第六,雲與多租戶。

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

交易業務需要什麼樣的分佈式數據庫

我大概來介紹一下,巨杉數據庫的設計過程當中,我們的理念是在什麼地方。我們把整個的數據庫分成兩層,第一層是數據庫的實例層,整個集群對外體現的是一個一個的不同的數據庫實例,比如有MySQL實例、PG實例,還有非結構化的實例;第二層我們叫做

分佈式存儲層,所有數據存儲,所有事務交易都是在存儲層來做的。

說到分佈式交易型數據庫,大家肯定關心事務。對於事務來講我們使用的是二段提交機制,像剛才講到的,我們過去在IBM DB2從上世紀90年代就涉足分佈式的事務。我們在二段提交基礎上做很多創新和改良,比如當你做提交時會有時間窗,如果時間窗發生故障需要做手動操作,可以做到自動事務恢復並且保證事務完整性。

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

強大的分佈式事務能力

我們跟MySQL的兼容性,對於MySQL來講,我們是可以保證是在語法層面和MySQL有一個百分之百的兼容。對於用戶在MySQL上開發的應用,基本上可以做到不用改,拿過來直接運行。我們現在有很多客戶應用直接從MySQL或者PG上遷移過來,我們在數據庫集群裡創建MySQL兼容實例和PG兼容實例就可以滿足這一點。

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

MySQL兼容能力

下面,再簡單介紹一下我們現在都有哪些場景在使用。首先,我給大家幾個數字,銀行是我們主要服務的行業,我們現在在銀行生產環境最大的單集群超過2PB存儲量,單集群超過5440億條記錄存儲,整個單一集群141臺物理服務器,81個應用連接在上面,我們認為作為新型分佈式數據庫在一個銀行級別的生產環境裡能夠有這種類型的集群,相對比較少見。

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

金融級應用數據領先

我們整個技術方向是來自於IBM DB2作為最核心的底層工程師,同時我們結合了業界分佈式雲數據庫理念來構建一個分佈式數據庫。我們所服務應用場景,主要是集中在四個場景:核心交易、數據中臺、內容管理、實時數據服務。我們在銀行裡主要應用場景也是圍繞這四類的。

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

規模應用場景,覆蓋全維度金融級數據應用

Gartner是國際比較權威的諮詢機構,我們17年Gartner首次把中國數據庫納入他們的評估列表裡,17年我們首次和阿里雲作為中國數據庫納入到他們的列表裡。我們也是連續三年入選Gartner

巨杉數據庫 CTO 王濤:新一代分佈式數據庫

海內外業界認可

最後我說一下SequoiaDB 3.4新版本。在這個版本里面,我們在數據庫的實例、數據庫引擎和大對象引擎的三個領域進行了很大的提升。歡迎大家下載!

我大概的分享就是這些,謝謝大家!

小編提醒:關於《2019數據技術嘉年華PPT》正在整理完善中,在“數據和雲”公眾號後臺回覆:2019dtc,即可下載!

出處:墨天輪(https://www.modb.pro/doc/topic/11536,複製到網頁中打開)


分享到:


相關文章: