[SERVER-36443] Long-running queries should not cause a build-up of unused ChunkManager objects Created: 03/Aug/18  Updated: 29/Oct/23  Resolved: 28/May/19

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 3.6.14, 4.1.13, 4.0.11

Type: Bug Priority: Major - P3
Reporter: Matthew Saltz (Inactive) Assignee: Janna Golden
Resolution: Fixed Votes: 3
Labels: neweng
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Duplicate
is duplicated by SERVER-35666 mongod process consumes all memory an... Closed
is duplicated by SERVER-38929 Refresh of RoutingTableHistory causes... Closed
Related
is related to SERVER-42138 Memory used by ChunkManager objects c... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v4.0, v3.6
Sprint: Sharding 2019-05-06, Sharding 2019-05-20, Sharding 2019-06-03
Participants:
Case:

 Description   

In SERVER-35666 we saw that keeping a query open for a long time can lead to memory buildup due to ChunkManager objects not being cleaned up. This is because here, when we go to expire old ChunkManager objects, we iterate through the queue of metadata objects from oldest to newest, and if we find an object with a usageCounter > 0, we stop, so that we don't delete an object used by an ongoing query.

However, this is overly conservative. It's possible that the oldest object in the queue could have one query attached to it (usageCounter = 1), while many newer metadata objects have usageCounter = 0 and thus could be deleted. I believe we could also delete even metadata objects that have orphans on them, if the metadata object is never used by the range deleter.



 Comments   
Comment by Githook User [ 19/Jun/19 ]

Author:

{'name': 'jannaerin', 'email': 'golden.janna@gmail.com', 'username': 'jannaerin'}

Message: SERVER-36443 Clear ChunkManager objects in metadata when no longer in use

(cherry picked from commit da8c0d18e7ba69ef2ce31236d34816f6fbe8cec3)
Branch: v3.6
https://github.com/mongodb/mongo/commit/d5e49e57fc3b298964019ebcbcbdb7d4d90e2f0b

Comment by Githook User [ 29/May/19 ]

Author:

{'name': 'jannaerin', 'email': 'golden.janna@gmail.com', 'username': 'jannaerin'}

Message: SERVER-36443 Clear ChunkManager objects in metadata when no longer in use

(cherry picked from commit da8c0d18e7ba69ef2ce31236d34816f6fbe8cec3)
Branch: v4.0
https://github.com/mongodb/mongo/commit/43bf7df47e6c8f3bd52be21bc7f972410989efc5

Comment by Githook User [ 28/May/19 ]

Author:

{'email': 'golden.janna@gmail.com', 'name': 'jannaerin', 'username': 'jannaerin'}

Message: SERVER-36443 Clear ChunkManager objects in metadata when no longer in use
Branch: master
https://github.com/mongodb/mongo/commit/da8c0d18e7ba69ef2ce31236d34816f6fbe8cec3

Comment by Githook User [ 07/May/19 ]

Author:

{'email': 'golden.janna@gmail.com', 'name': 'jannaerin', 'username': 'jannaerin'}

Message: Revert "SERVER-36443 Clean up ChunkManager objects when usage count reaches 0"

This reverts commit a406d4152133336a2966ebae0612adc58244e7fd.
Branch: master
https://github.com/mongodb/mongo/commit/ec6f8b802592cb88f7b2c312f368acfa47a82643

Comment by Githook User [ 29/Apr/19 ]

Author:

{'email': 'golden.janna@gmail.com', 'name': 'jannaerin', 'username': 'jannaerin'}

Message: SERVER-36443 Clean up ChunkManager objects when usage count reaches 0
Branch: master
https://github.com/mongodb/mongo/commit/a406d4152133336a2966ebae0612adc58244e7fd

Generated at Thu Feb 08 04:43:07 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.