Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database MongoDB区域分片限制-标记范围_Database_Mongodb_Sharding - Fatal编程技术网

Database MongoDB区域分片限制-标记范围

Database MongoDB区域分片限制-标记范围,database,mongodb,sharding,Database,Mongodb,Sharding,Mongo DB支持分区分片(),方法是将每个分片与zonesh.addShardTag(,“ZONENAME”)关联,并基于分片键值应用分区块范围与sh.addTagRange() 问题是: sh.addTagRange()是否有任何限制 这样的范围太多会影响性能吗 例如60000个标签范围可以吗?或者设计成几十个 在文档和社区论坛中找不到答案 要提供有关用例的更多上下文,请执行以下操作: e、 g.系统中有10000个帐户。存在分片库存集合。每个项目都与inventoryClass(80K类

Mongo DB支持分区分片(),方法是将每个分片与zone
sh.addShardTag(,“ZONENAME”)
关联,并基于分片键值应用分区块范围与
sh.addTagRange()

问题是:

  • sh.addTagRange()
    是否有任何限制
  • 这样的范围太多会影响性能吗
  • 例如60000个标签范围可以吗?或者设计成几十个

    在文档和社区论坛中找不到答案

  • 要提供有关用例的更多上下文,请执行以下操作:

    e、 g.系统中有10000个帐户。存在分片
    库存
    集合。每个项目都与
    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您检查了吗