暂无图片
暂无图片
8
暂无图片
暂无图片
暂无图片

Startup OrioleData发布新的 PostgreSQL 存储引擎 - OrioleDB

原创 通讯员 2023-07-20
817

2023年7月17日消息,Startup OrioleData发布了一款新的 PostgreSQL 存储引擎 - OrioleDB,旨在提供快速且紧凑的存储,不会导致数据库文件随着时间的推移而膨胀,并且不需要使用定期运行的VACUUM进程进行垃圾收集。该引擎是用 C 编写的, 在 PostgreSQL 许可证下分发,并作为插件实现,需要更改核心 PostgreSQL 代码库。目前,该引擎正处于 Beta 测试阶段,尚未建议用于生产实施。

OrioleDB 中使用的结构允许您更有效地处理数据库中的数据修改操作并替换释放的块,而不会随着时间的推移而累积它们。由于使用了 在单个块和行级别工作的回滚日志(撤消日志)以及自动合并数据页的系统,因此 实现了无需 VACUUM 的能力。

行级回滚日志允许通过就地数据替换来执行更新,而无需释放当前记录并创建新记录。块级回滚日志使得在 DELETE 操作后立即抢占元组并释放存储空间成为可能,尽管它们在失败的事务中仍然可见。为了减少大量删除造成的存储碎片,各个数据页会在后台自动合并。

OrioleDB 中的 WAL 事务日志保存在行级别,而不是块级别,这使得它更容易在分布式系统中使用,并允许您并行化日志的旋转。可以创建具有多个活动主服务器的分布式配置,为了使它们保持同步状态,使用 Raft 共识算法。

从OrioleDB的架构特点来看,我们还可以注意到不使用锁来读取数据页、将RAM中的页与永久存储中的页直接链接、在修复检查点时使用CoW(写时复制)机制以随时创建一致的快照。64位值用于事务标识符,使用它解决了计数器溢出的问题。

使用 OrioleDB 不仅可以消除执行手动操作的需要并简化 DBMS 的维护,而且还可以提高性能。例如,通过就地更新数据来实现更好的性能,这避免了更改与存储更改值无关的索引。该引擎还支持以压缩形式存储数据(压缩是使用ZSTD算法执行的,并在可变大小块的级别上实现),这可以让您将磁盘上数据库的大小减少4-5倍。

使用 OrioleDB 测试具有 5 个索引的单表配置,结果显示 TPS(每秒处理的事务数)提高了 5 倍,CPU 负载减少了 2.3 倍,每个事务的 I/O 操作减少了 22 倍,并且没有索引和表膨胀。


文章来源:https://www.opennet.ru/opennews/art.shtml?num=59453

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论