0

我们听说 mongodb 有一个每个节点 42T 的客户端,我想知道更多。我知道 cassandra 有 Bloomfilters 可以跳过点击磁盘来找出一行可能在哪个文件中。

  1. mongodb 有类似布隆过滤器的东西吗?
  2. mongodb 是否使用类似于 SSTables 的东西?
  3. 我确实读过 mongodb 像 cassandra 一样进行压缩,我认为这将是一个非常长的过程,使用 42T 节点????

我想我在这里研究 mongodb 时不知道要搜索哪些术语(在 cassandra 中它们被称为 SSTables)。

谢谢,院长

4

1 回答 1

2

MongoDB 不支持在线压缩。事实上,数据碎片化是具有许多文档更新的系统中的当前问题。为了防止数据碎片,MongoDB 尝试计算一个自动填充因子,以最小化数据移动的数量。

compact 命令阻塞整个数据库,直到完成。此外,MongoDB 不支持字典压缩,因此字段名称会占用存储的每个对象的空间。我猜MongoDB使用的布局不是任何花哨的数据结构。它简单地由标头(偏移量、长度...)、bson 数据和填充因子组成。

由于 MongoDB 不是键/值或列式数据库,因此它不使用 SSTables(用于列式布局的高效数据结构)。为数据库创建的每个文件都被命名为“extent”。

AFAIK,MongoDB 不使用布隆过滤器。

于 2013-02-25T22:41:54.870 回答