summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog/index_catalog.h
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-65024 Fix the uniqueness constraint handling for foreground index buildsYuhong Zhang2022-04-191-1/+1
| | | | (cherry picked from commit 5985d757ddc2645fb1b5df88f78abf6b9a833452)
* SERVER-56002 SERVER-56023 Store Collection metadata in the Collection and ↵Henrik Edin2021-05-241-11/+29
| | | | | | | | | | | | | 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. (cherry picked from commit 11de948b0c50df7d12de09ae0f01e791fc5d70d7)
* SERVER-50145 Collection instances are modified using copy-on-writeHenrik Edin2020-10-081-2/+7
| | | | | | | | When a writable collection is requested from the catalog a cloned instance will be returned. Its lifetime is managed by default in a WriteUnitOfWork and committed into the catalog in a commit handler. In the case of a rollback the cloned and modified collection instance is simply discarded. This removes the need to setup rollback handlers to restore any state written to a collection in the case of a rollback.
* SERVER-50984 Add CollectionPtr to replace usage of const Collection*Henrik Edin2020-09-261-4/+5
| | | | | | | | | | | | 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-47812 Secondaries persist wildcard multikeypaths out of orderBernard Gorman2020-09-121-0/+1
|
* SERVER-50317 Const correct uses of CollectionHenrik Edin2020-09-021-5/+5
| | | | | | 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-48417 Reconstruct in-memory state when resuming index buildSamy Lanka2020-08-041-2/+4
|
* SERVER-47873 Eliminate the Collection* saved in IndexDescriptorGeert Bosch2020-06-101-18/+7
|
* SERVER-25023 Allow multiple indexes on the same fields with different ↵Bernard Gorman2020-04-251-9/+5
| | | | partial index filters
* SERVER-45936 Remove enableHybridIndexBuilds parameterGregory Noma2020-04-101-5/+0
|
* SERVER-46156 Deprecate LogstreamBuilder and more manual log conversionsHenrik Edin2020-02-231-0/+2
| | | | | | | * Remove setPlainConsoleLogger() * Update errorcodes linter to work with custom user defined log macros rename src/mongo/embedded/{embedded_log_appender.h => embedded_log_backend.h} (61%)
* SERVER-37637 Standalone nodes should not restart in-progress two-phase index ↵Louis Williams2020-01-311-7/+30
| | | | | | | | | | | builds on startup If a replica set node is started in standalone mode and there are incomplete two-phase index builds, instead of restarting them, we mark the indexes as 'frozen'. This signifies that the indexes are unusable, and will not be rebuilt. The only option available to users is to drop the index. This can corrupt the replica set, but modifying replicated data in standalone mode already poses this danger.
* SERVER-39452 Support rollback via refetch for two-phase index buildsLouis Williams2019-12-161-0/+8
|
* SERVER-41766 Remove obsolete code for tracking multikey writes inside ↵William Schultz2019-08-121-1/+1
| | | | | | 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-42567 Remove magic from CollectionImpl and IndexCatalogImplGeert Bosch2019-08-121-2/+0
|
* SERVER-41696 Remove the 'ns' field from index specsGregory Wlodarek2019-07-291-2/+0
|
* SERVER-39918 Untangle IndexBuildBlock from IndexCatalogImplGregory Noma2019-07-031-65/+30
|
* SERVER-39338 Remove `stdx/functional.h`ADAM David Alan Martin2019-06-101-1/+1
|
* SERVER-40887 Removed getAndClearUnfinishedIndexes and relevant codeGabe Villasana2019-06-071-11/+0
|
* SERVER-40926 SERVER-40927 createIndexes cmd requests for indexes that are ↵Dianna2019-05-131-7/+14
| | | | already being built wait for them to complete rather than return OK immediately
* SERVER-39323 refactor index spec validation code to make it more modularized ↵Dianna2019-04-221-8/+28
| | | | | | | | | and flexible. - Remove a "$freelist" collection reference, which was removed with MMAPv1 - Modularize a {buildIndexes:false} check that causes a IndexAlreadyExists error to be returned - Split IndexCatalog::removeExistingIndexes into removeExistingIndexes and removeExistingIndexesNoChecks, to be more explicit about the internal behavior.
* SERVER-39079 Move BackgroundOperation checks out of the catalog layer; add ↵Dianna Hohensee2019-03-241-0/+11
| | | | parallel IndexBuildsCoordinator checks for all BackgroundOperation checks
* Revert "SERVER-39079 Move BackgroundOperation checks out of the catalog ↵Dianna Hohensee2019-03-121-11/+0
| | | | | | layer; add parallel IndexBuildsCoordinator checks for all BackgroundOperation checks" This reverts commit d02edd5290131978f901ffc657bee3470d03f8fd.
* SERVER-39079 Move BackgroundOperation checks out of the catalog layer; add ↵Dianna Hohensee2019-03-111-0/+11
| | | | parallel IndexBuildsCoordinator checks for all BackgroundOperation checks
* SERVER-39703 Pull opCtx ptr out of the TemporaryKVRecordStore and instead ↵Dianna Hohensee2019-02-211-0/+6
| | | | pass it as a function parameter
* SERVER-38097 Pull opCtx and collection ptrs out of MultiIndexBlock and pass ↵Dianna Hohensee2019-02-191-3/+3
| | | | instead as function parameters
* SERVER-38986 Timestamp writes while drainingLouis Williams2019-02-061-1/+0
|
* SERVER-38288 Delete CursorManager::invalidateAll().David Storch2019-01-311-3/+1
|
* SERVER-37270 Remove foreground index builds by defaultLouis Williams2019-01-171-1/+23
|
* SERVER-37643 IndexCatalog::removeExistingIndexes() optionally throws on ↵Benety Goh2019-01-111-4/+9
| | | | invalid non-duplicate indexes
* SERVER-38091 IndexCatalog iterators and accessors should return const entriesLouis Williams2018-12-191-25/+37
|
* SERVER-37643 move MultiIndexBlock::removeExistingIndexes() to IndexCatalogBenety Goh2018-12-131-0/+7
|
* SERVER-37449 Add RequiresAllIndicesStage and use for subplanning and ↵David Storch2018-12-101-0/+6
| | | | | | | | multiplanning. These stages hold the collection's list of indices during plan selection, and expect all indices in this list to remain valid until plan selection completes.
* SERVER-38027 SERVER-37268 Partially enable hybrid index builds for ↵Louis Williams2018-11-291-0/+13
| | | | background, non-unique indexes. Change background index builds to use the bulk builder and external sorter
* SERVER-37447 Introduce RequiresIndexStage and use for IXSCAN.David Storch2018-11-271-1/+9
|
* SERVER-37263: Write updates to background building indexes into a temp table.Daniel Gottlieb2018-11-121-31/+39
| | | | | - IndexIterator returns IndexCatalogEntry* - Split out ready from building indexes in the IndexCatalog.
* SERVER-37589 add library for MultiIndexBlockBenety Goh2018-10-261-1/+0
|
* SERVER-37443 Make catalog objects survive collection rename.David Storch2018-10-231-0/+2
| | | | | | This change only applies to collection renames within the same database. Rename across databases requires copying the data, and the resulting collection will have a new UUID.
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-221-8/+10
|
* SERVER-36889 unshim IndexCatalogBenety Goh2018-10-111-395/+169
|
* SERVER-36302 Remove IndexCatalogImpl::_upgradeDatabaseMinorVersionIfNeeded ↵Dianna Hohensee2018-08-221-15/+3
| | | | and obsolete MMAP specific helper functions
* SERVER-33736 timestamp index updates from vector insertsEric Milkie2018-05-231-0/+6
|
* SERVER-34777 Multi-index drops should timestamp each drop individually along ↵Louis Williams2018-05-181-9/+10
| | | | with its oplog entry.
* SERVER-32645 Create a shim helper framework.ADAM David Alan Martin2018-04-301-23/+19
| | | | | | | | 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-19/+23
| | | | This reverts commit 2227f272a7a0a3e43625cb2d4a2704e1ccb6f893.
* SERVER-32645 Create a shim helper framework.ADAM David Alan Martin2018-04-271-23/+19
| | | | | | | | 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-34263 Use WT specific data format version for new unique idxr3.7.6Sulabh Mahajan2018-04-241-5/+3
|
* SERVER-33275 Remove `platform/unordered_`* headersADAM David Alan Martin2018-02-141-1/+0
| | | | | | These headers date from before C++11 support and the `::mongo::stdx::` namespace. They can be removed and uses of the names therein can be changed to `::mongo::stdx::unordered_`* forms.
* SERVER-29274 add IndexCatalog::getLongestIndexNameLength()Benety Goh2017-05-251-0/+8
|
* SERVER-29274 IndexCatalog::dropAllIndexes() returns void.Benety Goh2017-05-231-7/+7
| | | | This function throws an exception on error or fasserts.