我在共享集群上有个问题。我正在测试性能,以比较夏尔德和复制集。
我已经将数据直接插入到Shard 1,没有mongos,然后通过聚合查询来查询它,但是我找不到它。我签了解释计划,显示"SHARDING_FILTER“在阶段的主要碎片,但没有在中学时,我检查解释计划。
要控制它的配置是什么?
MongoDB版本: 3.0.12
发布于 2017-03-15 11:52:57
我已经将数据直接插入到Shard 1,没有mongos,然后通过聚合查询来查询它,但是我找不到它。
还不完全清楚性能比较是什么,但是不管您应该始终通过mongos与数据交互,对于一个切分的集群。
mongos的作用包括跟踪分块集群元数据(从配置服务器缓存)、观察数据插入/更新/删除以及路由请求。绕过mongos将导致收集/数据可见性方面的潜在复杂性(正如您所观察到的),因为您正在跳过一些预期的数据管理基础结构以用于您的切分部署。
我签了解释计划,显示"SHARDING_FILTER“在阶段的主要碎片,但没有在中学时,我检查解释计划。
辅助读取最终是一致的,因此给定辅助数据的状态可能不一定与当前已分片的集群元数据匹配。对于许多碎片来说,这变得更加困难:使用二级读首选项,结果可能会从具有显着差异的复制滞后的次要代码中组合。
为了对分片集群进行一致的查询,您应该始终通过mongos使用主读(这是默认行为)。通过mongos对主程序的查询可能包括一个SHARDING_FILTER阶段,它过滤不属于当前碎片的结果文档(例如,由于正在进行的迁移,其中文档需要在捐助方和目标碎片上临时存在)。
在MongoDB 3.4中,次级程序无法过滤结果,因为它们需要维护集群元数据的单独视图,该视图与它们最终一致的状态相匹配。有一个相关的Jira问题需要关注/投票:服务器-5931-切分集群中的二级读取需要更强的一致性。。目前,如果不仔细考虑最终一致性对用例的影响,我将不建议在切分群集(或一般情况下)进行二次读取。关于一般情况,请阅读我可以使用更多的复制节点进行缩放吗?。
要控制它的配置是什么?
使用默认的阅读偏好 (primary读取),并始终通过mongos与您的切分部署交互。
https://stackoverflow.com/questions/42387742
复制相似问题