Данные поступают только в один набор реплик - PullRequest
0 голосов
/ 14 апреля 2020

У меня установлено три реплики, и я пытаюсь выполнить сегментирование.

Даже если я добавляю 500000 документов в коллекцию, данные попадают внутрь только одного фрагмента? , Это первый раз, когда я пытаюсь создать осколок.

Я также опубликовал вывод getShardDistribution для коллекции abcd и mybooks

abcd collection находится в базе данных shardingFinalDemo, а mybooks находится внутри книги.

И для каждой коллекции создается один кусок целого набора данных

Это вывод sh .status ()

  sharding version: {
    "_id" : 1,
    "minCompatibleVersion" : 5,
    "currentVersion" : 6,
    "clusterId" : ObjectId("5e95cb79e8628e83e972957b")
  }
  shards:
        {  "_id" : "first shard",  "host" : "first shard/localhost:27011,localhost:27012,localhost:27013",  "state" : 1 }
        {  "_id" : "second shard",  "host" : "second shard/localhost:27021,localhost:27022,localhost:27023",  "state" : 1 }
        {  "_id" : "sharding 3 ",  "host" : "sharding 3 /localhost:27031,localhost:27032,localhost:27033",  "state" : 1 }
  active mongoses:
        "4.2.2" : 1
  autosplit:
        Currently enabled: yes
  balancer:
        Currently enabled:  yes
        Currently running:  no
        Failed balancer rounds in last 5 attempts:  0
        Migration Results for the last 24 hours: 
                No recent migrations
  databases:
        {  "_id" : "books",  "primary" : "second shard",  "partitioned" : true,  "version" : {  "uuid" : UUID("97774c76-23f3-4455-af44-6b1f15f849c9"),  "lastMod" : 1 } }
                books.myBooks
                        shard key: { "_id" : 1 }
                        unique: true
                        balancing: true
                        chunks:
                                second shard    1
                        { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : second shard Timestamp(1, 0) 
        {  "_id" : "config",  "primary" : "config",  "partitioned" : true }
                config.system.sessions
                        shard key: { "_id" : 1 }
                        unique: false
                        balancing: true
                        chunks:
                                first shard 1
                        { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : first shard Timestamp(1, 0) 
        {  "_id" : "demoDb",  "primary" : "sharding 3 ",  "partitioned" : true,  "version" : {  "uuid" : UUID("41903e6a-fcff-4ad6-8618-70b0fd5b3c07"),  "lastMod" : 1 } }
                demoDb.demoShard
                        shard key: { "_id" : 1 }
                        unique: true
                        balancing: true
                        chunks:
                                sharding 3  1
                        { "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : sharding 3  Timestamp(1, 0) 
        {  "_id" : "demoShard",  "primary" : "first shard",  "partitioned" : true,  "version" : {  "uuid" : UUID("49913dce-d505-42cd-9009-a67f6f002b82"),  "lastMod" : 1 } }
        {  "_id" : "shardingFinalDemo",  "primary" : "first shard",  "partitioned" : true,  "version" : {  "uuid" : UUID("61324d20-5e3b-437d-ae52-542d479fd244"),  "lastMod" : 1 } }
                shardingFinalDemo.abcd
                        shard key: { "name" : 1 }
                        unique: true
                        balancing: true
                        chunks:
                                first shard 1
                        { "name" : { "$minKey" : 1 } } -->> { "name" : { "$maxKey" : 1 } } on : first shard Timestamp(1, 0) 
db.abcd.getShardDistribution()

Shard first shard at first shard/localhost:27011,localhost:27012,localhost:27013
 data : 249KiB docs : 5000 chunks : 1
 estimated data per chunk : 249KiB
 estimated docs per chunk : 5000

Totals
 data : 249KiB docs : 5000 chunks : 1
 Shard first shard contains 100% data, 100% docs in cluster, avg obj size on shard : 51B
db.myBooks.getShardDistribution()

Shard second shard at second shard/localhost:27021,localhost:27022,localhost:27023
 data : 25.16MiB docs : 455009 chunks : 1
 estimated data per chunk : 25.16MiB
 estimated docs per chunk : 455009

Totals
 data : 25.16MiB docs : 455009 chunks : 1
 Shard second shard contains 100% data, 100% docs in cluster, avg obj size on shard : 58B

1 Ответ

0 голосов
/ 14 апреля 2020

Вы, кажется, выбрали _id в качестве ключа шарда. Обычно это помещает последовательные документы в один и тот же осколок, который вы, похоже, испытываете. См. здесь для объяснения.

Попробуйте:

  • Использование хешированного ключа шарда в поле _id
  • Использование другого поля в качестве ключ шарда
...