2011-08-05 4 views
1

私は、すべてのアーティファクトに対して一意のIDを持つ必要があるAPIを構築しています。ID生成のnosqlストレージ

私たちはGUIDを使うことを考えていましたが、foursquare/facebookのような他のapisを見ると、4d7adc94c7fca1431d6125a2のような別の構造が見えます。

これは、nosqlのキー値ストレージでのID生成のベストプラクティスですか?

+0

私はそれらがデータ全体または何らかの自然キーのいずれかのハッシュを使用していると思われます。 –

答えて

0

ガイドは128ビットであり、生成アルゴリズムはいつでも世界中のどのマシンでも生成されるキーが一意であることを保証します。

たとえば、MongoDBは12バイト= 96ビットのキーを使用します。キーはマシンの単一のクラスタで生成されるため、これは意味があります。したがって、複数のキーを持つ可能性は確実に低くなります。

データがNoSQLデータベースに格納されているか、リレーショナルSQLデータベースに格納されていても、Idsの質問は同じです。インクリメンタルIdsのような集中化されたキージェネレーターはキーサイズをはるかに小さくします。これはパフォーマンスを向上させるために非常に重要なことがあります。一方、このキーサイズのパフォーマンスへの影響はそれほど重要ではなく、ずっと重要です。集中型のキー生成は、分散システムにとっては重要な要素です。

http://www.mongodb.org/display/DOCS/Object+IDs

は、私はベストプラクティスの間でのGUIDとBSONのObjectIdだと思います参照してください。分散システムが主流であるため、集中IDは現時点ではファッションが非常に似ていません。あなたの決定は、Guidジェネレータの可用性にも依存します。