| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
NotPrimaryOrSecondary: Oplog collection reads are not allowed while in the rollback or startup state
|
| |
|
|
|
|
| |
in replsets tests
|
| |
|
|
|
|
| |
commitTransaction_forTesting()
|
| |
|
|
|
|
|
|
| |
transaction format"
This reverts commit 6df77aa1579d11894a80ddd2edb3053db5abd0aa.
|
|
|
|
| |
transaction format
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
transactions
This fixes two bugs, both related the correctness of the algorithm for adjusting collection counts
during rollback. The first bug is that rolled-back non-majority confirmed "prepare" oplog entries
may rollback and incorrectly adjust collection fastcounts. The second bug is that a prepared and
committed transaction will have incorrect collection counts after rollback.
The new high-level order of operations during replication rollback are as follows:
1. Abort all active prepared transactions, rolling back any in-memory counts
2. Calculate collection count adjustments by scanning rolled-back oplog entries
3. If a 'commitTransaction' oplog entry is rolled-back, find the associated 'prepare' to calculate
size adjustments
4. Rollback to the stable timestamp. Replay oplog to common point. This makes no collection count
adjustments.
5. Set collection counts to previously calculated values
6. Reconstruct prepared transactions, which updates in-memory fastcounts
|
| |
|
|
|
|
| |
is majority committed
|
|
|
|
|
|
| |
stable TS before oldest uncommitted TS"
This reverts commit b58420e57a2149c350ebf82815fe708850402296 and 33ac1afd4079e04d12554f9b79d1ab07426caf59.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prepare conflicts may only be safely ignored when a command can
guarantee it does not perform writes. Prepare conflicts are ignored when
the read concern is local, available, or majority and the command is
aggregate, count, distinct, find, getMore, or group. Aggregate is a
special case because it may perform writes to an output collection, but
it enables prepare conflict enforcement before doing so.
Additionally, connections from a DBDirectClient inherit the
ignore_prepare state from their parent operation.
|
| |
|
|
|