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的全部语法和功能的同时,提供了数据库存储层弹性扩张的能力。