patternMinor
Mongodb - Will Bulk.find.remove() lock the collection
Viewed 0 times
themongodbbulkcollectionremovewillfindlock
Problem
I'm planning to run
Will it block inserting or updating other records (which are not a part of the above
Bulk.find.remove() on a very big collection. (1.2TB). Will it block inserting or updating other records (which are not a part of the above
find)?Solution
The short answer is: No, you will not be blocked.
When performing multi-document write operations, whether through a single write operation or multiple write operations, other operations may interleave.
The long explains are:
Collection is granular level (or the resource).
Whenever there is a write operation, Exclusive (X) lock mode must be applied on the resource.
As Collection is the resource in this scenario, Exclusive (X) lock mode must be applied on the Collection.
For all outer levels : Database, Global; Intent Exclusive (IX) must be applied.
When a write operation is triggered for a Collection, the control must do the following series of locks :
The MongoD instance must be locked in Intent Exclusive (IX) lock mode, with an intent to apply write operation in a granular level (Database / Collection / Document).
The Database must be locked in Intent Exclusive (IX) lock mode, with an intent to apply write operation in a granular level (Collection / Document).
The Collection must be locked in Exclusive (X) lock mode, to apply write operation on the Collection.
You can find more info in the following links:
https://docs.mongodb.com/manual/core/write-operations-atomicity/
https://docs.mongodb.com/manual/faq/concurrency/
https://docs.mongodb.com/manual/reference/method/Bulk.find.remove/
https://www.tutorialkart.com/mongodb/mongodb-locks/
When performing multi-document write operations, whether through a single write operation or multiple write operations, other operations may interleave.
The long explains are:
Collection is granular level (or the resource).
Whenever there is a write operation, Exclusive (X) lock mode must be applied on the resource.
As Collection is the resource in this scenario, Exclusive (X) lock mode must be applied on the Collection.
For all outer levels : Database, Global; Intent Exclusive (IX) must be applied.
When a write operation is triggered for a Collection, the control must do the following series of locks :
The MongoD instance must be locked in Intent Exclusive (IX) lock mode, with an intent to apply write operation in a granular level (Database / Collection / Document).
The Database must be locked in Intent Exclusive (IX) lock mode, with an intent to apply write operation in a granular level (Collection / Document).
The Collection must be locked in Exclusive (X) lock mode, to apply write operation on the Collection.
You can find more info in the following links:
https://docs.mongodb.com/manual/core/write-operations-atomicity/
https://docs.mongodb.com/manual/faq/concurrency/
https://docs.mongodb.com/manual/reference/method/Bulk.find.remove/
https://www.tutorialkart.com/mongodb/mongodb-locks/
Context
StackExchange Database Administrators Q#250604, answer score: 2
Revisions (0)
No revisions yet.