当您在分片环境中使用 RavenDB 时,文档 ID 将包括分片 ID,例如europe/companies/21
. 它也记录在 RavenDB 网站上:
ModifyDocumentId:允许您将文档的分片 ID 存储在文档本身中。默认实现是:(convention, shardId, documentId) => shardId + convention.IdentityPartsSeparator + documentId
通过这样做,我猜 RavenDB 正在研究智能查询技术,并且可以专门针对正确的分片,这非常棒。但是,我有几个问题无法回答:
如果我需要将文档移动到新的分片怎么办?这将更改密钥并破坏已使用该密钥的 URL,如此处所要求的。
我可能只从一台服务器开始,然后我可能决定实施分片。因此,在这种情况下,键将更改 (?) 或智能查询将不起作用 (?)。
关于这些问题的一般建议是什么?如何解决这些问题?