0

使用“movechunk”命令(以及因此当平衡器运行时),读取和锁定是否发生在副本集的主要或次要成员上?

我们的应用程序当前没有从辅助节点读取,所以如果 shard balancer / movechunk 命令从次要成员读取并且只锁定辅助成员而不影响主要成员的性能会很好。

4

1 回答 1

2

分片平衡器必须在迁移期间读取分片的主要成员并对其执行写入。这对于跨分片保持一致的数据状态是必要的。但是,在迁移期间读写期间发生的锁定与对系统的正常读写期间发生的锁定没有什么不同。因此,这些不应该对性能产生重大影响。

如果您确实发现迁移导致性能明显下降,这可能表明您的集群存在其他问题。例如,如果您选择了一个不太理想的分片键,这可能会导致非常频繁的迁移,这会对您的系统造成负担。或者,如果您的系统已经在接近容量的非常重的负载下运行,则迁移可能只是增加了足够的额外工作,从而显着降低了性能。

于 2013-09-19T18:01:20.247 回答