Details
-
Task
-
Resolution: Done
-
Major - P3
-
7.0.0-rc0
-
None
-
2
Description
Original Downstream Change Summary
It is now possible to run compact on a system collection.
Interestingly, it appears that the docs for the compact command already incorrectly state this is possible, dating back as far as at least 4.2 ("For system collections...."): https://www.mongodb.com/docs/v4.2/reference/command/compact/#compact-required-privileges
Description of Linked Ticket
System collections can't be compacted:
// Items in system.* cannot be moved as there might be pointers to them.
|
uassert(ErrorCodes::InvalidNamespace, "can't compact a system namespace", !nss.isSystem()); |
This restriction was added in SERVER-11595 and is likely an MMAP limitation. With WiredTiger being the default storage engine, this is no longer necessary as WiredTiger supports online compaction.
Attachments
Issue Links
- documents
-
SERVER-71678 Allow compact to run on system collections
-
- Closed
-