Пора начинать знакомиться с докладчиками Dev/talks 2020 #1!)
Наш первый докладчик - Егор Рогов (Postgres Professional). Он выступит с докладом "Почему все висит? Разбираемся с блокировками PostgreSQL".
За плечами Егора ВМК МГУ им. М. В. Ломоносова. Не расстается с СУБД уже лет 20, поддерживал и разрабатывал приложения, руководил разработкой. С 2015 года занимается в Postgres Professional образовательными программами: готовит учебные курсы, пишет и редактирует книги о базах данных.
PostgreSQL, как и другие СУБД, используют блокировки для управления конкурентным доступом к разделяемым ресурсам. Блокировки необходимы, но могут привести к тому, что вместо работы процессы начнут простаивать в ожидании. PostgreSQL показывает достаточно информации, чтобы разобраться в возникшей проблеме — надо только суметь ее правильно проинтерпретировать. А это невозможно без понимания того, как устроены блокировки, какие именно ресурсы блокируются, когда и на каких уровнях это происходит.
Он расскажет о типах блокировок, которые используются в PostgreSQL: о многочисленных обычных «тяжелых» блокировках (таких, как блокировки таблиц и номеров транзакций), о блокировках на уровне строк (почему они так сильно отличаются от обычных блокировок и почему так тесно с ними связаны), о «легких» блокировках (и чем они легче тяжелых). Поговорит и о том, как организована очередь ожидания и в каких случаях она перестает работать. Все это позволит нам разобраться в том, как «читать» pg_locks и pg_stat_activity, и избегать ряда ошибок при проектировании систем.