| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This reverts commit 0cb2195939494660334db8e9d0a52509caeb621c.
|
| |
|
|
|
|
| |
This patch allows change stream queries to use speculative majority reads so that they can be used even when enableMajorityReadConcern:false. Change stream aggregation commands are allowed to use speculative majority reads as well as 'find' commands that specify a special flag. This commit also enables all change streams tests and suites on the enableMajorityReadConcern:false Evergreen variant. No optimizations for speculative majority change streams are included in this commit.
|
|
|
|
| |
This patch lays the groundwork for allowing read queries to take advantage of "speculative" majority reads, which is a mechanism for satisfying majority read guarantees without storage engine support for reading from a historical snapshot. This patch adds a flag on the ReadConcernArgs object to indicate whether a query should use the speculative behavior, and it also adds a method to the CommandInvocation interface that allows commands to optionally support speculative majority reads. The intention is to initially only utilize this behavior for change stream queries i.e. 'aggregate' and 'find' commands, but the feature is, in theory, generic.
|
| |
|
|
|
|
| |
Co-authored-by: Anthony Roy <anthony.roy@10gen.com>
|
|
|
|
|
| |
Moved the pipeline commands from BasicCommand to Command in order to
gain access to DocumentSequences.
|
|
|
|
|
|
|
|
|
|
| |
All remaining callers are transitioned to some form of usassert. This was done
with an elaborate set of vim macros to make this tractable. Therefore it
should not be considered an example of the best way to write new code, just as
an improvement on what was there before. In particular, I couldn't easily
remove Status's that are named then only used once in uassertStatusOK, nor
could I convert the pattern of checking a StatusWith<T>'s getStatus() then
calling getValue() to just call uassertStatusOK(returnsStatusWith()).
|
|
|
|
| |
for a replica set only
|
|
|
|
|
|
| |
Revert "Revert "SERVER-33065 CommandReplyBuilder and CommandInvocation""
This reverts commit 74177edb35b6ce7594e4751051010ceade592484.
Leave out the unintentional repl/ change this time.
|
|
|
|
| |
This reverts commit ad94e51e0dd40b0d0c38215a36caf75a4be48415.
|
|
|
|
|
|
|
|
|
|
|
|
| |
remove publicRun from mr_test.cpp
change explain to take OpMsgRequest
private explain
private allowsAfterClusterTime
private supportsWriteConcern supportsReadConcern
remove publicRun
cluster_explain_cmd.cpp: do not inject "$db" field.
let explain() exceptions escape
update cluster distinct explain
|
|
|
|
| |
getting interfaces without using global get function.
|
| |
|
|
|
|
|
|
| |
w/fix: update a new command to secondaryAllowed
This reverts commit d75cb425fbc3cf4b569eb1722c3f8abec45654a2.
|
|
|
|
| |
This reverts commit be24b0323d3f2d424d9e22337f4221d39001ac31.
|
|
|
|
| |
declare read_preference dep. update service_entry_opint_embedded
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
It is now only used by commands deriving from ErrmsgCommandDeprecated.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This eliminates the need to pass it in to Command::explain()
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
explain
Like other explainable commands, aggregate can now be
explained using the explain command, e.g.
db.runCommand({explain: {aggregate: ...}, verbosity:
"executionStats"}). The existing explain:true flag
corresponds to "queryPlanner" mode and is still supported.
However, explain:true cannot be specified when explaining
aggregate via the explain command.
Additional execution information is provided only in the
$cursor section of the aggregation explain output. Having
aggregation stages themselves track and report execution
info is further work.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These methods were formally used to propagate a new ExpressionContext to
stages, accumulators, or expressions which potentially needed to
comparisons. Originally, this was necessary since Pipeline parsing
happened outside of the collection lock and thus could not determine if
there was a default collation on the collection. This meant that the
collation could change after parsing and any operators that might
compare strings would need to know about it.
We have since moved parsing within the lock, so the collation can be
known at parse time and the ExpressionContext should not change. This
patch requires an ExpressionContext at construction time, and disallows
changing the collation on an ExpressionContext.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Makes cursors come into existence pinned. This fixes a
race condition in which a cursor could time out in between
being constructed/retrieved and being pinned.
- Reduces the public interface of ClientCursor. In
particular, makes ClientCursor's constructor and
destructor private.
- Cleans up header file comments in order to more clearly
indicate expected usage.
|
|
|
|
|
|
| |
This provides a way to do pre-parse validity checks. Full
parsing of the Pipeline must be done under the collection
lock, when the collation is known.
|
|
|
|
|
| |
This allows secondaries and slaves to sync NumberDecimal even while
in featureCompatibilityVersion:"3.2" mode.
|
| |
|
| |
|
|
|
|
|
| |
Users may specify a default collation when creating a view. Operations involving
a view cannot override the view's default collation.
|
| |
|
|
|
|
| |
Merges authz checks for create, collMod and aggregate into AuthorizationSession.
|
| |
|
| |
|