10月24日程序员节,拓数派发布了云原生数据库PieCloudDB 社区版与企业版。通过重新打造云上的数据库内核,突破了PC时代计算平台的限制,实现云上存算分离。 PieCloudDB Database基于云的基础设施,专为云平台打造。
本文整理自拓数派2022发布会的演讲,将为大家着重介绍PieCloudDB 是如何构建新一代云原生存储引擎的。
PieCloudDB在存储层的打造过程中,考虑到了数据的分布和集群的弹性,保证数据的安全性。 在设计存储引擎时,PieCloudDB也充分考虑了查询优化器和执行器的演进,以完成分析型任务为基准,减少用户成本,提升读写性能, 并提供完备的事务支持。
PieCloudDB中的存储引擎是面向云上对象存储而设计,其核心是数据共享和存算分离,云基础设施大大提升了存储的容量,并将数据共享给多个不同计算资源,弹性大大增加。PieCloudDB 存储引擎还兼容HDFS分布式存储系统,同时也支持运行在网盘和本地盘环境,来满足不同的私有云、公有云和混合云的部署。
为了充分利用现代硬件的性能,PieCloudDB的存储引擎针对性的为现代CPU和GPU的高速缓存访问进行了设计,并且对数据的局部性进行了进一步优化以支持SIMD和并行计算。PieCloudDB 还计划针对现代存储技术和新硬件的使用提供支持和扩展。
考虑到PieCloudDB eMPP(elastic MPP)的分布式设计,数据文件通过一致性hash分布在各个节点中,数据会最终持久化到云存储中。 一般来说,在同一集群内,写入数据的节点也是读取数据的节点,数据文件缓存在本地以减少延时较高的云存储的访问。这个设计减少了数据不必要的转移,并简化了cache的设计。计算节点是无状态的,当集群执行秒级扩容时,如果没有一致性hash的数据移动策略,新的计算节点中将没有缓存数据。在eMPP的架构下,由于”木桶效应”,整体的查询时间由最慢的节点决定,因此这个新的节点将大大影响查询的执行效率。在一致性hash的保证下,每一个节点均移动大致相等的数据量到新的节点,一致性hash的均匀性保证了大部分本地缓存数据的有效性,减少了cache miss,提升查询性能。
在安全方面PieCloudDB提供了坚实健壮的保障。针对于存储引擎中的数据安全这一方面,我们使用透明加密来对数据进行保护。在实现中使用了三层密钥结构,第一级密钥为主密钥负责对第二层密钥的加解密,第二级密钥为表密钥,负责对第三层密钥的加解密,第三级密钥为文件密钥,负责对数据文件加解密。在存储引擎中数据的读写会进行实时的加解密。
在设计PieCloudDB 存储引擎时,我们充分的考虑到了用户的成本。在云上环境中,用户为查询付费,最大的开销是数据的存储成本。因此我们自动选取适应对应类型的编码进行encoding,节约存储空间。
除此之外,PieCloudDB还采用了压缩算法对数据进行进一步的压缩。在数据查询时,为了减少对象存储的访问开销,PieCloudDB 实现多级别的缓存机制节约成本。同时,这也可以提升查询的性能。
针对于分析型的场景,PieCloudDB查询性能有丰富的优化。在存储这一层,使用了行列混合存储。在重组数据时,其具备行存的高效性能、列存的高压缩比、cache line友好、可进行SIMD和并行计算的优势。
PieCloudDB 重新定义了数据在磁盘和内存中的表数据格式,使表中的数据在磁盘上和内存中的数据转换没有额外的成本和开销。所有的数据均能以O(1)的时间复杂度访问,适应随机访问和扫描工作负载。
在此之上,每一个文件块都包含了预计算和统计信息来加速查询。同时对于优化器来说,其使用对应数据表的统计信息来生成最终的执行计划。PostgreSQL 通常使用 ANALYZE 来抽样数据构建统计信息,如果统计信息不准确则无法生成高效的查询计划。在新的存储引擎中,PieCloudDB使用更智能的方式以更快的速度来构造比抽样更准确的统计信息,辅助优化器生成高效的执行计划。
PieCloudDB 新的存储引擎通过block文件级别的MVCC使其具备完整的事务支持,来服务各行各业的客户。每个文件块中的数据是否可见,通过查询其所在文件的MVCC信息以及当前的事务隔离级别来判断。
为了支持优化器和执行器的演进,存储引擎在实现时充分考虑到了执行器的向量化、文件查询裁剪和聚集下推扫描的支持。在查询时可减少海量数据的IO并加速计算,大大提升OLAP场景下的分析型任务的查询性能。
存储是一款数据库的底座,PieCloudDB将在存储引擎模块上持续迭代,不断演进,为用户的数据分析提供夯实的基座。
PieCloudDB是一款全新eMPP分布式技术云原生分析型数据库。通过重新打造云上的数据库内核,突破了PC时代计算平台的限制,实现云上存算分离。旨在为企业提供包含实时处理、秒级扩缩容、弹性计算、集成数据分析等强大功能的云上数据存储和计算引擎。在云上,计算资源可按需启动,对计算模型以更低成本提供指数级的存储和计算资源,帮助企业的业务模型发现新洞察或者提高精准度,从而建立竞争壁垒。目前,PieCloudDB在金融,医疗,汽车及制造等行业积累了一批种子用户,产品备受业界及用户的高度关注及认可。
相关博文