聊聊主流國產分散式資料庫
在分散式資料庫大行其道的那些年,在一次沙龍上,一個朋友說,分散式資料庫入門門檻不高,做好極難,讓使用者能用好分散式資料庫,需要廠商有極強的服務能力,不是小公司能幹的。
確實如此,分散式資料庫最初是從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也是打敗了大量技術比它更優秀的產品,才變成現在技術最好的資料庫產品的。
我今天討論的話題可能會引發一些爭議,不過不用管它,等到本期國測結果發布的時候,大海退潮的時刻,那時候誰在裸泳就一目了然了。