summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/and_hash.cpp
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2014-02-26 16:02:19 -0500
committerBenety Goh <benety@mongodb.com>2014-02-27 19:09:24 -0500
commit94cbec5589f05b257a48fd73e1153c02a5ae1ff5 (patch)
tree2c4a87ae561637224997da11c58e54f5369cd7a3 /src/mongo/db/exec/and_hash.cpp
parent5e120d33c761d2dd89ae260751ab1368c512a8d5 (diff)
downloadmongo-94cbec5589f05b257a48fd73e1153c02a5ae1ff5.tar.gz
SERVER-12868 added getMemUsage to WorkingSetMember
Diffstat (limited to 'src/mongo/db/exec/and_hash.cpp')
-rw-r--r--src/mongo/db/exec/and_hash.cpp24
1 files changed, 5 insertions, 19 deletions
diff --git a/src/mongo/db/exec/and_hash.cpp b/src/mongo/db/exec/and_hash.cpp
index d30a2e0123e..28a6aadd779 100644
--- a/src/mongo/db/exec/and_hash.cpp
+++ b/src/mongo/db/exec/and_hash.cpp
@@ -36,24 +36,10 @@
namespace {
- using namespace mongo;
-
// Upper limit for buffered data.
// Stage execution will fail once size of all buffered data exceeds this threshold.
const size_t kDefaultMaxMemUsageBytes = 32 * 1024 * 1024;
- /**
- * Returns expected memory usage of working set member
- */
- size_t getMemberMemUsage(WorkingSetMember* member) {
- size_t memUsage = 0;
- for (size_t i = 0; i < member->keyData.size(); ++i) {
- const IndexKeyDatum& keyDatum = member->keyData[i];
- memUsage += keyDatum.keyData.objsize();
- }
- return memUsage;
- }
-
} // namespace
namespace mongo {
@@ -291,7 +277,7 @@ namespace mongo {
_dataMap[member->loc] = id;
// Update memory stats.
- _memUsage += getMemberMemUsage(member);
+ _memUsage += member->getMemUsage();
++_commonStats.needTime;
return PlanStage::NEED_TIME;
@@ -361,12 +347,12 @@ namespace mongo {
// We have a hit. Copy data into the WSM we already have.
_seenMap.insert(member->loc);
WorkingSetMember* olderMember = _ws->get(_dataMap[member->loc]);
- size_t memUsageBefore = getMemberMemUsage(olderMember);
+ size_t memUsageBefore = olderMember->getMemUsage();
AndCommon::mergeFrom(olderMember, *member);
// Update memory stats.
- _memUsage += getMemberMemUsage(olderMember) - memUsageBefore;
+ _memUsage += olderMember->getMemUsage() - memUsageBefore;
}
_ws->free(id);
++_commonStats.needTime;
@@ -385,7 +371,7 @@ namespace mongo {
// Update memory stats.
WorkingSetMember* member = _ws->get(toErase->second);
- _memUsage -= getMemberMemUsage(member);
+ _memUsage -= member->getMemUsage();
_ws->free(toErase->second);
_dataMap.erase(toErase);
@@ -498,7 +484,7 @@ namespace mongo {
}
// Update memory stats.
- _memUsage -= getMemberMemUsage(member);
+ _memUsage -= member->getMemUsage();
// The loc is about to be invalidated. Fetch it and clear the loc.
WorkingSetCommon::fetchAndInvalidateLoc(member);