2

当您在分片环境中使用 RavenDB 时,文档 ID 将包括分片 ID,例如europe/companies/21. 它也记录在 RavenDB 网站上

ModifyDocumentId:允许您将文档的分片 ID 存储在文档本身中。默认实现是:(convention, shardId, documentId) => shardId + convention.IdentityPartsSeparator + documentId

通过这样做,我猜 RavenDB 正在研究智能查询技术,并且可以专门针对正确的分片,这非常棒。但是,我有几个问题无法回答:

  • 如果我需要将文档移动到新的分片怎么办?这将更改密钥并破坏已使用该密钥的 URL,如此处所要求

  • 我可能只从一台服务器开始,然后我可能决定实施分片。因此,在这种情况下,键将更改 (?) 或智能查询将不起作用 (?)。

关于这些问题的一般建议是什么?如何解决这些问题?

4

1 回答 1

1

如果您在分片之间移动文档,则需要修改分片功能以了解它。如果一个文档可能驻留在多个分片上,RavenDB 是可以的,您只需要确保它不会同时位于多个分片上。

如果您只从一台服务器开始,我建议仍然在同一台服务器上的不同数据库上进行分片。

于 2013-06-24T06:17:07.447 回答