Chorus: A fast WAL for object storage
4 days ago
- #Object Storage
- #Low-Latency Writes
- #Write-Ahead Log
- 在对象存储上构建数据存储系统很流行,但通常会增加写入延迟;Rapid Storage Buckets提供可追加对象且延迟低(P99提交延迟为2毫秒),但它们是区域性的。
- Chorus是Rapid Storage Buckets上的单写入者预写日志,它使用区域元数据注册器进行CAS操作,并在区域间复制追加操作,实现了快速写入并具备区域故障容错能力(P99比Hyperdisk HA的P50更快)。
- Chorus具有形式化建模(使用P语言)、高性能Rust客户端、确定性模拟测试以及开源代码的特点;其协议管理元数据(如纪元、所有者、段)以确保一致性,并能在无需LIST API的情况下安全恢复崩溃。
- 该系统支持段轮换和前缀截断,通过待处理段和活跃段来避免轮换期间的延迟尖峰;恢复机制通过复制一致对象来处理不一致情况。
- Chorus旨在GCP上实现强大、定制化的数据存储系统,可能与SlateDB结合使用,反映了由于底层原语改进而趋向专用存储系统的趋势。