|
The relevant detail in that comment is:
The behavior of an operation against a capped collection may differ across replica set members, where it can succeed on one member and fail on another, crashing the failing member.
As Judah observed, this is no longer a problem because we replicate deletes in the oplog, so all nodes have the exact same contents.
capped collections are still problematic with transactions because they only allow one operation at a time because they enforce insertion order with a MODE_X collection lock, which we cannot hold in transactions.
This isn't accurate. We take the "metadata lock", not the collection lock, but this will cause transactions on capped collections to serialize themselves, since this lock is held for the duration of the WUOW. If we're okay with that behavior, we need to be careful not to introduce deadlocks. Currently, the metadata lock acquisition is not interruptible. That is, it doesn't use the constructor that accepts an opCtx. This is a relatively easy change.
|