OrioleDB是PG的一个新存储引擎,为世界上最受欢迎的数据库平台带来一种现代化数据库容量、功能和性能方法。
它以扩展的形式组成,建立在新的表访问方法框架以及其他表中PG扩展接口之上。通过扩展和增强当前的表访问方法,OrioleDB为未来更强大的存储模型打开了大门,这些模型对云和现代硬件架构进行了优化。目前是标准的PG许可。
1)专为现代硬件而设计。OrioleDB的设计针对数十个和上百CPU内核现代服务器,避免CPU瓶颈,提供了针对现代存储技术,例如SSD和NVM,的使用方法。
2)减少维护需求。实现了undo log和page-mergins的概念,消除了对专用垃圾回收进程的需要。此外,还实现了默认的64位事务标识符,从而消除了众所周知的回卷问题
3)分布式设计。实现了一个支持并行回放的行级WAL日志。此日志架构针对基于RAFT共识的复制进行优化,允许active-active多主。
OrioleDB关键技术差异:
1)无缓冲区映射和无锁page读取。OrioleDB内存中page直接连接到存储层的页。消除了对缓冲区映射及相关瓶颈。此外,内存中页面读取不涉及原子操作。这些设计决策共同将PG的垂直扩展性提升到了一个全新的水平。
2)MVCC基于UNDO日志。旧版本的元组不会导致主存储系统膨胀,而是将其放逐到undo链的undo日志中。页级别的undo记录允许系统很方便地尽快回收已删除元组占用的空间。大多数情况下,这些机制与page-mergins一起消除了膨胀。也不需要对表进行专门的VACUUM,从而消除了系统性能下降和数据库中断的一个重要且常见的原因。
3)copy-on-write检查点和行级WAL。OrioleDB利用copy-on-write检查点,每时每刻都提供结构上一致的数据快照。这对现代SSD很友好,并允许行级WAL日志记录。反过来,行级WAL日志记录很容易并行化(已做),紧凑且适合active-active多主(计划)。
状态
当前仅alpha状态,仅推荐测试,不推荐生产环境使用。
安装
需要PG14、libzstd和python3.5+及其testgres包。编译安装方法:
$ cd orioledb
$ make USE_PGXS=1
$ make USE_PGXS=1 install
$ make USE_PGXS=1 installcheck
启动前,在postgresql.conf中配置库文件:
shared_preload_libraries = 'orioledb.so'
也可以通过SQL:
CREATE EXTENSION orioledb;
创建表方法:
CREATE TABLE table_name (...) USING orioledb;
-
存储
+关注
关注
13文章
4373浏览量
86271 -
服务器
+关注
关注
12文章
9355浏览量
86233 -
数据库
+关注
关注
7文章
3857浏览量
64808
发布评论请先 登录
相关推荐
云原生AI服务怎么样
云原生LLMOps平台作用
如何选择云原生机器学习平台
什么是云原生MLOps平台
云原生和数据库哪个好一些?
k8s微服务架构就是云原生吗?两者是什么关系
容器云服务引擎是什么意思?
容器云服务引擎是什么?如何使用
云原生和非云原生哪个好?六大区别详细对比
基于Arm架构的Azure虚拟机助力云原生应用开发
京东云原生安全产品重磅发布
![京东<b class='flag-5'>云原生</b>安全产品重磅发布](https://file1.elecfans.com//web2/M00/FE/9F/wKgZomajC6SASmmzAATJlNh7RPo422.png)
从积木式到装配式云原生安全
![从积木式到装配式<b class='flag-5'>云原生</b>安全](https://file1.elecfans.com//web2/M00/FF/88/wKgaomajC32AVrYjAAC07TrSCCc818.png)
基于DPU与SmartNic的云原生SDN解决方案
![基于DPU与SmartNic的<b class='flag-5'>云原生</b>SDN解决方案](https://file1.elecfans.com/web2/M00/FD/A4/wKgZomad0kiAco1RAAGXtwNarbs914.png)
评论