MCPcopy
hub / github.com/uber/aresdb / estimateExpressionEvaluationMemUsage

Method estimateExpressionEvaluationMemUsage

query/aql_processor.go:1166–1193  ·  view source on GitHub ↗

memory usage duration expression (filter, dimension, measure) evaluation

(inputSize int)

Source from the content-addressed store, hash-verified

1164
1165// memory usage duration expression (filter, dimension, measure) evaluation
1166func (qc *AQLQueryContext) estimateExpressionEvaluationMemUsage(inputSize int) (memUsage int) {
1167 // filter expression evaluation
1168 for _, filter := range qc.OOPK.MainTableCommonFilters {
1169 _, maxExpMemUsage := estimateScratchSpaceMemUsage(filter, inputSize, true)
1170 utils.GetQueryLogger().Debugf("Filter %+v: maxExpMemUsage=%d", filter, maxExpMemUsage)
1171 memUsage = int(math.Max(float64(memUsage), float64(maxExpMemUsage)))
1172 }
1173
1174 for _, filter := range qc.OOPK.ForeignTableCommonFilters {
1175 _, maxExpMemUsage := estimateScratchSpaceMemUsage(filter, inputSize, true)
1176 utils.GetQueryLogger().Debugf("Filter %+v: maxExpMemUsage=%d", filter, maxExpMemUsage)
1177 memUsage = int(math.Max(float64(memUsage), float64(maxExpMemUsage)))
1178 }
1179
1180 // dimension expression evaluation
1181 for _, dimension := range qc.OOPK.Dimensions {
1182 _, maxExpMemUsage := estimateScratchSpaceMemUsage(dimension, inputSize, true)
1183 utils.GetQueryLogger().Debugf("Dimension %+v: maxExpMemUsage=%d", dimension, maxExpMemUsage)
1184 memUsage = int(math.Max(float64(memUsage), float64(maxExpMemUsage)))
1185 }
1186
1187 // measure expression evaluation
1188 _, maxExpMemUsage := estimateScratchSpaceMemUsage(qc.OOPK.Measure, inputSize, true)
1189 utils.GetQueryLogger().Debugf("Measure %+v: maxExpMemUsage=%d", qc.OOPK.Measure, maxExpMemUsage)
1190 memUsage = int(math.Max(float64(memUsage), float64(maxExpMemUsage)))
1191
1192 return memUsage
1193}
1194
1195// Note: we only calculate Sort memory usage
1196// since sort memory usage is larger than reduce

Callers 2

Calls 3

GetQueryLoggerFunction · 0.92
DebugfMethod · 0.65

Tested by

no test coverage detected