当您在分片环境中使用RavenDB时,文档ID将包含分片ID,例如europe/companies/21
。它还记录了on the RavenDB site:
ModifyDocumentId :允许您存储文档中的分片ID 记录本身。默认实现是:(约定,shardId, documentId)=> shardId + convention.IdentityPartsSeparator + documentId
通过这样做,我猜RavenDB正在寻找智能查询技术,并且可以专门针对正确的分片,这很棒。但是,我有几个问题我无法回答:
如果我需要将文档移动到新的碎片怎么样?这会更改使用密钥的密钥和中断网址here。
我可能只从一台服务器开始,然后我可能决定实施分片。因此,在这种情况下,密钥将更改(?)或智能查询将不起作用(?)。
关于这些问题的一般建议是什么?这些问题是如何解决的?
答案 0 :(得分:1)
如果在分片之间移动文档,则需要修改分片功能以便了解它。如果文档可能驻留在多个分片上,RavenDB就可以了,您只需要确保它不会同时存在于多个分片上。
如果你只从一台服务器开始,我建议你在同一台服务器上的不同dbs上进行分片。