likes
comments
collection
share

PieCloudDB Database 元数据管理

作者站长头像
站长
· 阅读数 16

PieCloudDB 以云计算架构为设计基础,实现云上存算分离,打造了“元数据-计算-存储”分离三层架构。

传统 MPP 数据库的元数据与用户数据是紧密耦合的,元数据与用户数据解耦合是PieCloudDB 作为一款云原生数据库的重要特征。PieCloudDB 在架构上创建了独立的元数据服务层,保证了元数据的高可用性和独立伸缩性。

PieCloudDB 数据库的两个重要设计目标是多集群和高可用。多集群是指在一个数据集上,用户可以启动多个集群,进行数据的增删查改操作。在这个过程中,需要保证数据的 ACID 特性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。高可用是指在损失一个或多个节点的情况下,集群能够继续提供服务。这两个设计目标都要求数据库具备多个主节点的特性,也就是在多集群的情况下每个集群拥有多个 coordinator,每个 coordinator 都具有执行数据库所有功能的能力,包括 DML 和 DDL。

mStore: PieCloudDB 上的 Catalog 服务

PieCloudDB 实现了两个基本模块:一是实现一个分布式的数据存储模块,这个模块需要实现多级并发访问,并实现多版本在内的所有存储特性;二是实现分布式的锁。这个新的分布式云数据库的存储被称为 mStore ,我们选择 FoundationDB 作为 mStore 的存储介质。

FoundationDB 是一款由苹果公司开源的分布式的 Key-Value 存储,经过大量商业验证,具有良好的扩展性和完备的事务一致性。mStore的数据存储方式和 PostgreSQL 的堆表大致相似,以元组为单位存储在 KV 中,使用 tuple id 作为 key,并使用和堆表相同的机制实现 MVCC。

PieCloudDB 是一款 OLAP(分析型)数据库,但对于元数据的访问高度近似于 OLTP 的模式,因此我们需要实现索引。我们将参与索引的字段编译成二进制 key 的一部分,这样就可以利用 FoundationDB Key 的排序特性实现与 B-tree 特性类似的索引。在这个索引的加持下,用户就可以高效而且低成本的访问元数据。

从下图上可以看到,在索引由多个字段组成的情况下,PieCloudDB 将每个字段按照顺序编译成定长的二进制 key,然后由这些二进制 Key 组成索引的 key-value 中的 key,让索引中 key 的排序与 index 保持一致。从而实现了与 B-tree 类似的功能。

PieCloudDB Database 元数据管理

这种排序方式要求我们将所有的 key 编译成定长的 key。如果 Index Key 是变长的 需要将其转化为定长的 key。此时,Index 会混入一些多余的数据,通过 re-check 即可将其去除掉,从而实现一个与原有 Postgres B-tree index 完全相同的 Index。

基于 FoundationDB 的分布式锁

PieCloudDB 元数据的多级并发访问功能使用等待的方式来实现多用户并发访问。这种模式的好处是,在大负载和长事务的情况下可以避免回滚。由于 PieCloudDB 为多主模式,即多个主节点会分布在多台物理机上,导致原本以内存为基础的锁变得不可用。因此,PieCloudDB 设计并实现了新的分布式锁。分布式锁以 key-value 的形式存储在FoundationDB 中,使用 FoundationDB 的事务来保证锁操作的原子性,并使用watcher 机制来实现锁的等待和唤醒。

PieCloudDB Database 元数据管理

PieCloudDB 的元数据层为计算集群提供了统一的元数据管理服务,保证了计算集群的一致性,实现了对使用资源的有效管理。此外,PieCloudDB 智能化云原生平台为用户提供可视化界面,降低用户的管理门槛,帮助用户更便捷的使用 PieCloudDB。

关于PieCloudDB

PieCloudDB 是一款全新 eMPP 分布式技术云原生分析型数据库。通过重新打造云上的数据库内核,突破了 PC 时代计算平台的限制,实现云上存算分离。旨在为企业提供包含实时处理、秒级扩缩容、弹性计算、集成数据分析等强大功能的云上数据存储和计算引擎。在云上,计算资源可按需启动,对计算模型以更低成本提供指数级的存储和计算资源,帮助企业的业务模型发现新洞察或者提高精准度,从而建立竞争壁垒。目前,PieCloudDB 在金融,医疗,汽车及制造等行业积累了一批种子用户,产品备受业界及用户的高度关注及认可。

转载自:https://juejin.cn/post/7224330515536576569
评论
请登录