周傲英
(華東師范大學 上海 200241)
在實現分布式數據庫的技術方案上,業界存在不同的選擇.第一種方式需要對應用系統進行拆分,通過分庫分表將原本單個數據庫管理的數據分散到多個集中式數據庫.分庫分表方案要求應用系統重構,跨庫訪問效率較低,關系數據庫的重要功能,如外鍵、全局唯一性約束、全局索引等無法使用.第二種方式是對傳統集中式關系數據庫進行分布式改造,增加分布式事務處理,小規模集群部署下的自動故障恢復等功能.這類分布式數據庫由于存儲系統、事務處理和SQL 優化器等源自集中式架構,在分布式場景下面臨功能和性能上的諸多限制.第三種方式是從頭開始設計和實現一個原生分布式關系數據庫,將分布式作為基本特性融入存儲系統、事務處理和SQL 優化器等關鍵組件.相比前兩種方案,原生分布式數據庫在高可用、數據一致性、事務性能、彈性伸縮、快速無損的故障恢復等方面有著更大的優勢.
OceanBase 是一個從頭開始設計與實現的分布式關系數據庫系統.OceanBase 因淘寶而誕生,因支付寶而發展和壯大,如今已在金融、政務、通信和互聯網等領域得到廣泛應用.由OceanBase首席科學家陽振坤領銜的分布式數據庫研發團隊實現了多項技術創新和突破,該團隊撰寫的論文“OceanBase 分布式關系數據庫架構與技術”介紹了OceanBase 的分布式架構,分布式事務處理、存儲引擎、SQL 優化、多租戶機制等關鍵技術 ,具體總結如下:
1)設計了強一致、高可用、可擴展的分布式事務處理機制,實現了單機/單機房故障的自動、無損、快速的故障恢復;
2)提出了單機/分布式一體化關系數據庫架構,實現了關系數據庫容量和處理能力從單機數據庫到分布式數據庫的無縫切換和伸縮;
3)實現了關系數據庫的性能無損的高倍率數據壓縮,論文實驗展示了數據壓縮倍率是主流關系數據庫的3 倍甚至更高;
4)實現了單數據庫系統同時支持高性能事務處理和實時分析處理,典型場景的事務處理性能和分析處理性能都高于MySQL.
OceanBase 是迄今為止唯一同時獲得了TPC-C 和TPC-H 性能榜首的數據庫.盡管關系數據庫的提出已經過去了半個世紀之久,真正意義上的分布式關系數據庫時代才剛剛開始,論文不僅展示了OceanBase 采用的分布式數據庫關鍵技術,也對未來分布式數據庫的發展方向提出了展望.我相信,這篇論文能引發很多關于數據庫發展方向的思考,對于從事相關研究和開發的工程技術人員和數據庫應用領域的專業人士都有重要的參考價值.