perf(db): сжать схему PostgreSQL 18 и повторно загрузить SQLite
Docker images / prepare-release (push) Successful in 10s
Docker images / backend-test (push) Successful in 2m2s
Docker images / frontend-image (push) Successful in 3m23s
Docker images / updater-image (push) Successful in 44s
Docker images / backend-image (push) Successful in 2m47s
Docker images / notify-webhook (push) Skipped
Docker images / publish-release (push) Successful in 11s

При первом рестарте wipe всех таблиц и импорт из SQLite в компактную схему. Retention через DROP PARTITION, lz4 и AIO worker.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Denozordec
2026-09-08 10:54:36 +07:00
co-authored by Cursor
parent bf5cfff12c
commit c6c859a495
26 changed files with 1055 additions and 157 deletions
+9 -1
View File
@@ -144,7 +144,15 @@ services:
- -c
- maintenance_work_mem=128MB
- -c
- wal_compression=on
- wal_compression=lz4
- -c
- default_toast_compression=lz4
- -c
- io_method=worker
- -c
- io_workers=3
- -c
- effective_io_concurrency=200
volumes:
# PostgreSQL 18+: VOLUME is /var/lib/postgresql (PGDATA = .../18/docker)
- mmapp-pgdata:/var/lib/postgresql
+9 -1
View File
@@ -30,7 +30,15 @@ services:
- -c
- maintenance_work_mem=128MB
- -c
- wal_compression=on
- wal_compression=lz4
- -c
- default_toast_compression=lz4
- -c
- io_method=worker
- -c
- io_workers=3
- -c
- effective_io_concurrency=200
volumes:
# PostgreSQL 18+: VOLUME is /var/lib/postgresql (PGDATA = .../18/docker)
- mmapp-pgdata:/var/lib/postgresql
+9 -1
View File
@@ -46,7 +46,15 @@ services:
- -c
- maintenance_work_mem=128MB
- -c
- wal_compression=on
- wal_compression=lz4
- -c
- default_toast_compression=lz4
- -c
- io_method=worker
- -c
- io_workers=3
- -c
- effective_io_concurrency=200
volumes:
# PostgreSQL 18+: VOLUME is /var/lib/postgresql (PGDATA = .../18/docker)
- mmapp-pgdata:/var/lib/postgresql
+9 -1
View File
@@ -81,7 +81,15 @@ services:
- -c
- maintenance_work_mem=128MB
- -c
- wal_compression=on
- wal_compression=lz4
- -c
- default_toast_compression=lz4
- -c
- io_method=worker
- -c
- io_workers=3
- -c
- effective_io_concurrency=200
volumes:
# PostgreSQL 18+: VOLUME is /var/lib/postgresql (PGDATA = .../18/docker)
- mmapp-pgdata:/var/lib/postgresql
+9 -1
View File
@@ -26,7 +26,15 @@ services:
- -c
- maintenance_work_mem=128MB
- -c
- wal_compression=on
- wal_compression=lz4
- -c
- default_toast_compression=lz4
- -c
- io_method=worker
- -c
- io_workers=3
- -c
- effective_io_concurrency=200
volumes:
# PostgreSQL 18+: VOLUME is /var/lib/postgresql (PGDATA = .../18/docker)
- mmapp-pgdata:/var/lib/postgresql
+18
View File
@@ -0,0 +1,18 @@
# MikrotikManager — PostgreSQL 18 runtime (overrides via `postgres -c`).
# Не подменять целиком config_file образа: эти GUC передаются как -c в compose.
timezone = UTC
listen_addresses = '*'
max_connections = 100
shared_buffers = 256MB
work_mem = 16MB
maintenance_work_mem = 128MB
# PG18 AIO: worker (io_uring в Docker/Alpine часто недоступен)
io_method = worker
io_workers = 3
effective_io_concurrency = 200
# TOAST: lz4 (не zstd — для колонок только pglz/lz4)
default_toast_compression = lz4
wal_compression = lz4
+3 -1
View File
@@ -104,7 +104,9 @@ if ! docker inspect mmapp-postgres >/dev/null 2>&1; then
--health-retries=10 \
postgres:18-alpine \
postgres -c timezone=UTC -c listen_addresses=* -c max_connections=100 \
-c shared_buffers=256MB -c work_mem=16MB -c maintenance_work_mem=128MB -c wal_compression=on
-c shared_buffers=256MB -c work_mem=16MB -c maintenance_work_mem=128MB \
-c wal_compression=lz4 -c default_toast_compression=lz4 \
-c io_method=worker -c io_workers=3 -c effective_io_concurrency=200
fi
until docker exec mmapp-postgres pg_isready -U mmapp -d mmapp >/dev/null 2>&1; do
sleep 1