2013-03-09 204 views
5

我无法找到有关mongodb用于收集或分片键的算法的文档。mongodb分片键哈希算法

任何人都可以帮助或发布参考?

+3

您可以下载源代码并阅读它。 – bmargulies 2013-03-09 21:02:13

+0

你能澄清你在找什么吗?你是否想了解哈希分片是如何工作的,或者说分片集合是如何工作的?你的标题是指“散列”,它是一种特定的分片类型,而你的问题描述是指分片集合如何工作。 – 2013-08-10 21:34:46

+0

这应该让你开始,http://docs.mongodb.org/manual/core/sharding-shard-key/既然MangoDB 2.4你可以使用内置的散列键,但如果你想更多地控制分片键可以构建你自己的 – 2013-08-21 10:44:26

回答

2

如果您更感兴趣的是如何在一般工作索引检查这个介绍有关内部:http://www.mongodb.com/presentations/storage-engine-internals或这一个http://www.mongodb.com/presentations/mongodbs-storage-engine-bit-bit

由于个体碎片对集群的整体结构知之甚少,因此它内部使用相同的索引算法,只是有一个元数据层知道哪个数据分区与特定分片相关。

有一些特殊的情况下,在该文档中描述了:​​ 所以未覆盖这种方式在上面的介绍是地理空间索引和特殊其一是散列索引(DOCS)。这其中,也可以作为片键和称为哈希索引,在这种情况下,分片是基于散列sharding.check THISTHIS

关于它用于这个散列算法是:在该文件中使用MD5: https://github.com/mongodb/mongo/blob/master/src/mongo/db/hasher.cpp

实现此处 https://github.com/mongodb/mongo/blob/master/src/mongo/util/md5.cpp

目前仅适用于个别领域如片键至少这可以从https://github.com/mongodb/mongo/blob/master/src/mongo/db/index/hash_access_method.cpp源文件中的注释被读出。