7个版本 (重大变更)
0.5.0 | 2023年4月7日 |
---|---|
0.4.0 | 2023年4月7日 |
0.3.1 | 2023年4月7日 |
0.2.0 | 2023年4月6日 |
0.0.1 | 2023年3月28日 |
#3 in #blobd
每月89次下载
用于blobc
18KB
402 行
blobd
极快且并行的对象存储,以原始设备速度运行。设计用于数百万并发随机部分读取,处理万亿对象(小或大)且延迟恒定。
- 所有优点:无共享架构、io_uring、异步Rust I/O、无页面缓存、直接I/O。
- 保证持久性:任何时候崩溃都是安全的,成功结果表示数据已100%持久化。
- 创建分区以在或跨块设备或文件中进行本地分片,以实现极高的创建和删除吞吐量。
- 作为嵌入式库、RPC服务器或带有CORS、范围请求、预签名URL和HTTP/2的HTTP RESTful服务器提供。
- 异步复制和事件流。
设计
- 设备上可配置的固定大小哈希表,堆上有对象的链表。整个设备映射到内存。
- 优化读取,然后创建,然后删除。无法列出对象。
- 创建一个对象,然后并发地以16 MiB的部分写入其数据,然后提交。
- 对象提交后不可变。版本控制目前不可用。提交时,对象替换所有具有相同键的其他对象(不是创建时)。
- 只存储对象的尺寸。不收集其他元数据,也无法设置自定义元数据。
- 设备必须小于256 TiB。对象限制为1 TiB。存储的对象峰值最优数量约为140万亿。
- 未提交的对象在7天后可以删除。删除对象后,对象占用的空间可能不会立即释放。
历史
该项目曾经被称为Turbostore,完全用C编写;您仍然可以在这里看到代码。
依赖
~5–20MB
~271K SLoC