diff options
author | David Storch <david.storch@10gen.com> | 2014-10-29 18:56:51 -0400 |
---|---|---|
committer | David Storch <david.storch@10gen.com> | 2014-11-04 14:24:14 -0500 |
commit | c8012ebc991cd4db85e63c4c61883aef3b793498 (patch) | |
tree | 9a0b3fbd3f1b4049b103b95690caaf3db2a9dc0d /src/mongo/db/exec/plan_stage.h | |
parent | d5f6eb21a94a39bd39c3c7a7b0ac107aca33a7e4 (diff) | |
download | mongo-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.h | 13 |
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, |