构建 blobd:单机对象存储,具有亚毫秒级读取和每秒15 GB的上传速度

Nov 04, 2025     Author:charlieirish     HN Points:53     HN Comments:7
Share this

摘要: 本文介绍了作者针对现有对象存储平台性能瓶颈,从零开始构建了一个名为 blobd 的新对象存储系统。blobd 优化了低延迟随机读取和小对象存储,并采用了以下设计理念:利用 io_uring、异步 Rust 和原子写入等技术;避免使用树形数据结构以实现常数时间查找;使用裸金属硬件和直接 I/O 以提高性能;简化系统设计以易于设置、操作和理解。blobd 的设计优先考虑读取性能,并采用 Buddy 内存分配算法和 io_uring 进行异步 I/O。通过基准测试,blobd 在随机读取和写入方面表现出色,并具有较低的延迟和较低的磁盘写放大。

讨论: 上述内容主要讨论了关于S3服务的一些技术细节和性能问题。其中,tuhgdetzhh提到当服务对S3延迟要求极高时,边缘缓存可以处理所有小图像,从而减少延迟。rockwotj讨论了直接I/O的优缺点,指出尽管直接I/O提供了高性能和控制,但为了保证数据持久性,仍需要在某些情况下使用fsync。amluto提出了将系统存储在原始块设备上的工作量与文件系统(如XFS、ZFS和btrfs)进行比较的愿望。bob1029对S3的性能进行了辩护,认为200ms的响应时间在考虑了S3的其他特性后是合理的。Scaevolus提到了Facebook的Haystack和SeaweedFS作为类似系统的例子。grenran强调了S3的耐久性是其卖点之一,这也是其速度较慢的原因之一。stackskipton指出了某个项目缺乏S3协议兼容性和数据安全性问题,因此不适合大多数人使用。

原文标题:Building blobd: single-machine object store with sub-ms reads and 15 GB/s upload
原文链接:https://blog.wilsonl.in/blobd/
讨论链接:https://news.ycombinator.com/item?id=45809644