OrioleDB —— 构建现代云原生存储引擎

OrioleDB 是 PostgreSQL 的全新存储引擎,为该数据库平台带来了现代化的数据库容量、功能和性能。目前正处于公测状态。建议用于实验、测试、基准测试等,但不建议用于生产用途。

OrioleDB 包含一个扩展,它构建在创新的表访问方法框架和其他标准 Postgres 扩展接口的基础上。通过扩展和增强当前的表访问方法,OrioleDB 为未来更强大的存储模型打开了大门,这些模型针对云和现代硬件架构进行了优化。

OrioleDB 目前在标准 PostgreSQL 许可证下分发。

  1. 专为现代硬件而设计。OrioleDB 设计避免了包含数十个和数百个 CPU 核心的现代服务器上的遗留 CPU 瓶颈,从而优化了现代存储技术(例如 SSD 和 NVRAM)的使用。

  2. 减少维护需求。OrioleDB 实现了撤消日志和页面合并的概念,消除了对专用垃圾收集过程的需要。此外,OrioleDB 实现了默认的 64 位事务标识符,从而消除了众所周知且令人痛苦的环绕问题。

  3. 设计为分布式。OrioleDB 实现了行级预写日志并支持并行应用。该日志架构针对基于 raft 共识的复制进行了优化,允许实现主动-主动多主控。

OrioleDB的关键技术差异如下:

  1. 没有缓冲区映射和无锁页面读取。OrioleDB 中的内存页面通过直接链接连接到存储页面。这消除了缓冲区内映射及其相关瓶颈的需要。此外,在 OrioleDB 中,内存页面读取不涉及原子操作。这些设计决策共同将 Postgres 的垂直可扩展性提升到了一个全新的水平。

  2. MVCC 基于UNDO 日志概念。在 OrioleDB 中,旧版本的元组不会导致主存储系统膨胀,而是被逐出到包含撤消链的撤消日志中。页级撤消记录使系统能够轻松地尽快回收已删除元组占用的空间。这些机制与页面合并一起消除了大多数情况下的膨胀。也不需要对表进行专门的 VACUUMing,从而消除了系统性能恶化和数据库中断的重要且常见的原因。

  3. 写时复制检查点和行级 WAL。OrioleDB 利用写时复制检查点,它每时每刻都提供结构一致的数据快照。这对于现代 SSD 很友好,并允许行级 WAL 日志记录。反过来,行级 WAL 日志记录很容易并行化(已完成)、紧凑且适合主动-主动多主机(计划中)。

更多详情可参阅用法架构项目结构文档以及 PostgresBuild 2021 幻灯片。要开始开发,可参阅 OrioleDB 开发快速入门

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/p/orioledb

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。