Load DBLP data once instead of reloading per index config

The Manager previously called setupBoth() on every test step, which
dropped both PostgreSQL and MariaDB tables and re-imported the full
DBLP TSVs (~9 reloads across 2 DBs in a single run, even though only
PostgreSQL was used). Now data is loaded once via load_data_postgres()
and only the indexes are swapped between tests via apply_indexes_postgres().

A reset_postgres(config, reload_data=False) helper lets callers force
a full reload when needed -- used after 'cl-both' tests, since CLUSTER
physically reorders the table and dropping the index alone does not
restore the original layout.

Also fixes two bugs found while reading the code:
- baseStrategy.run iterated 'self.queries' instead of '.items()',
  which would crash on the first unpack.
- main.py was missing an execute() call after the Aufgabe 3 'cl-both'
  setup, silently skipping that test.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
This commit is contained in:
Sandro Fuetsch Titan
2026-05-26 19:50:07 +02:00
co-authored by Claude Opus 4.7
parent 8a8926cef8
commit d8a906e2d4
4 changed files with 101 additions and 63 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ class BaseStrategy:
self.queries = queries
def run(self):
for strategy, query in self.queries:
for strategy, query in self.queries.items():
print("Running: " + strategy + "\n")
start = time.time()
self.cursor.execute(query)