diff --git a/test_runner/performance/test_bulk_insert.py b/test_runner/performance/test_bulk_insert.py index aafc315576..62301f3919 100644 --- a/test_runner/performance/test_bulk_insert.py +++ b/test_runner/performance/test_bulk_insert.py @@ -1,7 +1,7 @@ -import shutil from contextlib import closing from fixtures.compare_fixtures import NeonCompare, PgCompare +from fixtures.pageserver.utils import wait_tenant_status_404 from fixtures.pg_version import PgVersion @@ -42,17 +42,14 @@ def measure_recovery_time(env: NeonCompare): client = env.env.pageserver.http_client() pg_version = PgVersion(client.timeline_detail(env.tenant, env.timeline)["pg_version"]) - # Stop pageserver and remove tenant data - env.env.pageserver.stop() - timeline_dir = env.env.pageserver.timeline_dir(env.tenant, env.timeline) - shutil.rmtree(timeline_dir) - - # Start pageserver - env.env.pageserver.start() + # Delete the Tenant in the pageserver: this will drop local and remote layers, such that + # when we "create" the Tenant again, we will replay the WAL from the beginning. + client.tenant_delete(env.tenant) + wait_tenant_status_404(client, env.tenant, iterations=60, interval=0.5) + client.tenant_create(new_tenant_id=env.tenant) # Measure recovery time with env.record_duration("wal_recovery"): - # Create the tenant, which will start walingest client.timeline_create(pg_version, env.tenant, env.timeline) # Flush, which will also wait for lsn to catch up