Orasort:利用 Oracle 的过期专利将列排序速度提高 5 倍

Oracle 一项名为 Orasort 的数据库列排序专利于 2024 年到期,现已进入公共领域。该算法通过利用 CPU 寄存器以 8 字节块(64 位整数)取代逐字节比较,将列排序速度提升 5 倍,开源数据库和云计算厂商正尝试集成以降低成本。

Orasort:利用 Oracle 的过期专利将列排序速度提高 5 倍

一句话看懂:Oracle 一项名为 Orasort 的数据库列排序专利于 2024 年到期,现已进入公共领域。该算法通过利用 CPU 寄存器以 8 字节块(64 位整数)取代逐字节比较,将列排序速度提升 5 倍,开源数据库和云计算厂商正尝试集成以降低成本。

事件核心:发生了什么

据 DeepSystemStuff 报道,由 Mark Callaghan 注册的 Oracle Orasort 专利在 2024 年达到 20 年保护期后自动失效,其技术细节现可被任何组织或个人自由使用。传统数据库排序采用字符逐字节(1 字节)比较,在处理长字符串或大量记录时消耗大量 CPU 周期。Orasort 的创新在于从两个待排序字符串中分别提取前 8 字节,将其转换为 64 位整数后进行比较。若一次比较即可确定顺序则结束,否则继续提取下一组 8 字节。这种设计将原本的字节级比较升级为字级并行比较,从而减少了比较轮次和 CPU 寄存器占用。

在实现层面,Oracle 将待排序列的键与 ID 提取到 RAM 中的排序区执行 Orasort。若数据量达到百万级,则分多块存储在磁盘上,分批调入内存处理。数据写入采用异步中间写入策略,排序与写入并行进行,而非等待全部排序完成。

为什么重要

排序是数据库查询中高频且耗时的操作,尤其在大规模 OLTP/OLAP 场景。Oracle 作为商业数据库头部产品,其性能优化手段长期受专利保护,外部无法直接复用。Orasort 的公共化直接降低了开源数据库社区和云服务商在排序能力上的追赶成本:MySQL、PostgreSQL 等开源项目已启动集成实验。对云计算而言,更少的 CPU 周期意味着更低的算力消耗,这直接转化为 AWS、阿里云等平台的租户成本下降空间。此外,该算法在 CPU 微观架构层面做了针对性优化,属于“架构即算法”的典型实践,其对理解现代 CPU 上的数据库内排序优化也有教学价值。

对用户/开发者/创作者的影响

  • 数据库开发者与运维: 可直接在开源数据库中尝试向 Orasort 的移植。如果所在团队使用自研或定制化数据库,可将该专利的技术思路纳入排序模块的优化方案,减少逐字节比较引入的延迟。
  • 云服务客户: 若云服务商(如基于 PostgreSQL 的 AWS Aurora、基于 MySQL 的 RDS)后续正式集成 Orasort,用户可能直接享受排序查询速度提升(预计在某些列排序场景下约 5 倍)或同等负载下的更低计算费用。
  • 企业技术选型决策者: 在评估数据库时,可关注社区是否已将 Orasort 集成,作为衡量该数据库在性能优化上是否跟上业界最先进实践的一个指标。

值得关注的后续

  1. 开源社区的反应和集成进度: 目前 MySQL 和 PostgreSQL 均处于实验阶段,需观察是否有正式补丁提交、性能回测数据公开以及合并到正式发布版的时间线。
  2. 云厂商是否将其列为特性并定价: 若云厂商将此优化作为付费增强功能,则可能打折甚至变相涨价;反之若作为默认优化集成,用户受益最大。
  3. 是否存在关联的其他 Oracle 专利已到期或即将到期: 按 20 年周期回溯,更多来自 2004–2005 年间的 Oracle 性能优化专利可能正在进入公域,存在后续低斜率集成机会。

来源:Hacker News · 24h最热

celebrityanime
celebrityanime
文章: 16465

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注