3

我一直在阅读标签感知分片。这些是我提到的链接:
http ://www.mongodb.org/display/DOCS/Tag+Aware+Sharding
http://www.kchodorow.com/blog/2012/ 07/25/controlling-collection-distribution/
Kristina 以非常清晰的方式解释了这个概念,有一点是肯定的:这种增强将使 MongoDB 对开发人员更加友好。

但我的问题是..看起来标记/重新标记是为了轻松迁移块..将所有写入都写入首选数据中心等..但这如何适应旧的范围分区系统和 Mongo 的学习方式平衡的关键分布?据说 shard-key 不能更改,这是因为假设数据分布在 shard 之间,更改 shard-key 会干扰这一点。应用标签本质上不是在做同样的事情吗?那么标签感知分片是否意味着处理这个问题?

编辑:
知道索引如何受到如此巨大的迁移的影响吗?

4

1 回答 1

7

阿弗林,

你是对的。在这个阶段,分片标记执行许多与平衡分片键相同的功能。它不做的一件事是执行除标记之外的任何级别的分发。所以说标记架构存在于现有的分片架构之上可能更正确。

您必须记住,标记仅适用于:

a) 标记数据将去哪里,未标记数据将使用 shard-key

b) 在多个标记服务器之间共享的标记数据仍需要分发

您当然可以使用标签感知分片以与平衡器现在相同的方式手动控制数据分布,方法是制作足够细化的标签,以便将数据放在您想要的地方并均匀分布。

但是,用例更像是您链接的文档。您将大量分片分解为较小的子集。在此示例中,您将标记每个对象,然后标记会将其推送到正确的地理位置(以降低延迟检索),一旦进入正确的地理位置,原始分片架构将接管并在标记的分片之间分配。

至于索引,它们受到迁移的严重影响,因为它们需要重新指向。但是对于大量的块迁移来说,负载水平是相同的——比如向集群添加一个新的分片。

于 2012-09-17T00:09:07.890 回答