TiDB是一個開源的NewSQL數據庫,支持HTAP(Hybrid Transactional and Analytical Processing),既支持事務型操作,也支持數據分析。同時TiDB和MySQL的大多數協議都是兼容的。支持水平擴展,強一致性和高可用。TiDB的目標是提供一個一站式數據庫解決方案。包括OLTP(Online Transactional Processing), OLAP (Online Analytical Processing), and HTAP services。據了解,TiDB 適合高可用、數據強一致要求較高、數據規模較大等各種場景。
隨著數字化進程加速,云和開源在今天扮演了越來越重要的角色:在中國,2020 年公有云部署模式的關系型數據庫超過傳統部署模式;在全球,2021年開源數據庫的流行度首次超越商業數據庫。以TiDB為例,云和開源已經成為推動 TiDB 產品持續發展的兩大引擎。TiDB 為用戶本地環境提供技術領先、穩定高效、安全可靠的企業級 HTAP 數據庫產品,滿足各類數字化場景對“實時數據運營”的需求。與此同時,TiDB 不斷地將企業級 HTAP 能力向云端演進,為不同類型用戶的云端部署提供多樣化選擇。
由此可見,“會進化”的數據庫似乎是PingCAP TiDB的關鍵詞。近日,筆者采訪到PingCAP聯合創始人兼CTO黃東旭,就TiDB的相關話題進行了深入探討。
上圖為:PingCAP聯合創始人兼CTO黃東旭
TiDB是為真實的客戶產品市場而生
黃東旭說:“有很多的創業者或者說很多優秀的項目在設計之初,考慮的重點并不是技術含量怎么樣,技術多么厲害或者多么難做,而是要找到合適的產品市場。很幸運,PingCAP 在2016至2017年推出第一個 TiDB 版本 GA 的時候,找準的第一個產品市場就是 TiDB 是兼容 MySQL 數據庫”。
事實確實如此,對用戶而言,業務增速快是一個非常重要的特點,而且是急需解決的難題,而數據庫是整個系統里最難拓展的一個關鍵節點,尤其是關系型數據庫,比如 MySQL、PG、Oracle,這些系統在誕生的時候并沒有考慮到未來可能遇到如此龐大的數據,所以在過去的十年內,數據庫這個領域里最大的需求就是可以幫助關系型數據庫解決擴展性這一問題。
TiDB產品市場就是假設有一個可以無限擴展的MySQL,用戶可以在業務增長的時候不用去操心MySQL本身的擴展性問題,也不用關心集群變大了以后,這些很令人頭疼的維護成本或者需要讓應用停下來去給業務做改造。
TiDB的成功三寶:永遠的用戶視角、合適的價值傳遞以及成熟度足夠的產品
黃東旭說:“要具備永遠的用戶視角。從用戶的角度來看,一個成功的數據庫不一定要有很炫酷的技術,而是如何用產品贏得用戶信任?如何把產品價值傳遞給客戶?如何讓產品真正成熟?最終讓用戶安全安心使用數據庫產品。”
首先,TiDB剛進入市場時,作為一個新的database產品,需要去替換MySQL或者像Oracle的OLTP System,OLTP眾所周知,一般用于客戶的核心業務,因此,必須依靠產品本身的能力贏得用戶的信任,才可能做OLTP System的替換。
其次,用合適的方式把產品價值傳遞給客戶。
第三,解決產品成熟度問題,對數據庫產品而言,產品必須穩定安全,不能一用就掛。
開源+云,打造會進化的數據庫
黃東旭進一步指出:“上面這三個問題最終會觸碰到數據庫的本質,數據庫軟件需要能夠自行進化,當軟件的迭代速度和進化速度提升上去,才能去做擴張,這是數據庫的一個核心指標。”
因此,TiDB優化的方向是提升迭代速度,通過選擇Open-Source,來加速數據庫軟件本身的迭代速度。
黃東旭說:“如果說迭代速度是數據庫的核心和關鍵,發布周期便是衡量迭代速度的一個特別關鍵點,這其中,云是一個很好的技術選擇。云是未來,云真正給客戶帶來價值的不僅僅是在于彈性等特點,對基礎軟件來說,云特別重要的點在于可以讓產品的迭代速度和交付速度變得更快”。
另一方面,當迭代速度變得很快,對企業客戶而言,會擔心數據庫的穩定性。這個問題如何解決?黃東旭說:“PingCAP TiDB通過提前讓用戶了解發版節奏來解決上述問題。其核心在于當數據庫內核不斷以更快的速度往前迭代時,如何讓在私有環境下使用TiDB的用戶有一個更加穩定、更加放心,同時更加明確的版本,知道這些版本TiDB PingCAP官方會維護很長時間,這是我們對客戶更加負責的一種方式”。為此,PingCAP 除了提供迭代、發版速度非常快的 DMR 版本(Development Milestone Release),還向廣大企業級用戶推出 LTS 版本(Long Term Support),提供強大的功能與穩定的體驗,為企業級用戶提供了更安全穩定的選擇。
事實上,真正的迭代速度或者說更有價值更有意義的迭代速度在于軟件怎么幫助應用開發者更快的開發出他的應用,比如OSS insight,這是 PingCAP 推出的一個非常酷的開源項目,它將 GitHub 上面有 API 以來所有的 47 億條數據都下載下來,為所有開源項目提供一個更好的 deep insight。47億條數據說大不大,說小也不小,很難放到一個單節點 MySQL里,一定得做分庫分表。而如果用傳統意義上的技術架構,database一般還要通過ETL,通過AP的這些數據庫,再通過反向的ETL回填到在線服務器上的database上,流轉了這么長一圈以后還是實時數據嗎?在使用TiDB以后,HTAP這種新型database,便能夠極大的減低這種應用開發的復雜性,從而能給應用和業務贏得更多時間。OSS insight 整個網站只花了兩個人,一個禮拜的時間就做出來了。這個背后體現出:真正的迭代速度或者說更有價值或更有意義的迭代速度在于你的軟件怎么幫助應用開發者更快地開發出他的應用。
正如網易數據庫專家,杭研數據庫運維團隊負責人倪山三所說,“TiDB 對我們來說并不是分布式數據庫0到1的改變,是系列痛點上1到1.1創新的集合。我們希望通過新一代數據庫,來解決或改善當前MySQL分布式中間件模式使用中的某些問題”。這可能就是TiDB在墨天輪每月發布的“國產數據庫排行版”上一直排列靠前的真正原因。作為一款可以自進化的數據庫產品,滿足用戶的最終需求才有可能一直向前。