[SERVER-16413] Storage engines that allow online compaction should not take an exclusive lock Created: 03/Dec/14  Updated: 30/Aug/22  Resolved: 22/Jun/19

Status: Closed
Project: Core Server
Component/s: Storage, WiredTiger
Affects Version/s: None
Fix Version/s: 4.3.1

Type: Improvement Priority: Major - P3
Reporter: Daniel Pasette (Inactive) Assignee: Gregory Wlodarek
Resolution: Done Votes: 5
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Documented
is documented by DOCS-12913 Investigate changes in SERVER-16413: ... Closed
Duplicate
is duplicated by SERVER-19062 "compact" improvement for WiredTiger Closed
is duplicated by SERVER-17255 Don't lock MODE_X for compact() opera... Closed
Related
related to SERVER-41884 Create the OldClientContext before ch... Closed
related to SERVER-68694 The compact command should not block ... Closed
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2019-06-17, Execution Team 2019-07-01
Participants:
Linked BF Score: 0

 Description   

WiredTiger allows online compaction, but the storage engine API doesn't allow using a shared lock on the collection.



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

Author:

{'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}

Message: SERVER-16413 Storage engines that allow online compaction should not take an exclusive lock
Branch: master
https://github.com/mongodb/mongo/commit/d4b054976ab484cce590feee49f284c540ce8bc3

Comment by deyukong [ 14/Aug/17 ]

There is a reason strong enough now since mongo-v3.5.10
the replResizeOplog command is to sizing oplogs online, however, if we use this command to shrink oplog size smalller, wiredtiger won't purge automaticlly.
A manual compact to local.oplog.rs is needed but it will block
It is nice to support this feature and people can change oplog size without blocking reads/writes.

Comment by Michael Cahill (Inactive) [ 25/Jun/15 ]

martin.bligh can we discuss this ticket in the 3.1.6 cycle? I think the basic code change is pretty straightforward.

andrew.ryder@10gen.com points out in SERVER-19062 that there are user-visible impacts for replication (i.e., if this change is completely transparent, it may not be obvious to an admin whether a compact command will take down a secondary in a mixed replicaset).

Generated at Thu Feb 08 03:40:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.