10个版本

0.7.2 2023年7月4日
0.7.1 2023年7月4日
0.6.1 2023年6月30日
0.5.7 2023年6月30日

#18 in #RESTful

Download history 26/week @ 2024-03-28 14/week @ 2024-04-04

79 每月下载量

SSPL-1.0

96KB
2K SLoC

blobd

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

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

设计

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

历史

该项目以前称为Turbostore,完全用C编写;您仍然可以在此处看到代码。

依赖关系

~9–17MB
~216K SLoC