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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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/

    相关实践学习
    日志服务之使用Nginx模式采集日志
    本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
    目录
    相关文章
    |
    13天前
    |
    边缘计算 Cloud Native 安全
    构建灵活高效的下一代应用架构 随着企业数字化转型的加速,云原生技术正逐渐成为构建现代化应用程序的关键支柱。
    随着企业数字化转型加速,云原生技术逐渐成为构建现代化应用的关键。本文探讨了云原生的核心概念(如容器化、微服务、DevOps)、主要应用场景(如金融、电商、IoT)及未来发展趋势(如无服务器计算、边缘计算、多云架构),并分析了面临的挑战,如架构复杂性和安全问题。云原生技术为企业提供了更灵活、高效的应用架构,助力数字化转型。
    36 4
    |
    25天前
    |
    Cloud Native 持续交付 开发者
    探索云原生技术:构建高效、灵活的应用架构
    【10月更文挑战第6天】 在当今数字化浪潮中,企业面临着日益复杂的业务需求和快速变化的市场环境。为了保持竞争力,他们需要构建高效、灵活且可扩展的应用程序架构。本文将探讨云原生技术如何帮助企业实现这一目标,并分析其核心概念与优势。通过深入剖析云原生技术的各个方面,我们将揭示其在现代应用开发和部署中的重要性,并提供一些实用的建议和最佳实践。
    51 2
    |
    23天前
    |
    运维 监控 Cloud Native
    构建行业应用生态:云原生应用市场简化企业软件安装
    在移动互联网时代,尽管手机应用市场为用户带来了极大的便利,但企业级软件的安装和管理仍面临诸多挑战,包括安装复杂、交付效率低、应用兼容性差等问题。为此,基于云原生技术的企业级应用市场Rainstore应运而生,旨在简化企业软件的安装和管理,提升交付效率,增强应用兼容性,支持远程管理和个性化定制,构建开放的行业应用生态,助力企业数字化转型。
    构建行业应用生态:云原生应用市场简化企业软件安装
    |
    9天前
    |
    Cloud Native 持续交付 云计算
    云原生技术深度探索:构建现代化应用的基石####
    【10月更文挑战第21天】 本文将深入探讨云原生技术的核心概念、关键技术及其在现代软件开发中的应用。我们将从容器化、微服务架构、持续集成/持续部署(CI/CD)、无服务器架构等关键方面展开,揭示这些技术如何共同作用,帮助企业实现高效、弹性且易于维护的应用部署与管理。通过实例分析,展现云原生技术在实际项目中的显著优势,为读者提供一套全面理解并应用云原生技术的指南。 ####
    24 2
    |
    22天前
    |
    运维 Cloud Native 持续交付
    云原生技术:构建现代应用的基石
    【10月更文挑战第9天】在数字化转型的浪潮中,云原生技术如同一股清流,引领着企业走向更加灵活、高效的未来。本文将深入探讨云原生的核心概念,揭示其在现代应用开发与部署中的重要作用,并通过实际案例分析,展现云原生技术如何助力企业实现敏捷开发和自动化运维,最终提升业务竞争力。
    67 3
    |
    22天前
    |
    运维 Kubernetes Cloud Native
    云原生技术:构建现代应用的新范式
    【10月更文挑战第9天】 云原生是一种通过云计算环境优化的软件开发和运行方法论,旨在最大化利用云平台的灵活性、可扩展性和弹性。本文将深入探讨云原生技术的基本原理、核心组件以及其在实际项目中的应用。我们将从Kubernetes的容器编排机制入手,逐步探讨如何通过自动化工具实现持续集成与持续部署(CI/CD),最终展示如何构建一个高效、可靠的云原生应用。
    32 2
    |
    26天前
    |
    运维 Kubernetes Cloud Native
    探索云原生架构:构建弹性、高效和可扩展的现代应用
    【10月更文挑战第5天】 在当今数字化时代,企业必须不断适应快速变化的技术环境。传统的单体应用程序已经无法满足现代业务需求,而云原生架构以其独特的优势,正在成为企业数字化转型的基石。本文将深入探讨云原生架构的核心概念、关键技术和应用实践,旨在帮助读者理解如何利用云原生技术构建弹性、高效和可扩展的现代应用。
    83 1
    |
    19天前
    |
    Cloud Native Devops 云计算
    云原生技术:构建现代应用的新基石
    【10月更文挑战第12天】 本文深入探讨了云原生技术的核心理念、关键技术和实践方法,揭示了其在现代应用开发和运维中的重要地位。通过分析云原生技术的发展趋势和面临的挑战,本文为读者提供了全面而深入的理解,旨在帮助读者更好地利用云原生技术构建高效、灵活和可扩展的现代应用。
    34 0
    |
    22天前
    |
    监控 Cloud Native 持续交付
    云原生技术:构建现代应用的新范式
    【10月更文挑战第9天】 随着云计算技术的不断成熟,云原生技术正迅速成为现代应用开发和部署的新标准。云原生不仅是一种技术,更是一种理念和实践方法,旨在最大化利用云计算的优势,提升应用的灵活性、可扩展性和弹性。本文将深入探讨云原生的核心概念、关键技术以及它如何改变我们构建和运行应用程序的方式。
    76 0
    |
    26天前
    |
    运维 Cloud Native Devops
    云原生技术:构建现代应用的未来
    本文将探讨云原生技术的核心概念、主要特点及其在现代软件开发和运维中的关键作用。我们将了解云原生如何通过容器化、微服务架构、DevOps实践和持续交付等手段,帮助企业实现高效、灵活和可扩展的应用部署与管理。此外,文章还将讨论云原生技术在应对复杂业务需求和快速市场变化中的独特优势,以及其对未来技术趋势的影响。

    热门文章

    最新文章