pg-workload 0.4.2__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pg_workload-0.4.2/src/pg_workload.egg-info → pg_workload-0.5.0}/PKG-INFO +9 -5
- {pg_workload-0.4.2 → pg_workload-0.5.0}/README.md +8 -4
- {pg_workload-0.4.2 → pg_workload-0.5.0}/THIRD_PARTY_NOTICES.md +6 -8
- {pg_workload-0.4.2 → pg_workload-0.5.0}/pyproject.toml +1 -1
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/__init__.py +1 -1
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/README.md +43 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/generator.py +551 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/imdb/profile.yml +6 -3
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/01_company_catalog.sql +17 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/02_people_by_keyword.sql +19 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/imdb/sql/03_keyword_trends.sql +4 -4
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/04_genre_cast.sql +14 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/05_join_stress.sql +22 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/imdb-fkindexes.sql +67 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/imdb-schema.sql +176 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_1.sql +87 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_10.sql +72 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_11.sql +136 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_12.sql +102 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_13.sql +135 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_14.sql +133 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_15.sql +143 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_16.sql +114 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_17.sql +143 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_18.sql +104 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_19.sql +169 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_2.sql +69 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_20.sql +131 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_21.sql +134 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_22.sql +215 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_23.sql +132 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_24.sql +110 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_25.sql +145 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_26.sql +160 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_27.sql +170 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_28.sql +202 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_29.sql +208 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_3.sql +65 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_30.sql +192 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_31.sql +180 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_32.sql +41 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_33.sql +160 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_4.sql +61 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_5.sql +79 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_6.sql +141 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_7.sql +106 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_8.sql +108 -0
- pg_workload-0.5.0/src/pg_workload/bundled/profiles/imdb/sql/select_9.sql +136 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/common.py +2 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/orchestration.py +4 -1
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/runner.py +18 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0/src/pg_workload.egg-info}/PKG-INFO +9 -5
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload.egg-info/SOURCES.txt +35 -2
- {pg_workload-0.4.2 → pg_workload-0.5.0}/tests/test_docker_postgres18.py +47 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/tests/test_workload.py +76 -0
- pg_workload-0.4.2/src/pg_workload/bundled/profiles/imdb/README.md +0 -32
- pg_workload-0.4.2/src/pg_workload/bundled/profiles/imdb/generator.py +0 -121
- pg_workload-0.4.2/src/pg_workload/bundled/profiles/imdb/sql/01_company_catalog.sql +0 -16
- pg_workload-0.4.2/src/pg_workload/bundled/profiles/imdb/sql/02_people_by_keyword.sql +0 -18
- pg_workload-0.4.2/src/pg_workload/bundled/profiles/imdb/sql/04_genre_cast.sql +0 -14
- pg_workload-0.4.2/src/pg_workload/bundled/profiles/imdb/sql/05_join_stress.sql +0 -22
- pg_workload-0.4.2/src/pg_workload/bundled/profiles/imdb/sql/indexes.sql +0 -20
- pg_workload-0.4.2/src/pg_workload/bundled/profiles/imdb/sql/schema.sql +0 -69
- {pg_workload-0.4.2 → pg_workload-0.5.0}/LICENSE +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/MANIFEST.in +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/setup.cfg +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/__main__.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/assets.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/bloat_vacuum/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/bloat_vacuum/generator.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/bloat_vacuum/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/bloat_vacuum/sql/01_churn.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/bloat_vacuum/sql/accounts-schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/emulate_errors/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/emulate_errors/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/emulate_errors/sql/01_workload.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/emulate_errors/sql/schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/jsonb_docs/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/jsonb_docs/generator.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/jsonb_docs/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/jsonb_docs/sql/01_write.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/jsonb_docs/sql/02_read.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/jsonb_docs/sql/docs-schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/many_objects/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/many_objects/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/many_objects/sql/01_workload.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/many_objects/sql/prepare_schema_01.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/many_objects/sql/prepare_schema_02.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pagila/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pagila/generator.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pagila/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pagila/sql/01_select.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pagila/sql/02_insert.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pagila/sql/03_update.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pagila/sql/04_delete.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pagila/sql/pagila-schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/partition_aging/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/partition_aging/generator.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/partition_aging/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/partition_aging/sql/01_ingest.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/partition_aging/sql/02_read_recent.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/partition_aging/sql/03_read_history.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/partition_aging/sql/events-schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pss_overflow/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pss_overflow/generator.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pss_overflow/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pss_overflow/sql/01_workload.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/pss_overflow/sql/pss_overflow-schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/queue_skip_locked/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/queue_skip_locked/generator.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/queue_skip_locked/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/queue_skip_locked/sql/01_enqueue.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/queue_skip_locked/sql/02_dequeue.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/queue_skip_locked/sql/03_settle.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/queue_skip_locked/sql/queue-schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock/generator.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock/sql/01_workload.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock/sql/indexes.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock/sql/stock-schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock_spec_symbols/README.md +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock_spec_symbols/generator.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock_spec_symbols/profile.yml +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock_spec_symbols/sql/01_workload.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock_spec_symbols/sql/indexes.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/profiles/simple_stock_spec_symbols/sql/stock-schema.sql +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/bundled/schema/pg_workload-v1.schema.json +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/cli.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/config.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/control.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/logging.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/pg_client.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/profiles.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/resources.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/scheduler.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload/state.py +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload.egg-info/dependency_links.txt +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload.egg-info/entry_points.txt +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload.egg-info/requires.txt +0 -0
- {pg_workload-0.4.2 → pg_workload-0.5.0}/src/pg_workload.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pg-workload
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: PostgreSQL workload emulator for diagnostic and observability testing
|
|
5
5
|
Author-email: O2eg <oleg.ispu@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -191,7 +191,11 @@ instead of `--passfile`; `PGPASSWORD` is accepted only as an admin-password comp
|
|
|
191
191
|
`prepare-db --recreate` drops only the selected workload database after terminating its sessions;
|
|
192
192
|
it does not drop the workload role.
|
|
193
193
|
Unless `--extensions` is supplied, it creates both `pg_stat_statements` and
|
|
194
|
-
`pg_buffercache`,
|
|
194
|
+
`pg_buffercache`, and also installs `pg_stat_kcache` and `pg_wait_sampling` when
|
|
195
|
+
the server provides them. Managed `pg_stand` images include and preload the required
|
|
196
|
+
libraries, and new databases inherit the extensions from `template1`. An explicit
|
|
197
|
+
`--extensions` list replaces both default lists. Optional extension choices are
|
|
198
|
+
included in the machine plan.
|
|
195
199
|
|
|
196
200
|
## Targets
|
|
197
201
|
|
|
@@ -236,8 +240,8 @@ Use `--bin-dir /path/to/postgresql/bin` when client binaries are outside
|
|
|
236
240
|
|
|
237
241
|
No profile requires a dump, CSV file, or network download. The Pagila schema is redistributed
|
|
238
242
|
under its upstream license; see `THIRD_PARTY_NOTICES.md`. Its rows are generated locally. The
|
|
239
|
-
bundled `imdb` profile
|
|
240
|
-
|
|
243
|
+
bundled `imdb` profile contains a full synthetic 21-table movie-domain model, 38 analytical
|
|
244
|
+
scripts, and 113 SELECT variants; it contains no IMDB source data.
|
|
241
245
|
|
|
242
246
|
Every profile directory contains a `README.md` with the scenario description, its jobs, the
|
|
243
247
|
pg_diag sections it is meant to exercise, and scale/observation guidance.
|
|
@@ -352,7 +356,7 @@ pg-workload run --profile simple_stock --pgbench-transactions 100
|
|
|
352
356
|
|---|---|
|
|
353
357
|
| `simple_stock` | 150,000 product groups; 1,000,000 SKUs; 1,000,000 stock rows |
|
|
354
358
|
| `simple_stock_spec_symbols` | the same cardinalities with hostile and Unicode identifiers/values |
|
|
355
|
-
| `imdb` | 10,000 companies; 100,000 people; 100,000 titles;
|
|
359
|
+
| `imdb` | 21 tables; 10,000 companies; 100,000 people; 100,000 titles; ~2,000,000 related rows |
|
|
356
360
|
| `pagila` | 600 customers; 1,000 films; 4,500 inventory; 16,000 rentals; 16,500 payments |
|
|
357
361
|
| `queue_skip_locked` | 20,000 pending + 5,000 done queue tasks |
|
|
358
362
|
| `jsonb_docs` | 50,000 JSONB documents |
|
|
@@ -152,7 +152,11 @@ instead of `--passfile`; `PGPASSWORD` is accepted only as an admin-password comp
|
|
|
152
152
|
`prepare-db --recreate` drops only the selected workload database after terminating its sessions;
|
|
153
153
|
it does not drop the workload role.
|
|
154
154
|
Unless `--extensions` is supplied, it creates both `pg_stat_statements` and
|
|
155
|
-
`pg_buffercache`,
|
|
155
|
+
`pg_buffercache`, and also installs `pg_stat_kcache` and `pg_wait_sampling` when
|
|
156
|
+
the server provides them. Managed `pg_stand` images include and preload the required
|
|
157
|
+
libraries, and new databases inherit the extensions from `template1`. An explicit
|
|
158
|
+
`--extensions` list replaces both default lists. Optional extension choices are
|
|
159
|
+
included in the machine plan.
|
|
156
160
|
|
|
157
161
|
## Targets
|
|
158
162
|
|
|
@@ -197,8 +201,8 @@ Use `--bin-dir /path/to/postgresql/bin` when client binaries are outside
|
|
|
197
201
|
|
|
198
202
|
No profile requires a dump, CSV file, or network download. The Pagila schema is redistributed
|
|
199
203
|
under its upstream license; see `THIRD_PARTY_NOTICES.md`. Its rows are generated locally. The
|
|
200
|
-
bundled `imdb` profile
|
|
201
|
-
|
|
204
|
+
bundled `imdb` profile contains a full synthetic 21-table movie-domain model, 38 analytical
|
|
205
|
+
scripts, and 113 SELECT variants; it contains no IMDB source data.
|
|
202
206
|
|
|
203
207
|
Every profile directory contains a `README.md` with the scenario description, its jobs, the
|
|
204
208
|
pg_diag sections it is meant to exercise, and scale/observation guidance.
|
|
@@ -313,7 +317,7 @@ pg-workload run --profile simple_stock --pgbench-transactions 100
|
|
|
313
317
|
|---|---|
|
|
314
318
|
| `simple_stock` | 150,000 product groups; 1,000,000 SKUs; 1,000,000 stock rows |
|
|
315
319
|
| `simple_stock_spec_symbols` | the same cardinalities with hostile and Unicode identifiers/values |
|
|
316
|
-
| `imdb` | 10,000 companies; 100,000 people; 100,000 titles;
|
|
320
|
+
| `imdb` | 21 tables; 10,000 companies; 100,000 people; 100,000 titles; ~2,000,000 related rows |
|
|
317
321
|
| `pagila` | 600 customers; 1,000 films; 4,500 inventory; 16,000 rentals; 16,500 payments |
|
|
318
322
|
| `queue_skip_locked` | 20,000 pending + 5,000 done queue tasks |
|
|
319
323
|
| `jsonb_docs` | 50,000 JSONB documents |
|
|
@@ -27,11 +27,9 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
27
27
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
28
|
SOFTWARE.
|
|
29
29
|
|
|
30
|
-
##
|
|
31
|
-
|
|
32
|
-
The
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
movie-domain schema, generator, and workload; it does not contain or derive from
|
|
37
|
-
those excluded files.
|
|
30
|
+
## Synthetic movie-domain workload
|
|
31
|
+
|
|
32
|
+
The bundled `imdb` profile includes SQL query shapes migrated and adapted from
|
|
33
|
+
the predecessor `pg_workload_generator` implementation. Its data generator is
|
|
34
|
+
local and deterministic. No source IMDB dataset, CSV archive, or downloaded row
|
|
35
|
+
data is included in the source distribution or wheel.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# imdb
|
|
2
|
+
|
|
3
|
+
Analytical read-only workload over a synthetic movie-domain model: multi-way joins,
|
|
4
|
+
aggregations, selective lookups, correlated subgraphs, and skewed popularity distributions.
|
|
5
|
+
It is a workload generator rather than a benchmark: the goal is to keep PostgreSQL busy and
|
|
6
|
+
produce varied plans and statistics for `auto_explain`, `pg_stat_statements`, and DBA tooling.
|
|
7
|
+
No IMDB source rows, CSV files, archives, or network downloads are required.
|
|
8
|
+
|
|
9
|
+
## Objects (at scale 1)
|
|
10
|
+
|
|
11
|
+
- The full 21-table relational shape used by the earlier profile, including alternate names and
|
|
12
|
+
titles, characters, company and role types, complete-cast metadata, indexed movie attributes,
|
|
13
|
+
person information, and movie links.
|
|
14
|
+
- 10,000 companies; 100,000 people; 50,000 characters; 20,000 keywords; 100,000 titles; and about
|
|
15
|
+
2 million fact, relationship, and attribute rows.
|
|
16
|
+
- Deterministic synthetic anchor rows cover the names, years, countries, notes, roles, keywords,
|
|
17
|
+
genres, ratings, and link types selected by every bundled query family.
|
|
18
|
+
- Foreign-key/join-column and selective-filter indexes are created after loading, followed by
|
|
19
|
+
`ANALYZE` for all 21 tables.
|
|
20
|
+
|
|
21
|
+
## Jobs
|
|
22
|
+
|
|
23
|
+
| Job | Type | Interval | What it does |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| `analytical_selects` | pgbench | 60 s | 38 scripts and 113 SELECT variants: five compact analytics plus 33 multi-join families |
|
|
26
|
+
|
|
27
|
+
The `select_1.sql` through `select_33.sql` files retain the diverse join shapes of the previous
|
|
28
|
+
implementation. Their predicates target values deliberately generated by `generator.py`, so the
|
|
29
|
+
aggregate results describe existing synthetic rows instead of repeatedly exercising empty joins.
|
|
30
|
+
|
|
31
|
+
## What to watch in pg_diag
|
|
32
|
+
|
|
33
|
+
- `sql_workload` — top statements by total/mean time with real join plans
|
|
34
|
+
- `object_workload` — sequential vs index scan split on fact tables
|
|
35
|
+
- `buffer_cache` — relation caching behaviour under repeated analytical reads
|
|
36
|
+
- `snapshot_charts_db` — read I/O rates during the observation window
|
|
37
|
+
|
|
38
|
+
## Recommended scale and observation window
|
|
39
|
+
|
|
40
|
+
- Scale 1 for meaningful planning; scale 0.1 still keeps join selectivity sensible. Very small
|
|
41
|
+
scales retain the complete anchor dataset and at least 1,000 titles for CI and training.
|
|
42
|
+
- 5–10 minutes of scheduled runs; analytical queries dominate `pg_stat_statements`
|
|
43
|
+
quickly because the job interval is 60 s.
|