| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
the sort option
(cherry picked from commit 5b5b505f0db2e145f40bde4e2ac2d5c56bc0b263)
|
|
|
|
| |
and dollars fields
|
|
|
|
|
|
| |
sync_source_enters_quiesce_mode.js
Check the failpoint from the SBE executor.
|
|
|
|
| |
CommandReply suffixes
|
| |
|
|
|
|
| |
non-change streams aggregations
|
|
|
|
|
|
|
|
| |
SBE will now, like the classic engine, use
saveLockStateAndUnlock() in order to yield any locks held
higher on the stack. Additionally, this patch enables the
'concurrency' suite in the SBE build variant in order to
provide additional yielding-related test coverage.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
owned by AutoGetCollection
RequiresCollectionStage now holds a pointer to CollectionPtr owned by an AutoGetCollection.
When we save and restore the executor a new CollectionPtr pointer needs to be assigned.
Plan executors can no longer be created with temporary CollectionPtr instances and their interface have been changed to take pointers to avoid binding to rvalues.
RequiresCollectionStage no longer loads collections from the catalog and will be in sync with the owning AutoGetCollection.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 allows classic PlanStages to be removed from the
PlanExecutor interface. It also positions the code base well
for adding SBE support for all of the CRUD commands.
|
| |
|
| |
|
|
|
|
| |
getNextDocument returns ADVANCED
|
| |
|
|
|
|
|
|
| |
After this change, the interface is sensible for both the classic
and SBE engines (with the exception of 'getRootStage()' which is left
as future work).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the master branch
This is an initial commit for the slot-based execution engine (SBE) which contains:
* Implementation of the core slot-based engine.
* The SBE stage builder, which is responsible for translating a QuerySolution tree
into an SBE plan.
* Other changes necessary for integration with the find command.
Co-authored-by: Anton Korshunov <anton.korshunov@mongodb.com>
Co-authored-by: Justin Seyster <justin.seyster@mongodb.com>
Co-authored-by: David Storch <david.storch@mongodb.com>
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
the no-overlap time
After yielding and reacquiring locks in a query, the preconditions that were used to select our
ReadSource initially need to be checked again. Queries hold an AutoGetCollectionForRead RAII
lock for their lifetime, which may select a ReadSource based on state (e.g. replication
state). After a query yields its locks, this state may have changed, invalidating our current
choice of ReadSource.
|
|
|
|
|
|
| |
- Remove several legacy logger/ files
- Convert all MONGO_LOG_DEFAULT_COMPONENT to the LOGV2 version.
- Globally replace logger::{LogSeverity,LogComponent} => logv2::
|
| |
|
|
|
|
| |
retrieval in PlanExecutor
|
|
|
|
|
|
|
| |
o converting some log lines that were missed
o fixing some missing includes
create mode 100644 src/mongo/transport/ismaster_metrics.cpp
|
| |
|
| |
|
|
|
|
| |
resumeToken is returned and can be used to resume
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
We do not create and destry Document (and DocumentStorage) objects but reuse them.
This saves on the memory allocation/deallocation.
|
| |
|
|
|
|
| |
iterate docs
|
|
|
|
| |
CollectionCatalog::get().lookupCollectionByNamespace()
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't use MONGO_INITIALIZER to declare each fail point.
We only need one init task in total: freeze and iterate the registry.
- remove MONGO_FAIL_POINT_DECLARE macro (extern)
- remove MONGO_FAIL_POINT_SHOULD_FAIL macro (FailPoint::shouldFail)
- remove MONGO_FAIL_POINT_BLOCK_IF (FailPoint::executeIf)
- remove MONGO_FAIL_POINT_BLOCK (FailPoint::execute)
- clean up FailPointRegistry and fail_point_service implementation.
|
|
|
|
| |
SERVER-42157 Unowned mode for Document/Value
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The streaming $group optimization was never fully implemented,
so the code was disabled. This patch removes the dead code, including
DocumentSource::getOutputSorts().
|
|
|
|
| |
StringData
|
|
|
|
|
| |
Takes care of PlanExecutor states. In some cases we log more
information for former DEAD state scenarios now.
|
|
|
|
|
| |
Replaced PlanStage::DEAD with PlanStage::FAILURE. In the subsequent
commit, PlanExecutor::DEAD will be taken care of in the next commit
|
| |
|
| |
|