王 錦,梁正和,王法強
(河海大學 計算機與信息學院,江蘇 南京 211110)
隨著互聯網技術的飛速發展,移動網絡、局域網、廣域網、Internet得到了巨大的發展,集中部署的單機數據庫系統己經不能夠適應這樣的環境[1],使用服務器集群來解決海量數據[2]成為必然趨勢,分布式數據庫應運而生。MyCat分布式數據庫中間件[3]由阿里巴巴的開源項目cobar[4]發展而來,其本身提供了分布式資源整合方案。該產品具有雙機熱備份、負載均衡、SQL語句重寫、讀寫分離[5]、查詢路由、多臺數據庫并行處理以及結果集合并等功能[6],并提供了對MySQL、PostGreSQL等應用廣泛的開源關系型數據庫的分布式支持。該分布式數據庫中間件為用戶提供廉價的數據庫集群,平滑地將現有的單機集中式數據庫和應用遷移到“云”[7]端,同時保留原有數據庫的查詢能力。
通過MyCat可以搭建以MySQL為底層節點的分布式數據庫系統,系統通過MySQL的通信協議[8]與用戶以及底層數據庫通信。對于用戶,通過該中間件能夠透明地訪問整個集群,故而原有的基于MySQL開發的應用均無需修改,直接遷移到分布式系統中。該系統在中間件中建立了完整的Schema(模式)、Table(表)、User(用戶)的邏輯模型,將整套模型通過邏輯規則映射到每個數據節點上的MySQL實例中,并可以實現事務處理。
面對一些數據量巨大的表,可以通過MyCat對數據進行水平切分[9],在保證每個分片節點的表結構一致的情況下,將表映射到不同的數據引擎上,從邏輯上實現數據庫容量的擴充。MyCat不支持跨分片連接查詢,需要將與其關聯的表設置為全局表分布在各個分片上。……