summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/plan_stage.h
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2014-10-29 18:56:51 -0400
committerDavid Storch <david.storch@10gen.com>2014-11-04 14:24:14 -0500
commitc8012ebc991cd4db85e63c4c61883aef3b793498 (patch)
tree9a0b3fbd3f1b4049b103b95690caaf3db2a9dc0d /src/mongo/db/exec/plan_stage.h
parentd5f6eb21a94a39bd39c3c7a7b0ac107aca33a7e4 (diff)
downloadmongo-c8012ebc991cd4db85e63c4c61883aef3b793498.tar.gz
SERVER-15665 MMAP v1 requests yields during page faults via NEED_FETCH
Diffstat (limited to 'src/mongo/db/exec/plan_stage.h')
-rw-r--r--src/mongo/db/exec/plan_stage.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mongo/db/exec/plan_stage.h b/src/mongo/db/exec/plan_stage.h
index 401b8abb527..a135a4b1414 100644
--- a/src/mongo/db/exec/plan_stage.h
+++ b/src/mongo/db/exec/plan_stage.h
@@ -119,6 +119,19 @@ namespace mongo {
// nothing output in the out parameter.
NEED_TIME,
+ // The storage engine says something isn't in memory. Fetch it.
+ //
+ // Full fetch semantics:
+ //
+ // The fetch-requesting stage populates the out parameter of work(...) with a WSID that
+ // refers to a WSM with a Fetcher*. Each stage that receives a NEED_FETCH from a child
+ // must propagate the NEED_FETCH up and perform no work. The plan executor is
+ // responsible for paging in the data upon receipt of a NEED_FETCH. The plan executor
+ // does NOT free the WSID of the requested fetch. The stage that requested the fetch
+ // holds the WSID of the loc it wants fetched. On the next call to work() that stage
+ // can assume a fetch was performed on the WSM that the held WSID refers to.
+ NEED_FETCH,
+
// Something went wrong but it's not an internal error. Perhaps our collection was
// dropped or state deleted.
DEAD,