orioledb 是社区开发的一个新的pg 存储引擎,主要是为了解决现在pg 的一些问题,官方共享的一个ppt 还是值得学习的(以下链接中)
以下是一个简单的学习使用
orioledb 特性
- 支持现代硬件,orioledb 更加适合sdd 以及nvarm ,可以更好的解决cpu瓶颈问题
- 减少维护,orioledb 实现了undo log 以及page merge
- 支持分布式,orioledb 实现了基于row 的write-ahead log 支持并行,同时log 架构是基于raft 的,可以实现主主多master 架构
- 无buffer mapping 以及无锁的page 读
- mvcc 基于了undo log 可以减少vacuum 的问题
- 基于copy-on-write 的checkpoints 以及row 级的wal,可以更好的支持并行以及多主架构
- 同时也支持压缩的
环境准备
- docker-compose
version: '3'
services:
app:
image: orioledb/orioledb
environment:
- "POSTGRES_PASSWORD=dalong"
ports:
- "5432:5432"
- 启动使用
docker-compose up -d
- 使用
因为orioledb 是做为了一个pg 扩展,使用使用起来比较方便
CREATE EXTENSION orioledb;
CREATE TABLE appdemo (
id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name text
) USING orioledb;
存储内置表效果
- 注意事项
如果需要自己编译的话,注意因为orioledb 并不是一个标准的pg 扩展,我们构建是需要打一些补丁的
说明
目前orioledb 还处于alpha 阶段,同时基于了pg license 发布(可能会调整。。。。),还是比较期待ga 的
参考资料
https://github.com/orioledb/orioledb
https://www.slideshare.net/AlexanderKorotkov/solving-postgresql-wicked-problems
https://github.com/orioledb/postgres
https://github.com/orioledb/orioledb/blob/main/doc/usage.md