| Age | Commit message (Collapse) | Author |
|
GitOrigin-RevId: 97352a27e7c80b429cd1f2c5a5baa07cdbf28f02
|
|
Co-authored-by: Benety Goh <benety@mongodb.com>
GitOrigin-RevId: e97b100882e14cca504952d321cedfb135321240
|
|
|
|
ScopedCollectionAcquisition
|
|
|
|
|
|
|
|
|
|
This change attaches context to the plan executor in order to distinguish
a yield request due to a write conflict from one due to a TemporarilyUnavailable
error, and to handle the two cases accordingly in the query execution code.
|
|
`TemporarilyUnavailableException` into `assert_util.h`
|
|
|
|
|
|
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.
|
|
This eliminates the need for the FAILURE status codes in
PlanStage and PlanExecutor, and brings query execution's
error reporting more in line with that of the rest of the
server. It also makes it easier for future implementations
of PlanExecutor to comply with the interface.
|
|
This patch includes also moves ownership of the collator to the ExpressionContext.
|
|
|
|
If a FETCH_STAGE encounters a record id that does not reference any
existing documents, that means either the document was deleted since
query execution encountered the index entry or their is corruption
somewhere. If the snapshot id indicates that the query has not yielded
since the time that the index entry was loaded, that leaves corruption
as the only possibility. We return and error and write to the log with
instructions on how to address potentially inconsistent data.
create mode 100644 jstests/noPassthrough/query_yields_catch_index_corruption.js
|
|
iterate docs
|
|
|
|
|
|
|
|
Rename utils/mongoutils/str.h => utils/str.h
Rename namespace mongoutils::str => str
Rename mongo::strcasecmp => str::caseInsensitiveCompare.
|
|
Remove leading comments that are just stating the filename.
Move any file-level comments below the copyright banner.
Remove leading blank lines.
|
|
Replaced PlanStage::DEAD with PlanStage::FAILURE. In the subsequent
commit, PlanExecutor::DEAD will be taken care of in the next commit
|
|
|
|
|
|
|
|
|
|
- Removes of PlanStage::invalidate().
- Removes RecordCursor::invalidate() from the storage API.
- Removes CursorManager::invalidateDocument().
|
|
on PlanStage::DEAD state
|
|
In preparation for removing the Batched Insert/Update/Delete Request parser classes.
|
|
This commit is an automated rename of all whole word instances of txn,
_txn, and txnPtr to opCtx, _opCtx, and opCtxPtr, respectively in all
.cpp and .h files in src/mongo.
|
|
produces parseable output.
|
|
Also renamed:
* WorkingSetMember::hasLoc() -> WorkingSetMember::hasRecordId
* WorkingSetMember::loc -> WorkingSetMember::recordId
|
|
Changes PlanStage::work() to be non-virtual. PlanStage::work() now
updates _commonStats and calls new pure virtual method doWork().
|
|
|
|
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.
|
|
base class
|
|
We now tell PlanExecutors to detach from their OperationContexts and to shed
all storage engine resources before stashing the ClientCursor. This is a
heavier weight operation than a normal save/restoreState which is no longer
allowed to change the OperationContext.
|
|
This is prep for adding more methods that need to propagate to children.
|
|
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.
|
|
unique_ptr
|
|
|
|
|
|
|
|
|
|
Closes #976
Signed-off-by: David Storch <david.storch@10gen.com>
|
|
|
|
|