Лок, лок – дедлок!
< Query failed: ERROR: deadlock detected < DETAIL: Process 17371 waits for ShareLock on transaction 102733872; blocked by process 10414. < Process 10414 waits for ShareLock on transaction 102733874; blocked by process 17371.
Подобные "неприятные" сообщения от сервера могут серьезно озадачить разработчика. При работе с блокировками, в частности, и с транзакциями в целом, следует учитывать особенности реализации клиентских библиотек, которые могут вызывать описанное выше исключение.
В кратком докладе-сообщении будет объяснена механика взаимодействия блокировок, приводящая к ситуации дедлока; приведены ссылки на документацию; разобрана техника "обхода" данной проблемы конкурентной работы с данными; показаны обобщенные приемы из практики.
Слайды
Видео
Другие доклады
-
Алексей Лесовский PostgreSQL Consulting LLC Администратор баз данных
Поиск и устранение проблем при эксплуатации потоковой репликации
Потоковая репликация появилась в PostgreSQL в 2010 году и практически сразу же стала очень популярной. В настоящее время практически ни одна инсталляция не обходится без использования потоковой репликации. Она надежна, высокопроизводительна и легка в настройке. Однако несмотря на все свои положительные качества, в её эксплуатации могут возникать различные проблемы и неприятные ситуации. Для диагностики и решения проблем связанных с потоковой репликацией есть как встроенные в PostgreSQL средства так и сторонние утилиты. В этом докладе я сделаю обзор инструментов и расскажу как с помощью этих средств диагностировать и устранить проблемы связанные с потоковой репликацией. Также рассмотрю проблемы которые возникают чаще всего при эксплуатации потоковой репликации и методы их решения. Доклад будет полезен DBA и системным администраторам.
-
Hans-Jürgen Schönig Cybertec Schönig & Schönig GmbH CEO
Миллиард строк в секунду на PostgreSQL
Базы данных растут в размерах, так что нужда обрабатывать огромные объемы данных в реальном времени становится все острее. Пока производители коммерческих СУБД хвастаются своими возможностями, мы решили чуточку улучшить PostgreSQL, чтобы показать его возможности в переваривании более миллиарда строк в секунду, просто для демонстрации возможностей open source.
Тем, для кого миллиард строк в секунду - немного, сообщаем, что это не предел, возможности гораздо больше. Приходите посмотреть, как мы делаем это.
ВИДЕО
-
Markus Nullmeier University of Heidelberg software developer
Оптимизация запросов к данным типа “множество” с помощью индексов GIN, GiST, и пользовательских расширений для индексирования
Очевидно, что множества удобно использовать в различных типах приложений. Хотя в PostgreSQL и нет встроенного типа для множеств, до некоторой степени их можно смоделировать с помощью встроенных типов “массив” и “JSONB”. Кроме того, возможность ускорения запросов с операциями вхождения уже встроена в реализацию индексов GIN.
После краткого обзора существующей функциональности, мы рассмотрим, как добавление пользовательских типов “множество” и, в частности, модификация кода на С ("классы операторов") для индексов GIN и GiST, может повысить производительность.
-
Peter van Hardenberg Heroku Главный исследователь
История Postgres
Сообществу PostgreSQL уже более 20 лет, но история PostgreSQL началась задолго до его основания. Из этого доклада вы узнаете об истоках проекта Postgres, о людях, которые развивали его, как он изменился со временем и какое место в развитии PostgreSQL занимает российское сообщество.