GaiaDB开源说明
云原生数据库GaiaDB是一款集高性能、高弹性、高可用性于一体的关系型数据库,并高度兼容MySQL协议,同时支持集中式与分布式部署架构。
GaiaDB以领先的存算分离架构为核心,突破了传统MySQL在计算(CPU、内存)和存储(磁盘)资源上互相制约的瓶颈,使两者能够独立地按需进行秒级扩展和资源升降配。这种极致的弹性能力,让GaiaDB能够高效且经济地支撑从GB级到PB级的广泛业务需求。
应用场景
GaiaDB的应用价值覆盖众多关键场景:它能轻松满足泛互联网行业对大容量存储的迫切需求;精准适配电商、游戏等业务的瞬时高峰流量,提供极致的弹性伸缩能力;同样胜任金融行业对高可用性、读写强一致性及复杂分析查询性能的严苛标准;亦能作为企业核心业务坚实的底层数据库支撑,提供稳定可靠的服务基础。
核心特性
-
一写多读
- 采用分布式集群架构:一个集群包含一个读写主节点和最多15个只读节点(至少部署一个只读节点保障基本高可用)。
- 读写分离:主节点处理读写请求,只读节点仅处理读请求。
- 灵活调配:支持分钟级增减节点及计算节点规格(CPU/内存)升降配。
-
存算分离,弹性伸缩
- 彻底分离计算层(关注CPU/内存性能优化)与存储层(关注低成本、高可靠实现)。
- 计算能力与存储容量独立优化并按需秒级扩展、升降配,最大化资源利用率。
-
透明读写分离
- 提供透明、高可用、自适应的负载均衡能力。
- 通过集群地址,应用程序发出的SQL请求(读/写)会自动路由到合适的节点处理,提供高吞吐的并发SQL处理能力(写请求到主节点,读请求分布到各只读节点)。
-
数据高可靠
- 存储节点数据默认采用多副本冗余机制,确保数据零丢失,保障持久性。
-
超级MySQL兼容
- 100%兼容原生MySQL,用户无需修改应用程序代码和配置,即可平滑将MySQL数据库迁移至GaiaDB。
-
高可用性
- 提供AZ级及地域级高可用方案,确保单AZ故障时RPO = 0(零数据丢失),RTO < 3秒(快速恢复),服务可用性高达99.99%。
-
多级HTAP
- 基于行存实时构建列存索引,加速查询。
1 架构概述
GaiaDB采用模块化设计,将传统数据库系统按功能分解为松耦合的多个层级模块,并将各模块分布到不同的docker容器内。
1.1 计算层 (Compute Layer)
计算层由多个计算节点(Compute Node)组成,代码位于GaiaDB代码库的gaiadb-sql目录。
- 1个主计算节点(Primary Compute Node)
主计算节点(Primary Compute Node)负责处理读写请求和事务管理,生产Redo日志将其写入日志服务层(Log Service)的落盘区(Landing Zone)。 - 多个备计算节点(Secondary Compute Node)
备计算节点(Secondary Compute Node)只处理读请求,从日志服务(Log Service)拉取Redo日志进行回放,更新本地缓存的数据。
1.2 日志服务 (Log Service)
日志服务是多副本架构,它使用Raft协议来保障高可用,代码位于GaiaDB代码库的log-service目录。
- 日志落盘区 (Landing Zone)负责接收主计算节点(Primary Compute Node)发送的Redo日志,进行Redo日志的持久化。
- 日志服务进程 (Log Service Processes)负责响应从计算节点(Secondary Compute Node)的Redo日志读请求。
1.3 分布式存储层 (Distributed Storage Layer)
分布式存储层是由多个Page Server节点构成的,每个Page Server节点管理固定大小的数据段(Segment),代码位于GaiaDB代码库的gaiadb-page-server目录。
- 负责从Log Service拉取Redo日志进行回放,持久化其管理的数据。
- 响应计算节点(Compute Node)的读请求。
1.4 数据分布及集群管理(Page Server Manager)
Page Server Manager也是多副本架构,它使用Raft协议来保障高可用,代码位于GaiaDB代码库的gaiadb-manager目录。
- 负责管理数据库的集群拓扑信息和数据表的元数据。
- 响应主计算节点(Primary Compute Node)表空间操作的请求。
- 负责监控集群水位信息和各节点存活状态。
2 编译和部署
NOTE:
编译工具还在更新中……
3 如何贡献
我们欢迎大家给GaiaDB贡献代码,下载代码包请访问:gaiadb-code.tar.gz。
贡献代码的流程请参考GaiaDB代码库的CONTRIBUTING.md文件。
4 讨论
如流讨论群:11740647
