聊聊主流國產分布式數據庫
在分布式數據庫大行其道的那些年,在一次沙龍上,一個朋友說,分布式數據庫入門門檻不高,做好極難,讓用戶能用好分布式數據庫,需要廠商有極強的服務能力,不是小公司能干的。
確實如此,分布式數據庫最初是從SHARDING方案發展起來的,只要能夠掌握好兩階段提交和高可用架構的設計,利用現成的集中式數據庫,采用樂高技術就可以搭起來一套最為原始的分布式數據庫框架來,然后在此基礎上不斷優化就可以了。不需要投入巨資去死磕RDBMS核心的SQL引擎和存儲引擎,這兩個數據庫核心的組件用現成的就行了。于是10年前開始,大量的分布式數據庫初創團隊開始推出自己的分布式數據庫產品,甚至比利用開源代碼搞集中式數據庫的廠商還多。
幾年過去了,那位朋友的話真的印證了。樂高式的分布式數據庫只能適用于有限的應用場景,主要是互聯網和物聯網特征的,業務邏輯相對簡單的場景。對于企業級信息管理系統(MIS、ERP、MES、SCM等)而言,分布式數據庫因為對于應用開發比較嚴苛的限制,適配難度極大。雖然現在市場上存活的分布式數據庫產品還很多,但是真正在企業級市場上應用比較廣泛的分布式數據庫產品其實十分有限。
目前來看,存活得較好,發展潛力較大的主流國產分布式數據庫要么是技術能力與資本都比較有優勢的企業,要么是TOB能力較強,能夠提供比較優質服務的大廠。
能夠獲得大量的客戶,能夠在大量的應用場景中不斷打磨產品,是分布式數據庫從一個簡單的玩具似的毛坯變成一個優秀的數據庫產品的基礎。如果不能在大量實際案例中不斷地磨合和改進自己的產品,只是在自己的實驗室里不斷自我陶醉,這樣是做不出好的分布式數據庫產品的。
圖片
分布式數據庫雖然參與者眾多,產品也十分豐富,不過真正算得上主流產品的其實數量不多。最近分布式數據庫產品的第一次大考剛剛結束,本期國測中有不少分布式數據庫廠商都報名了。自己的產品行不行,能不能在數據庫國產化替代大潮中喝上一口湯,就看本期國測的結果了。我個人推算,最早下個月初,最晚今年年底,這份包含了分布式數據庫的安可清單就會出臺。在清單上的產品將會獲得進一步發展的入場券,而沒有上榜的企業則前途堪憂。
上圖是CCSA TC601的領航者與競爭者象限。與集中式數據庫相比,靠譜指數高了一些,不過也存在很多不合理的地方。把OceanBase從領航者象限里拿掉,是十分令人費解的。在技術、市場綜合因素評估下,OceanBase、TiDB、GaussDB、GoldenDB、PolarDB、TDSQL是理所當然的領航者,不僅我個人如此認為,可能大多數同業人員都會認可吧。
KingWow是當年交行搞數據庫的一些人出來創業的數據庫項目,利用當年交行和阿里在早期OceanBase合作項目的成果(當年OceanBase第一次開源,版本發布到0.4,當時與交行有一個聯合工作組,嘗試在核心交易系統中使用分布式數據庫),研發了金烏數據庫。在一些銀行有一些應用,但是把金烏數據庫放到領航者象限里似乎不大合理。
對于我認可GoldenDB為領航者,可能有一些朋友有些不同意見。實際上一個分布式數據庫產品是否架構上是原生分布式其實并不關鍵,原生分布式其實也是一個這兩年被硬生生定義出來的概念。數據庫產品是用來解決應用場景中的問題的,一個數據庫產品是否成功,不取決于其架構如何先進(以前我也寫過一篇文章《沒有完美的分布式數據庫架構》),而是取決于數據庫產品和數據庫廠商是否能夠幫助用戶在自己的復雜業務場景中發揮作用。良好的客戶服務,也是數據庫廠商重要的能力之一。隨著用戶數量的增加,處理的復雜業務場景的增加,數據庫產品、數據庫架構中存在的一些問題慢慢是能夠被彌補的。技術永遠不是一個產品成功的最重要因素,當年Oracle也是打敗了大量技術比它更優秀的產品,才變成現在技術最好的數據庫產品的。
我今天討論的話題可能會引發一些爭議,不過不用管它,等到本期國測結果發布的時候,大海退潮的時刻,那時候誰在裸泳就一目了然了。