51.76. pg_locks
ÐÑедÑÑавление pg_locks даÑÑ Ð´Ð¾ÑÑÑп к инÑоÑмаÑии о блокиÑовкаÑ
, ÑдеÑживаемÑÑ
акÑивнÑми пÑоÑеÑÑами на ÑеÑвеÑе баз даннÑÑ
. ÐодÑобнее блокиÑовки ÑаÑÑмаÑÑиваÑÑÑÑ Ð² Ðлаве 13.
ÐÑедÑÑавление pg_locks ÑодеÑÐ¶Ð¸Ñ Ð¾Ð´Ð½Ñ ÑÑÑÐ¾ÐºÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ акÑивного блокиÑÑемого обÑекÑа, запÑоÑенного Ñежима блокиÑовки и блокиÑÑÑÑего пÑоÑеÑÑа. Таким обÑазом, один и ÑÐ¾Ñ Ð¶Ðµ блокиÑÑемÑй обÑÐµÐºÑ Ð¼Ð¾Ð¶ÐµÑ ÑигÑÑиÑоваÑÑ Ð² ÑÑом пÑедÑÑавлении неоднокÑаÑно, еÑли его блокиÑÑÑÑ Ð¸Ð»Ð¸ ожидаÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки неÑколÑко пÑоÑеÑÑов. Ðднако обÑекÑÑ, ÑвободнÑе Ð¾Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовок, в ÑÑом пÑедÑÑавлении оÑÑÑÑÑÑвÑÑÑ Ð²Ð¾Ð²Ñе.
СÑÑеÑÑвÑÐµÑ Ð½ÐµÑколÑко ÑазлиÑнÑÑ
Ñипов блокиÑÑемÑÑ
обÑекÑов: оÑноÑÐµÐ½Ð¸Ñ Ñеликом (напÑимеÑ, ÑаблиÑÑ), оÑделÑнÑе ÑÑÑаниÑÑ Ð¾ÑноÑений, оÑделÑнÑе коÑÑежи оÑноÑений, иденÑиÑикаÑоÑÑ ÑÑанзакÑий (виÑÑÑалÑнÑе и поÑÑоÑннÑе) и пÑоизволÑнÑе обÑекÑÑ Ð±Ð°Ð· даннÑÑ
(иденÑиÑиÑиÑÑемÑе по OID клаÑÑа и OID обÑекÑа, Ñак же как в pg_description или pg_depend). ÐÑоме Ñого, в виде оÑделÑного блокиÑÑемого обÑекÑа пÑедÑÑавлено пÑаво ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð¾ÑноÑениÑ, как и пÑаво Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ pg_database.datfrozenxid. Также могÑÑ Ð±ÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Â«ÑекомендаÑелÑнÑе» блокиÑовки, не имеÑÑие пÑедопÑеделÑнного знаÑениÑ.
ТаблиÑа 51.77. СÑолбÑÑ pg_locks
Тип ÑÑолбÑа ÐпиÑание |
|---|
Тип блокиÑÑемого обÑекÑа: |
OID Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑой оÑноÑиÑÑÑ ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки, нолÑ, еÑли ÑÑо ÑазделÑемÑй обÑекÑ, либо NULL, еÑли ÑелÑÑ ÑвлÑеÑÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÑÑанзакÑии |
OID оÑноÑениÑ, ÑвлÑÑÑегоÑÑ ÑелÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки, либо NULL, еÑли ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки â не оÑноÑение или ÑаÑÑÑ Ð¾ÑноÑÐµÐ½Ð¸Ñ |
ÐÐ¾Ð¼ÐµÑ ÑÑÑаниÑÑ Ð² оÑноÑении, ÑвлÑÑÑейÑÑ ÑелÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки, либо NULL, еÑли ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки â не ÑÑÑаниÑа или коÑÑеж оÑноÑÐµÐ½Ð¸Ñ |
ÐÐ¾Ð¼ÐµÑ ÐºÐ¾ÑÑежа на ÑÑÑаниÑе, ÑвлÑÑÑегоÑÑ ÑелÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки, либо NULL, еÑли ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки â не коÑÑеж |
ÐиÑÑÑалÑнÑй иденÑиÑикаÑÐ¾Ñ ÑÑанзакÑии, ÑвлÑÑÑийÑÑ ÑелÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки, либо NULL, еÑли ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки â дÑÑгой обÑÐµÐºÑ |
ÐденÑиÑикаÑÐ¾Ñ ÑÑанзакÑии, ÑвлÑÑÑийÑÑ ÑелÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки, либо NULL, еÑли ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки â дÑÑгой обÑÐµÐºÑ |
OID ÑиÑÑемного каÑалога, ÑодеÑжаÑего ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки, либо NULL, еÑли ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки â не обÑÑнÑй обÑÐµÐºÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ |
OID Ñели блокиÑовки в ÑооÑвеÑÑÑвÑÑÑем ÑиÑÑемном каÑалоге, либо NULL, еÑли ÑÐµÐ»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки â не обÑÑнÑй обÑÐµÐºÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ |
ÐÐ¾Ð¼ÐµÑ ÑÑолбÑа, ÑвлÑÑÑегоÑÑ ÑелÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки (на ÑÐ°Ð¼Ñ ÑаблиÑÑ ÑказÑваÑÑ |
ÐиÑÑÑалÑнÑй иденÑиÑикаÑÐ¾Ñ ÑÑанзакÑии, ÑдеÑживаÑÑей или ожидаÑÑей блокиÑÐ¾Ð²ÐºÑ |
ÐденÑиÑикаÑÐ¾Ñ ÑеÑвеÑного пÑоÑеÑÑа (PID, Process ID), ÑдеÑживаÑÑего или ожидаÑÑего ÑÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑовкÑ, либо NULL, еÑли блокиÑовка ÑдеÑживаеÑÑÑ Ð¿Ð¾Ð´Ð³Ð¾Ñовленной ÑÑанзакÑией |
Ðазвание Ñежима блокиÑовки, коÑоÑÐ°Ñ ÑдеÑживаеÑÑÑ Ð¸Ð»Ð¸ запÑаÑиваеÑÑÑ ÑÑим пÑоÑеÑÑом (Ñм. ÐодÑаздел 13.3.1 и ÐодÑаздел 13.2.3) |
True, еÑли блокиÑовка полÑÑена, и false, еÑли она ожидаеÑÑÑ |
True, еÑли блокиÑовка полÑÑена по бÑÑÑÑÐ¾Ð¼Ñ Ð¿ÑÑи, и false, еÑли она полÑÑена ÑеÑез оÑновнÑÑ ÑаблиÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок |
ÐÑемÑ, когда ÑеÑвеÑнÑй пÑоÑеÑÑ Ð½Ð°Ñал ожидаÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑовкÑ, или NULL, еÑли блокиÑовка полÑÑена. ÐбÑаÑиÑе внимание, ÑÑо ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле наÑала Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð² ÑÑом поле Ð¼Ð¾Ð¶ÐµÑ ÐºÑаÑковÑеменно наблÑдаÑÑÑÑ NULL, пÑи Ñом ÑÑо в |
ÐÑизнак granted ÑÑÑанавливаеÑÑÑ Ð² ÑÑÑоке, пÑедÑÑавлÑÑÑей блокиÑовкÑ, ÑдеÑживаемÑÑ ÑказаннÑм пÑоÑеÑÑом. ÐÑли он ÑбÑоÑен, ÑÑÐ¾Ñ Ð¿ÑоÑеÑÑ Ð¶Ð´ÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки, из Ñего ÑледÑÐµÑ ÑÑо как минимÑм один дÑÑгой пÑоÑеÑÑ ÑдеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¸Ð»Ð¸ Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ñого же обÑекÑа в конÑликÑÑÑÑем Ñежиме. ÐжидаÑÑий пÑоÑеÑÑ Ð±ÑÐ´ÐµÑ Ð¿ÑиоÑÑановлен до оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð´ÑÑгой блокиÑовки (или вÑÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑиÑÑаÑии взаимоблокиÑовки). Ðдин пÑоÑеÑÑ Ð² один Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð¶Ð¸Ð´Ð°ÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¼Ð°ÐºÑимÑм одной блокиÑовки.
Ðа пÑоÑÑжении ÑÑанзакÑии ÑеÑвеÑнÑй пÑоÑеÑÑ ÑдеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¸ÑклÑÑиÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð²Ð¸ÑÑÑалÑного иденÑиÑикаÑоÑа ÑÑанзакÑии. ÐÑли ÑÑанзакÑии назнаÑаеÑÑÑ Ð¿Ð¾ÑÑоÑннÑй иденÑиÑикаÑÐ¾Ñ (ÑÑо обÑÑно пÑоиÑÑ Ð¾Ð´Ð¸Ñ, ÑолÑко еÑли ÑÑанзакÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÑÐµÑ ÑоÑÑоÑние Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ ), он Ñакже ÑдеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´Ð¾ ÐµÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ ÑÑого поÑÑоÑнного иденÑиÑикаÑоÑа. Ðогда пÑоÑеÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñм ожидаÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ какÑÑ-Ñо дÑÑгÑÑ ÑÑанзакÑиÑ, он Ð´ÐµÐ»Ð°ÐµÑ ÑÑо, запÑаÑÐ¸Ð²Ð°Ñ ÑазделÑемÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²ÐºÑ Ð´Ð»Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑа ÑÑой ÑÑанзакÑии (виÑÑÑалÑного или поÑÑоÑнного, в завиÑимоÑÑи Ð¾Ñ ÑиÑÑаÑии). ÐÑÐ¾Ñ Ð·Ð°Ð¿ÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð²Ñполнен, ÑолÑко когда дÑÑÐ³Ð°Ñ ÑÑанзакÑÐ¸Ñ Ð·Ð°Ð²ÐµÑÑиÑÑÑ Ð¸ оÑÐ²Ð¾Ð±Ð¾Ð´Ð¸Ñ Ñвои блокиÑовки.
ХоÑÑ ÐºÐ¾ÑÑежи Ñоже пÑедÑÑавлÑÑÑ Ñобой блокиÑÑемÑй обÑекÑ, инÑоÑмаÑÐ¸Ñ Ð¾ блокиÑÐ¾Ð²ÐºÐ°Ñ ÑÑÑок Ñ ÑаниÑÑÑ Ð½Ð° диÑке, а не в памÑÑи, поÑÑÐ¾Ð¼Ñ Ñакие блокиÑовки обÑÑно не показÑваÑÑÑÑ Ð² ÑÑом пÑедÑÑавлении. ÐÑли пÑоÑеÑÑ Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки на ÑÑовне ÑÑÑоки, он обÑÑно виден в нÑм как ожидаÑÑий поÑÑоÑнного иденÑиÑикаÑоÑа ÑÑанзакÑии ÑекÑÑего владелÑÑа ÑÑой блокиÑовки.
РекомендаÑелÑнÑе блокиÑовки могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ñ Ð¿Ð¾ клÑÑам, ÑоÑÑоÑÑим из одного знаÑÐµÐ½Ð¸Ñ bigint или из двÑÑ
знаÑений integer. СÑаÑÑÐ°Ñ Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ð° bigint вÑводиÑÑÑ Ð² ÑÑолбÑе classid, а младÑÐ°Ñ Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ð° в ÑÑолбÑе objid, и objsubid Ñавен 1. ÐÑÑ
одное знаÑение bigint Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ð¾ÑÑÑановлено вÑÑажением (classid::bigint << 32) | objid::bigint. ÐÐ»Ñ ÐºÐ»ÑÑей integer пеÑÐ²Ð°Ñ ÑаÑÑÑ ÐºÐ»ÑÑа наÑ
одиÑÑÑ Ð² classid, а вÑоÑÐ°Ñ ÑаÑÑÑ Ð² objid, и objsubid Ñавна 2. ÐонкÑеÑное пÑедназнаÑение ÑÑиÑ
клÑÑей опÑеделÑÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ. РекомендаÑелÑнÑе блокиÑовки ÑÑÑеÑÑвÑÑÑ Ð² ÑамкаÑ
Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, поÑÑÐ¾Ð¼Ñ ÑÑÐ¾Ð»Ð±ÐµÑ database Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение Ð´Ð»Ñ ÑакиÑ
блокиÑовок.
ÐÑедÑÑавление pg_locks даÑÑ Ð¾Ð±ÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¿Ð¾ вÑем блокиÑовкам в клаÑÑеÑе баз даннÑÑ
, а не ÑолÑко по Ñем, ÑÑо оÑноÑÑÑÑÑ Ðº ÑекÑÑей базе. ХоÑÑ Ñоединив relation Ñ pg_class.oid, можно полÑÑиÑÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸ÑованнÑе оÑноÑениÑ, ÑÑо бÑÐ´ÐµÑ ÑабоÑаÑÑ ÐºÐ¾ÑÑекÑно ÑолÑко Ð´Ð»Ñ Ð¾ÑноÑений в ÑекÑÑей базе даннÑÑ
(Ð´Ð»Ñ ÑеÑ
, в блокиÑовкаÑ
коÑоÑÑÑ
ÑÑÐ¾Ð»Ð±ÐµÑ database ÑодеÑÐ¶Ð¸Ñ OID ÑекÑÑей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
или нолÑ).
Соединив ÑÑÐ¾Ð»Ð±ÐµÑ pid Ñо ÑÑолбÑом pid пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_stat_activity, можно полÑÑиÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑеанÑаÑ
, ÑдеÑживаÑÑиÑ
или ожидаÑÑиÑ
каждÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑовкÑ, напÑÐ¸Ð¼ÐµÑ Ñак:
SELECT * FROM pg_locks pl LEFT JOIN pg_stat_activity psa
ON pl.pid = psa.pid; Также, еÑли Ð²Ñ Ð¸ÑполÑзÑеÑе подгоÑовленнÑе ÑÑанзакÑии, ÑÑÐ¾Ð»Ð±ÐµÑ virtualtransaction можно ÑоединиÑÑ Ñо ÑÑолбÑом transaction пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_prepared_xacts Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑии о подгоÑовленнÑÑ
ÑÑанзакÑиÑÑ
, ÑдеÑживаÑÑиÑ
блокиÑовки. (ÐодгоÑÐ¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ ÑÑанзакÑÐ¸Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð¶Ð¸Ð´Ð°ÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок, но она Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑодолжаÑÑ ÑдеÑживаÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовки, полÑÑеннÑе ей в пÑоÑеÑÑе вÑполнениÑ.) ÐапÑимеÑ:
SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
ON pl.virtualtransaction = '-1/' || ppx.transaction;ХоÑÑ Ð² пÑинÑипе возможно полÑÑиÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ пÑоÑеÑÑаÑ
, коÑоÑÑе блокиÑÑÑÑ Ð´ÑÑгие пÑоÑеÑÑÑ, Ñоединив пÑедÑÑавление pg_locks Ñ Ð½Ð¸Ð¼ же, оÑÐµÐ½Ñ ÑÑÑдно ÑделаÑÑ ÑÑо пÑавилÑно во вÑеÑ
деÑалÑÑ
. Ð ÑаÑÑноÑÑи поÑомÑ, ÑÑо Ñакой запÑÐ¾Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÐ´ÐµÑ Ð·Ð½Ð°ÑÑ, какие ÑÐµÐ¶Ð¸Ð¼Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки конÑликÑÑÑÑ Ñ Ð´ÑÑгими. Ðало Ñого, пÑедÑÑавление pg_locks не показÑваеÑ, какие пÑоÑеÑÑÑ ÑÑоÑÑ Ð¿ÐµÑед какими в оÑеÑедÑÑ
Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовок, а Ñакже какие пÑоÑеÑÑÑ ÑвлÑÑÑÑÑ Ð¿Ð°ÑаллелÑнÑми ÑабоÑими пÑоÑеÑÑами и к каким клиенÑÑким ÑеанÑам они оÑноÑÑÑÑÑ. ЧÑÐ¾Ð±Ñ ÑзнаÑÑ, каким пÑоÑеÑÑом или пÑоÑеÑÑами блокиÑÑеÑÑÑ Ð¾Ð¶Ð¸Ð´Ð°ÑÑий пÑоÑеÑÑ, лÑÑÑе иÑполÑзоваÑÑ ÑÑнкÑÐ¸Ñ pg_blocking_pids() (Ñм. ТаблиÑÑ 9.65).
РпÑедÑÑавлении pg_locks показÑваÑÑÑÑ Ð´Ð°Ð½Ð½Ñе и из менеджеÑа обÑÑнÑÑ
блокиÑовок, и из менеджеÑа пÑедикаÑнÑÑ
блокиÑовок, коÑоÑÑе ÑвлÑÑÑÑÑ Ð¾ÑделÑнÑми меÑ
анизмами; кÑоме Ñого, Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¾Ð±ÑÑнÑÑ
блокиÑовок подÑазделÑÐµÑ Ñвои блокиÑовки на обÑÑнÑе и полÑÑеннÑе бÑÑÑÑÑм пÑÑÑм. ÐбÑолÑÑÐ½Ð°Ñ ÑоглаÑованноÑÑÑ Ð²ÑеÑ
ÑÑиÑ
даннÑÑ
не гаÑанÑиÑÑеÑÑÑ. ÐÑи обÑаÑении к ÑÑÐ¾Ð¼Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñе блокиÑовок по бÑÑÑÑÐ¾Ð¼Ñ Ð¿ÑÑи (Ñ fastpath = true) ÑобиÑаÑÑÑÑ Ð¿Ð¾ оÑеÑеди Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑеÑвеÑного пÑоÑеÑÑа, без замоÑÐ°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑоÑÑоÑÐ½Ð¸Ñ Ð²Ñего менеджеÑа блокиÑовок, Ñак ÑÑо ÑÑÑеÑÑвÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ, ÑÑо в пÑоÑеÑÑе ÑбоÑа ÑÑой инÑоÑмаÑии блокиÑовки бÑдÑÑ Ð¾ÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð¸Ð»Ð¸ полÑÑенÑ. ÐамеÑÑÑе однако, ÑÑо ÑÑи блокиÑовки не Ð´Ð¾Ð»Ð¶Ð½Ñ ÐºÐ¾Ð½ÑликÑоваÑÑ Ñ Ð»ÑбÑми дÑÑгими акÑÑалÑнÑми блокиÑовками. ÐоÑле Ñого как Ð¾Ñ Ð²ÑеÑ
пÑоÑеÑÑов полÑÑÐµÐ½Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки по бÑÑÑÑÐ¾Ð¼Ñ Ð¿ÑÑи, Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¾Ð±ÑÑнÑÑ
блокиÑовок замоÑаживаеÑÑÑ Ñеликом и инÑоÑмаÑÐ¸Ñ Ð¾Ð±Ð¾ вÑеÑ
оÑÑавÑиÑ
ÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑовкаÑ
ÑобиÑаеÑÑÑ Ð² аÑомаÑной опеÑаÑии. ÐоÑле ÑазмоÑÐ°Ð¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑÑого менеджеÑа, Ñакже замоÑаживаеÑÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑедикаÑнÑÑ
блокиÑовок, и инÑоÑмаÑÐ¸Ñ Ð¾Ð± ÑÑиÑ
блокиÑовкаÑ
ÑобиÑаеÑÑÑ Ð°ÑомаÑно. Таким обÑазом, за иÑклÑÑением блокиÑовок по бÑÑÑÑÐ¾Ð¼Ñ Ð¿ÑÑи, каждÑй Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок вÑдаÑÑ ÑоглаÑованнÑй Ð½Ð°Ð±Ð¾Ñ ÑезÑлÑÑаÑов, но Ñак как Ð¼Ñ Ð½Ðµ блокиÑÑем оба ÑÑиÑ
менеджеÑа одновÑеменно, блокиÑовки могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ñ Ð¸Ð»Ð¸ оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ñ Ð¿Ð¾Ñле Ñого, как опÑаÑиваеÑÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¾Ð±ÑÑнÑÑ
блокиÑовок, и до Ñого, как опÑаÑиваеÑÑÑ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ð¿ÑедикаÑнÑÑ
блокиÑовок.
ÐлокиÑовка менеджеÑа обÑÑнÑÑ Ð¸Ð»Ð¸ пÑедикаÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑазиÑÑÑÑ Ð½Ð° пÑоизводиÑелÑноÑÑи Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , еÑли обÑаÑаÑÑÑÑ Ðº ÑÑÐ¾Ð¼Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑаÑÑо. ÐÑа блокиÑовка ÑдеÑживаеÑÑÑ Ð½Ðµ долÑÑе, Ñем Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ñ Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑов, но ÑÑо не иÑклÑÑÐ°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑÐ½Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи.