def analyze_mg4j_index(self):
results = IndexCharacteristics("MG4J", self.ingestion_thread_count, self.thread_counts)
# Compute bits/posting.
with open(self.mg4j_run_queries_log[0], 'r') as myfile:
run_queries_log = myfile.read()
posting_count = float(re.findall("postings=(\d+\.?\d+)", run_queries_log)[0])
pointers = os.path.join(self.mg4j_index_path, self.basename + "-text.pointers");
results.bits_per_posting = os.path.getsize(pointers) / posting_count * 8.0
# Need to annotate build log from Python since Java code doesn't print time.
results.total_ingestion_time = math.nan
for i, threads in enumerate(self.thread_counts):
run_queries_log = self.mg4j_run_queries_log[i]
with open(run_queries_log, 'r') as myfile:
data = myfile.read()
results.append_float_field("qps", "QPS:", data)
results.append_float_field("mps", "MPS:", data)
results.append_float_field("mpq", "MPQ:", data)
results.append_float_field("mean_query_latency", "Mean query latency:", data)
results.planning_overhead.append(math.nan)
# MG4J false positive rate is always zero.
results.false_positive_rate = 0;
results.false_negative_rate = 0;
return results
###########################################################################
#
# Partitioned Elias-Fano (PEF)
#
###########################################################################
评论列表
文章目录