在信息快速發展多元化的今天,數據庫作為現代信息技術領域的三大核心基礎之一,重要性愈發明顯。隨著傳統商業數據庫產品的熱度逐漸下降,更多的企業級用戶逐漸轉向云分布式數據庫及開源數據庫產品,云化部署模式正在逐漸超越傳統部署模式并成為市場的發展趨勢。12月18日,在全球分布式云大會分布式數據論壇上,金山云數據庫總監余邵在分享了《金山云分布式數據庫DragonBase的實踐與發展》。
從單體式向分布式演進 金山云布局全系數據庫產品
“從單體式向分布式轉變,整個數據庫架構發展大致分為三種形態,金山云布局了全系的數據庫產品”余邵在表示。
第一種是單體式數據庫,以主、備架構為主,如MySQL、PostgreSQL,優勢是成熟度和穩定性較高,其劣勢在于性能和容量受限單機,在業務發展較快速的情況下,難以滿足業務發展的需求。
第二種是共享式數據庫,類似于PolarDB、Aurora,優點是兼容性高、分鐘級擴展,缺點也顯而易見,比如對硬件要求較高、成本高,由于單點寫入,性能只能到十萬級,當分布式存儲出現故障時影響面較大,比較適用于公有云的客戶需求。
第三種是分布式數據庫,目前比較主流的數據庫,主要包含分布式SQL引擎和分布式存儲。其中,分布式SQL引擎在設計上各個廠商實現的功能基本類似。分布式存儲主要包括基于B+ Tree的關系型存儲和基于LSM Tree的KV存儲。對比前兩種架構,分布式數據庫在計算能力或存儲能力可以很好地實現水平擴展,不足之處在于兼容部分SQL語法和功能方面,不過仍然存在很大的提升空間。
“金山云在這三種架構類型的數據庫上都做了布局,包括單體式的RDS、共享式的KingDB以及分布式的DragonBase。”余邵在表示。
金山云布局全系數據庫產品,在資源層面,金山云公有云上提供了輕量級LXC和KVM,基于K8S的容器化正在研發中;存儲可以提供本地磁盤、云磁盤、對象存儲等;在引擎類層面,分為關系型產品MySQL、PgSQL、KingDB等,NoSQL包括Redis、MongoDB、InfluxDB等數據庫產品;在服務層面,提供數據傳輸DTS、分布式事務DTX、安全審計DBAudit、數據管理DMS以及數據備份DBS等服務。
“客戶想用你的數據庫產品,數據遷移不可避免,DTS就是解決數據遷移的服務類產品。有些傳統行業使用Oracle等商業數據庫的,我們也需要提供異構數據遷移的能力。一些傳統行業做集中式核心系統,往分布式架構去轉型,會涉及到服務的拆分,對于跨服務的分布式事務,就需要用到像DTX這樣的分布式事務的中間件服務。”余邵在表示,此外審計、管理、備份等重要的增值服務,我們也提供了不同的產品解決方案。
其實早在2016年金山云就已經發布了DragonBase單體版本,2017-2018年深度優化單體版本穩定性和性能,2019年發布DragonBase分布式1.0版本,2020年發布升級版本2.0支持分布式事務、分布式計算、高可用、彈性擴展、安全審計、數據強一致、災備恢復、云管平臺和數據遷移等諸多核心能力,正在研發的DragonBase3.0版本將在Oracle兼容、分布式計算引擎和自動化運維等方面進行迭代。目前,DragonBase已在金融、互聯網、政企等多領域實踐應用,提供穩定、高性能、安全可靠的數據庫服務。
余邵在講到,DragonBase總體架構主要由數據庫云平臺和內核組成。其中,云平臺可以提供數據庫的資源調度、故障切換、監控運維、數據校驗等能力,并采用容器來部署數據庫內核,實現多租戶、資源隔離和彈性擴展等功能;數據庫內核支持單體式和分布式兩種部署形態,采用Share-Nothing架構,能夠實現性能和容量的水平擴展,支持Hash、Range、List等分片方式。目前,DragonBase除了能支持X86平臺,像主流的ARM平臺等也能實現很好地支持。
六大特性 DragonBase不斷提升的核心能力
“強一致、高可用、易擴展、高可靠、高性能、安全性,六大特性成為金山云DragonBase數據庫正在打造和一直不斷提升的核心能力。”余邵在表示。
在一致性方面,DragonBase的分布式事務,通過優化讀寫強一致,性能可以提升30%以上。一是事務處理優化,引入一階段本地事務+異步管理,能夠提高事務吞吐;二是全局中心時鐘優化,實現分布式事務的分布式一致性讀,通過使用Batch和Pipeline技術實現更小的SQL時延損耗,實現RC隔離級別。
在高可用性方面,提供主動+被動探活,協議層和應用層探活,支持熔斷機制,不可用節點個數超過設定閾值會停止切換,通過人工介入進行確認,避免高可用服務自身的異常導致大規模切換,影響服務可用性,同時支持“兩地三中心”和“三地五中心”的跨地域高可用部署,提供實例級、機房級、地域級的服務高可用保障,可以確保RTO<30秒。
在易擴展方面,DragonBase能夠支持計算節點和存儲節點的橫向(scale-out)和縱向(scale-up)的擴展能力。Scale-out計算節點具有實現集群的吞吐和性能的水平擴展的能力,Scale-out存儲節點支持基于分庫分表、按子表自動遷移,并支持按容量按訪問熱度進行遷移。Scale-up可以實現節點的升配和讀寫分離能力,能夠支持多種讀寫分離和負載均衡策略,來滿足不同業務的需求。
在高可靠性方面,考慮到不同業務對數據一致性的要求不同,DragonBase支持異步、半同步、強同步三種數據同步模式,業務可按需調配。DragonBase的DTS可以支持數據遷移和跨地域數據同步,能夠做到表級別同步,甚至是行級別的,延遲能夠在秒級甚至毫秒級。除了在線數據的可靠性以外,DragonBase還做了離線數據可靠性驗證。
在高性能方面,DragonBase通過深度優化數據庫內核引擎,包括線程池、異步事務提交和異步死鎖檢測等多種優化技術。“在高并發的情況下,DragonBase單節點性能比社區版本高40%以上,同時可以實現水平擴展”余邵在表示。
不僅如此,在實際運維的過程中,DragonBase的智能管控平臺提供多維度的監控服務,監控大屏能夠針對資源和實例粒度,展示整體的使用情況。同時,DragonBase具有完備的管理功能,支持實例創建升級、備份恢復、彈性擴展、數據遷移等,并提供OPENAPI等接口,供應用端進行創建、刪除、升級實例等基本操作。
在互金行業的災備方案中,DragonBase支持兩地三中心,能夠實現同城雙活、異地災備和單元化,保證每個AZ里面的應用和數據都是完整的。“在數據層面,我們通過多副本的同步機制,保證數據是一致的。從而保證同地域的RPO趨于0??绲赜騽t使用DTS異步復制,通過并行復制和靈活任務調度等優化手段,使得RPO可以達到秒級。”余邵在說到,在AI場景,面對海量標注信息存儲,DragonBase能夠提供上百個存儲節點,提供百TB級存儲能力,支撐每秒100w行寫入,并執行定期穩步刪除策略。
從單體式到共享架構再到主流的分布式數據庫,金山云正在不斷完善并一步步打造更高階性能的數據庫產品,為更多的企業提供更優異的數據計算和存儲服務。