summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/working_set.cpp
AgeCommit message (Collapse)Author
2024-08-02SERVER-93022 Move db/bson directory to db/query (#25651)kmznam
GitOrigin-RevId: bcb7083ade032c60af97f4fafa6131ca3a948237
2024-04-04SERVER-87234 Implement batched PlanExecutorImpl::getNext (#19746) (#20769)Alya Carina Berciu
GitOrigin-RevId: 62ccfa753410b581c5a67960e6c0dc3abcde14ba
2024-04-03Revert "SERVER-87234 Implement batched PlanExecutorImpl::getNext (#19746)"auto-revert-processor
This reverts commit 4bb4727ea523facbd77ebf4ce62935ae0138735e. GitOrigin-RevId: 184d638d6557ea2ede26a1d00578ffa643148a6a
2024-04-03SERVER-87234 Implement batched PlanExecutorImpl::getNext (#19746)Alya Carina Berciu
GitOrigin-RevId: 4bb4727ea523facbd77ebf4ce62935ae0138735e
2023-09-29SERVER-77158 apply performance-move-const-arg clang tidy rule for db/execMatt Boros
2023-09-23SERVER-81059 bulk-revert of include of boost iif.hppBilly Donahue
2023-06-22SERVER-77044 IWYU Automated changes for up to end ratio 0.4Daniel Moody
2023-05-23SERVER-77327: replace verify() with MONGO_verify()Colin Stolley
2023-01-24SERVER-72707 Change how classic query engine RequiresIndexStage looks up ↵Gregory Wlodarek
IndexCatalogEntry after yield
2022-09-29SERVER-66511 Improve performances of sort+limit stages in SBEAlberto Massari
2022-07-27SERVER-68246 rewrite calls to boost::optional get and is_initializedBilly Donahue
2021-09-08SERVER-58949 RecordId supports long stringsLouis Williams
2021-04-09SERVER-55779 Clustered collections should store RecordIds as KeyStringLouis Williams
2021-02-24SERVER-54721 WorkingSetMember to support serializing and de-serializing ↵Gregory Wlodarek
ObjectId RecordIds
2021-02-10SERVER-53989 Generalize RecordId to store small binary stringsLouis Williams
2021-01-29SERVER-53982 RecordId supports ObjectId typeLouis Williams
Allow RecordId to store either an int64_t or ObjectId. This type is compact and cheap to copy. It assumes that callers who attempt to observe the underlying data are aware of its underlying type.
2020-02-05SERVER-45854 Hold WorkingSetMembers at a distance for sorting.David Storch
This change improves the performance of blocking sort operations executed in the PlanStage layer using the SortStage.
2020-01-08SERVER-45192 don't allocate during WSM::clearIan Boros
2019-09-26SERVER-43629 Improve Document/Value performanceMartin Neupauer
2019-09-13SERVER-42979 Implement WorkingSet::extract() and WorkingSet::emplace().David Storch
Also replaces WorkingSetMember::isSuspicious with a scheme that associates a snapshot id with every index key. This is needed because extracted WorkingSetMembers are not discoverable from the WorkingSet, and thus cannot be marked as suspicious in preparation for yield.
2019-09-12SERVER-42981 Make WorkingSetMember compatible for use with the Sorter.David Storch
The bulk of this change is to implement serialization and deserialization routines for WorkingSetMember, so that the Sorter can spill WorkingSetMembers to disk. In addition, this changes the SortExecutor to sort WorkingSetMembers internally as opposed to sorting Documents.
2019-08-29SERVER-42181 Make WorkingSetMember hold Document instead of BSONObjMartin Neupauer
SERVER-42157 Unowned mode for Document/Value
2019-07-26SERVER-42288 Consolidate Document and WorkingSetMember metadata implementations.David Storch
2019-06-14SERVER-41071 Replace NULL and 0 with nullptrA. Jesse Jiryu Davis
2019-02-13SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue
Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
2018-12-28SERVER-37831 Refactor ProjectionStage/ProjectionExecJacob Evans
2018-10-22SERVER-37651 Update header files with new licenseRamon Fernandez
2018-09-05SERVER-36156 Delete RecordFetcher.David Storch
2018-08-29SERVER-16857 Delete MMAPv1 diskloc invalidations.David Storch
- Removes of PlanStage::invalidate(). - Removes RecordCursor::invalidate() from the storage API. - Removes CursorManager::invalidateDocument().
2018-08-02SERVER-20299 Delete KEEP_MUTATIONS stage.David Storch
Removes the associated flagForReview() mechanism from WorkingSet.
2018-02-14SERVER-33275 Remove `platform/unordered_`* headersADAM David Alan Martin
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.
2016-06-03SERVER-23114 Move functions involving dotted paths to separate library.Max Hirschhorn
The ability to specify a dotted path (e.g. "a.b") to traverse through embedded objects and array elements isn't defined in the BSON specification and so it doesn't belong in our BSON library. The following functions have been defined within a 'dotted_path_support' namespace and accept an additional BSONObj as their first argument to replace the associated method on the BSONObj class. - extractElementAtPath() is functionally equivalent to BSONObj::getFieldDotted(). - extractElementAtPathOrArrayAlongPath() is functionally equivalent to BSONObj::getFieldDottedOrArray(). - extractAllElementsAlongPath() is functionally equivalent to BSONObj::getFieldsDotted(). - extractElementsBasedOnTemplate() is functionally equivalent to BSONObj::extractFields(). - compareObjectsAccordingToSort() is functionally equivalent to BSONObj::woSortOrder().
2016-02-05SERVER-18826 Rename WorkingSet State Names from LOC to RIDJames Wahlin
Also renamed: * WorkingSetMember::hasLoc() -> WorkingSetMember::hasRecordId * WorkingSetMember::loc -> WorkingSetMember::recordId
2015-08-27SERVER-16444 Only make BSONObj underlying WSM owned if not mmapv1.Max Hirschhorn
Resolves the performance regression with mmapv1 introduced by 764e0c4 where documents were being copied in PlanStages that perform invalidations. Partially reverted changes to DeleteStage and UpdateStage because the document to return is not guaranteed to be owned after makeObjOwnedIfNeeded() is called when running with mmapv1.
2015-08-24SERVER-16444 Copy data in the query subsystem as needed.Max Hirschhorn
A WorkingSetMember in the LOC_AND_OBJ state must be made owned when: 1. Its WorkingSetID is cached across multiple calls to work(). 2. Multiple calls to next(), seekExact(), saveState(), etc. are performed on the same WiredTiger cursor in a single work() call. No longer necessary to always copy data out of WiredTiger buffers.
2015-07-01SERVER-18961 avoid iterating the entire working set when preparing for a ↵David Storch
WiredTiger snapshot change Improves performance for query plans with a blocking stage when using the WiredTiger storage engine. In particular, full text search and geoNear queries should benefit.
2015-06-20SERVER-18579: Clang-Format - reformat code, no comment reflowMark Benvenuto
2015-02-13SERVER-17062 Make query execution handle WriteConflictExceptions where possibleMathias Stearn
2015-02-02SERVER-17132: Added SnapshotId and Snapshotted and use them in query to make ↵Eliot Horowitz
sure we use correct versions of docs
2015-01-15SERVER-13256 Add usings and qualifications for names from namespace stdAndrew Morrow
2015-01-07SERVER-16675 force fetch RecordIds buffered by the query system on saveState()David Storch
This fixes an issue with WiredTiger query isolation.
2014-11-26SERVER-13679 Replace DiskLoc with RecordId outside of MMAPv1Mathias Stearn
Operations: sed -i -e 's/\<DiskLoc\>/RecordId/g' sed -i -e 's/\<DiskLocs\>/RecordIds/g' sed -i -e 's/\<minDiskLoc\>/RecordId::min()/g' sed -i -e 's/\<maxDiskLoc\>/RecordId::max()/g' sed -i -e 's/\<getDiskLoc\>/getRecordId/g'' Changes under mmap_v1 were reverted and redone by hand as needed.
2014-11-04SERVER-15665 MMAP v1 requests yields during page faults via NEED_FETCHDavid Storch
2014-07-08SERVER-14408 access stats directly from execution stagesDavid Storch
2014-06-06SERVER-8994: Build fixes for boost 1.55.0 with gcc & msvcMark Benvenuto
2014-05-13SERVER-13674: Refactor CachedPlanRunner and MultiPlanRunner as stagesCraig Harris
2014-02-27SERVER-12868 added getMemUsage to WorkingSetMemberBenety Goh
2014-01-21SERVER-12113 keep mutated docs in query results when it's sane toHari Khalsa
2013-11-22SERVER-10566 WorkingSet cleanup and optimizationMathias Stearn
Changes: * Documented some contracts * Marked noncopyable classes as such * Changed WorkingSetID to size_t from long * Inlined WorkingSet::get since it is simple and very hot * WorkingSetMembers are now pooled and reused * Stopped using unordered_(map|set) ** _data became a vector with freelist ** _flagged became a bool on each member of _data ** _computed became an embedded array
2013-11-09SERVER-10026 add computed data to projectionHari Khalsa