Лок, лок – дедлок!
< 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.
Подобные "неприятные" сообщения от сервера могут серьезно озадачить разработчика. При работе с блокировками, в частности, и с транзакциями в целом, следует учитывать особенности реализации клиентских библиотек, которые могут вызывать описанное выше исключение.
В кратком докладе-сообщении будет объяснена механика взаимодействия блокировок, приводящая к ситуации дедлока; приведены ссылки на документацию; разобрана техника "обхода" данной проблемы конкурентной работы с данными; показаны обобщенные приемы из практики.
Материалы к докладу
Слайды
Видео
Другие доклады
-
Дмитрий Юхтимовский Gilev.ru технический лидер
Поиск проблемного кода 1С на СУБД PostgreSQL
- Особенности взаимодействия 1С:Предприятие 8 и PostgreSQL 9 1.1 Изменения в редакциях платформы 1С 1.2 Схемы v81c_data и v81c_index 1.3 Трансляция запросов 1С в SQL 1.4 События технологического журнала 1С для диагностики PostgreSQL
- Анализ запросов, вызывающих проблемы производительности в PostgreSQL 2.1 Бесплатный инструмент для автоматизации разбора логов 2.2 Правило Парето на практике 2.3 Установка и настройка инструмента 2.4 Практический пример оптимизации запроса 2.4.1 Проблема в запросе PostgreSQL 2.4.2 Выяснение нерациональных операций в запросе 2.4.3 Способы устранения неоптимальностей
- Статистка PostgreSQL для диагностики производительности 3.1 Сравнение с возможностями MS SQL Server, различия 3.2 Диагностика блокировок 3.3 Диагностика рабочей нагрузки 4 Примеры из практики команды gilev.ru
-
Александр Алексеев Postgres Professional Software Developer
ZSON, расширение PostgreSQL для прозрачного сжатия JSONB
ZSON - это расширение PostgreSQL для прозрачног сжатия JSONB-документов. Сжатие основывается на использовании разделяемого словаря строк, наиболее часто используемых в заданных JSONB документах (не только ключей, но также и значений, элементов массивов, и т.д.) В некоторых случаях ZSON может сэкономить до половины дискового пространства и увеличить количество TPS на 10% за счет меньшего I/O.
ВИДЕО
-
Marco Slot Citus Data Главный инженер-программист
Ускоряясь до миллиона записей в секунду: масштабирование PostgreSQL с помощью Citus MX
Инструмент Citus позволяет распределять таблицы PostgreSQL между несколькими серверами. Расширяя возможности PostgreSQL в плане делегирования и распараллеливания задач между группой рабочих узлов, Citus позволяет горизонтально масштабировать CPU-ресурсы и память для выполнения запросов.
Год назад мы ступили на долгий путь реализации в Citus возможности горизонтального масштабирования в новом измерении - для повышения скорости записи. Так как все запросы на запись обрабатывались через один узел PostgreSQL, скорость записи в Citus ограничивалась CPU-ресурсами одного узла. Citus MX - это новая версия Citus, которая предоставляет доступ к распределенным таблицам с любого узла, обеспечивая повышение скорости записи до уровня NoSQL решений.
-
Петр Грибанов 1С Технологический евангелист
PostgreSQL в 1С:Предприятии и в облачной системе 1С:Fresh
"1С:Предприятие" - самая популярная в России/СНГ платформа разработки бизнес-приложений, которая уже более 10 лет поддерживает PostgreSQL. Фирма 1С использует PostgreSQL в своём облачном сервисе 1С:Fresh. В этом докладе мы поделимся опытом и наблюдениями, возникшими в ходе эксплуатации этого сервиса, и обсудим интересные случаи и особенности тандема 1С+Postgres.