mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-10 06:52:55 +00:00
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from contextlib import closing
|
|
|
|
from fixtures.zenith_fixtures import ZenithEnvBuilder
|
|
from fixtures.benchmark_fixture import ZenithBenchmarker
|
|
|
|
|
|
def test_startup(zenith_env_builder: ZenithEnvBuilder, zenbenchmark: ZenithBenchmarker):
|
|
zenith_env_builder.num_safekeepers = 3
|
|
env = zenith_env_builder.init_start()
|
|
|
|
# Start
|
|
env.zenith_cli.create_branch('test_startup')
|
|
with zenbenchmark.record_duration("startup_time"):
|
|
pg = env.postgres.create_start('test_startup')
|
|
pg.safe_psql("select 1;")
|
|
|
|
# Restart
|
|
pg.stop_and_destroy()
|
|
with zenbenchmark.record_duration("restart_time"):
|
|
pg.create_start('test_startup')
|
|
pg.safe_psql("select 1;")
|
|
|
|
# Fill up
|
|
num_rows = 1000000 # 30 MB
|
|
num_tables = 100
|
|
with closing(pg.connect()) as conn:
|
|
with conn.cursor() as cur:
|
|
for i in range(num_tables):
|
|
cur.execute(f'create table t_{i} (i integer);')
|
|
cur.execute(f'insert into t_{i} values (generate_series(1,{num_rows}));')
|
|
|
|
# Read
|
|
with zenbenchmark.record_duration("read_time"):
|
|
pg.safe_psql("select * from t_0;")
|
|
|
|
# Read again
|
|
with zenbenchmark.record_duration("second_read_time"):
|
|
pg.safe_psql("select * from t_0;")
|
|
|
|
# Restart
|
|
pg.stop_and_destroy()
|
|
with zenbenchmark.record_duration("restart_with_data"):
|
|
pg.create_start('test_startup')
|
|
pg.safe_psql("select 1;")
|
|
|
|
# Read
|
|
with zenbenchmark.record_duration("read_after_restart"):
|
|
pg.safe_psql("select * from t_0;")
|