Postgres advisory locks на Neon ломаются от TCP-сброса. История четырёх фиксов retry-логики

Расскажу про четыре production-инцидента на одном куске кода за десять дней. В каждом я думал, что разобрался. Закончилось тем, что я выкинул pg_advisory_lock из retry-пути и поставил FOR UPDATE SKIP LOCKED . Day-generation лок остался advisory-ным, но утечка там не критична - почему именно, разберу в конце. Полезно, если у вас Postgres на Neon (или Supabase, или Aiven serverless) и где-то по коду есть session-scoped advisory locks для координации задач между репликами.

https://habr.com/ru/articles/1031236/

#postgresql #advisory_lock #neon #serverless #retry #идемпотентность #distributed_lock

Postgres advisory locks на Neon ломаются от TCP-сброса. История четырёх фиксов retry-логики

Расскажу про четыре production-инцидента на одном куске кода за десять дней. В каждом я думал, что разобрался. Закончилось тем, что я выкинул pg_advisory_lock из retry-пути и поставил FOR UPDATE SKIP...

Хабр

Как я распилил 1,1 ТБ default-партиции и не уронил прод

Мы забыли вовремя создать партиции, и все новые данные полетели в events_default_partition . Default дорос до ~1.1 ТБ, а простое «ATTACH PARTITION» требовало часов сканирования и долгой блокировки. В статье — почему «быстрые» рецепты оказываются медленными, как я перенёс данные в нужные диапазоны, и как мы уложили критическую блокировку в 44 с . Default-партиция — это не озеро Байкал. Если туда всё сливать, экосистема потом мстит. 44 секунды блокировки: план операции

https://habr.com/ru/articles/977528/

#партиционирование_PostgreSQL #ATTACH_PARTITION #plpgsql #автоматизация_обслуживания_БД #explain_analyze #downtime #advisory_lock #CHECK_constraint #partitioning #database_migrations

Как я распилил 1,1 ТБ default-партиции и не уронил прод

Мы забыли вовремя создать партиции, и все новые данные полетели в events_default_partition . Default дорос до ~1.1 ТБ, а простое «ATTACH PARTITION» требовало часов сканирования и долгой блокировки. В...

Хабр

Распределённая батчевая обработка данных: как мы решали проблему гонок в продакшене

Всем привет! Меня зовут Дмитрий, я руковожу командой государственных интеграций в Ozon Банке. Сегодня я расскажу о том, как мы столкнулись с проблемой гонок при батчевой обработке данных в распределённой системе — и какие решения мы рассматривали, чтобы эту проблему решить. Материал основан на реальном кейсе и будет интересен всем, кто работает с PostgreSQL, батчами, распределёнными системами и борьбой за консистентность в высоконагруженных системах.

https://habr.com/ru/companies/ozonbank/articles/944882/

#архитектура #sql #аномалии #kafka #postgresql #advisory_lock

Распределённая батчевая обработка данных: как мы решали проблему гонок в продакшене

Всем привет! Меня зовут Дмитрий, я руковожу командой государственных интеграций в Ozon Банке. Сегодня я расскажу о том, как мы столкнулись с проблемой гонок при батчевой обработке данных в...

Хабр