Разве возможно чтобы PostgreSQL пропустил выполнение заблокированных запросов?

PostgreSQL пропускает выполнение заблокированных запросов только в режиме "READ COMMITTED" и "REPEATABLE READ". В этих режимах, при возникновении блокировки на ресурсе, PostgreSQL выбирает менее блокирующее действие, игнорируя или откладывая выполнение заблокированных запросов до тех пор, пока блокировка не будет снята или разрешена.

В режиме "READ COMMITTED" PostgreSQL использует механизм "старого семантики считывания". Заблокированный запрос, который пытается читать ресурс, ожидает, пока блокировка не будет снята другим запросом. Это может привести к невозможности выполнения запроса, если блокировка длится долго. Однако, PostgreSQL позволяет каждому новому запросу пробовать выполнить заблокированный запрос повторно, пока успешно не выполнилось.

В режиме "REPEATABLE READ", каждый новый запрос, который пытается выполнить заблокированный запрос, должен ожидать снятия блокировки. PostgreSQL гарантирует, что каждый запрос получит согласованные данные, но может пропустить выполнение заблокированных запросов для достижения этого.

Однако, в режиме "SERIALIZABLE", PostgreSQL не позволяет пропускать выполнение заблокированных запросов. В этом режиме каждый новый запрос, который пытается выполнить заблокированный запрос, должен ожидать снятия блокировки. Это обеспечивает высокую степень изоляции данных, но может привести к более длительным временным задержкам, если блокировки длительные.

В целом, возможность выполнения заблокированных запросов в PostgreSQL зависит от выбранного уровня изоляции транзакции и текущего состояния блокировок в базе данных. Некоторые режимы изоляции позволяют пропускать выполнение заблокированных запросов, чтобы избежать долгих задержек, в то время как другие режимы гарантируют согласованность данных, но могут вести к более длительным временным задержкам.