2013-03-09 11 views
5

mongodbがコレクションキーまたはシャードキーに使用しているアルゴリズムに関するドキュメントが見つかりません。mongodb shard keyハッシュアルゴリズム

誰でもこれを参考にすることも、参照を投稿することもできますか?

+3

ソースをダウンロードして読むことができます。 – bmargulies

+0

あなたが探しているものを明確にすることはできますか?ハッシュシャーディングがどのように機能するか、またはシャーディングコレクションが一般的にどのように機能するかを理解しようとしていますか?あなたのタイトルはシャーディングの特定のタイプである「ハッシュ」を指し、質問の説明はシャーディングコレクションの一般的な動作を指します。 –

+0

MangoDB 2.4以降では、組み込みのハッシュキーを使用することができますので、http://docs.mongodb.org/manual/core/sharding-shard-key/を起動してください。シャーディングキーをより詳細に制御したい場合は、あなた自身のものを作ることができます –

答えて

2

あなたはどのように、より興味を持っている場合一般的な作品の索引付け内部についてのこのプレゼンテーションを確認してください:http://www.mongodb.com/presentations/storage-engine-internalsまたはこの1つhttp://www.mongodb.com/presentations/mongodbs-storage-engine-bit-bit

個々の断片はクラスタ全体の構造全体をあまり知らないので、内部的には同じ索引付けアルゴリズムを使用するだけで、特定の断片に関連するデータ部分を知るメタデータ層が存在します。

あり、このドキュメントで説明されているいくつかの特別な場合、されています​​ したがって、上記のプレゼンテーションで、このようにカバーされていない地理空間インデックスとハッシュ化されたインデックス(DOCS)で特別なものです。この1はまた、シャードキーとして使用し、ハッシュ化されたインデックスと呼ばれ、この場合にはシャーディングは、ハッシュベースのsharding.check THIS及びこれに使用されるハッシュアルゴリズムについてTHIS

であることができている:このファイルで使用される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ソースファイル内のコメントから読み出すことができシャードキーとしてのみ個々のフィールドのために動作します。