Mongodb – In MongoDB serverStatus(), what is the meaning of “connection data handles currently active”

mongodbmongodb-3.4wiredtiger

When running db.serverStatus() in the MongoDB shell (3.4, WiredTiger), the results contain the following data:

{
    "connection data handles currently active" : 94862,
    "connection sweep candidate became referenced" : 0,
    "connection sweep dhandles closed" : 91885,
    "connection sweep dhandles removed from hash list" : 648514,
    "connection sweep time-of-death sets" : 1514067,
    "connection sweeps" : 40077,
    "session dhandles swept" : 110175,
    "session sweep attempts" : 710643
}

What is the meaning of "connection data handles currently active"? Does it have an impact on the instance's performance?

Best Answer

Although I can't find any evidence for that in the documentation, it is probably the open file-handles that Mongo holds against the file storage.

I did a test that supports this idea:

  1. Creating new mongodb instance, "connection data handles currently active" minimum value is 11 (sometimes it becomes 12,13 and then back to 11).
  2. db.coll.insert({"foo":"bar"}) - "connection data handles currently active" min value = 13.

I did the same with other operations that cause mongo to create new files on disk, such as index creation, and I have noticed the same behavior. We can conclude that this value, "connection data handles currently active" is related to the number of file-handles that mongo holds.

As for the question if it has an impact on the instance's performance, in some cases it could be true according to the next discussion at Jira: https://jira.mongodb.org/browse/SERVER-27700