db.config.locks集合中的状态1是什么意思

时间:2013-05-23 07:35:24

标签: mongodb

在我的config.locks集合中,在没有完全迁移到2.4版本后,我有这样的文档:

{
"_id" : "configUpgrade",
"process" : "mongo10:27017:1369289803:1804289383",
"state" : 1,
"ts" : ObjectId("519db44b8436a4e1aa17b0a5"),
"when" : ISODate("2013-05-23T06:16:43.075Z"),
"who" : "mongo10:27017:1369289803:1804289383:mongosMain:846930886",
"why" : "upgrading config database to new format v4"
}

状态1是什么意思?我知道'state'的有效值是0,1和2.它们各自的含义是什么?

2 个答案:

答案 0 :(得分:1)

http://docs.mongodb.org/manual/reference/config-database/#config.locks州:

  

如果mongos持有平衡器锁,则state字段的值为2,这意味着平衡器处于活动状态。 when字段指示平衡器何时开始当前操作。

只有通过源(https://github.com/mongodb/mongo/blob/master/src/mongo/s/type_locks.h#L231)我才能找出状态1的含义:

  

int _state; //(M)0:解锁| 1:锁定争用| 2:锁定

据我所知,这用于升级2.2版和2.4版MongoDB之间的锁。

答案 1 :(得分:1)

状态字段中的值表示mongos具有锁定。对于2.0版及更高版本,活动锁的值为2;对于早期版本,值为1。 src:http://docs.mongodb.org/manual/tutorial/manage-sharded-cluster-balancer/