近 2 年来,openGauss 社区大力打造资源池化解决方案DataPod 。资源池化是采用存算分离架构的数据库解决方案,支持在多个计算节点上运行单个数据库。通过内存池化技术实现集群各节点数据实时一致,具体是由 DMS 模块实现,页面资源在集群各节点间协调共享,使计算节点不但可以从本地缓存的数据页面获取数据,还可以从其他计算节点的缓存中获取,从而降低了存储访问次数,提高了系统整体性能。
通过共享存储技术实现集群各节点共享一份数据,具体是由 DSS 模块实现。DSS使用卷组的概念将裸盘池化,一个卷组包含多个LUN,用户只看到卷组。卷组可以做数据库的表空间、日志目录等。同样也支持在卷组上创建目录和文件。
这种架构具有一定的优势,包括存算分离,内存和存储资源池化,计算资源和存储资源可以独立水平扩展;内存池化,各节点数据实时一致,支持强一致性业务;各节点共享数据,去除节点间日志复制开销,存储空间下降50%以上;支持大容量,支持大规模数据处理场景。
此外,DataPod 还支持算子下推,利用存储节点计算能力,加速复杂查询,这样可以大幅度消减存储层和计算层的网络 IO 流量,充分利用存储层 CPU 资源;支持多机并行查询,通过多机并行处理、节点间数据重分布,提升复杂查询性能,TPC-H&TPC-DS性能提升2倍;基于存储硬件复制能力实现集群容灾,适合金融核心生产业务多DC容灾场景。
另一个创新架构 DataKit 是 openGauss 数据全生命周期生产力工具,支持数据全生命管理,覆盖openGauss部署、数据开发、运维等阶段。DataKit 采用平台 + 插件的软件架构,平台提供基础的服务器、数据库实例等软硬件资源管理能力,插件基于被管理的资源扩展功能。平台与各个插件相互协作,形成高效的整体为 openGauss 服务。
DataKit 也是一个工具开发平台,支持用户根据插件接口和规范实现自己的特有功能,并且支持调用平台和其他插件的开放接口获取相应数据和功能,以实现快速构建特色功能。openGauss 社区提供安装部署、兼容性评估、数据迁移、数据开发、智能运维等功能插件,支持 MySQL 一站式迁移。
DataKit 中包含多个插件,可以满足不同需求。如兼容性评估插件,可以快速识别源库和应用程序中的不兼容 SQL,评估源库、运行中程序、MyBatis 配置文件中的 SQL 语句,避免人工反复排查。