14 个不稳定版本 (3 个破坏性更新)

0.5.4 2023年6月30日
0.5.3 2023年6月30日
0.4.2 2023年6月26日
0.3.5 2023年6月26日
0.2.0 2023年6月23日

#407 in 并发

Download history 4/week @ 2024-03-10 56/week @ 2024-03-31

每月 88 次下载

SSPL-1.0

110KB
3K SLoC

blobd

极快且并行的对象存储,以原始设备速度运行。设计用于在万亿对象(小型或大型)上执行数百万并发随机部分读取,且延迟恒定。

  • 所有优点:无共享架构、io_uring、异步Rust I/O、无页面缓存、直接I/O。
  • 保证持久性:可以安全地在任何时间崩溃,成功结果表示数据已100%持久化。
  • 创建分区以在块设备或文件之间进行本地分片,实现极高的创建和删除吞吐量。
  • 作为嵌入式库、RPC服务器或HTTP RESTful服务器提供,支持CORS、范围请求、预签名URL和HTTP/2。
  • 异步复制和事件流。

设计

  • 设备上可配置的固定大小哈希映射,堆上对象链表。整个设备映射到内存。
  • 针对读取优化,然后是创建,然后是删除。无法列出对象。
  • 创建一个对象,然后并发写入其数据的16 MiB部分,然后提交。
  • 对象提交后不可变。版本控制目前不可用。提交时,对象替换所有具有相同键的其他对象(不是创建时)。
  • 仅存储对象的尺寸。不收集其他元数据,也无法设置自定义元数据。
  • 设备必须小于256 TiB。对象限制为1 TiB。存储的对象峰值最优数量约为140万亿。
  • 未提交的对象在7天后可以删除。删除对象后,占用的空间可能不会立即释放。

历史

该项目曾经被称为Turbostore,完全用C编写;您还可以在这里看到代码here

依赖项

~11–18MB
~253K SLoC