notes_devops_engineer
125 subscribers
8 photos
1 file
43 links
Записки DevOps инженера
Download Telegram
При работе с кластерами PostgreSQL, особенно в конфигурациях с высокой доступностью (High Availability, HA), разработчики часто сталкиваются с ошибками типа "cannot execute INSERT in a read-only transaction". Эти ошибки возникают, когда приложение пытается выполнить операцию записи на узел, который в данный момент является репликой (read-only). Особенно остро эта проблема проявляется в моменты переключения мастера: пул соединений вашего приложения может все еще содержать коннекты к бывшему мастеру, ставшему репликой, или же балансировщик может направить новый запрос на запись к реплике.

К счастью, драйверы PostgreSQL предоставляют элегантное решение этой проблемы – параметр строки подключения target_session_attrs. В версии PostgreSQL 14 были добавлены новые значения для target_session_attrs: read-only, primary, standby и prefer-standby. Этот параметр позволяет указать, какого типа сессию ожидает ваше приложение. Наиболее полезным значением для приложений, выполняющих операции чтения и записи, является read-write. В этой статье мы подробно разберем, почему это так важно, продемонстрируем проблему на практике и покажем, как target_session_attrs=read-write спасает ситуацию. Использование target_session_attrs=primary, включая его специфические отличия от read-write, будет подробно рассмотрено далее в статье.

https://habr.com/ru/articles/910508/
Разработчики Coroot зарелизили версию 1.12:

1. Availability risks
https://docs.coroot.com/risks/overview

2. Dashboards
https://docs.coroot.com/dashboards/overview

3. GPU monitoring
https://docs.coroot.com/inspections/gpu

4. New layout (the main navigation menu on the left)
https://demo.coroot.com
Протестировал Pyroscope + Gradle для профилирования сборок Android APK , но название проекта в Pyroscope создается сгенерированное, а не передается через параметры. Сделал issue https://github.com/grafana/pyroscope/issues/4243