1

这是一个简单的问题,显然有很多答案。

调查结果的范围包括:

一种。根据 Basho 的文档,22 个字节:http: //docs.basho.com/riak/latest/references/appendices/Bitcask-Capacity-Planning/

湾。450~ 字节在这里: http: //lists.basho.com/pipermail/riak-users_lists.basho.com/2011-August/005178.html http://lists.basho.com/pipermail/riak-users_lists.basho .com/2011-May/004292.html

C。轶事记录表明开销在 45 到 200 字节范围内。

为什么没有直接的答案?我知道这是一个错综复杂的问题 - 上面的邮件列表条目之一说明了这一点!- 但即使想出一个一致的球场这么困难?为什么 Basho 的文档没有明确说明这一点?


我还有另一组问题与我如何根据关键开销构建逻辑(存储大量小值而不是在更大的结构中“收集”它们)有关,但我想这是另一个问题。

4

2 回答 2

1

我们的容量规划器将静态开销表示为 22 字节,因为这是 C 结构的大小。如该页所述,容量规划器只是提供了一个粗略的大小估计。

您链接到的 Nico 邮件列表上的旧帖子可能是您能找到的关于 bitcask 内部的最佳完整说明,并且是准确的。在 8 字节中计算指向条目的指针和存储桶/密钥对上 13 字节的 erlang 开销,您在 64 位系统上得到 43 字节。

至于没有直接的答案……实际上询问我们(通过电子邮件、邮件列表、IRC、信鸽等)总是会得到一个实际的答案。

于 2013-03-05T14:57:06.647 回答
0

Bitcask 要求所有密钥都保存在内存中。据我所知,a) 中引用的开销是在估计由于此要求而在整个集群中需要的 RAM bitcask 总量时使用的开销。

将数据写入磁盘时,Riak 将实际值与各种元数据(例如矢量时钟)一起存储。b) 中提到的 450 字节的帖子似乎是对磁盘存储开销的估计,因此可能也适用于其他后端。

Nico 的帖子似乎包含了一个很好且准确的解释。

于 2013-03-05T16:24:34.050 回答