2

シャード環境で RavenDB を使用している場合、ドキュメント ID にはeurope/companies/21. RavenDB サイトにも記載されています。

ModifyDocumentId : ドキュメントのシャード ID をドキュメント自体に保存できます。デフォルトの実装は次のとおりです: (convention, shardId, documentId) => shardId + Convention.IdentityPartsSeparator + documentId

そうすることで、RavenDB はスマートなクエリ手法を理解し、適切なシャードを明確にターゲットにできるようになると思います。これは素晴らしいことです。ただし、お答えできない質問がいくつかあります。

  • ドキュメントを新しいシャードに移動する必要がある場合はどうですか? これにより、キーが変更され、ここで質問されているキーを使用した URL が壊れます。

  • 1 台のサーバーから始めて、後でシャーディングを実装することを決定する場合があります。したがって、その場合、キーが変更されるか (?)、スマート クエリが機能しなくなります (?)。

これらの懸念に対する一般的なアドバイスは何ですか?また、これらの問題はどのように解決されますか?

4

1 に答える 1

1

シャード間でドキュメントを移動する場合は、それを認識できるようにシャーディング関数を変更する必要があります。ドキュメントが複数のシャードに存在する可能性がある場合、RavenDB は問題ありません。複数のシャードに同時に存在しないことを確認する必要があります。

1 つのサーバーだけから開始する場合は、同じサーバー上の異なるデータベースでシャーディングを行うことをお勧めします。

于 2013-06-24T06:17:07.447 に答える