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

简介: OrioleDB – 构建现代云原生存储引擎

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


OrioleDBPG的一个新存储引擎,为世界上最受欢迎的数据库平台带来一种现代化数据库容量、功能和性能方法。

它以扩展的形式组成,建立在新的表访问方法框架以及其他表中PG扩展接口之上。通过扩展和增强当前的表访问方法,OrioleDB为未来更强大的存储模型打开了大门,这些模型对云和现代硬件架构进行了优化。目前是标准的PG许可。

1)专为现代硬件而设计。OrioleDB的设计针对数十个和上百CPU内核现代服务器,避免CPU瓶颈,提供了针对现代存储技术,例如SSDNVM,的使用方法。

2)减少维护需求。实现了undo logpage-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检查点和行级WALOrioleDB利用copy-on-write检查点,每时每刻都提供结构上一致的数据快照。这对现代SSD很友好,并允许行级WAL日志记录。反过来,行级WAL日志记录很容易并行化(已做),紧凑且适合active-active多主(计划)。

4)使用及架构参考:


https://github.com/orioledb/orioledb/blob/main/doc/usage.md

https://github.com/orioledb/orioledb/blob/main/doc/arch.md


状态


当前仅alpha状态,仅推荐测试,不推荐生产环境使用。


安装


需要PG14libzstdpython3.5+及其testgres包。编译安装方法:

    $ git clone https://github.com/orioledb/orioledb
    $ 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;

    原文


    https://github.com/orioledb/orioledb/

    https://postgresbuild2021.sched.com/

    相关实践学习
    【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
    【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
    目录
    相关文章
    |
    2月前
    |
    消息中间件 人工智能 安全
    云原生进化论:加速构建 AI 应用
    本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
    548 36
    |
    4月前
    |
    运维 NoSQL Serverless
    |
    3月前
    |
    Cloud Native 算法 区块链
    站在巨人的肩膀上:gRPC通过HTTP/2构建云原生时代的通信标准
    gRPC是云原生时代高效通信标准,基于HTTP/2实现,支持四种服务方法。通过.proto文件定义接口,生成多语言Stub,实现跨语言调用。其请求响应结构清晰,结合Headers、Data帧与Trailers,保障高性能与可扩展性,广泛应用于微服务架构中。
    204 0
    |
    8月前
    |
    人工智能 关系型数据库 OLAP
    光云科技 X AnalyticDB:构建 AI 时代下的云原生企业级数仓
    AnalyticDB承载了光云海量数据的实时在线分析,为各个业务线的商家提供了丝滑的数据服务,实时物化视图、租户资源隔离、冷热分离等企业级特性,很好的解决了SaaS场景下的业务痛点,也平衡了成本。同时也基于通义+AnalyticDB研发了企业级智能客服、智能导购等行业解决方案,借助大模型和云计算为商家赋能。
    664 17
    |
    4月前
    |
    运维 NoSQL Serverless
    《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
    在轻休闲游戏流量波动大、生命周期短的背景下,传统架构难以应对成本与扩展挑战。本文介绍了基于阿里云函数计算 FC 和 Redis 构建的新一代服务器架构,实现弹性伸缩、成本优化与高效运维,助力轻休闲游戏快速迭代与稳定运营,提升开发效率并降低运维复杂度。
    《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
    |
    5月前
    |
    安全 Cloud Native 容器
    开发者视角:构建坚不可摧的云原生安全工具 - 安全内生于开发流
    云原生时代,运维团队面临容器漏洞、微服务失陷与CI/CD污染三大威胁。通过容器基因解码、微服务免疫与管道净化构建三维防御体系,结合板栗看板、Snyk、Check Point、Aqua等工具,实现从漏洞预测到实时拦截的全链路防护。未来,安全将内生于云原生技术,构建主动免疫防线。
    开发者视角:构建坚不可摧的云原生安全工具 - 安全内生于开发流
    |
    12月前
    |
    Cloud Native
    邀您参加云原生高可用技术沙龙丨云上高可用体系构建:从理论到实践
    云原生高可用技术专场,邀您从理论到实践一起交流,探索云上高可用体系构建!
    241 76
    |
    人工智能 缓存 异构计算
    云原生AI加速生成式人工智能应用的部署构建
    本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
    云原生AI加速生成式人工智能应用的部署构建
    |
    12月前
    |
    人工智能 Cloud Native 大数据
    DataWorks深度技术解读:构建开放的云原生数据开发平台
    Dateworks是一款阿里云推出的云原生数据处理产品,旨在解决数据治理和数仓管理中的挑战。它强调数据的准确性与一致性,确保商业决策的有效性。然而,严格的治理模式限制了开发者的灵活性,尤其是在面对多模态数据和AI应用时。为应对这些挑战,Dateworks进行了重大革新,包括云原生化、开放性增强及面向开发者的改进。通过Kubernetes作为资源底座,Dateworks实现了更灵活的任务调度和容器化支持,连接更多云产品,并提供开源Flowspec和Open API,提升用户体验。