private void FillGlobalLockStatistics(BsonDocument statusOutput, IDictionary<string, object> status)
{
if (statusOutput.Contains("globalLock"))
{
BsonDocument globalLockOutput = (BsonDocument)statusOutput["globalLock"];
IDictionary<string, object> globalLock = new Dictionary<string, object>();
status.Add("globalLock", globalLock);
var version = this.GetVersion(statusOutput);
// mongodb over 2.2.0 doesn't have a global lock, so we can't report on it
if (version != null && version[0] >= 2 && version[1] >= 2)
{
globalLock.Add("ratio", 0);
}
else
{
globalLock.Add("ratio", globalLockOutput["ratio"]);
}
BsonDocument currentQueueOutput = (BsonDocument)globalLockOutput["currentQueue"];
IDictionary<string, object> currentQueue = new Dictionary<string, object>();
globalLock.Add("currentQueue", currentQueue);
currentQueue.Add("total", currentQueueOutput["total"]);
currentQueue.Add("readers", currentQueueOutput["readers"]);
currentQueue.Add("writers", currentQueueOutput["writers"]);
}
}