巨杉資料庫 MySQL相容專案正式開源
9月7日、8日,2018 ODF 開源資料庫論壇,在北京盛大開幕。在大會上,巨杉資料庫正式釋出了巨杉全新的MySQL/MariaDB相容架構,並將專案正式開源。開源資料庫論壇(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的全部語法和功能的同時,提供了資料庫儲存層彈性擴張的能力。