第三代分散式資料庫來了,真香!

OceanBase資料庫發表於2021-11-19

從3.0開始,OceanBase正式步入第三代企業級分散式資料庫序列。其實很多人不知道,今年6月,OceanBase開源的版本能力並不弱於2020年雙十一支付寶線上使用的版本。

集中式和分散式怎麼選?是資料庫選型中最讓人糾結的問題。之所以糾結,是因為二者各有優勢,卻熊掌與魚不能兼得。

比如:

1、 不想分庫分表,應用開發都要哭了……

2、 業務發展特別快,資料庫又要擴容了……

3、 不知道那些是AP哪些是TP,沒辦法把業務拆分出來……

4、 大機掛了,只能等廠商恢復,不敢切流……

5、 為什麼備庫不能提供服務?伺服器白白浪費了……

6、 分散式資料庫部署了幾十臺伺服器,效能還不如一套Oracle RAC……

7、 原先使用Oracle,遷移到國內某資料庫應用,改業務快崩潰了……

8、 跑批的時候交易效能總是抖動……

9、 多個部門使用一套資料庫,互相干擾……

以上問題均來自真實的使用者聲音,這些需求從本質上來說,是使用者既需要分散式可擴充套件、高可用的能力、也需要集中式的功能、效能及易用性。那麼,有沒有一個產品或者解決方案能解決以上所有問題?以前沒有,但現在有了,那就是第三代企業級分散式資料庫。

近日,在剛剛結束的DTCC 2021大會上,OceanBase CTO 楊傳輝(花名:日照)發表了《一體化架構的原生分散式資料庫》的主題演講,其中談到一些新的概念,如一體化架構,第三代分散式資料庫等,一些理念跟其它廠商有些不同。

OceanBase CTO 楊傳輝(花名:日照)

什麼是一體化架構?一體化架構的原生分散式資料庫又跟我們所熟知的分散式資料庫有什麼不同? 能解決哪些問題?

帶著這些問題?老魚採訪了楊傳輝。

在楊傳輝看來,分散式資料庫迭代分為三個階段:

第一代分散式儲存系統(NoSQL):以犧牲SQL,犧牲事務一致性,犧牲企業級功能,從而獲得可擴充套件、高效能的能力。

第二代分散式資料庫(Scalable SQL):支援基本的SQL功能,往往犧牲單機效能和成本,延遲比較大,企業級功能支援不全。

第三代企業級分散式資料庫(Scalable Enterprise DB):採用一體化的方式,功能和效能可以兼得。相容SQL標準,支援豐富的企業級功能,追求單機效能。

從描述可以看出,一體化架構是第三代企業級分散式資料庫的核心技術,那麼什麼是一體化?

楊傳輝表示,所謂一體化包含了兩層意思:

集中式與分散式的一體化融合

OLTP與OLAP一體化融合

OLTP與OLAP的一體化融合,這並不是新概念,其實就是HTAP,早期E.F.Codd關係模型提出時,並不區分是做TP還是AP。Oracle其實就是HTAP資料庫,只不過Oracle只能處理小資料量的HTAP,而不能做大數量。那麼,後來為什麼會分開?是因為隨著資料越來越大越來越多,集中式資料庫無法在一套系統裡既處理TP又處理AP,所以,就進行了拆分,一個TP系統,一個AP系統,定期做同步。

現在為什麼又要融合?楊傳輝認為,天下大勢合久必分分久必合,分散式和雲端計算髮展到一定程度,讓(一套)系統的處理能力又變強了,基於使用者簡單化需求驅動的一體化融合,於是又有了把AP、TP合在一起的想法。2014年,Gatner也提了這樣一個概念,今天HTAP也成了資料庫中的一種型別。

但集中式與分散式的一體化融合,這絕對是一個很新的概念,同時具備集中式和分散式系統的技術優勢,這聽起來就很香。

這種融合的好處是什麼?楊傳輝說,一體化融合下的資料庫選型,不再需要一開始考慮容量問題,比如選OceanBase,業務初期一臺機器就可以先用起來,當業務迅速增長,系統出現能力不足就做擴充套件, OceanBase能夠做到一臺機器使用時,即不用分散式時,效能、功能不損失。

總的來說,一體化融合對使用者的好處是顯而易見的,那就是好用且成本降低。

一體化架構,理論聽起來很香,但做起來並不容易,否則就不會是一個新概念了。楊傳輝說,這個架構非常難,裡面都是坑。

OceanBase為什麼能做到別人做不到的事?楊傳輝說是腳踏實地,一體化架構沒有捷徑。OceanBase堅持長期主義,堅持用十年、二十年的時間打造下一步分散式資料庫。這裡涉及三個理念:第一堅持完全自研,第二堅持原生分散式資料庫,第三堅持核心場景。OceanBase認為,想要做好下一代支援核心場景的原生分散式資料庫一定需要自研。成立之初,OceanBase選擇走完全自研的路線,並不是因為預測到今天國產化、自主可控的趨勢,完全是技術選擇。

多次打榜TPC,既不是喜歡也不是為了炫耀。而是為了打磨產品和證明架構的可行性。楊傳輝表示,因為OceanBase定位為下一代原生分散式資料庫,所以,需要用集中式資料庫最高、最苛刻的標準要求自己。那怎麼證明OceanBase是強一致?TPC-C是一種很好的方式,通過TPC-C測試,證明在分散式架構之下的也能具備強一致能力,這很重要,說明基於分散式架構實現ACID,也能管理20萬億行這樣的大規模資料,並且能做到完全無抖動,這是TPC-C的意義。而打榜TPC-H亦是如此,為的是證明OceanBase的HTAP能力。

OceanBase通過了TPC-C測試證明了分散式資料庫這條路的可能性,並證明了OceanBase的擴充套件性、高可用的能力,防抖動能力是領先的。楊傳輝表示,OceanBase在單機效能和功能,還要向經典資料庫學習,雖然證明了架構的可行性,但並不意味著我們現在就比原來的好,這裡還有很長的一段路要走。

此次DTCC大會上, OceanBase 3.1.1開源版本正式釋出,該版本進一步強化OceanBase核心能力,提升易用性及開源能力。緊接著,雲棲大會上,OceanBase 3.2商業版正式對外發布,資料分析效能提升6倍。

楊傳輝指出,實際上OceanBase從3.0開始,就屬於第三代分散式資料庫,因為主體架構基本具備,但還需要不斷追求單機效能極致,並做好相容性功能和細節打磨。

OceanBase開源是認真的,且貨真價實的。楊傳輝最後說,今年6月開源的版本能力不弱於去年支付寶雙十一線上使用的版本。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11310314/viewspace-2842513/,如需轉載,請註明出處,否則將追究法律責任。

相關文章