Gate 广场“新星计划”正式上线!
开启加密创作之旅,瓜分月度 $10,000 奖励!
参与资格:从未在 Gate 广场发帖,或连续 7 天未发帖的创作者
立即报名:https://www.gate.com/questionnaire/7396
您将获得:
💰 1,000 USDT 月度创作奖池 + 首帖 $50 仓位体验券
🔥 半月度「爆款王」:Gate 50U 精美周边
⭐ 月度前 10「新星英雄榜」+ 粉丝达标榜单 + 精选帖曝光扶持
加入 Gate 广场,赢奖励 ,拿流量,建立个人影响力!
详情:https://www.gate.com/announcements/article/49672
Tidehunter:Sui的下一代数据库,优化低延迟和减少写放大
简要介绍
Sui 已推出 Tidehunter,一种为取代 RocksDB 而专门设计的区块链存储引擎,旨在减少写放大,提供更高、更稳定的吞吐量以及更低的延迟,满足验证者和全节点工作负载的需求。
Sui 作为一个 Layer 1 区块链网络,推出了 Tidehunter,这是一款针对现代区块链基础设施中常见的性能需求、数据访问特性和操作约束而设计的新型存储引擎。
该系统被定位为现有数据库层的潜在继任者,服务于验证者和全节点,反映出为了应对生产环境中不断变化的规模和工作负载特性,现代化核心基础设施的更广泛努力。
Sui 最初依赖 RocksDB 作为其主要的键值存储层,这是一种广泛采用且成熟的解决方案,支持快速协议开发。随着平台的扩展和操作需求的增加,通用 LSM 树数据库的根本限制在类生产环境中变得日益明显。
大量调优和深厚的内部专业知识无法完全解决与区块链系统典型访问模式相冲突的结构性低效问题。这促使战略转向设计专为区块链工作负载优化的存储引擎,最终开发出了 Tidehunter。
这一决策的核心因素之一是持续的写放大。在实际的 Sui 工作负载下的测量显示放大倍数大约在十到十二倍,意味着相对较小的应用数据量会产生不成比例的大量磁盘流量。虽然这种行为在基于 LSM 的系统中很常见,但它会降低有效存储带宽,并加剧后台压缩与读取操作之间的争用。在写入密集或读写平衡的环境中,这种开销随着吞吐量的提升变得越来越具有限制性。
Tidehunter 架构:为区块链访问模式和持续高吞吐量工作负载优化的存储引擎
在 Sui 和类似区块链平台中,存储行为主要由一小部分重复出现的数据访问模式主导,Tidehunter 正是围绕这些特性架构的。大量状态数据通过加密哈希键进行索引,这些键分布均匀,通常映射到相对较大的记录,消除了局部性,但简化了一致性和正确性。
同时,区块链高度依赖追加导向的结构,如共识日志和检查点,数据按顺序写入,后续通过单调递增的标识符检索。这些环境本身也具有写入密集的特点,同时仍需在延迟关键的读取路径上实现快速访问,过度的写放大成为吞吐量和响应速度的直接威胁。
Tidehunter 的核心是一个高并发写入流水线,旨在利用现代固态存储的并行能力。传入的写入通过一个无锁的预写日志(write-ahead log)进行,能够支撑极高的操作速率,争用仅限于最小的分配步骤。
数据复制在并行进行,系统避免每次操作的系统调用,采用可写的内存映射文件,而持久性由后台服务异步处理。这一设计产生了可预测且高度并行的写入路径,能够饱和磁盘带宽而不受 CPU 开销的限制。
减少写放大被视为首要架构目标,而非优化步骤。Tidehunter 不将日志作为临时缓冲区,而是将数据永久存储在日志段中,并建立直接引用偏移量的索引,避免了值的重复重写。
索引采用大量分片,以保持低写放大并增加并行性,免除传统 LSM 树结构的需求。对于以追加为主的数据集,如检查点和共识记录,采用专门的分片策略,将最新数据紧密分组,即使随着历史数据的增长,写入开销也能保持稳定。
对于由均匀分布的哈希键索引的表,Tidehunter 引入一种统一查找索引,优化为低延迟、可预测的访问。索引不会发出多个小而随机的读取请求,而是读取一个略大的连续区域,统计上包含所需条目,从而大部分查找可以在一次磁盘往返中完成。
这种方法有意牺牲部分读取吞吐量,以换取更低、更稳定的延迟。这一权衡在实际中变得可行,因为减少的写放大释放了大量磁盘带宽用于读取。结果是在事务执行和状态验证等对延迟敏感的操作中表现出更一致的性能。
为了进一步控制大规模环境中的尾部延迟,Tidehunter 结合了直接 I/O 和应用管理的缓存。大规模历史读取绕过操作系统的页面缓存,以防止缓存污染,而近期和频繁访问的数据则保留在由应用访问模式指导的用户空间缓存中。结合其索引布局,这减少了不必要的磁盘往返,提高了在持续负载下的可预测性。
数据生命周期管理也变得更简单。由于记录直接存储在日志段中,删除过时的历史数据只需删除超出保留窗口的整个日志文件。这避免了 LSM 数据库所需的复杂且 I/O 密集的压缩机制,并实现了更快、更可预测的裁剪,即使数据集不断扩大。
在模拟实际 Sui 使用场景的工作负载中,Tidehunter 展示出比 RocksDB 更高的吞吐量和更低的延迟,同时消耗的磁盘写入带宽显著减少。最明显的改进来自几乎消除的写放大,使磁盘活动更贴近应用层的写入,并保留 I/O 容量用于读取。这些效果在受控基准测试和完整验证者部署中均有体现,表明其优势超越了合成测试。
评估采用与数据库无关的基准框架,模拟插入、删除、点查和迭代等实际混合工作负载。测试参数反映了类似 Sui 的键分布、值大小和读写比例,并在符合验证者建议的硬件上执行。在这些条件下,Tidehunter 始终保持比 RocksDB 更高的吞吐量和更低的延迟,尤其在写入密集和平衡场景中优势明显。
验证者级别的基准测试进一步确认了这一结果。当直接集成到 Sui 并承受持续的交易负载时,使用 Tidehunter 的系统在磁盘利用率开始上升、性能下降之前,保持稳定的吞吐量和较低的延迟。测量显示磁盘压力减轻,CPU 使用更平稳,最终性延迟改善,表明在相似负载下行为明显不同。
Tidehunter 是对长时间运行、高吞吐区块链系统操作需求的实际应对方案。随着区块链向持续而非突发的工作负载转变,存储效率成为协议性能的基础要求。Tidehunter 的设计反映了向专为下一阶段规模构建的基础设施转变的趋势,更多技术细节和部署计划预计随后公布。