summaryrefslogtreecommitdiff
path: root/src/mongo/s/query/async_results_merger.cpp
diff options
context:
space:
mode:
authorRishab Joshi <rishab.joshi@mongodb.com>2021-06-24 09:53:20 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-06-24 14:10:30 +0000
commit145673c2d8388f47a707e827d83cdbf71e5ce424 (patch)
tree66c3cb9ff1e2e2c94d03269b136438e7142e77dc /src/mongo/s/query/async_results_merger.cpp
parent045085188f8b79e3f01a76ccb9180bdb8582d701 (diff)
downloadmongo-145673c2d8388f47a707e827d83cdbf71e5ce424.tar.gz
SERVER-58049: Move change streams invalidation logic in ARM to
scheduleGetMores.
Diffstat (limited to 'src/mongo/s/query/async_results_merger.cpp')
-rw-r--r--src/mongo/s/query/async_results_merger.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/mongo/s/query/async_results_merger.cpp b/src/mongo/s/query/async_results_merger.cpp
index 236729e2359..ed7da3a2545 100644
--- a/src/mongo/s/query/async_results_merger.cpp
+++ b/src/mongo/s/query/async_results_merger.cpp
@@ -489,15 +489,15 @@ Status AsyncResultsMerger::_askForNextBatch(WithLock, size_t remoteIndex) {
Status AsyncResultsMerger::scheduleGetMores() {
stdx::lock_guard<Latch> lk(_mutex);
+ return _scheduleGetMores(lk);
+}
+Status AsyncResultsMerger::_scheduleGetMores(WithLock lk) {
+ // Before scheduling more work, check whether the cursor has been invalidated.
if (feature_flags::gFeatureFlagChangeStreamsOptimization.isEnabledAndIgnoreFCV()) {
_assertNotInvalidated(lk);
}
- return _scheduleGetMores(lk);
-}
-
-Status AsyncResultsMerger::_scheduleGetMores(WithLock lk) {
// Schedule remote work on hosts for which we need more results.
for (size_t i = 0; i < _remotes.size(); ++i) {
auto& remote = _remotes[i];
@@ -542,11 +542,6 @@ StatusWith<executor::TaskExecutor::EventHandle> AsyncResultsMerger::nextEvent()
"nextEvent() called before an outstanding event was signaled");
}
- // Check if the cursor should be invalidated.
- if (feature_flags::gFeatureFlagChangeStreamsOptimization.isEnabledAndIgnoreFCV()) {
- _assertNotInvalidated(lk);
- }
-
auto getMoresStatus = _scheduleGetMores(lk);
if (!getMoresStatus.isOK()) {
return getMoresStatus;