| Age | Commit message (Collapse) | Author |
|
GitOrigin-RevId: bcb7083ade032c60af97f4fafa6131ca3a948237
|
|
GitOrigin-RevId: 62ccfa753410b581c5a67960e6c0dc3abcde14ba
|
|
This reverts commit 4bb4727ea523facbd77ebf4ce62935ae0138735e.
GitOrigin-RevId: 184d638d6557ea2ede26a1d00578ffa643148a6a
|
|
GitOrigin-RevId: 4bb4727ea523facbd77ebf4ce62935ae0138735e
|
|
|
|
|
|
|
|
|
|
IndexCatalogEntry after yield
|
|
|
|
|
|
|
|
|
|
ObjectId RecordIds
|
|
|
|
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.
|
|
This change improves the performance of blocking sort
operations executed in the PlanStage layer using the
SortStage.
|
|
|
|
|
|
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.
|
|
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.
|
|
SERVER-42157 Unowned mode for Document/Value
|
|
|
|
|
|
Remove leading comments that are just stating the filename.
Move any file-level comments below the copyright banner.
Remove leading blank lines.
|
|
|
|
|
|
|
|
- Removes of PlanStage::invalidate().
- Removes RecordCursor::invalidate() from the storage API.
- Removes CursorManager::invalidateDocument().
|
|
Removes the associated flagForReview() mechanism from
WorkingSet.
|
|
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.
|
|
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().
|
|
Also renamed:
* WorkingSetMember::hasLoc() -> WorkingSetMember::hasRecordId
* WorkingSetMember::loc -> WorkingSetMember::recordId
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
sure we use correct versions of docs
|
|
|
|
This fixes an issue with WiredTiger query isolation.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|