MCPcopy Create free account
hub / github.com/apache/impala / GetPoolMemReserved

Method GetPoolMemReserved

be/src/runtime/mem-tracker.cc:177–197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

175}
176
177int64_t MemTracker::GetPoolMemReserved() {
178 // Pool trackers should have a pool_name_ and no limit.
179 DCHECK(!pool_name_.empty());
180 DCHECK_EQ(limit_, -1) << LogUsage(UNLIMITED_DEPTH);
181
182 int64_t mem_reserved = 0L;
183 lock_guard<SpinLock> l(child_trackers_lock_);
184 for (MemTracker* child : child_trackers_) {
185 int64_t child_limit = child->limit();
186 bool query_exec_finished = child->query_exec_finished_.Load() != 0;
187 if (child_limit > 0 && !query_exec_finished) {
188 // Make sure we don't overflow if the query limits are set to ridiculous values.
189 mem_reserved += std::min(child_limit, MemInfo::physical_mem());
190 } else {
191 DCHECK(query_exec_finished || child_limit == -1)
192 << child->LogUsage(UNLIMITED_DEPTH);
193 mem_reserved += child->consumption();
194 }
195 }
196 return mem_reserved;
197}
198
199MemTracker* PoolMemTrackerRegistry::GetRequestPoolMemTracker(
200 const string& pool_name, bool create_if_not_present) {

Callers 1

UpdateMemTrackerStatsMethod · 0.80

Calls 6

minFunction · 0.85
LogUsageMethod · 0.80
emptyMethod · 0.45
limitMethod · 0.45
LoadMethod · 0.45
consumptionMethod · 0.45

Tested by

no test coverage detected