【问题标题】:What is the Riak per-key overhead using the Bitcask backend?使用 Bitcask 后端的每个密钥的 Riak 开销是多少?
【发布时间】:2013-02-19 12:55:54
【问题描述】:

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

发现的范围很广:

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

b. 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 的文档没有明确说明这一点?


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

【问题讨论】:

    标签: nosql riak overhead


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,但是加起来大约 450 字节的其他计算呢?或者这只会发生在特定的用例中。
    • 我不知道那会是什么。同样,Nico 的帖子是准确的会计。
    • 好的,谢谢。 RAM 中 43 的开销对于我想要追求的模型来说已经足够有意义了。 P.S:我的咆哮是由于在阅读了看似相互矛盾的帖子后不得不从根本上改变我对模型的看法而感到沮丧,这些帖子之间有几个小时的离线工作和谷歌搜索。感谢我迄今为止在邮件列表中看到的数据,以及 Basho 在网络上通常提供的帮助。再次感谢。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-22
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2013-01-18
      相关资源
      最近更新 更多