I am testing about insertMany (or Bulkwrite insertOne) in hashed shard environment
My environment is a 5-node cluster
‘shard1/node1:27021,node2:27021,node3:27021’,
‘shard2/node2:27022,node3:27022,node4:27022’,
‘shard3/node3:27023,node4:27023,node5:27023’,
‘shard4/node1:27024,node4:27024,node5:27024’,
‘shard5/node1:27025,node2:27025,node5:27025’,
I am trying to study about difference between range key and hashed key sharding.
##chunksize
use config
db.settings.updateOne({_id:“chunksize” },{$set:{_id:“chunksize”,value:5}},{upsert:true})
##Range key
sh.shardCollection(“test.testloop”,{“key”:1},true)
##Hashed key
sh.shardCollection(“test.testloop”,{_id:“hashed”})
sh.shardCollection(“test.testloop”,{“key”:“hashed”})
And I find that insertMany (or Bulkwrite insertOne) in Hashed-key environment is much more slower than in Range-key environment.
I want to know if it is normal. According to the document,the Hashed-key environment should have good performance in write action.
#insertMany
var loop = []
var feed = (min,max) => {
for (var i=min; i<= max; ++i) {
loop.push({key:i})
}
db.testloop.insertMany(loop)
}
feed(1,100000)
#bulkWrite
var loop = []
var feed = (min,max) => {
for (var i=min; i<= max; ++i) {
loop.push({insertOne:{key:i}})
}
db.testloop.bulkWrite(loop,{ordered:“false”})
}
feed(1,100000)