summaryrefslogtreecommitdiff
path: root/src/mongo/db/transaction_participant.h
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-40372 Track transaction sizeTess Avitabile2019-11-011-1/+3
|
* SERVER-42987 make it safe to interrupt abortTransactionJudah Schvimer2019-09-111-0/+4
|
* SERVER-39614 replace inActiveOrKilledMultiDocumentTransaction with ↵Pavithra Vetriselvan2019-09-031-9/+0
| | | | inMultiDocumentTransaction
* SERVER-39613 Remove kCommittingWithPrepare and kCommittingWithoutPrepare ↵Siyuan Zhou2019-08-261-19/+4
| | | | from TransactionState
* SERVER-41457 Unify the different ways the TransactionParticipant offers for ↵Matthew Russotto2019-08-211-29/+10
| | | | aborting a transaction
* SERVER-40983 Track and log relevant single transaction metrics on mongos for ↵Blake Oler2019-08-141-1/+1
| | | | currentOp
* SERVER-41766 Remove obsolete code for tracking multikey writes inside ↵William Schultz2019-08-121-23/+0
| | | | | | multi-document transactions Now that we update the multikey flag within a transaction in a side transaction, the in-memory state about the multikey write will be naturally visible to subsequent writes inside the transaction, so we don't need to keep around any extra structures to enforce this anymore.
* SERVER-40466 Unify checks for being in a multi-document transactionSamy Lanka2019-08-081-10/+14
|
* SERVER-42398 On primary, abortTransaction and commitTransaction commands ↵Suganthi Mani2019-07-251-12/+12
| | | | should not acquire ticket irrespective of the prepared state.
* SERVER-41980 Prepared transactions should not acquire ticket on primary.Suganthi Mani2019-07-251-6/+22
|
* SERVER-41881 Unstashing the transaction lock resources should ignore the ↵Suganthi Mani2019-07-241-5/+21
| | | | | | | saved value of maxLockTimeout and explicitly set the maxLockTimeout based on node's state. SERVER-41883 Replication state transition reacquires locks and tickets of a prepared transaction with no lock timeout. SERVER-41556 Handles failure to reacquire locks and ticket when unstashing transactions.
* SERVER-42251 Timestamp multikey writes with the prepare timestamp during ↵William Schultz2019-07-231-0/+16
| | | | | | replication recovery Now that we execute multikey catalog updates in a side transaction, we need to give them some suitable timestamp. In normal replication, we can grab the latest value of the LogicalClock. In startup recovery, though, we may replay a prepared transaction that does a multikey write, but the LogicalClock may not have been initialized yet. Thus, we use the prepare timestamp of the transaction for the multikey write, since that timestamp is guaranteed to be less than or equal to the commit timestamp of the transaction.
* Revert "SERVER-41881 Unstashing the transaction lock resources should ignore ↵Ian Boros2019-07-231-21/+5
| | | | | | the saved value of maxLockTimeout and explicitly set the maxLockTimeout based on node's state." This reverts commit b7cec5064fb03f1e1f9bd39af35e495facfdcdc9.
* Revert "SERVER-41980 Prepared transactions should not acquire ticket on ↵Ian Boros2019-07-231-22/+6
| | | | | | primary." This reverts commit a5d4ab967af9cbba17e6aa5afadca35927bd74c1.
* SERVER-41980 Prepared transactions should not acquire ticket on primary.Suganthi Mani2019-07-211-6/+22
|
* SERVER-41881 Unstashing the transaction lock resources should ignore the ↵Suganthi Mani2019-07-151-5/+21
| | | | | | | saved value of maxLockTimeout and explicitly set the maxLockTimeout based on node's state. SERVER-41883 Replication state transition reacquires locks and tickets of a prepared transaction with no lock timeout. SERVER-41556 Handles failure to reacquire locks and ticket when unstashing transactions.
* SERVER-39610 Remove outdated references to the metrics mutex in the ↵William Schultz2019-07-021-0/+2
| | | | TransactionParticipant and simplify some metrics reporting logic
* SERVER-36529 OpObservers for session operations should pass SessionTxnRecordJudah Schvimer2019-06-251-12/+3
|
* SERVER-41838 Release RSTL if we choose not to commit a prepared transaction ↵Judah Schvimer2019-06-251-0/+3
| | | | after reacquiring it
* SERVER-39489 Remove optime creation in TransactionParticipantJudah Schvimer2019-05-221-33/+5
|
* SERVER-36956 SnapshotTooOld errors will always increase the snapshot history ↵Dianna2019-05-171-1/+1
| | | | window size
* SERVER-39794 Abort in-progress transactions on stepupSiyuan Zhou2019-05-141-0/+5
|
* SERVER-39438 Write "abortTransaction" oplog entry when aborting unprepared ↵Jason Chan2019-05-141-1/+3
| | | | transactions with replicated operations
* SERVER-37235 Use an onCommit/Abort handler to complete session kill on ↵Kaloian Manassiev2019-05-141-20/+16
| | | | direct writes to `config.transactions`
* SERVER-40498 Writing transaction oplog entries must not take locks while ↵Siyuan Zhou2019-05-081-0/+6
| | | | holding an oplog slot.
* SERVER-40498 Side transaction keeps the same lockerSiyuan Zhou2019-05-031-5/+8
|
* SERVER-40808 Recovering a transaction's outcome should block if the ↵Esha Maharishi2019-05-021-2/+18
| | | | participant is in prepare
* SERVER-40475 Migrate sentinel entry for retryable writes converted to ↵Matthew Saltz2019-05-021-1/+5
| | | | transactions
* SERVER-40018 Remove oldestOplogEntryOpTime from TransactionMetricsObserver ↵Samy Lanka2019-04-171-7/+0
| | | | and TransactionParticipant
* SERVER-40476 remove mongoutils::strBilly Donahue2019-04-091-1/+1
| | | | | | Rename utils/mongoutils/str.h => utils/str.h Rename namespace mongoutils::str => str Rename mongo::strcasecmp => str::caseInsensitiveCompare.
* SERVER-40508 Remove hash from OplogSlot and make OplogSlot an alias for OpTime.r4.1.10Siyuan Zhou2019-04-091-2/+2
|
* SERVER-39842 Allow update to shard key value if retryable writejannaerin2019-04-091-0/+5
|
* Revert "SERVER-35811 disallow committing at the prepareTimestamp and pin ↵Pavi Vetriselvan2019-04-011-7/+0
| | | | | | stable TS before oldest uncommitted TS" This reverts commit b58420e57a2149c350ebf82815fe708850402296 and 33ac1afd4079e04d12554f9b79d1ab07426caf59.
* SERVER-35114 Adjustable periods for PeriodicJobsJason Carey2019-03-291-0/+3
| | | | Add support for changing the period of a periodic job
* SERVER-39840 Add kExecutedRetryableWrite state to allow unstarted retryable ↵Blake Oler2019-03-291-1/+10
| | | | writes to "upgrade" to transactions
* SERVER-40357 expand all calls to MONGO_DISALLOW_COPYINGBilly Donahue2019-03-281-2/+2
| | | | | | | | | | | produced by: hits="$(git grep -n MONGO_DISALLOW_COPYING | cut -d: -f1 )" for f in "$hits"; do sed -i.orig ' s/^\( *\)MONGO_DISALLOW_COPYING(\(.*\));/\1\2(const \2\&) = delete;\n\1\2\& operator=(const \2\&) = delete;/; ' $f done
* SERVER-39792 Update the txn table only on the first txn operation on primaryJason Chan2019-03-251-2/+4
|
* SERVER-39679 Get oldest transaction time when snapshottingA. Jesse Jiryu Davis2019-03-211-3/+6
|
* SERVER-39441 Write the new 'prepareTransaction' command on primaryJason Chan2019-03-111-6/+13
|
* Revert "SERVER-39441 Write the new 'prepareTransaction' command on primary"Benety Goh2019-03-071-13/+6
| | | | This reverts commit 86c1120002b6f28183f024f373ecc58123624a46.
* SERVER-39441 Write the new 'prepareTransaction' command on primaryJason Chan2019-03-071-6/+13
|
* SERVER-39874 Make shard return readOnly bool in response to successful ↵Esha Maharishi2019-03-071-0/+6
| | | | transaction statements
* SERVER-39139 Disallow starting transactions on secondariesVesselina Ratcheva2019-03-061-46/+26
| | | | This reverts commit a74b2f39025fee2c59aa5437deea6e06f05e18ca.
* SERVER-39680 Save start timestamp in config.transactionsA. Jesse Jiryu Davis2019-03-061-2/+11
|
* SERVER-39732 Migrate transaction participant set parameters to IDLSara Golemon2019-03-011-2/+0
|
* Revert "SERVER-39139 Disallow starting transactions on secondaries"Vesselina Ratcheva2019-02-271-26/+46
| | | | This reverts commit 58fad7d7efa275beb4a6a83f90d3dd222bbb534b.
* SERVER-39139 Disallow starting transactions on secondariesVesselina Ratcheva2019-02-261-46/+26
|
* SERVER-38906 No-op write after readonly transactionA. Jesse Jiryu Davis2019-02-201-8/+3
|
* SERVER-38906 Txns read without timestamp by defaultA. Jesse Jiryu Davis2019-02-201-3/+3
|
* SERVER-38810 Use Session's concurrency control rules instead of internal ↵Andy Schwerin2019-02-151-641/+673
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mutexes in TransactionParticipant This type simplifies and clarifies concurrency control in TransactionParticipant by: (1) Removing TP's own mutexes and using the Session concurrency control rules, instead. That is, certain state is only accessible when the Session is checked out, and requires no further locking. Other state is observable either while holding the client lock or while having checked out the Session. The latter type of state is modifiable only when having checked out the session and locked the client. (2) Separating the two types of state in (1) into separate sub-structures in TransactionParticipant, to make it clear who can access what state, (3) Putting all methods formerly on TransactionParticipant onto new member classes, TransactionParticipant::Participant and TransactionParticipant::Observer. The latter can only read the observable state from (1) above, and the participant may read or modify all of the state. The two types introduced by (3) are designed to enforce proper concurrency control by limiting access of their methods to the underlying TransactionParticipant member variables. The observer type has a private o() method which its other methods are required by convention to use in order to obtain read-only access to the Observable state of the TransactionParticipant. The participant type has the o() method plus an o(WithLock) method that allows mutation of the state while holding the client lock, and a p() method which allows reading and writing of the private state with no other locks. Please see the implementation in transaction_participant.cpp for examples. It is worth noting that with this change, locking the Client is not needed often and never for long, and there is no need for separate mutexes for participant state and monitoring state.