summaryrefslogtreecommitdiff
path: root/src/mongo/db/db_raii.cpp
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-46295 Remove unneeded isColletion parameter to ↵Tommaso Tocci2020-02-211-5/+2
| | | | CollectionShardingRuntime methods
* SERVER-45567 removing util/log.h where I canGabriel Russell2020-02-211-1/+0
| | | | | | | o converting some log lines that were missed o fixing some missing includes create mode 100644 src/mongo/transport/ismaster_metrics.cpp
* SERVER-45869 automatically converted structured loggingGabriel Russell2020-02-131-4/+9
|
* SERVER-45137 Remove namespaces from Top when collections are renamedGregory Wlodarek2020-01-311-5/+11
| | | | create mode 100644 jstests/noPassthroughWithMongod/top_rename.js
* SERVER-43859: Take MODE_IX locks for collection creation.Daniel Gottlieb2019-11-261-1/+1
| | | | | | | | | | | | | | | | | Two concurrent storage transactions can now create collections with the same collection name. These transactions will conflict at commit time; the first committer will win and register their collection into the global catalog. The losing transactions will bubble a WriteConflictException. Top-level callers that should fail if the collection already existed must now check and fail with a NamespaceExists error code. Previously, those callers could rely on lower level code returning the NamespaceExists error. Callers that were implicitly creating a collection may retry the operation, using the now-registered collection. These transaction-local collections (UncommittedCollections) are returned when doing any CollectionCatalog::lookup* call.
* SERVER-44127 abort ops that encounter a catalog conflict after already ↵Eric Milkie2019-11-251-1/+12
| | | | locking in a read snapshot
* SERVER-42737 Make secondary reads in ShardServerCatalogCacheLoader block ↵Randolph Tan2019-10-231-0/+21
| | | | behind the PBW lock
* SERVER-43858: Relax database creation lock acquisition from MODE_X to MODE_IX.Daniel Gottlieb2019-10-171-1/+0
|
* SERVER-41496 Remove Database::getCollection() and replace with ↵Evgeni Dobranov2019-09-301-2/+4
| | | | CollectionCatalog::get().lookupCollectionByNamespace()
* SERVER-40466 Unify checks for being in a multi-document transactionSamy Lanka2019-08-081-1/+1
|
* SERVER-42600 Implement the FCV 4.4 checkShardVersion protocolEsha Maharishi2019-08-081-8/+9
|
* SERVER-41772 Apply clang-format 7.0.1 to the codebaseclang-format-7.0.12019-07-271-2/+1
|
* SERVER-40258 Relax locking requirements for sharding metadata refresh on shardsRandolph Tan2019-06-271-2/+3
|
* SERVER-41702 Copy Collection NamespaceString before yielding locks in ↵Louis Williams2019-06-141-1/+1
| | | | AutoGetCollectionForRead
* SERVER-41361 Do not read at lastApplied while already holding the PBWM lock ↵Louis Williams2019-06-121-2/+14
| | | | on secondaries
* Revert "SERVER-41361 Do not read at lastApplied while already holding the ↵Louis Williams2019-06-111-8/+3
| | | | | | PBWM lock on secondaries" This reverts commit b6ad5c431b8a1272617a3eff58872808afa53e31.
* SERVER-41361 Do not read at lastApplied while already holding the PBWM lock ↵Louis Williams2019-06-101-3/+8
| | | | on secondaries
* SERVER-40706 AutoGetCollectionForRead invariant should permit kNoOverlap ↵William Schultz2019-04-231-1/+19
| | | | read source when there are conflicting catalog changes
* SERVER-39660 Move readSource re-definition to a clearer location in ↵William Schultz2019-04-081-1/+1
| | | | AutoGetCollectionForRead
* SERVER-39660 Return SnapshotUnavailable error when trying to read behind ↵William Schultz2019-03-251-2/+18
| | | | pending catalog changes in AutoGetCollectionForRead using a provided timestamp read source
* SERVER-39942 Extract transaction library from catalog_raii library.Siyuan Zhou2019-03-151-4/+2
|
* SERVER-40058 Prevent AutoStatsTracker's db lock from conflicting with ↵David Storch2019-03-111-1/+4
| | | | secondary batch application.
* SERVER-37092 Remove old server parameter APISara Golemon2019-03-031-1/+0
|
* SERVER-39542 Migrate server parameters to IDL in src/mongo/db/db_raii.cppSpencer Jackson2019-02-251-5/+2
|
* SERVER-38810 Use Session's concurrency control rules instead of internal ↵Andy Schwerin2019-02-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue2019-02-131-1/+0
| | | | | | Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
* SERVER-37283 Use stronger locks for system.viewsCharlie Swanson2019-02-111-2/+5
| | | | | | | | | | Readers of the view catalog depend on a MODE_IS DB lock preventing concurrent writes to the view catalog. This is true for regular view maintenance commands like collMod, create, and drop. However, on secondaries these commands are replicated as direct writes to system.views and do not hold as strong of a lock. Further, a user is permitted to write directly to system.views and so could hit a similar issue on the primary.
* SERVER-37270 Remove foreground index builds by defaultLouis Williams2019-01-171-1/+5
|
* SERVER-38719 rename DatabaseHolder::get() to getDb()Benety Goh2018-12-201-2/+2
| | | | | Repurpose DatabaseHolder::get() for accessing singleton. Deprecate DatabaseHolder::getDatabaseHolder().
* SERVER-31098 Wrong ns in system.profile for aggregation queryDevin Hilly2018-11-201-6/+11
|
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-221-8/+10
|
* SERVER-35900 Refactor transaction machinery out from Session classRandolph Tan2018-08-081-3/+3
|
* SERVER-35429 Add lock state checking with PBWM in AutoGetCollectionForReadXiangyu Yao2018-07-261-0/+5
|
* SERVER-36054 Get rid of unused methods from CollectionShardingStateKaloian Manassiev2018-07-161-2/+2
|
* SERVER-35516 Get rid of OldClientWriteContextKaloian Manassiev2018-06-151-49/+1
|
* SERVER-35000 Distinguish readSource noTimestamp from readSource unsetXiangyu Yao2018-06-121-9/+6
|
* SERVER-35217 Do not kill associated client cursors when transaction endsTess Avitabile2018-06-081-1/+2
|
* SERVER-32198 Get rid of CollectionShardingState::collectionIsShardedKaloian Manassiev2018-06-071-3/+2
|
* SERVER-34443 Refactor WiredTigerRecoveryUnit and WiredTigerSnapshotManager. ↵Louis Williams2018-05-151-4/+9
| | | | An enum is now used to indicate at which time to read on a RecoveryUnit.
* SERVER-34440 Internal readers who opt-out of the PBWM lock when using ↵Louis Williams2018-05-141-15/+12
| | | | AutoGetCollectionForRead should not read at the last-applied timestamp.
* SERVER-34751 Replace getGlobalStorageEngine cals with getStorageEngine.Andy Schwerin2018-05-031-1/+1
|
* SERVER-32645 Create a shim helper framework.ADAM David Alan Martin2018-04-301-2/+3
| | | | | | | | The `MONGO_DECLARE_SHIM`, `MONGO_DEFINE_SHIM`, and `MONGO_REGISTER_SHIM` macros can be used to create specialized types which are customization and auto-registration points for late-binding functions. In some sense they work like weak-symbols; however, they also are useful for tracking dependencies upon shimmed-out implementations.
* Revert "SERVER-32645 Create a shim helper framework."Kyle Suarez2018-04-301-3/+2
| | | | This reverts commit 2227f272a7a0a3e43625cb2d4a2704e1ccb6f893.
* SERVER-34572 Write commands in transactions must check for pending catalog ↵Tess Avitabile2018-04-301-13/+1
| | | | changes
* SERVER-32645 Create a shim helper framework.ADAM David Alan Martin2018-04-271-2/+3
| | | | | | | | The `MONGO_DECLARE_SHIM`, `MONGO_DEFINE_SHIM`, and `MONGO_REGISTER_SHIM` macros can be used to create specialized types which are customization and auto-registration points for late-binding functions. In some sense they work like weak-symbols; however, they also are useful for tracking dependencies upon shimmed-out implementations.
* SERVER-34565 oplog reads on secondaries should read at lastApplied timestampEric Milkie2018-04-201-14/+26
|
* SERVER-34493 Check whether or not to read from the last applied timestamp ↵Louis Williams2018-04-171-2/+3
| | | | before accessing the value
* SERVER-33690 Transaction abort and commit should kill any associated client ↵James Wahlin2018-04-161-2/+1
| | | | cursors
* SERVER-34192 Allow secondary reads during batch applicationsLouis Williams2018-04-131-28/+148
|
* SERVER-33551 Track snapshot read transactions with ↵Matthew Russotto2018-03-141-6/+3
| | | | MultiDocumentTransactionState in Session