perf(bookings): BOOKINGS_JOBS=1 по умолчанию (3× быстрее на инкрементах)

- Зачем:
  - бенчмарк на i7-11800H / WSL2 показал, что jobs=1 генерирует +1 день за ~3 мин,
    а jobs=2 — за ~9 мин из-за lock contention на gen.events FOR UPDATE SKIP LOCKED.
    Тюнинг PG (shared_buffers, work_mem) и synchronous_commit=off не влияют.
- Что:
  - дефолт BOOKINGS_JOBS изменён с 2 на 1 в Makefile и .env.example.
  - добавлен docs/internal/bookings_generation_benchmark.md с полной матрицей экспериментов.
  - обновлены комментарии и bookings/README.md.
- Проверка:
  - make bookings-init && time make bookings-generate-day (~3 мин).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-09 18:06:56 +03:00
co-authored by Claude Opus 4.6
parent 85d2776b44
commit c81bdb86d9
4 changed files with 81 additions and 4 deletions
+4 -2
View File
@@ -24,8 +24,10 @@ BOOKINGS_DB_PORT=5434
BOOKINGS_START_DATE=2017-01-01
# Количество дней для генерации с нуля (make bookings-generate); для make bookings-init не используется
BOOKINGS_INIT_DAYS=60
# Количество параллельных джобов генератора (1 = синхронно без dblink, 2+ = через dblink)
BOOKINGS_JOBS=2
# Количество параллельных джобов генератора (1 = синхронно без dblink, 2+ = через dblink).
# jobs=1 оптимален для инкрементальной генерации (+1 день ≈ 3 мин).
# jobs>1 на WSL2 в 3× медленнее из-за lock contention на gen.events.
BOOKINGS_JOBS=1
# Greenplum Configuration
GP_USER=gpadmin