Skip to content

Commit 55efb07

Browse files
authored
Store additional data for hnsw benchmarks (#255)
* Store raw precision values * Store logs for docker container * Small improvement * Update scheduled time
1 parent 93bd421 commit 55efb07

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

.github/workflows/continuous-benchmark-hnsw.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ name: Continuous Benchmark Hnsw Indexing
33
on:
44
workflow_dispatch:
55
schedule:
6-
# Run every day at 5am
7-
- cron: "0 5 * * *"
6+
# Run every day at 3am
7+
- cron: "0 3 * * *"
88

99
# Restrict to only running this workflow one at a time.
1010
# Any new runs will be queued until the previous run is complete.

ansible/playbooks/files/hnsw-indexing/get_score.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,17 @@ def main():
3030
precision_after_iteration = given_output.get("precision_after_iteration", 1.0)
3131
score = round(precision_before_iteration / precision_after_iteration, 4)
3232
indexing_time = given_output.get("indexing_total_time_s", 0.0)
33-
results[label] = {"score": score, "indexing_time": indexing_time}
33+
results[label] = {
34+
"indexing_time": indexing_time,
35+
"precision_before_iteration": precision_before_iteration,
36+
"precision_after_iteration": precision_after_iteration,
37+
"precision_score": score,
38+
}
3439

3540
result = ""
3641
for label, data in results.items():
37-
result += f"{label}_score={data['score']},{label}_indexing_time={data['indexing_time']},"
42+
for key, value in data.items():
43+
result += f"{label}_{key}={value},"
3844
print(result)
3945
return result
4046

ansible/playbooks/playbook-hnsw-index.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@
5959
ansible.builtin.shell: |
6060
result="{{ hostvars['benchmark-machine']['precision_score'] }}"
6161
engine="{{ server.name }}-{{ server.version }}"
62-
score=$(echo "$result" | grep -oP "${engine}_score=\K[^,]+")
62+
precision_before_iteration=$(echo "$result" | grep -oP "${engine}_precision_before_iteration=\K[^,]+")
63+
precision_after_iteration=$(echo "$result" | grep -oP "${engine}_precision_after_iteration=\K[^,]+")
64+
precision_score=$(echo "$result" | grep -oP "${engine}_precision_score=\K[^,]+")
6365
indexing_time_s=$(echo "$result" | grep -oP "${engine}_indexing_time=\K[^,]+")
6466
6567
MEASURE_TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
@@ -70,6 +72,8 @@
7072
dataset,
7173
measure_timestamp,
7274
bench_name,
75+
precision_before_iteration,
76+
precision_after_iteration,
7377
precision_score,
7478
indexing_time_s
7579
) VALUES (
@@ -78,7 +82,9 @@
7882
'{{ dataset_name }}',
7983
'${MEASURE_TIMESTAMP}',
8084
'{{ bench }}',
81-
'${score}',
85+
'${precision_before_iteration}',
86+
'${precision_after_iteration}',
87+
'${precision_score}',
8288
'${indexing_time_s}'
8389
);"
8490
docker exec -it qdrant-postgres psql -U qdrant -d postgres -c "${pg_query}"

ansible/playbooks/roles/run-hnsw-indexing-common/tasks/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@
4343
register: bench_result
4444
ignore_errors: yes
4545

46+
- name: Save Docker container logs
47+
ansible.builtin.shell: |
48+
docker logs qdrant-continuous > "{{ working_dir }}/log-qdrant-container-{{ server_name }}-{{ server_version }}-{{ bench }}.log" 2>&1
49+
ignore_errors: yes
50+
4651
- name: Show script output if failed
4752
ansible.builtin.shell: cat "{{ working_dir }}/log-{{ server_name }}-{{ server_version }}-{{ bench }}.log"
4853
when: bench_result.rc != 0

0 commit comments

Comments
 (0)