bookings debug
This commit is contained in:
@@ -12,6 +12,24 @@ _Этот файл внутренний, удалить перед итогов
|
||||
## Текущее состояние
|
||||
- `Makefile` очищен: убраны автопатчи demodb; добавлены `DEMODB_REPO/DEMODB_COMMIT` с фиксированным хешем `d68de1…`, таргет снова исполняется. `BOOKINGS_JOBS` задаёт число джобов генерации (по умолчанию 1).
|
||||
- `.gitignore` дополнен `bookings/demodb/` (клонируем по требованию, не коммитим).
|
||||
- `bookings-init` теперь после установки сразу генерирует 1 день (дата из `BOOKINGS_START_DATE`, по умолчанию 2017-01-01), используя обертку `generate_next_day.sql`.
|
||||
- `generate_next_day.sql` принимает `:jobs` и ожидает завершения `busy()`, закрывая dblink.
|
||||
- Генерация через `make` надо подтвердить повторно (в DBeaver генерация работает, но медленно на больших окнах; по умолчанию делаем сутки, далее — по одному дню через `bookings-generate-day`).
|
||||
- `bookings-init` теперь после установки запускает генерацию (дата из `BOOKINGS_START_DATE`, дни из `BOOKINGS_INIT_DAYS`, параллельность `BOOKINGS_JOBS`), используя обертку `generate_next_day.sql`.
|
||||
- `generate_next_day.sql` читает GUC `bookings.start_date/init_days/jobs`, вызывает `generate/continue`, ждёт `busy()`, закрывает dblink.
|
||||
- Генерация через `make` остаётся нестабильной: в логах обрывы dblink, данные не появляются.
|
||||
|
||||
## Текущее состояние тестов/проблем
|
||||
- Прогон `make bookings-init` с `BOOKINGS_JOBS=2`, `BOOKINGS_INIT_DAYS=30`: установка ок, GUC/`gen.connstr` выставлены, `Starting job 1/2: ok`, но `bookings.bookings` пустая, в `gen.events` висит `INIT`, `busy()` может быть `t`. Логи: `could not send data to client: Broken pipe` / `connection to client lost` при `TRUNCATE ... CASCADE` в `do_init`.
|
||||
- С `BOOKINGS_JOBS=1` аналогично. Ручная генерация в DBeaver (CALL generate(now(), now()+interval '1 year')) ранее шла медленно, так что проблема может быть в запуске через `docker exec`/pipe или в dblink-подключениях.
|
||||
|
||||
## Идеи/следующие шаги
|
||||
- Проверить генерацию внутри контейнера через here-doc без пайпа:
|
||||
```
|
||||
docker compose exec -T bookings-db psql -U bookings -d demo <<'SQL'
|
||||
SET bookings.start_date = '2017-01-01';
|
||||
SET bookings.init_days = '30';
|
||||
SET bookings.jobs = '1';
|
||||
\i /bookings/generate_next_day.sql
|
||||
SQL
|
||||
```
|
||||
Наблюдать `busy()`, `gen.log`, `gen.events/events_history`.
|
||||
- Если так ок — переписать Makefile под такой запуск. Если нет — попробовать `gen.connstr` с `host=localhost` и/или оставить `jobs=1` без dblink.
|
||||
- Пока нестабильно, держать `init_days` небольшим (1–3), чтобы быстро видеть прогресс.
|
||||
|
||||
Reference in New Issue
Block a user