[SERVER-29274] Two Phase Drops: rename collection to special drop-pending name Created: 18/May/17  Updated: 30/Oct/23  Resolved: 01/Jun/17

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: 3.5.8

Type: Task Priority: Major - P3
Reporter: Benety Goh Assignee: Benety Goh
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-29273 Two Phase Drops: add list of drop-pen... Closed
depends on SERVER-29357 Two-Phase Drops: Document validators ... Closed
is depended on by SERVER-29275 Two Phase Drops: implement collection... Closed
is depended on by SERVER-29280 Two Phase Drops: all drop-pending col... Closed
is depended on by SERVER-29459 Two Phase Drops: add option to listCo... Closed
Related
related to SERVER-29649 Add startupWarning when a replset nod... Closed
related to SERVER-29373 Two Phase Drops: Relax index namespac... Closed
related to SERVER-29374 Remove massert check on numIndexesInP... Closed
is related to SERVER-20438 Oplog performance on primary: efficie... Closed
is related to SERVER-25860 Flatten / optimize fixup_info Closed
Backwards Compatibility: Fully Compatible
Sprint: Repl 2017-05-29, Repl 2017-06-19
Participants:
Linked BF Score: 0

 Description   

When processing a drop collection command in a replicated setting, the collection will no longer be removed immediately from the storage system. Instead, the collection will be renamed to a special system.drop.* name. The collection will no longer be visible to users and will eventually be removed when the commit point of the replica set advances past the optime of the drop collection oplog entry.



 Comments   
Comment by Githook User [ 01/Jun/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 make reaper mandatory in Database::dropCollection()
Branch: master
https://github.com/mongodb/mongo/commit/12ac469b6d79dc2169fd45ab2befff62295b87c8

Comment by Githook User [ 31/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 applyCommand_inlock() passes optime from oplog entry to mongo::dropCollection()
Branch: master
https://github.com/mongodb/mongo/commit/87b89ce456856efa68e7619899387c2dd95c2779

Comment by Githook User [ 31/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 Database::dropCollection() renames collection using provided drop optime if provided
Branch: master
https://github.com/mongodb/mongo/commit/28f3a2d87a6868a50bcc6fe03946cee8a0c3496d

Comment by Githook User [ 30/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 added optime to OpApplyFn for applyCommand_inlock()
Branch: master
https://github.com/mongodb/mongo/commit/a24c0780aed84a78dfa1634ae7d81f8b20bc0d68

Comment by Githook User [ 30/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 add optional dropOpTime argument to mongo::dropCollection()
Branch: master
https://github.com/mongodb/mongo/commit/7c844dbf57eb7bd9a2553ecf7533d1dd9a58e5a9

Comment by Githook User [ 30/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 add optional dropOpTime argument to Database:dropCollection()
Branch: master
https://github.com/mongodb/mongo/commit/eb529e4620292da4095aa535bb57b82fa9f7d139

Comment by Githook User [ 27/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 Database::dropCollection() adds drop-pending collection to reaper

If an instance of DropPendingCollectionReaper is not available, the collection
is dropped immediately.
Branch: master
https://github.com/mongodb/mongo/commit/307b4f12c992b0d6470b893de059c9a105cf8124

Comment by Githook User [ 25/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 rename dropped collection to special drop-pending name
Branch: master
https://github.com/mongodb/mongo/commit/84b5ca39430530944552be134e97458f5791ab8d

Comment by Githook User [ 25/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 add DatabaseImpl::_finishDropCollection
Branch: master
https://github.com/mongodb/mongo/commit/de0d533a65cd2d3468ecbe3d5393920539b1d374

Comment by Githook User [ 25/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 added unit test for Database with characterization tests for dropCollection().
Branch: master
https://github.com/mongodb/mongo/commit/2302c1d882d274c727293d2f9fc59b617964c6cc

Comment by Githook User [ 25/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 add NamespaceString::checkLengthForRename()

This function is used by renameCollection() to validate the target namespace.
Indexes in a collection have implicit namespaces and are subject to the same
length constraints as the collection namespace.
Branch: master
https://github.com/mongodb/mongo/commit/9a16ab04dfd9b0bd6286e9d853837b3f0e4c8d09

Comment by Githook User [ 25/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 add IndexCatalog::getLongestIndexNameLength()
Branch: master
https://github.com/mongodb/mongo/commit/ff2cf3e560c4768f88c9911d09d8fa60526911dc

Comment by Githook User [ 24/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 include namespace in mmapv1 Namespace 'ns too long' error message
Branch: master
https://github.com/mongodb/mongo/commit/6ab11dad8490589244c5713d9d90482729175b9d

Comment by Githook User [ 24/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 OpObserver::onDropCollection() returns drop optime
Branch: master
https://github.com/mongodb/mongo/commit/3db02ac2a719687829b3fd6a71927d263bdbd667

Comment by Githook User [ 24/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 logOp() returns optime of generated oplog entry
Branch: master
https://github.com/mongodb/mongo/commit/3a4084e613847f96e3f3817e4b8caa02c342a2fe

Comment by Githook User [ 23/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 IndexCatalog::dropAllIndexes() returns void.

This function throws an exception on error or fasserts.
Branch: master
https://github.com/mongodb/mongo/commit/a4a7575ab62fc686d82e6e5706467d55cdfd6b08

Comment by Githook User [ 23/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 moved ReplClientInfo to repl_coordinator_interface library
Branch: master
https://github.com/mongodb/mongo/commit/9ef7f6dfedfbacfeabc67f4579c397647c78f8d1

Comment by Githook User [ 23/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 update repl and op observer tests to use new ReplicationCoordinatorMock with default replset settings
Branch: master
https://github.com/mongodb/mongo/commit/8843aaa618789d12ef386f578c9a2d212413ee09

Comment by Githook User [ 23/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 move oplogDisabled from oplog.cpp to ReplicationCoordinator
Branch: master
https://github.com/mongodb/mongo/commit/7c53bb196f13bfebbbee0d235b3887a348e303a6

Comment by Githook User [ 23/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: Revert "SERVER-29274 move oplogDisabled from oplog.cpp to ReplicationCoordinator"

This reverts commit c1b1bd0944115c30b18bfe189356897e8896012f.
Branch: master
https://github.com/mongodb/mongo/commit/56fb4fa3f7813baeebec179905dd98f9dcc30310

Comment by Benety Goh [ 23/May/17 ]

Code review url: http://mongodbcr.appspot.com/131670001

update repl and op observer tests to use new ReplicationCoordinatorMock with default replset settings

Comment by Githook User [ 23/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 move oplogDisabled from oplog.cpp to ReplicationCoordinator
Branch: master
https://github.com/mongodb/mongo/commit/c1b1bd0944115c30b18bfe189356897e8896012f

Comment by Githook User [ 23/May/17 ]

Author:

{u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}

Message: SERVER-29274 added ReplicationCoordinatorMock constructor to use default settings for replica sets
Branch: master
https://github.com/mongodb/mongo/commit/1ab42a79421902abcb49ac208e5f55324a07d035

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