Database MongoDB区域分片限制-标记范围
Mongo DB支持分区分片(),方法是将每个分片与zoneDatabase MongoDB区域分片限制-标记范围,database,mongodb,sharding,Database,Mongodb,Sharding,Mongo DB支持分区分片(),方法是将每个分片与zonesh.addShardTag(,“ZONENAME”)关联,并基于分片键值应用分区块范围与sh.addTagRange() 问题是: sh.addTagRange()是否有任何限制 这样的范围太多会影响性能吗 例如60000个标签范围可以吗?或者设计成几十个 在文档和社区论坛中找不到答案 要提供有关用例的更多上下文,请执行以下操作: e、 g.系统中有10000个帐户。存在分片库存集合。每个项目都与inventoryClass(80K类
sh.addShardTag(,“ZONENAME”)
关联,并基于分片键值应用分区块范围与sh.addTagRange()
问题是:
sh.addTagRange()
是否有任何限制库存
集合。每个项目都与inventoryClass
(80K类型)关联。每个账户按不同类型创建大量库存项目(SKU)。分片簇中有3个区域。分片键是:{accountId:1,inventoryClass:1}
。
目标:为特定的帐户列表分配区域(手动为帐户定义主区域)。例如,账户
[1, 294, 906847 ...] -> zone "A",
[7879079, 852 ...] -> zone "B",
[3457, 45...] -> zone "C"
库存项目文档本身不包含区域映射的显式值(仅隐式关系accountId
->区域映射)。这意味着每个acontid
数据必须通过添加带有sh.addShardTag()
的相应标记范围与区域相关联,例如
sh.addTagRange(
"inventory",
{ "accountId" : 1, "inventoryClass" : MinKey },
{ "accountId" : 1, "inventoryClass" : MaxKey },
"A")
....
sh.addTagRange(
"inventory",
{ "accountId" : 294, "inventoryClass" : MinKey },
{ "accountId" : 294, "inventoryClass" : MaxKey },
"A")
因此,每1个帐户有1个标记范围。它的结果是tag ranges==accounts count@n.prokhorov您检查了吗