

近日,國內云計算服務商UCloud與國內開源分布式NewSOL數據庫TiDB團隊PingCAP正式達成合作,雙方聯手在UCloud全球數據中心推出了新一代TiDB的云端版本-Cloud TiDB。
作為一款定位于Cloud-native的數據庫,目前TiDB在云整合上已取得了階段性進展。Cloud TiDB產品在UCloud平臺正式開啟公測,TiDB彈性伸縮特性在Cloud提供的基礎設施支持下得到了淋漓盡致地體現。在感受云數據庫魅力的同時,讓我們來探索—下TiDB與Cloud背后的技術秘密。
一、TiDB與傳統單機關系型數據庫的區別
首先,從TiDB的架構說起。TiDB作為一款開源的分布式數據庫產品,具有多副本,能夠根據業務需求非常方便地進行彈性伸縮,并且擴縮容期間對上層業務無影響。
TiDB的主體架構包含三個模塊,對應Githuh上PingCAP組織下的三個開源項目(TiDB/TiKV/PD):
1) TiDB主要是負責SQL的解析器和優化器,它相當于計算執行層,同時也負責客戶端接人和交互;
2) TiKV是一套分布式的Kev-Value存儲引擎,它承擔整個數據庫的存儲層,數據水平擴展和多副本高可用特性都在這一層實現;
3) PD相當于分布式數據庫的大腦,一方面負責收集和維護數據在各個TiKV節點的分布情況,另一方面PD承擔調度器的角色,根據數據分布狀況以及各個存儲節點的負載來采取合適的調度策略,維持整個系統的平衡與穩定。
上述三個模塊中的每個角色都是一個多節點組成的集群,所以最終TiDB的架構如圖1所示。
由此可見,分布式系統本身的復雜性不僅導致人工部署和運維成本較高,而且容易出錯。傳統的自動化部署運維T具(如Puppet/Chef/SaltStack/Ansihle等),由于缺乏狀態管理,在節點出現問題時不能及時自動完成故障轉移,需要人工干預,有些則需要寫大量DSL甚至與Shell腳本一起混合使用,可移植性較差,維護成本比較高。……