
從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年,Gartner 也提了這樣一個概念,今天 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月開源的版本能力不弱于去年支付寶雙十一線上使用的版本。