O^3-LSM: Maximizing Disaggregated LSM Write Performance via Three-Layer Offloading

本文提出了 O³-LSM 架构,通过利用共享分离内存实现内存表卸载、协同刷写卸载及分片级优化等三层卸载机制,有效解决了现有分离式 LSM 存储中内存受限和刷写缓慢的问题,从而显著提升了写入性能与查询效率。

Qi Lin, Gangqi Huang, Te Guo, Chang Guo, Viraj Thakkar, Zichen Zhu, Jianguo Wang, Zhichao Cao

发布于 2026-03-06
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文介绍了一个名为 O3-LSM 的新系统,它的目标是让云数据库在“计算”和“存储”分离(Disaggregated)的架构下,写得更快、更稳。

为了让你轻松理解,我们可以把数据库想象成一个超级繁忙的快递分拣中心

1. 背景:现在的快递中心遇到了什么麻烦?

想象一下,传统的快递中心(单体架构)里,包裹(数据)先放在手边的传送带上(内存/Memtable),满了就打包发往仓库(硬盘/DS)。

但在现在的云数据中心里,为了省钱和灵活,大家把“分拣员”(计算节点)和“大仓库”(存储节点)分开了,中间隔着一条高速公路(网络)。

  • 问题一(内存不够): 分拣员手边的传送带(内存)很小。一旦包裹太多,传送带满了,新来的包裹就得排队等待,甚至被拒收(写入变慢或停止)。
  • 问题二(打包太慢): 以前大家只把“打包整理”(Compaction/合并)的工作外包给了仓库。但现在的瓶颈在于“把包裹从传送带搬到卡车”(Flush/刷新)这一步。因为要经过网络,速度很慢,导致传送带经常堵死。
  • 问题三(找东西难): 如果包裹还在传送带上没发走,客户要查包裹,分拣员得一个个翻找,效率很低。

现有的方案虽然把“整理”外包了,但没解决“传送带堵死”和“搬运太慢”的问题。

2. O3-LSM 的解决方案:三层外包(Three-Layer Offloading)

O3-LSM 就像是一个超级聪明的物流调度系统,它引入了一个共享的“临时中转站”(Disaggregated Memory, DM),并实施了三个创新策略:

第一层:智能传送带(DM-Optimized Memtable)

  • 以前的做法: 把传送带上的包裹搬到“临时中转站”时,因为包裹上贴的标签(指针)是写给本地传送带看的,到了中转站就失效了。分拣员必须把每个包裹拆下来,重新贴标签、重新整理,这太慢了。
  • O3-LSM 的做法: 它重新设计了包裹的包装方式。它把“包裹本身”(数据)和“标签索引”(指针)分开。
    • 比喻: 就像把一箱苹果(数据)直接装箱运走,箱子上的标签(索引)只写“第几个苹果”。到了中转站,不需要重新贴标签,只需要在标签上改个“箱子位置”就行。
    • 效果: 搬运速度极快,几乎不需要重新整理,直接就能在中转站被找到。

第二层:协作式打包(Collaborative Flush Offloading)

  • 以前的做法: 只有负责这个传送带的分拣员(原计算节点)能打包发货。如果这个分拣员忙不过来,或者网络堵了,包裹就发不出去。
  • O3-LSM 的做法: 它建立了一个**“万能打包队”**。
    • 比喻: 当传送带满了,系统会问:“谁现在有空?”不管是谁(另一个分拣员,或者中转站的工作人员),只要有空闲的 CPU 和网络,都可以帮忙把中转站里的包裹打包发往大仓库。
    • 效果: 不再依赖单一节点,谁有空谁干,大大加快了发货速度,避免了拥堵。

第三层:分块并行处理(Shard-Level Optimization)

  • 以前的做法: 每次打包都是把整个传送带(64MB 的大箱子)一次性搬走。如果网络带宽有限,这个大箱子会堵住整条路,而且一旦卡住,整个传送带都得停。
  • O3-LSM 的做法: 把大箱子拆成很多小包裹(Shards),按地址(Key 范围)分类。
    • 比喻: 不再等一整车苹果,而是把苹果分成“红苹果区”、“青苹果区”、“黄苹果区”。不同的卡车可以同时运送不同颜色的苹果。而且,系统会把所有“红苹果区”的包裹合并成一个大包裹直接发走,省去了后续在仓库里重新分拣的麻烦。
    • 效果: 并行处理,互不干扰,彻底解决了“大箱子堵车”和“仓库整理慢”的问题。

3. 读数据也变快了:智能导航(Cache-Enhanced Read Delegation)

当客户要查包裹时:

  • 以前的做法: 要么在本地找(快但内存小),要么去中转站一个个翻(慢,因为要跑很多趟网络)。
  • O3-LSM 的做法:
    • 热点缓存: 对于经常查的包裹,系统记下了“它在哪个箱子的第几层”(Key-Offset Cache)。下次直接去拿,不用翻箱倒柜。
    • 远程代查: 如果没记住,系统会派一个“远程侦探”(利用中转站的 CPU)直接去翻,翻到了直接告诉你结果,而不是把整个箱子搬回来。
    • 比喻: 就像你问路,如果记得路,直接指给你;如果不记得,直接派个出租车司机(远程 CPU)去把你接回来,而不是让你自己跑过去再跑回来。

4. 成果如何?

经过测试,O3-LSM 的表现非常惊人:

  • 写入速度: 比现有的最佳方案快了 4.5 倍
  • 查询速度: 范围查询快了 5.2 倍
  • 延迟: 最慢的情况(P99 延迟)减少了 76%
  • 稳定性: 就像一条平稳的高速公路,再也没有了那种“走走停停”的卡顿现象。

总结

O3-LSM 就像给云数据库装上了智能物流系统

  1. 改包装(优化内存结构),让搬运不费事;
  2. 叫外援(协作打包),谁有空谁干活;
  3. 拆小单(分块并行),避免大堵车;
  4. 记路标(智能缓存),让查找更精准。

它成功解决了在“计算”和“存储”分离的架构下,数据库写得慢、容易卡死的痛点,让云上的数据服务变得既快又稳。