巨杉數據庫 MySQL兼容項目正式開源
開源數據庫論壇(ODF)是中國開源數據庫垂直領域的頂級峰會,旨在建立一個平臺,以促進開源數據庫產品發展和技術交流,幫助越來越多的企業了解和使用開源數據庫。
在大會主論壇中,巨杉數據庫聯合創始人 & CTO王濤,介紹了SequoiaDB 3.0 對於MySQL兼容的機構以及兼容工具SequoiaSQL,同時也正式宣布SequoiaSQL項目正式向社區開源。
SequoiaSQL項目開源
SequoiaSQL此前是SequoiaDB數據庫的SQL解析模塊,在經過1.0~3.0的發展,SequoiaSQL組件也實現了PostgreSQL、MySQL的兼容。
MySQL的分布式改造目前也是包括互聯網行業在內的多個行業的一個共性需求,因此巨杉也決定將SequoiaSQL組件開源,一方面是將這一個MySQL的分布式方案和工具提供給業界和社區,解決更多應用中實際的數據庫痛點;另一方面,也希望項目的開源,可以讓社區參與到項目中,未來可以一同實現工具的通用化。
項目目前已經實現MySQL,PostgreSQL的支持,在未來,還會實現MairaDB的兼容支持,並且實現更多存儲引擎的兼容對接。
SQL-存儲分離架構
針對雲數據庫的需求和架構方向,一種新的數據庫架構也在漸漸成為主流,也就是數據庫的 “SQL-存儲分離”架構。
SQL-存儲分離架構,即指數據庫的存儲引擎和SQL引擎兩部分互相松耦合獨立工作的架構。通常這一架構,分為存儲、SQL和元數據 三個部分。
?存儲層:即數據庫的存儲引擎,存儲引擎負責處理數據的存儲管理。同時包含路由及事務控制,保障數據的ACID特性。此外,存儲層還應還具備索引、查詢條件過濾、排序等一系列功能。
?SQL層:SQL層主要負責處理SQL請求,上層直接面對應用程序,將應用程序的訪問請求分發給存儲層,並且接受存儲層返回的數據結果。
?元數據區:元數據區負責存儲整個數據庫的所有元數據信息。
典型的雲數據庫架構示意
如上圖所示,MySQL 的存儲引擎可以掛載多種不同的產品,每個引擎都能提供不同的技術特性。其中包括InnoDB、MyISAM等架構。
存儲與SQL分離的架構,目前在數據庫業界十分流行,AWS的Aurora數據庫在SQL訪問上也采用了類似的架構。SequoiaDB 3.0 目前在MySQL兼容上,主要也是采取“SQL-存儲分離“的架構。
SequoiaDB 3.0 MySQL 兼容架構
SequoiaDB 3.0使用了MySQL數據庫原生的SQL解析器,天然支持MySQL協議並可以做到100%語法兼容。在該架構中,MySQL協議解析層作為SQL解析和分發的角色,直接面對應用程序,每一個MySQL服務的接入節點都是一個獨立支持讀寫操作的MySQL進程。而數據存儲和管理層,則完全由巨杉數據庫的分布式數據庫引擎實現。簡單來說,SequoiaDB 3.0作為MySQL的InnoDB替換引擎,在天然支持MySQL的全部語法和功能的同時,提供了數據庫存儲層彈性擴張的能力。
巨杉數據庫 MySQL兼容項目正式開源