0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

微云疏影 来源:yzsDBA 作者:yzsDBA 2022-04-13 15:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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包。编译安装方法:

pYYBAGJWf4yAP82oAAALL_okViw745.png

$ 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

    文章

    4697

    浏览量

    89576
  • 服务器
    +关注

    关注

    13

    文章

    10095

    浏览量

    90899
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67742
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    K8s存储类设计与Ceph集成实战

    云原生时代,存储是制约应用性能的关键瓶颈。本文将带你深入理解K8s存储类的设计原理,并手把手实现与Ceph的完美集成,让你的集群存储性能提升300%!
    的头像 发表于 08-22 11:50 605次阅读

    云原生环境里Nginx的故障排查思路

    本文聚焦于云原生环境下Nginx的故障排查思路。随着云原生技术的广泛应用,Nginx作为常用的高性能Web服务器和反向代理服务器,在容器化和编排的环境中面临着新的故障场景和挑战。
    的头像 发表于 06-17 13:53 643次阅读
    <b class='flag-5'>云原生</b>环境里Nginx的故障排查思路

    从 Java 到 Go:面向对象的巨人与云原生的轻骑兵

    (Goroutine/Channel) 在 云原生基础设施领域 占据主导地位,它也是 Java 开发者探索云原生技术栈的关键补
    的头像 发表于 04-25 11:13 511次阅读

    Snap Store开发者工具图谱:从全栈到云原生,一张图解锁Linux开发新姿势!

    PyCharm+Postman构建微服务,还是云原生新人尝试Kubectl+Helm驯服K8s,SnapStore早已备好全套装备。本文作为《UbuntuSnap》系列的第三弹
    的头像 发表于 03-25 09:22 637次阅读
    Snap Store开发者工具图谱:从全栈到<b class='flag-5'>云原生</b>,一张图解锁Linux开发新姿势!

    涂鸦智能与火山引擎达成重磅合作,亿元补贴全力构建AIoT开发者生态

      全球化AI云开发者平台涂鸦智能(NYSE: TUYA,HKEX: 2391)宣布与火山引擎达成重磅合作,双方将火山引擎旗下豆包大模型接入涂鸦AI云开发者平台,共同推进AI大模型及云原生技术的多
    的头像 发表于 02-28 09:01 533次阅读
    涂鸦智能与火山<b class='flag-5'>引擎</b>达成重磅合作,亿元补贴全力<b class='flag-5'>构建</b>AIoT开发者生态

    云原生在汽车行业的优势

    近年来,“云原生”已成为科技领域的高频热词。从企业数字化转型到智能化产业布局,各行各业对云原生技术的需求呈现爆发式增长,向云计算转型已成为一大趋势。根据Gartner的预测,到2025年,超过95%的新数字工作负载将迁移至云端,而非传统数据中心。
    的头像 发表于 02-21 09:20 1477次阅读

    DevEco Studio构建分析工具Build Analyzer 为原生鸿蒙应用开发提速

    原生鸿蒙应用开发过程中,随着项目复杂度的增加,开发者花费在构建上的时间越来越长,导致开发效率降低。为了帮助开发者解决构建效率的问题,华为在DevEco Studio上提供了Build
    发表于 02-17 18:06

    云原生AI服务怎么样

    云原生AI服务,是指采用云原生的原则和技术来构建、部署和管理人工智能应用及工作负载的方法和模式。那么,云原生AI服务怎么样呢?下面,AI部落小编带您了解。
    的头像 发表于 01-23 10:47 766次阅读

    M1携手6D Technologies云原生BSS平台实现转型

    M1携手6D Technologies云原生BSS平台,成功实现数字化转型 印度班加罗尔2025年1月15日 /美通社/ -- 数字化转型解决方案的全球领导者6D Technologies欣然宣布
    的头像 发表于 01-15 15:42 732次阅读

    云原生LLMOps平台作用

    云原生LLMOps平台是一种基于云计算基础设施和开发工具,专门用于构建、部署和管理大型语言模型(LLM)全生命周期的平台。以下,是对云原生LLMOps平台作用的梳理,由AI部落小编整理。
    的头像 发表于 01-06 10:21 713次阅读

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器学习平台种类繁多,功能各异,如何选择云原生机器学习平
    的头像 发表于 12-25 11:54 701次阅读

    东方通联合openEuler社区即将开启云原生开源中间件 Meetup北京站

    深入探索云原生技术的最新前沿; 剖析基础软件最“潮”趋势; 与技术大佬零距离交流; 聆听行业专家的独家案例经验; 激发创新思维,寻找灵感火花; 更有机会获取宝贵的实习机会,以及丰富多彩的福利礼包
    的头像 发表于 12-17 14:58 1129次阅读

    艾体宝与Kubernetes原生数据平台AppsCode达成合作

    虹科姐妹公司艾体宝宣布与Kubernetes 原生数据平台 AppsCode达成正式合作,致力于将其核心产品KubeDB引入中国市场,为企业提供专业、高效的云原生数据库管理解决方案。
    的头像 发表于 12-16 15:07 898次阅读

    构建云原生机器学习平台流程

    构建云原生机器学习平台是一个复杂而系统的过程,涉及数据收集、处理、特征提取、模型训练、评估、部署和监控等多个环节。
    的头像 发表于 12-14 10:34 676次阅读

    什么是云原生MLOps平台

    云原生MLOps平台,是指利用云计算的基础设施和开发工具,来构建、部署和管理机器学习模型的全生命周期的平台。以下,是对云原生MLOps平台的介绍,由AI部落小编整理。
    的头像 发表于 12-12 13:13 846次阅读