# Adding a new database gets longer the more databases exist (listDatabase hits again)

**URL:** <https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076>\
**Category:** Percona Operator for MongoDB\
**Created:** [January 24, 2022, 2:14pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076 "2022-01-24T14:14:51Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [January 24, 2022, 2:14pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/1 "2022-01-24T14:14:51Z")

</div>

Depending on the number of existing databases, it turns out that the creation time increases. It turns out listDatabases is called during the creation.

Question : is this call (listDatabase) originated from Percona or is it from MongoDB ?

{  
“t”: {  
“$date”: “2022-01-24T13:46:28.014+00:00”  
},  
“s”: “I”,  
“c”: “COMMAND”,  
“id”: 51803,  
“ctx”: “conn277”,  
“msg”: “Slow query”,  
“attr”: {  
“type”: “command”,  
“ns”: “admin.$cmd”,  
“command”: {  
“listDatabases”: 1,  
“maxTimeMS”: 600000,  
“lsid”: {  
“id”: {  
“$uuid”: “e4858e8d-b4f3-4813-9db0-2b52643e6218”  
},  
“uid”: {  
“$binary”: {  
“base64”: “YGti/c5Tn4R/bgcsJkGhJh0d/qtIaBxXR/b+7uzn4M0=”,  
“subType”: “0”  
}  
}  
},  
“$readPreference”: {  
“mode”: “primaryPreferred”  
},  
“$clusterTime”: {  
“clusterTime”: {  
“$timestamp”: {  
“t”: 1643031982,  
“i”: 1  
}  
},  
“signature”: {  
“hash”: {  
“$binary”: {  
“base64”: “0zndY6QZhQTibmGSshvJT06DYos=”,  
“subType”: “0”  
}  
},  
“keyId”: 7056733904161472534  
}  
},  
“$audit”: {  
“$impersonatedUsers”: [  
{  
“user”: “db\_9307”,  
“db”: “db\_9307”  
}  
],  
“$impersonatedRoles”: [  
{  
“role”: “dbOwner”,  
“db”: “db\_9307”  
}  
]  
},  
“$client”: {  
“driver”: {  
“name”: “mongo-java-driver|legacy”,  
“version”: “3.12.8”  
},  
“os”: {  
“type”: “Windows”,  
“name”: “Windows 10”,  
“architecture”: “amd64”,  
“version”: “10.0”  
},  
“platform”: “Java/Oracle Corporation/1.8.0\_191-b12”,  
“mongos”: {  
“host”: “xxx-mongodb01-cluster-mongos-547975446f-4st85:27017”,  
“client”: “127.0.0.1:41310”,  
“version”: “4.4.10-11”  
}  
},  
“$configServerState”: {  
“opTime”: {  
“ts”: {  
“$timestamp”: {  
“t”: 1643031982,  
“i”: 1  
}  
},  
“t”: 6  
}  
},  
“$db”: “admin”  
},  
“numYields”: 0,  
“reslen”: 595375,  
“locks”: {  
“ParallelBatchWriterMode”: {  
“acquireCount”: {  
“r”: 10300  
}  
},  
“ReplicationStateTransition”: {  
“acquireCount”: {  
“w”: 10300  
}  
},  
“Global”: {  
“acquireCount”: {  
“r”: 10300  
}  
},  
“Database”: {  
“acquireCount”: {  
“r”: 10299  
}  
},  
“Collection”: {  
“acquireCount”: {  
“r”: 51504  
}  
},  
“Mutex”: {  
“acquireCount”: {  
“r”: 10299  
}  
},  
“oplog”: {  
“acquireCount”: {  
“r”: 1  
}  
}  
},  
“storage”: {},  
“protocol”: “op\_msg”,  
“durationMillis”: 5849  
}  
}

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [January 24, 2022, 2:54pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/2 "2022-01-24T14:54:14Z")

</div>

Pls close - it’s MongoDB related

---

<div class="post-metadata">

**Author:** ![Sergey\_Pronin](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/sergey_pronin/32/14887_2.png) [@Sergey\_Pronin](https://forums.percona.com/u/Sergey_Pronin)\
**Post date:** [January 24, 2022, 3:22pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/3 "2022-01-24T15:22:15Z")

</div>

Hello @jamoser! Are you tracking it on MongoDB side somehow?  
Which version of MongoDB is it?

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [January 25, 2022, 8:45am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/4 "2022-01-25T08:45:37Z")

</div>

As I said, you can close the ticket because it’s MongoDB related

---

<div class="post-metadata">

**Author:** ![Sergey\_Pronin](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/sergey_pronin/32/14887_2.png) [@Sergey\_Pronin](https://forums.percona.com/u/Sergey_Pronin)\
**Post date:** [January 25, 2022, 8:48am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/5 "2022-01-25T08:48:26Z")

</div>

@jamoser I understand that it is MongoDB related, but I’m thinking we can fix it in Percona Server for MongoDB itself.

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [January 25, 2022, 2:31pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/6 "2022-01-25T14:31:21Z")

</div>

I’ve already placed a ticket → [https://jira.mongodb.org/browse/SERVER-62909](https://jira.mongodb.org/browse/SERVER-62909)

But seems this issue has already been fixed for 5.2 - but not for the 4.x version

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [January 26, 2022, 2:32am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/7 "2022-01-26T02:32:10Z")

</div>

If it helps to analyse - some code snippets:

Creation of DB - approx xxx ms:

```auto
		    MongoDatabase db = mongoClient.getDatabase(tenantId);
		    BasicDBObject command = new BasicDBObject("createUser", tenantId).append("pwd", myPwd).append("roles",
                    Collections.singletonList(new BasicDBObject("role", "dbOwner").append("db", tenantId)));
		    db.runCommand(command);

```

Add first collection - approx xx’xxx ms when having 50k databases, only here listDatabases() is called (?!), which takes xx’xxx ms:

```auto
		MongoDatabase database = mongoClient.getDatabase(tenantId);
		MongoCollection<Document> collection = database.getCollection("first_coll");
		collection.insertOne(first_coll_doc);

```

Add second collection - approx xx ms, no listDatabases() is called:

```auto
		MongoDatabase database = mongoClient.getDatabase(tenantId);
		MongoCollection<Document> collection = database.getCollection("second_coll");
		collection.insertOne(second_coll_doc);

```

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [February 1, 2022, 5:07pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/8 "2022-02-01T17:07:57Z")

</div>

I have to revoke my request to close the ticket. After all I am not sure if this is related to Percona.

Could you please check if listDatabase is called by “Percona code” ? (Mainly because SHARDING is not part of the original MongoDB code).

 ![image](https://us1.discourse-cdn.com/flex019/uploads/percona1/original/2X/2/235e1ad3da0be7d98f28bd0eff8aeb32d3263d3a.png)

---

<div class="post-metadata">

**Author:** ![Igor\_Solodovnikov](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/igor_solodovnikov/32/1265_2.png) [@Igor\_Solodovnikov](https://forums.percona.com/u/Igor_Solodovnikov)\
**Post date:** [February 3, 2022, 3:14pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/9 "2022-02-03T15:14:43Z")

</div>

> [@jamoser](#):
>
> Could you please check if listDatabase is called by “Percona code” ? (Mainly because SHARDING is not part of the original MongoDB code).

Hello @jamoser  
Percona code does not call listDatabase.  
That SHARDING message with id = 21950 is part of original MongoDB code. Here is v4.4 source: [https://github.com/mongodb/mongo/blob/v4.4/src/mongo/db/s/database\_sharding\_state.cpp#L123-L127](https://github.com/mongodb/mongo/blob/v4.4/src/mongo/db/s/database_sharding_state.cpp#L123-L127)  
But that message was removed in v5.0 so I guess your log snippet is from v4.4 or probably v4.2.

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [February 16, 2022, 7:32am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/10 "2022-02-16T07:32:17Z")

</div>

> > but I’m thinking we can fix it in Percona Server for MongoDB itself.

Ok - the Mongodb guys are a little bit helpless

→ if you guys could pick up this issue, that would be great !

Thanks & Regards  
John

---

<div class="post-metadata">

**Author:** ![Sergey\_Pronin](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/sergey_pronin/32/14887_2.png) [@Sergey\_Pronin](https://forums.percona.com/u/Sergey_Pronin)\
**Post date:** [February 16, 2022, 8:20am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/11 "2022-02-16T08:20:41Z")

</div>

@jamoser do you see the same behavior in 5.0?

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [February 17, 2022, 8:05am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/12 "2022-02-17T08:05:01Z")

</div>

@Sergey_Pronin yes - and according to MongoDB, they say the slow execution of listdatabases() is fixed in version 5.2

---

<div class="post-metadata">

**Author:** ![Igor\_Solodovnikov](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/igor_solodovnikov/32/1265_2.png) [@Igor\_Solodovnikov](https://forums.percona.com/u/Igor_Solodovnikov)\
**Post date:** [February 18, 2022, 11:43am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/13 "2022-02-18T11:43:24Z")

</div>

> [@jamoser](#):
>
> But seems this issue has already been fixed for 5.2 - but not for the 4.x version

Are you talking about [https://jira.mongodb.org/browse/SERVER-57357](https://jira.mongodb.org/browse/SERVER-57357) or something else?

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [February 21, 2022, 12:23pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/14 "2022-02-21T12:23:36Z")

</div>

@Igor_Solodovnikov … well that is what they claim.

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [March 11, 2022, 10:03am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/15 "2022-03-11T10:03:04Z")

</div>

I am little bit stuck here - the mongodb team wants me to send the data from the diagnostic.data folder

bash-4.4$  
bash-4.4$ ls diagnostic.data/  
metrics.2022-02-22T23-51-01Z-00000 metrics.2022-02-26T02-56-01Z-00000 metrics.2022-03-01T06-49-10Z-00000 …

is there something related to Percona ?

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [March 11, 2022, 10:03am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/16 "2022-03-11T10:03:53Z")

</div>

And again could you check on your side, if you call listDatabases() during the creation of the first collection of a newly created database ?

(PS: if someone can show me where to look for in the git repo, I could dig through the code myself)

---

<div class="post-metadata">

**Author:** ![Igor\_Solodovnikov](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/igor_solodovnikov/32/1265_2.png) [@Igor\_Solodovnikov](https://forums.percona.com/u/Igor_Solodovnikov)\
**Post date:** [March 22, 2022, 10:14am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/17 "2022-03-22T10:14:52Z")

</div>

> [@jamoser](#):
>
> And again could you check on your side, if you call listDatabases() during the creation of the first collection of a newly created database ?

Percona code has no additional calls to listDatabases(). So all listDatabases() calls are inherited from upstream.

---

<div class="post-metadata">

**Author:** ![Igor\_Solodovnikov](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/igor_solodovnikov/32/1265_2.png) [@Igor\_Solodovnikov](https://forums.percona.com/u/Igor_Solodovnikov)\
**Post date:** [March 22, 2022, 10:26am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/18 "2022-03-22T10:26:46Z")

</div>

> [@jamoser](#):
>
> is there something related to Percona ?

I think diagnostic.data folder is equivalent in PSMDB and in upstream MongoDB.

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [April 5, 2022, 7:33pm UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/19 "2022-04-05T19:33:44Z")

</div>

I’ve installed [Install MongoDB Community Kubernetes Operator | MongoDB](https://www.mongodb.com/try/download/community-kubernetes-operator) with MongoDB Version 4.4.6 on the same GKE env and the issue is not existent.

So the issue of the topic is related to Percona. Could you pls fix this issue.

---

<div class="post-metadata">

**Author:** ![jamoser](https://avatars.discourse-cdn.com/v4/letter/j/b2d939/32.png) [@jamoser](https://forums.percona.com/u/jamoser)\
**Post date:** [April 6, 2022, 7:55am UTC](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076/20 "2022-04-06T07:55:29Z")

</div>

@Igor_Solodovnikov I think this is wrong and I am happy to prove that to you.

[Next page](https://forums.percona.com/t/adding-a-new-database-gets-longer-the-more-databases-exist-listdatabase-hits-again/14076.md?page=2)
