In SERVER-35981 and /SERVER-35982 we have added queryHash to various query debug mechanisms, an 8 character hex string representing a 32 bit unsigned hash value. This hash can identify instances of queries that the system considers of the shape, and thus share the same plan cache entry. The intention is that this hash will help to correlate events related to the same plan cache entry, which is important for diagnosing query performance issues in which the plan cache is involved.
This ticket also tracks the work to add queryHash to the queryPlanner section of explain output. For instance, the output could look something like this for a simple query:
MongoDB Enterprise > db.c.find({a: 2}).explain() { "queryPlanner" : { "plannerVersion" : 1, "namespace" : "test.c", "indexFilterSet" : false, "parsedQuery" : { "a" : { "$eq" : 2 } }, "queryHash" : "100FCEBA", // THIS IS NEW! "winningPlan" : { "stage" : "FETCH", "inputStage" : { "stage" : "IXSCAN", "keyPattern" : { "a" : 1 }, "indexName" : "a_1", "isMultiKey" : false, "multiKeyPaths" : { "a" : [ ] }, "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "direction" : "forward", "indexBounds" : { "a" : [ "[2.0, 2.0]" ] } } }, "rejectedPlans" : [ ] }, "serverInfo" : { "host" : "storchbox", "port" : 27017, "version" : "0.0.0", "gitVersion" : "unknown" }, "ok" : 1 }