summaryrefslogtreecommitdiff
path: root/src/mongo/dbtests/rollbacktests.cpp
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-68635 Move the whole insert path out of CollectionImplKaloian Manassiev2022-08-151-28/+32
|
* SERVER-62923 Change DB lock RAII types to use DatabaseNamejannaerin2022-07-151-3/+3
|
* SERVER-65488 Change OldClientContext ctor to take in NamespaceStringSophia Tan2022-07-061-8/+8
|
* SERVER-62918 Change DBLock to use DatabaseNamejannaerin2022-06-271-6/+6
|
* SERVER-62370 Remove the _opCtx from the CollectionWriter and instead use the ↵Shin Yee Tan2022-06-101-14/+15
| | | | passed in opCtx
* SERVER-63865 Handle missing index idents during standalone startup recoveryGregory Noma2022-05-311-3/+8
|
* SERVER-64609 Rename instances of TenantDatabaseName to DatabaseNameHugh Tong2022-05-091-1/+1
|
* SERVER-63251 Refactor IndexAccessMethod to support non-SortedData indexesMathias Stearn2022-02-111-8/+5
|
* SERVER-61987 Change DatabaseHolder's map to be keyed by TenantDatabaseNameSophia Tan2022-02-031-1/+1
|
* SERVER-56002 SERVER-56023 Store Collection metadata in the Collection and ↵Henrik Edin2021-05-201-8/+13
| | | | | | | | | | | reply on the copy-on-write machinery to keep it in sync with the durable catalog. All updates to the metadata needs to happen through the Collection, moved interfaces from the DurableCatalog to the Collection. Removed back pointer to Collection in IndexCatalogEntryImpl, interfaces now correctly take a const or non-const Collection. This should make its iterface const-correct to avoid making bugs where the copy-on-write system for Collections are bypassed. Multikey handle is special as it needs to happen without exclusive access to the Collection. Implemented isolation for the Collection metadata when multikey is changed. It handles multi-doc transactions and is only commited to the Collection instance after the write to the durable catalog successfully commits. listCollections and listIndexes can now safetly read the metadata cache without needing to read from the durable catalog making them safe to do without Collection level locks.
* SERVER-52556 Versioned CollectionCatalog. Writes are performed using ↵Henrik Edin2020-11-131-8/+8
| | | | | | | copy-on-write. Internal mutexes when reading CollectionCatalog are removed, just one mutex for writes are needed. Lock-free reads helper AutoGetCollectionForReadLockFree stashes a CollectionCatalog consistent with snapshot on OperationContext
* SERVER-50984 Add CollectionPtr to replace usage of const Collection*Henrik Edin2020-09-261-1/+2
| | | | | | | | | | | | It implements a yieldable interface that is used to re-load the Collection pointer from the catalog after a yield that released locks. With lock-free reads and copy-on-write on Collection instances releasing locks without notifying an AutoGetCollection at a higher level may cause its pointers to dangle if a MODE_X writer installs a new Collection instance in the catalog. CollectionPtr should be passed by const reference so a yield can notify all the way up.
* SERVER-50349 Getting a writable collection now requires the caller to be ↵Henrik Edin2020-09-151-21/+13
| | | | | | | | | | | | | inside a WUOW by default There are three modes when accessing a writable Collection: * Managed in WUOW (default) * Unmanaged (users need to commit/rollback) * Inplace that provides direct access to the Collection in the catalog. (Users need to ensure there's no concurrent operations going on) Added a helper RAII type CollectionWriter that abstract the three modes above and also provides abstraction on different methods of accessing Collections (AutoGetCollection or manual lookups). Writable Collection is aquired lazily when needed (usually inside a WUOW).
* SERVER-50317 Const correct uses of CollectionHenrik Edin2020-09-021-7/+13
| | | | | | Most of the code should only need a const Collection now. AutoGetCollection returns a const Collection by default. There is a placeholder getWritableCollection() interface that will handle the necessary steps we need for lock free reads in the future. Added some operators to AutoGetCollection so it behaves more like a smart pointer.
* SERVER-46122 Make the drop command abort in-progress index builds before ↵Gregory Wlodarek2020-02-191-14/+10
| | | | dropping the ready indexes and collection itself
* SERVER-43859: Take MODE_IX locks for collection creation.Daniel Gottlieb2019-11-261-60/+14
| | | | | | | | | | | | | | | | | 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-43367 unittest framework refactor/fixesBilly Donahue2019-10-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Segregate old-style dbtests into their own Suite initialization system: OldStyleSuiteSpecification. This is where the funky deprecated features can live on without interfering with the Suite API. It also gives us a searchable base class to identify them in the future. OldStyleSuite has `setupTests()` and an `add<T>()` that Suite does not have. Suite API can shrink when it doesn't have to support these dbtest adaptor features. Suite only needs non-template `add(name, callback)`. - Add OldStyleSuiteInitializer to some dbtests that were missing it! These didn't use SuiteInstance to register themselves and were incorrect. They would self register, resulting in _allSuites() holding a std::shared_ptr to a static-duration Suite object! - Change `getSuite()` to return `Suite&` instead of `Suite*`. - No more "self-registering" in Suite constructor. Registration must be done as a separate post-construction step. This removes some unusual lifetime management code and is easier to document. Suite::getSuite(name) is the only way to make a Suite, and it does the make_shared and registration calls with a pseudo-private ConstructorEnable idiom. - Suite->run() returns std::unique_ptr<Result> instead of raw `Result*`. It's virtual to support OldStyleSuite behavior. - Suite._ran does nothing. Removed. - Result.cur does nothing. Removed. - Switch to pass-by-value and std::move for most ctor args. - Add explicit on 1-arg ctors. - Get rid of TestHolder. It's just a 2-field struct. - use fmt instead of snprintf - TEST and TEST_F macros: generate TEST_TYPE once. - TEST and TEST_F macros: inline the _agent variable. - Mark _doRun as `override`. - Terminology: replace CASE_NAME with SUITE_NAME. - rename DeathTestImpl -> DeathTestBase - move getDeathTestPattern into the test as a static member function - refactor out some repetition from the comparator decl macros - use if-constexpr and diamond relops to clean up the ComparisonAssertion class. - dbtests: conditionally skip some add<T> calls - further dedup (DEATH_)TEST(_F) macros
* SERVER-41496 Remove Database::getCollection() and replace with ↵Evgeni Dobranov2019-09-301-20/+12
| | | | CollectionCatalog::get().lookupCollectionByNamespace()
* SERVER-23921 audit the use of SortedDataInterface::Cursor::seek for full ↵Haley Connelly2019-09-041-1/+1
| | | | index traversal in our tests
* SERVER-42248 Remove SortedDataInterface::seek() which accepts a BSONObjXiangyu Yao2019-08-291-2/+8
|
* Revert "SERVER-33272 Proactively close newly empty databases"Gregory Wlodarek2019-08-271-7/+1
| | | | This reverts commit 40f226b5a9bfb4863268334d287a46fb226a22cf.
* SERVER-33272 Proactively close newly empty databasesGregory Wlodarek2019-08-271-1/+7
|
* Revert "SERVER-33272 Proactively close newly empty databases"Gregory Wlodarek2019-08-231-7/+1
| | | | This reverts commit b6b81f34516ba7b1472cb1dd319da8785f24ae58.
* SERVER-33272 Proactively close newly empty databasesGregory Wlodarek2019-08-221-1/+7
|
* SERVER-41696 Remove the 'ns' field from index specsGregory Wlodarek2019-07-291-12/+12
|
* SERVER-41772 Apply clang-format 7.0.1 to the codebaseclang-format-7.0.12019-07-271-2/+2
|
* SERVER-38796 Refactor CollectionOptions::parse to be staticDaniel Solnik2019-06-281-21/+21
|
* Revert "SERVER-38796 Refactor CollectionOptions::parse to be static"Daniel Solnik2019-06-261-21/+21
| | | | This reverts commit f16da96fdbb9a151cbc9890802c53370298b4fd2.
* SERVER-38796 Refactor CollectionOptions::parse to be staticDaniel Solnik2019-06-261-21/+21
|
* SERVER-41071 Replace NULL and 0 with nullptrA. Jesse Jiryu Davis2019-06-141-2/+2
|
* SERVER-41158 Remove MMAPv1 index head remnantGeert Bosch2019-05-151-65/+0
|
* SERVER-40892 Rename UUIDCatalog to CollectionCatalogGeert Bosch2019-05-071-2/+2
|
* SERVER-40724 Change namespace arguments to use NamespaceStringGeert Bosch2019-04-261-1/+1
|
* SERVER-39520 Use database IX lock for dropCollectionXiangyu Yao2019-04-261-51/+51
|
* Revert "SERVER-39520 Use database IX lock for dropCollection"Justin Seyster2019-04-251-51/+51
| | | | This reverts commit 3a8c33cd95abaa7455b2c01726bdbf413cc938e5.
* SERVER-39520 Use database IX lock for dropCollectionXiangyu Yao2019-04-251-51/+51
|
* Revert "SERVER-39520 Use database IX lock for dropCollection"Xiangyu Yao2019-04-251-51/+51
| | | | This reverts commit fdc3712e4cb89c23451061b4c927a78340269d89.
* SERVER-39520 Use database IX lock for dropCollectionXiangyu Yao2019-04-251-51/+51
|
* SERVER-39515 Remove DatabaseCatalogEntryXiangyu Yao2019-04-101-5/+5
|
* 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-37643 remove unused multi_index_block.h includesBenety Goh2018-12-271-1/+1
|
* SERVER-38719 rename DatabaseHolder::get() to getDb()Benety Goh2018-12-201-18/+19
| | | | | Repurpose DatabaseHolder::get() for accessing singleton. Deprecate DatabaseHolder::getDatabaseHolder().
* SERVER-38700 make Database::userCreateNS() a member functionBenety Goh2018-12-191-20/+12
|
* SERVER-38091 IndexCatalog iterators and accessors should return const entriesLouis Williams2018-12-191-4/+4
|
* SERVER-38700 convert static Database::dropDatabase to a method on DatabaseHolderBenety Goh2018-12-191-1/+1
|
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-221-14/+16
|
* SERVER-36889 unshim MultiIndexBlockBenety Goh2018-10-121-1/+1
|
* SERVER-35351: Have implicit creation of `system.views` in a separate WUOW.Daniel Gottlieb2018-06-121-50/+40
|
* SERVER-33605 Mobile SE:Disable capped collections and related testingSulabh Mahajan2018-06-081-0/+20
|
* SERVER-32645 Create a shim helper framework.ADAM David Alan Martin2018-04-301-55/+63
| | | | | | | | 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.