Pair<Integer, SpeculationType> rowKeyPair = (Pair<Integer, SpeculationType>) rowKey;
Integer partition = rowKeyPair.getFirst();
SpeculationType specType = rowKeyPair.getSecond();
PartitionExecutor.Debug executorDebug = hstore_site.getPartitionExecutor(partition).getDebugContext();
SpecExecScheduler.Debug specExecDebug = executorDebug.getSpecExecScheduler().getDebugContext();
SpecExecProfiler profiler = specExecDebug.getProfiler(specType);
assert(profiler != null);
int offset = columnNameToIndex.get("PARTITION");
double total = (double)profiler.total_time.getInvocations();
rowValues[offset++] = partition;
rowValues[offset++] = specType.toString();
rowValues[offset++] = profiler.success;
rowValues[offset++] = profiler.success / total;
rowValues[offset++] = profiler.interrupts;
rowValues[offset++] = profiler.interrupts / total;
rowValues[offset++] = MathUtil.weightedMean(profiler.queue_size);
rowValues[offset++] = HistogramUtil.stdev(profiler.queue_size);
rowValues[offset++] = MathUtil.weightedMean(profiler.num_comparisons);
rowValues[offset++] = HistogramUtil.stdev(profiler.num_comparisons);
rowValues[offset++] = MathUtil.weightedMean(profiler.num_matches);
rowValues[offset++] = HistogramUtil.stdev(profiler.num_matches);
rowValues[offset++] = MathUtil.weightedMean(profiler.num_executed);
rowValues[offset++] = HistogramUtil.stdev(profiler.num_executed);
List<Long> history = new ArrayList<Long>();
for (ProfileMeasurement pm : profiler.getProfileMeasurements()) {
rowValues[offset++] = pm.getTotalThinkTime();
rowValues[offset++] = pm.getInvocations();
rowValues[offset++] = MathUtil.stdev(pm.getHistory(history));
history.clear();
} // FOR