1

我们有一个作业处理系统,其中工作人员将在我们的 mongodb 中并行批量插入数十万个文档。每个worker都会插入数据批次,每个批次都属于同一个group_id。我为我们的数据库设置了 3 个分片,我想以循环方式预先拆分这些 group_id。例如:

group_id: 1 --> shard1

group_id: 2 --> shard2

group_id: 3 --> shard3

group_id: 4 --> shard1

group_id: 5 --> shard2

... ETC

这个想法是增加写入吞吐量,工作人员将逐步处理组,因此通过这种预拆分,理论上 3 个工作人员应该能够并行批量插入而无需相互等待(我们在每个工作人员上都有一个本地 mongos 服务器)。

我已经使用标记分片 sh.addTagRange() 命令实现了上述想法。但是这些块没有正确分割?一切都在主分片中结束,这违背了预先分割数据的整个目的。如果标签感知分片不是实现这种键值循环分配的正确方法,那么有人将如何以这种方式预先拆分数据?我将不胜感激任何帮助!

4

0 回答 0