70.7. Рекомендательные блокировки #

Postgres Pro Shardman предоставляет API, позволяющий приложениям создавать рекомендательные блокировки на весь кластер. Они похожи на рекомендательные блокировки PostgreSQL, но применяются на всех узлах кластера. Рекомендательные блокировки и кластерные рекомендательные блокировки выполняются одновременно и не конфликтуют между собой, поскольку глобальные кластерные блокировки используют собственные типы блокировок. Обе эти блокировки отображаются в представлении pg_locks со значением shardman параметра locktype.

Когда накладывается глобальная блокировки, координатор отправляет запрос на блокировку на каждый узел в заданном порядке (в зависимости от rgid). В случае штатного запроса блокировка предоставляется, когда оператор успешно выполняется на всех узлах. В случае тестового запроса блокировка также предоставляется, если её можно применить на всех узлах. Если один из узлов не смог применить блокировку, тестовый запрос вернёт значение false. Если возвращённый результат одного из узлов отличается от ранее полученного (false после true или true после false), это считается ошибкой.

Список кластерных рекомендательных блокировок представлен в разделе Рекомендательные блокировки для распределённой системы.