Π Π°Π·ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΎΡ 2020 Π³. Π½Π° ΠΡΡΡ ΠΠΎΠΌΠΆΠΈΠ°Π½ "ΠΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ Π² Postgres".

(ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΠΡΠΈΡΠΊΠΈ SQL Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΎΡ ΡΠ»Π°ΠΉΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π° ΡΠΎΠ·ΠΈ Π»ΠΈΠ½ΠΊ: )
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅! ΠΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ Π΅ ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄Π° Π±ΡΠ΄Π° ΡΡΠΊ Π² Π ΡΡΠΈΡ. ΠΠ·Π²ΠΈΠ½ΡΠ²Π°ΠΉΡΠ΅, ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π΄ΠΎΠΉΠ΄Π° ΠΌΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π°, Π½ΠΎ ΡΠ°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΠ²Π°Π½ ΠΈ Π°Π· ΠΈΠΌΠ°ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅. ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅ Π΄Π° ΡΡΠΌ ΡΡΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΠ΅ΡΡΠΎ. ΠΠ±ΠΎΠΆΠ°Π²Π°ΠΌ Π΄Π° ΠΏΠΎΡΠ΅ΡΡ Π ΡΡΠΈΡ. Π©Π΅ ΠΏΠΎΡΠ΅ΡΡ Π’ΡΠΌΠ΅Π½ ΠΈ Π’Π²Π΅Ρ. ΠΠ°ΠΈΡΡΠΈΠ½Π° ΡΠ΅ ΡΠ°Π΄Π²Π°ΠΌ, ΡΠ΅ ΡΠ΅ ΠΈΠΌΠ°ΠΌ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π±ΡΠ΄Π° Π² ΡΠ΅Π·ΠΈ Π³ΡΠ°Π΄ΠΎΠ²Π΅.
ΠΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΡΡΡ ΠΠΎΠΌΠΆΠΈΠ°Π½. Π Π°Π±ΠΎΡΡ Π² EnterpriseDB ΠΈ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌ Ρ Postgres ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 23 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠΠΈΠ²Π΅Ρ Π² Π€ΠΈΠ»Π°Π΄Π΅Π»ΡΠΈΡ, Π‘ΠΠ©. ΠΡΡΡΠ²Π°ΠΌ ΠΎΠΊΠΎΠ»ΠΎ 90 Π΄Π½ΠΈ Π² Π³ΠΎΠ΄ΠΈΠ½Π°ΡΠ° ΠΈ ΠΏΠΎΡΠ΅ΡΠ°Π²Π°ΠΌ ΠΎΠΊΠΎΠ»ΠΎ 40 ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ. ΠΠΎΡΡ , ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΡΠ΅Π³Π°. Π‘Π»Π΅Π΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΎΡ Π»ΠΈΡΠ½ΠΈΡ ΠΌΠΈ ΡΠ°ΠΉΡ. Π’Π°ΠΌ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ° Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΠΈΡΠΈ Π² Π±Π»ΠΎΠ³Π°, Π½Π°Π΄ 500. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΡΡΠ΄ΡΡΠΆΠ°ΡΠ΅Π»Π΅Π½ ΡΠ΅ΡΡΡΡ. Π Π°ΠΊΠΎ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° ΡΠΎΠ·ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π²ΠΈ ΠΏΡΠΈΠΊΠ°Π½Π²Π°ΠΌ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ.
ΠΡΠ΅Π΄ΠΈ Π±ΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π», ΠΏΡΠΎΡΠ΅ΡΠΎΡ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° Ρ Postgres. Π ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ ΡΠ°Π΄Π²Π°ΠΌ, ΡΠ΅ ΠΌΠΎΠ³Π° ΡΠ΅Π³Π° Π΄Π° Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΎΠ½ΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠ». Π’ΠΎΠ²Π° Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΈ. Π ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ ΡΡΠ΄ΡΡΠΆΠ° 110 ΡΠ»Π°ΠΉΠ΄Π°. Π©Π΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΏΡΠΎΡΡΠΈ Π½Π΅ΡΠ°, Π° ΠΊΡΠΌ ΠΊΡΠ°Ρ Π΄ΠΎΠΊΠ»Π°Π΄ΡΡ ΡΠ΅ ΡΡΠ°Π½Π΅ Π²ΡΠ΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ΅Π½ ΠΈ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ΅Π½.

Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° Π½Π΅ΠΏΡΠΈΡΡΠ΅Π½ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ. ΠΠ°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°ΡΠ° ΡΠ΅ΠΌΠ°. ΠΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΡΠ΅Π·Π½Π΅. Π’ΠΎΠ²Π° Π΅ ΠΊΠ°ΡΠΎ Π΄Π° Ρ ΠΎΠ΄ΠΈΡ Π½Π° Π·ΡΠ±ΠΎΠ»Π΅ΠΊΠ°Ρ.

- ΠΠ°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΈΠΌΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅. Π’.Π΅. Π΄Π½Π΅Ρ ΡΠ΅ Π²ΠΈ Π΄Π°ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π·Π½Π°Π½ΠΈΡ Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ.
- ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈΡΠ΅. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΡΠΊΡΡΠ½Π° ΡΠ°ΡΡ ΠΎΡ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡΡΠ°, Π½ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Ρ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅.
- Π‘Π»Π΅Π΄Π²Π°ΡΠΎΡΠΎ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ½Π° ΡΠ°ΡΡ.
- Π ΠΏΠΎΡΠ»Π΅ ΡΠ΅ Π΄Π°Π΄Π΅ΠΌ Π½ΡΠΊΠΎΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ. Π ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π° Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅.

ΠΠ΅ΠΊΠ° Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡΡΠ°.

Π’Π΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ Ρ Π½Π°Ρ Π΅ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½Π°. ΠΠΎΠ»ΠΊΠΎ ΠΎΡ Π²Π°Ρ Π·Π½Π°ΡΡ ΠΎΡΠΊΡΠ΄Π΅ Π΅ ΡΠΎΠ·ΠΈ ΠΎΡΠΊΡΡ? ΠΠ²Π°ΠΌΠ° Π΄ΡΡΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΎΡ ΠΈΠ³ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° βΠΠΎΠ»ΠΎΡΠ°Π»Π½ΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠ°β. ΠΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ½Π° ΠΈΠ³ΡΠ° ΠΎΡ 80-ΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΌΠΈΡΠ»Ρ. Π’ΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π²Π»Π΅Π·Π΅Ρ Π² ΠΏΠ΅ΡΠ΅ΡΠ°, Π² Π»Π°Π±ΠΈΡΠΈΠ½Ρ ΠΈ ΡΠ΅ΠΊΡΡΡΡ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅, Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π±Π΅ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ. Π’Π°ΠΊΠ° ΠΏΠΎΠΌΠ½Ρ ΡΠ°Π·ΠΈ ΠΈΠ³ΡΠ°.

Π ΡΡΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΠΉΠ΄ΠΎΡ Π° ΠΏΡΠΈ Π½Π°Ρ ΠΎΡ Oracle. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π³ΠΈ.

Π’ΡΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΈ ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΡΠΌΠ½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, SHARE UPDATE EXCLUSIVE. ΠΠΎΡΠ»Π΅ SHARE RAW EXCLUSIVE. Π§Π΅ΡΡΠ½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΡΠ΅Π·ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΈ. Π©Π΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° Π³ΠΈ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΡΠΊΠΎΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π΄ΡΠΌΠ°ΡΠ° βshareβ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° β ΠΎΡΠ΄Π΅Π»ΡΠΌ. ΠΡΠΊΠΎΠΈ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π΄ΡΠΌΠ°ΡΠ° βexclusiveβ β Π΅ΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π΅Π½. Π Π½ΡΠΊΠΎΠΈ ΡΠ° Π΄ΡΠΈΡΠ΅ Π΄Π²Π΅ Π΄ΡΠΌΠΈ. ΠΡΠΊΠ°ΠΌ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π° Ρ ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΡΡ ΡΠ΅Π·ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.

Π ΡΡΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ ΡΠ»ΠΎΠ²ΠΎΡΠΎ βΠ΄ΠΎΡΡΡΠΏβ β access. Π Π΄ΡΠΌΠ°ΡΠ° βrowβ β ΡΠ΅Π΄. Π’. Π΅. ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ°, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅.

ΠΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π² Postgres, Π·Π° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° Π³ΠΎΠ²ΠΎΡΡ Π·Π° Π½Π΅Π³ΠΎ Π² ΠΌΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅, ΡΠΎΠ²Π° Π΅ MVCC. ΠΠΌΠ°ΠΌ ΠΎΡΠ΄Π΅Π»Π½Π° ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ° Π½Π° ΠΌΠΎΡ ΡΠ΅Π±ΡΠ°ΠΉΡ. Π Π°ΠΊΠΎ ΡΠΌΡΡΠ°ΡΠ΅, ΡΠ΅ ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Π΅ ΡΠ»ΠΎΠΆΠ½Π°, ΡΠΎ MVCC Π΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π°ΠΉ-ΡΠ»ΠΎΠΆΠ½Π°ΡΠ°. Π Π°ΠΊΠΎ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ°ΠΉΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³Π»Π΅Π΄Π°ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠΎ.

ΠΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ β ΡΠΎΠ²Π° ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π±Π΅Π· ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ. Π ΡΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π Postgres ΠΈΠΌΠ° Π΄Π²Π΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ. ΠΠ½Π°ΠΌ, ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.

Π‘ΡΡΠΎ ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΡΠ»Π°ΠΉΠ΄ΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ Π·Π° Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅, Π·Π°ΡΠΎΠ²Π° Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π½ΠΎ Ρ ΡΠ΅ΡΠ²Π΅Π½ ΡΠ²ΡΡ, ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅Π³ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

ΠΠ»Π΅Π΄Π°ΠΌΠ΅. Π‘ ΡΠ΅ΡΠ²Π΅Π½ ΡΠ²ΡΡ Π΅ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Ρ Π½ΠΎΠΌΠ΅ΡΡΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. Π’ΡΠΊ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° SELECT pg_back. Π’Ρ Π²ΡΡΡΠ° ΠΌΠΎΡΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ ID Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.
ΠΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ, Π°ΠΊΠΎ Π²ΠΈ Ρ Π°ΡΠ΅ΡΠ²Π° ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Ρ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π² Π²Π°ΡΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΏΠΎ ΡΠ°Π·ΠΈ ΡΠΎΠ·ΠΎΠ²Π° Π²ΡΡΠ·ΠΊΠ° ΠΈ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ SQL Π·Π° ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° Ρ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π² Π²Π°ΡΠΈΡ PSQL ΠΈ ΡΡΠ»Π°ΡΠ° ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π½Π° Π΅ΠΊΡΠ°Π½Π° Π²ΠΈ. Π’Ρ Π½ΡΠΌΠ° Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° ΡΠ²Π΅ΡΠΎΠ²Π΅, Π½ΠΎ ΠΏΠΎΠ½Π΅ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ Π²ΠΈΠ΄ΠΈΠΌ.

Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. Π’ΠΎΠ²Π° Π΅ Π½ΠΎΠΌΠ΅ΡΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠΌΠ΅ ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΈ. Π ΠΈΠΌΠ° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΡΠΈΠΏ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π² Postgres, Π½Π°ΡΠ΅ΡΠ΅Π½ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.
Π ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠΎΠ²Π°. ΠΠ½ΠΎΠ³ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΈΠ½Π°ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° Π² Postgres.
ΠΠΈΡΡΡΠ°Π»Π΅Π½ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π΅ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π½Π΅ ΡΡΠ΄ΡΡΠΆΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° SELECT, Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π½ΡΠΌΠ° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π½ΡΠΌΠ° Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΠΌ Π½ΠΈΡΠΎ. ΠΠ°ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ ΠΏΡΠΎΡΡ SELECT, Π½Π΅ Π΄Π°Π²Π°ΠΌΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ID. ΠΠ°Π²Π°ΠΌΠ΅ ΠΈ ΡΠ°ΠΌΠΎ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ID.
Π ΡΠΎΠ²Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Postgres, ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅, Π·Π°ΡΠΎΠ²Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΡ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄Π²Π΅ ΡΠΈΡΠ»Π°. ΠΡΡΠ²ΠΎΡΠΎ ΡΠΈΡΠ»ΠΎ ΠΏΡΠ΅Π΄ ΡΠ»Π΅ΡΠ° Π΅ ID Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°. Π Π²Π΄ΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π±ΡΠΎΡΡ.

ΠΠ°ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ Π·Π°ΡΠ²ΠΊΠ°, ΡΠΎΠΉ ΠΊΠ°Π·Π²Π°, ΡΠ΅ ID Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° Π΅ 2.

ΠΠΊΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ ΡΠ΅ΡΠΈΡ ΠΎΡ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π±ΡΠΎΡΡΡΡ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ Π·Π°ΡΠ²ΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ Π·Π°ΡΠ²ΠΊΠ° 2/10, 2/11, 2/12 ΠΈ Ρ.Π½.

ΠΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΡΡΠΊ ΠΈΠΌΠ° Π΄Π²Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. ΠΠ»ΡΠ²ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° β 2/12. Π Π²Π΄ΡΡΠ½ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. Π ΡΠΎΠ²Π° ΠΏΠΎΠ»Π΅ Π΅ ΠΏΡΠ°Π·Π½ΠΎ. Π ΡΠ°Π·ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. ΠΠ°ΡΠΎΠ²Π° Π½Π΅ ΠΉ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°ΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°.

ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° Π°Π½Π°Π»ΠΈΠ· (ANALYZE), ΡΡΡΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ° ΠΌΠΈ ΠΈΠ·Π΄Π°Π²Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. ΠΠΈΠΆΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ. ΠΡΠ΅Π΄ΠΈ Π½ΡΠΌΠ°Ρ ΡΠΎΠ·ΠΈ ID, ΡΠ΅Π³Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ.

Π ΡΠ°ΠΊΠ°, ΡΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΡΡΠ³Π° Π·Π°ΡΠ²ΠΊΠ°, Π΄ΡΡΠ³Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. ΠΠΈΡΡΡΠ°Π»Π½ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π΅ 2/13. Π Π°ΠΊΠΎ ΠΏΠΎΠΈΡΠΊΠ°ΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, ΡΠ΅ Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ°.

Π’Π°ΠΊΠ° ΡΠ΅, ΠΎΡΠ½ΠΎΠ²ΠΎ. ΠΠΌΠ°ΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. ΠΡΠΎΡΡΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Postgres.

ΠΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ ΠΊΡΠΌ ΡΡΠ΅ΡΠ°ΡΠ° ΡΠ°ΡΡ. Π’ΡΠΊ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² Postgres. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. ΠΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠ°ΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°. ΠΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π½Π΅ΡΠ°, Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ»Π΅Π΄Π²Π°.
Π©Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΡΠ°Π·ΠΈ ΡΠ°ΡΡ, ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΡΠ΅ΠΊΠΈ ΡΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. Π ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΈ ΠΊΠ°ΠΊ ΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΡΡ, ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° Π½ΡΠΊΠΎΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° Π² Postgres.

ΠΠ° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π·Π°ΡΠ²ΠΊΠ° ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π² Postgres, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π΄Π°Π΄Π΅ΠΌ Π·Π°ΡΠ²ΠΊΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΈΠ·Π³Π»Π΅Π΄. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π² ΡΠ΅ΡΠ²Π΅Π½ΠΎ Π΅ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π½ pg_lock. Pg_lock Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½Π° ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ Π½ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊΠ²ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² Postgres.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΈ Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° pg_lock ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ, Π·Π°ΡΠΎΡΠΎ Π΅ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ°ΡΠΎΠ²Π° ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΈΠ·Π³Π»Π΅Π΄, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° pg_locks. Π ΡΠΎΠΉ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π·Π° ΠΌΠ΅Π½ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΡΡΠΎ ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ°. Π’.Π΅. ΡΠΎΠΉ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° ΠΌΠΎΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΌΠΎΡΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ΅ΡΠΈΡ ΠΈ Ρ.Π½. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ SQL ΠΈ ΡΠΎΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°.

ΠΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΅, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΈΠ·Π³Π»Π΅Π΄ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠΎΠΊ, Π·Π°ΡΠΎΠ²Π° ΠΌΠΈ ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° ΡΡΠ·Π΄Π°ΠΌ Π²ΡΠΎΡΠΈ β lockview2.
Π ΡΠΎΠΉ ΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. Π ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π·Π°ΡΠΎΠ²Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°Ρ
Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΏΠΎ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ Π½Π°ΡΠΈΠ½.

Π’Π°ΠΊΠ° ΡΠ΅, ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° Lockdemo. Π ΡΡΠ·Π΄Π°Π΄ΠΎΡ ΠΌΠ΅ ΡΠ°ΠΌ Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄. Π’ΠΎΠ²Π° Π΅ Π½Π°ΡΠ°ΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ½Π° ΡΠ°Π±Π»ΠΈΡΠ°. Π ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ΅ΠΊΡΠΈΠΈ, Π·Π° Π΄Π° Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.

Π’Π°ΠΊΠ° ΡΠ΅, Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄, Π΅Π΄Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π°. ΠΡΡΠ²ΠΈΡΡ ΡΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ° ACCESS SHARE. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΠΈΠΊΡΠΈΠ²Π½Π°ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΏΠΎΡΡΠΈ Π½Π΅ Π²Π»ΠΈΠ·Π° Π² ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ Ρ Π΄ΡΡΠ³ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠΊΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ°, ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«lock tableΒ». Π’ΠΎΠ²Π° ΡΠ²Π½ΠΎ ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ°, Ρ.Π΅. Π² ΡΠ΅ΠΆΠΈΠΌ ACCESS SHARE ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ lock table. Π Π°ΠΊΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ PSQL Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ, ΡΠ°ΠΊΠ° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ Π²ΡΠΎΡΠ° ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΌΠΎΡΡΠ° ΠΏΡΡΠ²Π° ΡΠ΅ΡΠΈΡ. ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Ρ ΡΡΠΊ? ΠΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΠΌ ΠΊΡΠΌ Π΄ΡΡΠ³Π° ΡΠ΅ΡΠΈΡ ΠΈ ΠΉ ΠΊΠ°Π·Π²Π°ΠΌ Β«ΠΏΠΎΠΊΠ°ΠΆΠΈ ΠΌΠΈ lockview Π·Π° ΡΠ°Π·ΠΈ Π·Π°ΡΠ²ΠΊΠ°Β». Π ΡΡΠΊ ΠΈΠΌΠ°ΠΌ AccessShareLock Π² ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°. Π’ΠΎΠ²Π° Π΅ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΈΡΠΊΠ°Ρ . Π ΡΠΎΠΉ ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π°. ΠΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ.

Π‘Π»Π΅Π΄Π²Π°ΡΠΎΡΠΎ, Π°ΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π²ΡΠΎΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π°, ΡΠ°ΠΌ Π½ΡΠΌΠ° Π½ΠΈΡΠΎ. Π’Π΅ ΡΠ° ΠΏΡΠ°Π·Π½ΠΈ.

ΠΠΊΠΎ ΠΈΠ·ΠΏΡΠ»Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«SELECTΒ», ΡΠΎΠ²Π° Π΅ ΠΈΠΌΠΏΠ»ΠΈΡΠΈΡΠ΅Π½ (ΡΠ²Π΅Π½) Π½Π°ΡΠΈΠ½ Π·Π° Π·Π°ΡΠ²ΡΠ²Π°Π½Π΅ Π½Π° AccessShareLock. ΠΠ°ΡΠΎΠ²Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°ΠΌ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ, ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π²ΡΡΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π°. Π Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ AccessShareLock. Π’Π°ΠΊΠ° SELECT ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π° AccessShareLock Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. Π ΡΠΎΠΉ Π½Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈΡΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Ρ Π½ΠΈΡΠΎ, Π·Π°ΡΠΎΡΠΎ Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ.

ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅, Π°ΠΊΠΎ ΠΈΠ·ΠΏΡΠ»Π½Ρ SELECT ΠΈ ΠΈΠΌΠ°ΠΌ ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ? ΠΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°, ΡΠ΅Π³Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌ ΡΡΠΈ: pg_class, pg_namespace ΠΈ pg_attribute.

Π ΡΠ΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ, Π²ΠΈΠΆΠ΄Π°ΠΌ 9 AccessShareLocks Π² ΡΡΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ. ΠΠ°ΡΠΎ? Π‘ΠΈΠ½ΡΠΎ Π΅ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΎ ΡΡΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ: pg_attribute, pg_class, pg_namespace. ΠΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠ΅Π· ΡΠ΅Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, ΡΡΡΠΎ ΠΈΠΌΠ°Ρ AccessShareLock.
Π ΡΠΎΠ²Π° Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΠ²Π° Ρ Π΄ΡΡΠ³ΠΈΡΠ΅. ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ, Π΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° Π½Π΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΠΈΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ Ρ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅. ΠΠΌΠ° ΡΠΌΠΈΡΡΠ». Π’.Π΅. Π°ΠΊΠΎ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΡΡ Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·ΡΠ΅Π·Π²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, Π·Π°ΡΠΎΠ²Π° AccessShare β ΡΠΎΠ²Π° Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Ρ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΡΡΠΎ Π½ΠΈ ΠΊΠ°Π·Π²Π° Β«Π½Π΅ ΠΈΠ·ΡΡΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΡΒ». ΠΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ.

ROW SHARE β ΡΠΎΠ²Π° Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½Π°.

ΠΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ. SELECT ROW SHARE Π΅ Π½Π°ΡΠΈΠ½ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅Π΄ ΠΏΠΎΠΎΡΠ΄Π΅Π»Π½ΠΎ. Π’Π°ΠΊΠ° ΡΠ΅ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π° ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Ρ, Π΄ΠΎΠΊΠ°ΡΠΎ Π³ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠ΅.
Π’Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈ SHARE LOCK? ΠΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π΅ 681 Π·Π° SELECT. Π ΡΠΎΠ²Π° Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎ ΡΡΠΊ? ΠΡΡΠ²ΠΈΡΡ ΠΏΡΡ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½ΠΎΠΌΠ΅Ρ Π² ΠΏΠΎΠ»Π΅ΡΠΎ "Lock". ΠΠ·Π΅ΠΌΠ°ΠΌΠ΅ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΠΈ ΡΠΎΠΉ ΠΊΠ°Π·Π²Π°, ΡΠ΅ Ρ Π±Π»ΠΎΠΊΠΈΡΠ° Π² Π΅ΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ. ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈ, Π΅, ΡΠ΅ ΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΈΠΌΠ°ΠΌ ΡΠ΅Π΄, ΠΊΠΎΠΉΡΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ Π½ΡΠΊΡΠ΄Π΅ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. ΠΠΎ Π½Π΅ ΠΊΠ°Π·Π²Π° ΠΊΡΠ΄Π΅ ΡΠΎΡΠ½ΠΎ. ΠΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠΎΠ²Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.

Π’ΡΠΊ ΠΊΠ°Π·Π²Π°ΠΌΠ΅, ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ Π½Π°Ρ.

Π’Π°ΠΊΠ°, Π΅ΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½Π°ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΈΠ·ΡΠΈΡΠ½ΠΎ (ΡΡΠ½ΠΎ) ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π΅ Π΅ΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½Π°. Π ΡΡΡΠΎ Π°ΠΊΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°ΡΠ΅ ΡΠ΅Π΄ Π² ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°, ΡΠΎ ΡΠΎΠ²Π° ΠΈ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅.

SHARE EXCLUSIVE β ΡΠΎΠ²Π° Π΅ ΠΏΠΎ-Π΄ΡΠ»Π³Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.

Π’ΠΎΠ²Π° (ANALYZE) Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.

SHARE LOCK β ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌ share.

ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ. Π ΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ SHARE LOCK, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΡΡ . Π’ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΈ ΠΏΠΎΡΡΠ°Π²Ρ Π½Π° Π½Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° SHARE LOCK.
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ SHARE LOCK Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π΄ΡΡΠ³ΠΈΡΠ΅ Ρ ΠΎΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ΡΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, Π½ΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°. Π ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ.
ΠΠΊΠΎ ΡΡΠ·Π΄Π°ΠΌ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ concurrently, ΡΠΎ ΡΠ΅ ΠΈΠΌΠ°ΠΌ Π΄ΡΡΠ³ ΡΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π·Π°ΡΠΎΡΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° concurrently ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π΅ΡΠΎ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. Π Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π½ΠΎΡΠΌΠ°Π»Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅. ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ concurrently ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π΄ΡΡΠ³ ΡΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.

SHARE ROW EXCLUSIVE β ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° ΠΈΠ·ΡΠΈΡΠ½ΠΎ (ΡΡΠ½ΠΎ).

ΠΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Ρ.Π΅. Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ»ΡΡΠ°ΠΉ, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΡΡ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.

EXCLUSIVE Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π½ΠΈΠΊΠΎΠΉ Π΄ΡΡΠ³ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°.

Π’ΡΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.

ACCESS EXCLUSIVE, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ CLUSTER table, ΡΠΎΠ³Π°Π²Π° ΡΠΎΠ²Π° ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ°ΠΌ. Π ΡΡ Π±Π»ΠΎΠΊΠΈΡΠ° Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ°ΠΌΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°, Π½ΠΎ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ ΡΡΡΠΎ.

Π’ΠΎΠ²Π° Π΅ Π²ΡΠΎΡΠ°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° ACCESS EXCLUSIVE, ΠΊΡΠ΄Π΅ΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. Π’Ρ Π±Π»ΠΎΠΊΠΈΡΠ° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π΄ΠΎΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ.
Π’ΠΎΠ²Π° Π΅ ΡΡΠ»Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ. ΠΠΎΠ²ΠΎΡΠΈΡ ΠΌΠ΅ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΌΠ΅ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π·Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.

Π‘Π΅Π³Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΏΡΠ΅Π· ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΡΠ°ΡΡ. Π©Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΡΠ»ΡΡΠ°ΠΈ. Π ΠΌΠΎΡΡΠ° Π·Π°Π΄Π°ΡΠ° Π² ΡΠ°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Π΅ Π΄Π° Π²ΠΈ Π΄Π°ΠΌ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠΎΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΡΠ°Π²ΠΈ Postgres, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π΅ΡΠ°. Π‘ΡΡΡΠ²Π° ΠΌΠΈ ΡΠ΅, ΡΠ΅ ΡΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ ΡΠΌΠ΅Π΅ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°ΡΡΠΈ.
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ.

ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Ρ ΡΠ°Π±Π»ΠΈΡΠΈ ΠΈ Ρ Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. ΠΠΎΠ³Π°ΡΠΎ Π²ΠΌΡΠΊΠ½Π° Π½Π΅ΡΠΎ, ΠΌΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ExclusiveLock, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ ExclusiveLock Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°.

Π ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ, Π°ΠΊΠΎ Π²ΠΌΡΠΊΠ½Π° ΠΎΡΠ΅ Π΄Π²Π° ΡΠ΅Π΄Π°? Π ΡΠ΅Π³Π° Π² Π½Π°ΡΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΠΌΠ° ΡΡΠΈ ΡΠ΅Π΄Π°. ΠΠΌΡΠΊΠ½Π°Ρ Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠΎΠ²Π° Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π°. Π Π°ΠΊΠΎ Π²ΠΌΡΠΊΠ½Π° ΠΎΡΠ΅ Π΄Π²Π° ΡΠ΅Π΄Π°, ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΡΡΠ°Π½Π½ΠΎΡΠΎ ΡΡΠΊ? ΠΠΌΠ° ΡΡΡΠ°Π½Π½ΠΎΡΡ, Π·Π°ΡΠΎΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΡΡΠΈ ΡΠ΅Π΄Π° Π² ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ°ΠΌ Π΄Π²Π° ΡΠ΅Π΄Π° Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. Π ΡΠΎΠ²Π° ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π΅ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° Postgres.
ΠΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° ΠΌΠΈΡΠ»ΡΡ, ΡΠ΅ Π°ΠΊΠΎ Π² Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ 100 ΡΠ΅Π΄Π°, ΡΠΎ ΡΠ΅ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° 100 Π·Π°ΠΏΠΈΡΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. ΠΠΊΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°ΠΌ Π²Π΅Π΄Π½Π°Π³Π° 1 000 ΡΠ΅Π΄Π°, ΡΠΎ ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΠΌΠΈ ΡΡΡΠ±Π²Π°Ρ 1 000 ΡΠ°ΠΊΠΈΠ²Π° Π·Π°ΡΠ²ΠΊΠΈ. Π Π°ΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ° ΠΌΠΈΠ»ΠΈΠΎΠ½ ΠΈΠ»ΠΈ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄. ΠΠΎ Π°ΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΊΠ°, Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅. ΠΠΊΠΎ ΡΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΡΠ·Π΄Π°Π²Π° Π·Π°ΠΏΠΈΡΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ΅Π΄, Π²ΠΈΠΆΠ΄Π°ΡΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ°ΡΠΎΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ°Π±Π»ΠΈΡΠΊΠ° Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π½Π°ΡΠΈΡΠΈ, Π½ΠΎ Postgres Π½Π΅ ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΊΠ°.
ΠΠ° ΡΠΎΠ·ΠΈ ΡΠ»Π°ΠΉΠ΄ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΡΠ΅ ΡΡΠΊ ΡΡΠ½ΠΎ ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°, ΡΠ΅ ΠΈΠΌΠ° ΠΎΡΠ΅ Π΅Π΄Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²ΡΡΡΠ΅ Π² MVCC, ΠΊΠΎΡΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅. ΠΠ°ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, Postgres Π½Π΅ ΡΡΠ·Π΄Π°Π²Π° ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. Π ΡΠΎΠ²Π° ΠΎΠΊΠ°Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.

ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ? Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΠΌ ΡΠ΅Π΄, ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅, ΡΠ΅ ΡΠΎΠΉ Π²Π΅Π΄Π½Π°Π³Π° ΠΈΠ·Π²ΡΡΡΠΈ Π΄Π²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π’ΠΎΠΉ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π±Π»ΠΎΠΊΠΈΡΠ° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. Π ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π·Π°ΡΠΎΡΠΎ ΠΈΠΌΠ° ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°. ΠΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠΌΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΠ΅ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Ρ, Π·Π°ΡΠΎΠ²Π° Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°ΠΌΠ΅.

Π ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΎΠ±Π½ΠΎΠ²Ρ Π΄Π²Π° ΡΠ΅Π΄Π°? Π Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΡΠΎΠΉ ΡΠ΅ Π΄ΡΡΠΆΠΈ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½. ΠΡΠ°Π²ΠΈΠΌ Π΄Π²Π° ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π½ΠΎ ΡΠΎΡΠ½ΠΎ ΡΡΡΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ΅Π΄ΠΎΠ²Π΅.
ΠΠΊΠΎ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π° ΠΊΠ°ΠΊ Postgres Π³ΠΎ ΠΏΡΠ°Π²ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠΎΠΈΡΠ΅ Π»Π΅ΠΊΡΠΈΠΈ Π·Π° MVCC, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ Postgres Π²ΡΡΡΠ΅ΡΠ½ΠΎ ΠΌΠ°ΡΠΊΠΈΡΠ° ΡΠ΅Π΄ΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Ρ. Π Postgres ΠΈΠΌΠ° Π½Π°ΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ, Π½ΠΎ Π½Π΅ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈ, Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈ Π½Π° ΠΏΠΎ-Π½ΠΈΡΠΊΠΎ ΠΈ ΠΏΠΎ-Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ.

Π ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΈΠ·ΡΡΠΈΡ Π½Π΅ΡΠΎ? ΠΠΊΠΎ ΠΈΠ·ΡΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄ ΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΈΠΌΠ°ΠΌ ΠΌΠΎΠΈΡΠ΅ Π΄Π²Π΅ Π²Ρ ΠΎΠ΄Π½ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π΄ΠΎΡΠΈ ΠΈ Π΄Π° ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΈΠ·ΡΡΠΈΡ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΠΈΠΌ, ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΠΏΡΠΈΡΡΡΡΠ²Π°Ρ.

Π, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π²ΠΌΡΠΊΠ½Π° 1 000 ΡΠ΅Π΄Π°, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΡΡΠΈΡ, ΠΈΠ»ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ 1 000 ΡΠ΅Π΄Π°, ΡΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»Π½ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌ, Π½Π΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ ΡΡΠΊ. Π’Π΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π½Π° ΠΏΠΎ-Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π²ΡΡΡΠ΅ Π² ΡΠ°ΠΌΠΈΡ ΡΠ΅Π΄. Π ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π»Π΅ΠΊΡΠΈΡΡΠ° Π·Π° MVCC Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π·Π° ΡΠΎΠ²Π°. ΠΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈΡΠ΅, Π΄Π° ΡΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈ ΡΠ΅ ΡΡΠΊ Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅.

Π ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½Π°ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°?

ΠΠΊΠΎ Π½Π°ΡΠΈΡΠ½Π° "ΠΎΠ±Π½ΠΎΠ²ΠΈ", ΡΠΎΠ³Π°Π²Π° ΠΈΠΌΠ°ΠΌ Π΄Π²Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΈ ΡΠ΅Π΄Π°. Π Π°ΠΊΠΎ Π³ΠΈ ΠΌΠ°ΡΠΊΠΈΡΠ°ΠΌ Π²ΡΠΈΡΠΊΠΈ ΠΈ Π½Π°ΡΠΈΡΠ½Π° "ΠΎΠ±Π½ΠΎΠ²ΠΈ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅", Π²ΡΠ΅ ΠΏΠ°ΠΊ ΠΎΡΡΠ°Π²Π°ΠΌ Ρ Π΄Π²Π΅ Π·Π°ΠΏΠΈΡΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.

ΠΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ΅Π΄. ΠΠ°ΡΠΎΡΠΎ ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΠ°Π΄Π°, ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π² Π½Π΅ΠΏΡΠΈΡΡΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ.

Π ΡΡΡΠΎΡΠΎ Π²Π°ΠΆΠΈ, Π°ΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠΌ shared, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ Π·Π° Π²ΡΠΈΡΠΊΠΈ 30 ΠΏΡΡΠΈ.

ΠΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°, ΠΈΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ, ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ½ΠΎΠ²ΠΎ Π²ΠΌΡΠΊΠ²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄.

ΠΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΠΈΠ΄ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈΠΆΠ΄Π°ΡΠ΅ Π² Postgres, Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΈ ΠΆΠ΅Π»Π°Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ β ΡΠΎΠ²Π° Π΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ update ΠΈΠ»ΠΈ select. Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π select Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ° update ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΡΠΎ. ΠΠ°Π·Π²Π°ΠΌΠ΅ Π½Π° ΡΠ΅ΡΡΡΠΈΡ Π΄Π° Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΠΏΠΈΡΠ΅ΡΠΈΡ, Π° ΠΏΠΈΡΠ΅ΡΠΈΡΡ Π΄Π° Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ΅ΡΡΡΠΈΡ.
Π©Π΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΎΠ²Π°. Π‘Π΅Π³Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Ρ ΠΈΠ·Π±ΠΎΡ. ΠΠΎΡΠ»Π΅ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ INSERT. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ β 694. Π©Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΠΈΠ·Π²ΡΡΡΠΈΠ»Π° ΡΠΎΠ²Π° Π²ΠΌΡΠΊΠ²Π°Π½Π΅. Π ΡΠΎΠ²Π° Π΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ.

Π Π°ΠΊΠΎ ΡΠ΅Π³Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π° ΠΌΠΎΡ Π±Π΅ΠΊΠ΅Π½Π΄ ID, ΡΠΎ ΡΡΠ°Π½Π° β 695.

Π ΠΌΠΎΠ³Π° Π΄Π° Π²ΠΈΠ΄Ρ, ΡΠ΅ 695 ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π² ΠΌΠΎΡΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°.

Π Π°ΠΊΠΎ ΠΈΠ·Π²ΡΡΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΊ ΡΠ°ΠΊΠ°, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌ Π΄ΡΡΠ³ ΡΠ»ΡΡΠ°ΠΉ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ 695 β Π΅ Π΅ΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π° ΠΏΡΠΈ update ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΡΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ Π½ΡΠΌΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π½Π΅ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΎ.
Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅, ΡΠ΅ ΠΎΡΠ³ΠΎΡΠ΅ β ΡΠΎΠ²Π° Π΅ ShareLock, Π° ΠΎΡΠ΄ΠΎΠ»Ρ β ExclusiveLock. Π Π΄Π²Π΅ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ.
Π ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ΅ΡΠ΅ ΠΌΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π² MVCC, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠΎΠ²Π° ΡΡΠ°Π²Π°. ΠΠΎ ΡΠΎΠ²Π° Π΅ ΠΈΠ»ΡΡΡΡΠ°ΡΠΈΡ Π½Π° ΡΠΎΠ²Π°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Ρ.Π΅. Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ SELECT ΠΈ UPDATE.

ΠΠ΅ΠΊΠ° Π½ΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π΅Π΄Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.

ΠΠΊΠΎ ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π²Π° update Π½Π° ΡΡΡΠΈΡ ΡΠ΅Π΄, ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ΠΎ. Π ΠΏΠΎΠΌΠ½Π΅ΡΠ΅, ΠΊΠ°Π·Π²Π°Ρ , ΡΠ΅ ΡΠ΅ΡΡΡΠΈΡΡ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΠΏΠΈΡΠ΅ΡΠΈΡ, Π° ΠΏΠΈΡΠ΅ΡΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ΅ΡΡΡΠΈΡ, Π½ΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠΈΡΠ°ΡΠ΅Π» Π±Π»ΠΎΠΊΠΈΡΠ° Π΄ΡΡΠ³ΠΈΡ ΠΏΠΈΡΠ°ΡΠ΅Π». Π’.Π΅. Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΊΠ°, ΡΠ΅ Π΄Π²Π°ΠΌΠ° Π΄ΡΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Ρ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΡΠ΅Π΄. Π’ΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°ΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΎΡ ΡΡΡ Π·Π°Π²ΡΡΡΠΈ.

Π Π·Π° Π΄Π° ΠΈΠ»ΡΡΡΡΠΈΡΠ°ΠΌ ΡΠΎΠ²Π°, ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Lockdemo. Π ΡΠ΅ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄. ΠΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 698.
ΠΠ±Π½ΠΎΠ²ΠΈΡ ΠΌΠ΅ Π³ΠΎ Π΄ΠΎ 2. 699 β ΡΠΎΠ²Π° Π΅ ΠΏΡΡΠ²ΠΎΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. Π ΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π΅ Π² ΡΠ°ΠΊΠ°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΈ ΠΎΡΠ°ΠΊΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π½ΠΈΠ΅ ΠΏΠΎΡΠ²ΡΡΠ΄ΠΈΠΌ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΠΌ.

ΠΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ β 2/51 β ΡΠΎΠ²Π° Π΅ Π½Π°ΡΠ°ΡΠ° ΠΏΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ, Π½Π°ΡΠ°ΡΠ° ΠΏΡΡΠ²Π° ΡΠ΅ΡΠΈΡ. 3/112 β ΡΠΎΠ²Π° Π΅ Π²ΡΠΎΡΠ°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΎΡΠ³ΠΎΡΠ΅ ΠΈ ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ°Π·ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° 3. Π Π°ΠΊΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅, Π³ΠΎΡΠ½ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°ΠΌ ΡΠ΅Π±Π΅ ΡΠΈ, ΠΊΠΎΠΉΡΠΎ Π΅ 699. ΠΠΎ 3/112 Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. Π ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Lock_mode ΠΏΠΈΡΠ΅, ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π°. Π’ΠΎΠΉ ΠΎΡΠ°ΠΊΠ²Π° 699. Π Π°ΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅, ΠΊΡΠ΄Π΅ Π΅ 699, ΡΠΎΠΉ Π΅ ΠΏΠΎ-Π³ΠΎΡΠ΅. Π ΠΊΠ°ΠΊΠ²ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΡΡΠ²Π°ΡΠ° ΡΠ΅ΡΠΈΡ? Π’Ρ ΡΡΠ·Π΄Π°Π΄Π΅ Π΅ΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡ ΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π΅Π½ ID. Π’ΠΎΠ²Π° Π΅ Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ Postgres Π³ΠΎ ΠΏΡΠ°Π²ΠΈ. Π’ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π΅Π½ ID. Π Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ°ΠΊΠ°ΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ Π½ΡΠΊΠΎΠΉ ΠΏΠΎΡΠ²ΡΡΠ΄ΠΈ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°ΠΊΠ°ΡΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΈΠΌΠ° ΠΈΠ·ΡΠ°ΠΊΠ²Π°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ. Π Π·Π°ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΡΡΠ°Π½Π΅Π½ ΡΠ΅Π΄.
ΠΠ° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²ΠΎ. ΠΡΠ»ΡΠ²ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΠ½Π³ΠΎΠ²ΠΎ ID. ΠΡΠ² Π²ΡΠΎΡΠ°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π½Π°ΡΠ΅ΡΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ ID Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, Π° Π² ΡΡΠ΅ΡΠ°ΡΠ° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ lock_type. ΠΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠΎΠ²Π°? ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΡΡ ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈΡ ID. ΠΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅, ΡΠ΅ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΠΏΠΈΡΠ΅ relation. Π Π·Π°ΡΠΎΠ²Π° ΠΈΠΌΠ°ΡΠ΅ Π΄Π²Π° Π²ΠΈΠ΄Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. ΠΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° relation. Π ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° transactionid, ΠΊΡΠ΄Π΅ΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΈ, ΡΠΎΠ²Π° Π΅ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄ ΠΈΠ»ΠΈ Π² ΡΠ°ΠΌΠΈΡ Π½ΠΈΠ·, ΠΊΡΠ΄Π΅ΡΠΎ transationid, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ°ΠΊΠ°ΠΌΠ΅ 699 Π΄Π° Π·Π°Π²ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΡΠΈ.
ΠΠ»Π΅Π΄Π°ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΡΠΊ. Π ΡΡΠΊ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ Π΄Π²Π΅ Π½Π΅ΡΠ°. ΠΠΈΠ΅ Π³Π»Π΅Π΄Π°ΡΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° ΠΏΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π΅Π½ ID Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄, ΠΊΠΎΡΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°ΠΌΠ° ΡΠ΅Π±Π΅ ΡΠΈ. Π ΡΡ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°ΠΌΠ° ΡΠ΅Π±Π΅ ΡΠΈ, Π·Π° Π΄Π° Π½Π°ΠΊΠ°ΡΠ° Ρ ΠΎΡΠ°ΡΠ° Π΄Π° ΡΠ°ΠΊΠ°Ρ.
ΠΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ 6-ΠΈΡ ΡΠ΅Π΄, ΡΠΎ ΡΠΎΠ²Π° Π΅ ΡΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡ, ΠΊΠ°ΡΠΎ ΠΏΡΡΠ²ΠΈΡ. Π Π·Π°ΡΠΎΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 699 ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ°. 700 ΡΡΡΠΎ ΡΠ΅ ΡΠ°ΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠ°. Π ΠΏΠΎΡΠ»Π΅ Π² Π΄ΠΎΠ»Π½ΠΈΡ ΡΠ΅Π΄ ΡΠ΅ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ ΡΠ°ΠΊΠ°ΠΌΠ΅ 699 Π΄Π° Π·Π°Π²ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΡΠΈ.

Π Π² lock_type, tuple Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΡΠΈΡΠ»Π°.

ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ 0/10. Π ΡΠΎΠ²Π° Π΅ Π½ΠΎΠΌΠ΅ΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΠΈ ΡΡΡΠΎ offset Π½Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ΅Π΄.

Π Π²ΠΈΠΆΠ΄Π°ΡΠ΅, ΡΠ΅ ΡΡΠ°Π²Π° 0/11, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΠΌΠ΅.

ΠΠΎ Π²ΡΡΡΠ½ΠΎΡΡ β ΡΠΎΠ²Π° Π΅ 0/10, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° ΡΠ°ΠΊΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΠΌΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΡΠ΅Π΄ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΊΠ°ΠΌ, Π·Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΠ²ΡΡΠ΄Π΅Π½.

Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠ²ΡΡΠ΄ΠΈΠΌ ΠΈ Π½Π°ΡΠΈΡΠ½Π΅ΠΌ commit, ΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΏΡΠΈΠΊΠ»ΡΡΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ. Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΡ 700 Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π°ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, ΠΊΠΎΡΡΠΎ Π½Π΅ ΡΠ°ΠΊΠ° Π½ΠΈΠΊΠΎΠ³ΠΎ, Π·Π°ΡΠΎΡΠΎ Π΅ Π·Π°ΠΊΠΎΠΌΠΈΡΠ²Π°Π½Π°. Π’Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ 699 Π·Π°Π²ΡΡΡΠΈ, Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π½ΠΈΡΠΎ. Π ΡΠ΅Π³Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° 700 ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄, ΡΠ΅ ΠΈΠΌΠ° Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ.

Π Π·Π° Π΄Π° ΡΡΠ»ΠΎΠΆΠ½ΠΈΠΌ Π²ΡΠΈΡΠΊΠΎ, ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ view, ΠΊΠΎΠΉΡΠΎ ΡΠΎΠ·ΠΈ ΠΏΡΡ ΡΠ΅ Π½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡ. ΠΠ΅ ΠΎΡΠ°ΠΊΠ²Π°ΠΌ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠΎΠ·ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅. ΠΠΎ ΡΠΎΠ²Π° ΡΠ΅ Π½ΠΈ Π΄Π°Π΄Π΅ ΠΏΠΎ-ΡΡΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π° Π·Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°.

Π’ΠΎΠ²Π° Π΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π΅Π½ view, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΠΈ ΠΎΡΠ΅ Π΅Π΄Π½Π° ΡΠ΅ΠΊΡΠΈΡ. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΡΡΠ±ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΎ. ΠΠ΅ΠΊΠ° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅.

ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅, Π°ΠΊΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΡΠ΅Π΄ΡΡ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ 3. Π Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ 3 Π½Π° 4.

Π Π΅ΡΠΎ Π½ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ 4. Π ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈΡΡ ID 702.

Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π°Π· ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌ 4 Π½Π° 5. Π 5 Π½Π° 6, Π° 6 Π½Π° 7. Π ΠΎΠΏΠ°ΡΠ²Π°ΠΌ ΡΠ΅Π΄ΠΈΡΠ° Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ°ΠΊΠ°Ρ Π΄Π° ΠΏΡΠΈΠΊΠ»ΡΡΠΈ ΡΠ°Π·ΠΈ Π΅Π΄Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.

Π Π²ΡΠΈΡΠΊΠΎ ΡΡΠ°Π²Π° ΡΡΠ½ΠΎ. ΠΠ°ΠΊΡΠ² Π΅ ΠΏΡΡΠ²ΠΈΡΡ ΡΠ΅Π΄? Π’ΠΎΠ²Π° Π΅ 702. Π’ΠΎΠ²Π° Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈΡΡ ID, ΠΊΠΎΠΉΡΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅ ΡΠΎΠ²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ°ΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ° Granted? ΠΠΌΠ°ΠΌ ΠΎΡΠΌΠ΅ΡΠΊΠΈ f. Π’ΠΎΠ²Π° ΡΠ° ΠΌΠΎΠΈΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ (5, 6, 7) Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π·Π°Π²ΡΡΡΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈΡΡ ID 702. Π’Π°ΠΌ ΠΈΠΌΠ°ΠΌΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈΡ ID. Π Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΠΌΠ°ΠΌΠ΅ 5 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ID.
ΠΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ 704, 705, ΡΠ°ΠΌ ΠΎΡΠ΅ Π½ΠΈΡΠΎ Π½Π΅ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°. Π’Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΠ°Ρ, ΡΠ΅ Π½ΡΠΌΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΠ°Π²Π°. Π ΠΏΡΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΡΠΏΡΡ, Π·Π°ΡΠΎΡΠΎ ΡΠ°ΠΊΠ°Ρ Π½ΡΠΊΠΎΠΉ Π΄Π° Π·Π°Π²ΡΡΡΠΈ ΠΈ Π΄Π° Π³ΠΈ ΡΡΠ±ΡΠ΄ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΡΠ΅Π΄Π°.

Π’Π°ΠΊΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°. Π―ΡΠ½ΠΎ Π΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΊΠ°Ρ 12-ΠΈΡ ΡΠ΅Π΄.

Π’ΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈΠ΄ΡΡ ΠΌΠ΅ ΡΡΠΊ. ΠΡΠΎ 0/12.

Π ΡΠ°ΠΊΠ°, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΡΠ²Π°ΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡΡΠ°. Π ΡΠ΅Π³Π° Π²ΡΠΈΡΠΊΠΎ ΡΡΠ°Π²Π° ΡΡΠ½ΠΎ. ΠΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΡΠ°Π²Π°Ρ ΡΠΈΡΡΠΈ. Π Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ°ΠΊΠ°Ρ.

Π’ΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°. 702 Π·Π°ΠΏΠΈΡΠ²Π°. Π ΡΠ΅Π³Π° 703 ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΡΠ΅Π΄Π°, Π° ΠΏΠΎΡΠ»Π΅ 704 Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΡΠ°ΠΊΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ 703 Π·Π°ΠΏΠΈΡΠ΅. Π 705 ΡΡΡΠΎ Π³ΠΎ ΠΎΡΠ°ΠΊΠ²Π°. Π ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ, ΡΠ΅ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Ρ. ΠΡΠΊΠ°ΠΌ Π΄Π° ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Ρ, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°Ρ Π² ΠΎΠΏΠ°ΡΠΊΠ°. ΠΠ½ΠΎΠ³ΠΎ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° Ρ Π·Π°Π΄ΡΡΡΡΠ²Π°Π½Π΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΊΠ°Ρ ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠ»Π°. ΠΡΡΠ²Π°ΡΠ° ΠΊΠΎΠ»Π° ΡΠΏΠΈΡΠ° ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°Ρ Π² Π΄ΡΠ»Π³Π° Π»ΠΈΠ½ΠΈΡ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡ ΡΠ΅ Π΄Π²ΠΈΠΆΠΈ, ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠ»Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ Π½Π°ΠΏΡΠ΅Π΄ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΡΠ²ΠΎΡΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΈ Ρ.Π½.

Π Π°ΠΊΠΎ ΡΠΎΠ²Π° Π²ΠΈ ΡΠ΅ Π΅ ΡΡΠΎΡΠΈΠ»ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΡΠ΅Π³Π° ΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° deadlocks. ΠΠ΅ Π·Π½Π°ΠΌ ΠΊΠΎΠΉ ΠΎΡ Π²Π°Ρ Π΅ ΡΡΠ΅ΡΠ°Π» Ρ ΡΡΡ . Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. ΠΠΎ deadlocks Π΅ ΡΠ»ΡΡΠ°ΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅Π΄Π½Π° ΡΠ΅ΡΠΈΡ ΡΠ°ΠΊΠ°, Π·Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π΄ΡΡΠ³Π° ΡΠ΅ΡΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈ. Π ΡΡΡΠΈΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΡΡΠ³Π°ΡΠ° ΡΠ΅ΡΠΈΡ ΡΠ°ΠΊΠ°, Π·Π° Π΄Π° Π·Π°Π²ΡΡΡΠΈ ΠΏΡΡΠ²Π°ΡΠ° ΡΠ΅ΡΠΈΡ Π½Π΅ΡΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΠ²Π°Π½ ΠΊΠ°ΠΆΠ΅: βΠΠ°ΠΉ ΠΌΠΈ Π½Π΅ΡΠΎβ, Π° Π°Π· ΠΎΡΠ³ΠΎΠ²ΠΎΡΡ: βΠΠ΅, ΡΠ΅ ΡΠΈ Π΄Π°ΠΌ ΡΠΎΠ²Π° ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ ΠΌΠΈ Π΄Π°Π΄Π΅Ρ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎβ. Π ΡΠΎΠΉ ΠΊΠ°Π·Π²Π°: βΠΠ΅, Π½ΡΠΌΠ° Π΄Π° ΡΠΈ Π΄Π°ΠΌ, Π°ΠΊΠΎ Π½Π΅ ΠΌΠΈ Π΄Π°Π΄Π΅Ρβ. Π ΠΏΠΎΠΏΠ°Π΄Π°ΠΌΠ΅ Π² ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π° ΠΌΡΡΡΠ²Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. Π‘ΠΈΠ³ΡΡΠ΅Π½ ΡΡΠΌ, ΡΠ΅ ΠΠ²Π°Π½ Π½ΡΠΌΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΊΠ°, Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΡΠΌΠΈΡΡΠ»Π°, Π΄Π²Π°ΠΌΠ° Π΄ΡΡΠΈ ΠΈΡΠΊΠ°Ρ Π½Π΅ΡΠΎ, Π½ΠΎ Π½Π΅ ΡΠ° Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° Π³ΠΎ Π΄Π°Π΄Π°Ρ, Π΄ΠΎΠΊΠ°ΡΠΎ Π΄ΡΡΠ³ΠΈΡΡ Π½Π΅ ΠΈΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΆΠ΅Π»Π°ΡΡ. Π ΡΡΠΊ Π½ΡΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
Π ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠΊΡΠΈΠ²Π° ΡΠΎΠ²Π°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ ΠΈΠ»ΠΈ Π·Π°ΡΠ²ΠΎΡΠΈ Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅ΡΠΈΠΈΡΠ΅, Π·Π°ΡΠΎΡΠΎ Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΠ΅ ΠΎΡΡΠ°Π½Π°Ρ ΡΠ°ΠΌ Π·Π°Π²ΠΈΠ½Π°Π³ΠΈ. ΠΠΈΠ΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΠΎΠ²Π° Π² Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ Π³ΠΎ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ. Π Π½Π° Π²ΡΡΠΊΠΎ ΠΌΡΡΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ.

Π‘Π΅Π³Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΠΌΠ΅ Π΄Π²Π΅ deadlocks. Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ 50 ΠΈ 80. Π ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡ 50 Π½Π° 50. Π©Π΅ ΠΏΠΎΠ»ΡΡΠ° Π½ΠΎΠΌΠ΅Ρ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° 710.

Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΠΌΠ΅Π½Ρ 80 Π½Π° 81, Π° 50 Π½Π° 51.

ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°. ΠΠ°ΡΠΎΠ²Π° 710 ΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΠ΅Π΄Π°, Π° 711 ΠΎΡΠ°ΠΊΠ²Π° ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΠΈΠΆΠ΄Π°Π»ΠΈ ΡΠΌΠ΅ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΌΠ΅. 710 Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ Π½Π° Π½Π°ΡΠΈΡ ΡΠ΅Π΄. Π 711 ΡΠ°ΠΊΠ°, Π·Π° Π΄Π° Π·Π°Π²ΡΡΡΠΈ 710 ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°.

Π’Π°ΠΌ Π΄ΠΎΡΠΈ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° ΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎ ΡΠ΅Π΄ ΠΈΠΌΠ°ΠΌΠ΅ deadlocks. Π ΡΡΠΊ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΡΡΠ°Π²Π° ΡΡΡΠ°Π½Π½ΠΎ.

Π‘Π΅Π³Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ 80 Π½Π° 80.

Π ΡΡΠΊ Π·Π°ΠΏΠΎΡΠ²Π°Ρ ΠΌΡΡΡΠ²ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. 710 ΡΠ°ΠΊΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΎΡ 711, Π° 711 ΡΠ°ΠΊΠ° ΠΎΡ 710. Π ΡΠΎΠ²Π° Π½ΡΠΌΠ° Π΄Π° Π·Π°Π²ΡΡΡΠΈ Π΄ΠΎΠ±ΡΠ΅. Π Π½ΡΠΌΠ° ΠΈΠ·Ρ ΠΎΠ΄ ΠΎΡ ΡΠΎΠ²Π°. Π’Π΅ ΡΠ΅ ΡΠ°ΠΊΠ°Ρ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄ΡΡΠ³.

Π ΡΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ Π΄Π° Π·Π°Π±Π°Π²Ρ Π²ΡΠΈΡΠΊΠΎ. Π Π½ΠΈΠ΅ Π½Π΅ Π³ΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅.

Π Π² Postgres ΠΈΠΌΠ° Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π°. Π ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΎΠ²Π° ΡΡΠ°Π½Π΅, ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π³ΡΠ΅ΡΠΊΠ°. Π ΠΎΡ ΡΠΎΠ²Π° Π΅ ΡΡΠ½ΠΎ, ΡΠ΅ ΡΠ°ΠΊΡΠ² ΠΏΡΠΎΡΠ΅Ρ ΡΠ°ΠΊΠ° SHARE LOCK ΠΎΡ Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ, Ρ.Π΅. ΠΊΠΎΠΉΡΠΎ Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ ΠΎΡ ΠΏΡΠΎΡΠ΅Ρ 711. Π ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ Π΅ ΡΠ°ΠΊΠ°Π» Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ SHARE LOCK Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° ΠΈ Π΅ Π±ΠΈΠ» Π±Π»ΠΎΠΊΠΈΡΠ°Π½ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΡΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π° ΠΌΡΡΡΠ²Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.

Π ΠΈΠΌΠ° Π»ΠΈ ΡΡΠΎΠΉΠ½ΠΈ ΠΌΡΡΡΠ²ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ? ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΅ ΡΠΎΠ²Π°? ΠΠ°.

ΠΡΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΡΠ΅Π·ΠΈ ΡΠΈΡΠ»Π° Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. ΠΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ 40 Π½Π° 40, ΠΏΡΠ°Π²ΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.

ΠΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ 60 Π½Π° 61, 80 Π½Π° 81.

Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ 80, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° β Π±ΡΠΌ!

Π 714 ΡΠ΅Π³Π° ΡΠ°ΠΊΠ° 715. 716-ΡΠΈ ΡΠ°ΠΊΠ° 715-ΡΠΈ. Π Ρ ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½ΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ.

Π’ΡΠΊ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ° Π΄Π²Π°ΠΌΠ° Π΄ΡΡΠΈ, ΡΡΠΊ Π²Π΅ΡΠ΅ ΡΠ° ΡΡΠΈΠΌΠ° Π΄ΡΡΠΈ. ΠΡΠΊΠ°ΠΌ Π½Π΅ΡΠΎ ΠΎΡ ΡΠ΅Π±, ΡΠΎΠ·ΠΈ ΠΈΡΠΊΠ° Π½Π΅ΡΠΎ ΠΎΡ ΡΡΠ΅ΡΠΈΡ ΡΠΎΠ²Π΅ΠΊ, Π° ΡΡΠ΅ΡΠΈΡΡ ΡΠΎΠ²Π΅ΠΊ ΠΈΡΠΊΠ° Π½Π΅ΡΠΎ ΠΎΡ ΠΌΠ΅Π½. Π ΠΏΠΎΠΏΠ°Π΄Π°ΠΌΠ΅ Π² ΡΡΠΎΠΉΠ½ΠΎ ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅, Π·Π°ΡΠΎΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΊΠ°ΠΌΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ Π΄ΡΡΠ³ΠΈΡΡ Π·Π°Π²ΡΡΡΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ.

Π Postgres Π·Π½Π°Π΅ Π½Π° ΠΊΠΎΠΉ ΡΠ΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π°. Π Π·Π°ΡΠΎΠ²Π° ΡΠΎΠΉ ΡΠ΅ Π²ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΡΡΠΈΡΠ΅ Π²Ρ ΠΎΠ΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°Ρ Π΅Π΄ΠΈΠ½ Π΄ΡΡΠ³. Π ΡΡΠΊ Π½ΡΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅, ΠΊΠΎΠ³Π°ΡΠΎ 20 Π·Π°ΠΏΠΈΡΠ° Π±Π»ΠΎΠΊΠΈΡΠ°Ρ Π΅Π΄ΠΈΠ½ Π΄ΡΡΠ³.

Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ β ΡΠΎΠ²Π° Π΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΡΡ.

ΠΠΊΠΎ ΠΈΠΌΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°.

Π ΡΠ΅ Π²ΡΡΡΠ°ΠΌΠ΅ ΠΊΡΠΌ 719. Π’ΠΎΠΉ ΠΈΠΌΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ Π½ΠΎΡΠΌΠ°Π»Π΅Π½ ΠΈΠ·Ρ ΠΎΠ΄.

Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅, Π·Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΎΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠ°.

Π ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅, ΡΠ΅ ΡΠ΅Π³Π° ΠΈΠΌΠ°ΡΠ΅ Π΄ΡΡΠ³ Π²ΠΈΠ΄ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° SA β ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎ.


Π Π·Π°ΡΠΎΠ²Π° ΠΈΠΌΠ°ΠΌΠ΅ Π½ΠΎΠ² Π²ΠΈΠ΄ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° SARieadLock, ΠΊΠΎΡΡΠΎ Π΅ ΡΠ΅ΡΠΈΠΉΠ½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΈ.

Π ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ.

Π ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ.

Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Π°ΠΊΠΎ Π²ΡΠ²Π΅Π΄Π° ΡΠΈΡΠ»ΠΎ 2 ΡΡΠΊ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΈΠΌΠ°ΠΌ 2. ΠΠΎ Π² Π½Π°ΠΉ-Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ Π²ΡΠ²Π΅ΠΆΠ΄Π°ΠΌ ΠΎΡΠ΅ Π΅Π΄Π½ΠΎ 2. Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ 721-Π²ΠΈ ΠΈΠΌΠ° Π΅ΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. ΠΠΎ ΡΠ΅Π³Π° 722 ΡΠ°ΠΊΠ°, Π·Π° Π΄Π° 721 Π·Π°Π²ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΡΠΈ, Π·Π°ΡΠΎΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΠ²Π΅Π΄Π΅ 2, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ Ρ 721.

Π Π°ΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠΌ ΡΡΠ±ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ.

ΠΡΠΎ Π½ΠΈ 723.

ΠΠΊΠΎ Π·Π°ΠΏΠ°Π·ΠΈΠΌ ΡΠΎΡΠΊΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½ΠΎΠ² ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π΅Π½ ID. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π°ΡΠΏΠ΅ΠΊΡ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠΉΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅. ΠΠΊΠΎ Π³ΠΎ Π²ΡΡΠ½Π΅ΠΌ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΠΈΡΡ ID ΡΠ΅ ΠΈΠ·ΡΠ΅Π·Π½Π΅. 724 ΡΠ΅ ΠΈΠ·ΡΠ΅Π·Π½Π΅. ΠΠΎ ΡΠ΅Π³Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ 725.
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΡΡΠΊ? ΠΠΏΠΈΡΠ²Π°ΠΌ ΡΠ΅ Π΄Π° Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π½Π΅ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ΅ΡΠ½Π΅ΡΠ΅: Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄Π°Π»ΠΈ ΡΡΠ°Π²Π° Π²ΡΠΏΡΠΎΡ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Ρ serializable ΠΈΠ»ΠΈ SAVEPOINT - ΡΠΎΠ²Π° ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.

Π’ΠΎΠ²Π° Π΅ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΈ (ΡΠ²Π½ΠΈ) Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ pg_advisory_lock.

ΠΠΈΠΆΠ΄Π°ΡΠ΅, ΡΠ΅ ΡΠΈΠΏΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° ΡΡΠΊ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ ΠΊΠ°ΡΠΎ advisory. Π ΡΡΠΊ ΡΠ΅ΡΠ²Π΅Π½ΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Β«advisoryΒ». ΠΠΎΠΆΠ΅ΡΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ Ρ pg_advisory_unlock.

ΠΡΠΊΠ°ΠΌ Π΄Π° Π·Π°Π²ΡΡΡΠ°, ΠΊΠ°ΡΠΎ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΎΡΠ΅ Π½Π΅ΡΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»Π½ΠΎ. Π©Π΅ ΡΡΠ·Π΄Π°ΠΌ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π²ΠΈΠ΄. ΠΠΎ ΡΠ΅ ΡΠ²ΡΡΠΆΠ° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° pg_locks Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° pg_stat_activity. ΠΠ°ΡΠΎ ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΡΠΎΠ²Π°? ΠΠ°ΡΠΎΡΠΎ ΡΠΎΠ²Π° ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π²ΠΈΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠΈ ΡΠ΅ΡΠΈΠΈ ΠΈ Π΄Π° Π²ΠΈΠ΄Ρ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠΎΡΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΡΠ°ΠΊΠ²Π°Ρ. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΠΌΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ Π·Π°ΡΠ²ΠΊΠΈ.

Π’ΡΠΊ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ pg_stat_view.

ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠ΅Π΄Π° Ρ Π΅Π΄Π½ΠΎ. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅ 724. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΡΠ΅Π΄ Π΄ΠΎ ΡΡΠΈ. ΠΠ°ΠΊΠ²ΠΎ Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΡΡΠΊ ΡΠ΅Π³Π°? Π’ΠΎΠ²Π° ΡΠ° Π·Π°ΡΠ²ΠΊΠΈ, Ρ.Π΅. Π²ΠΈΠΆΠ΄Π°ΡΠ΅ ΡΠ΅Π»ΠΈΡ ΡΠΏΠΈΡΡΠΊ Ρ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ Π² Π»ΡΠ²Π°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π°. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡ Π΄ΡΡΠ½Π°ΡΠ° ΡΡΡΠ°Π½Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈΡΠ΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎ-ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΎ Π·Π° Π²Π°Ρ, Π·Π° Π΄Π° Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π²ΡΡΡΠ°ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ ΠΊΡΠΌ Π²ΡΡΠΊΠ° ΡΠ΅ΡΠΈΡ ΠΈ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΡΠ΅ β Π΄Π°Π»ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅. Π’ΠΎΡΠ½ΠΎ ΡΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈ.
ΠΡΠ΅ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° β Π΅ pg_blocking_pidsΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΎ Π½Π΅ΠΉ Π½Π΅ ΡΠ»ΡΡΠ°Π»ΠΈ. Π§ΡΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ? ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ID ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΠΈ 11740. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ 11740 ΠΎΠΆΠΈΠ΄Π°Π΅Ρ 724, ΠΈ 724 Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ
Ρ. Π 11306 β ΡΡΠΎ Π²Π°Ρ ID ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎ ΡΡΡΠΈ, ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ. Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π²Π°ΠΌ ΡΠ΄Π°Π΅ΡΡΡ ΡΡΠΎ ΠΏΠΎΠ½ΡΡΡ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ°Π±Π»ΠΈΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ Π²Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ ID, ΡΡΠΈΡΡΠ²Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½Π° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ. ΠΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ID Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΎΠΆΠΈΠ΄Π°ΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. pg_blocking_pids.
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²Π΅ΡΡΠΈΠΈ 9.6, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΠΉ Π²ΡΠ΅Π³ΠΎ 5 Π»Π΅Ρ, Π½ΠΎ ΠΎΠ½Π° ΠΎΡΠ΅Π½Ρ ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°. Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²ΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ.

ΠΡΠΎ ΡΠΎ, ΠΎ ΡΠ΅ΠΌ Ρ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ Ρ Π²Π°ΠΌΠΈ. ΠΠ°ΠΊ Ρ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π», ΠΌΡ ΠΈΡΡΠ΅ΡΠΏΠ°Π»ΠΈ Π²ΡΠ΅ Π½Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΡΠ»ΠΎ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»Π°ΠΉΠ΄ΠΎΠ². Π‘Π»Π°ΠΉΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ. Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΡ Π²Π°Ρ Π·Π° ΡΠΎ, ΡΡΠΎ Π²Ρ Π±ΡΠ»ΠΈ Π·Π΄Π΅ΡΡ. Π― ΡΠ²Π΅ΡΠ΅Π½, Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΠΎΡΡΠ°Π²ΡΠ°ΡΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ, Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠΎΠΏΡΠΎΡΠΈ:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΏΡΡΠ°ΡΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ, Π° Π΄ΡΡΠ³Π°Ρ ΡΠ΅ΡΡΠΈΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ intent lock. ΠΡΡΡ Π»ΠΈ ΠΎΠ½ Π² Postgres?

ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ°Π»Ρ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π΅Π»Π°Π΅ΡΠ΅ SELECT, ΠΌΡ Π²ΡΠ΄Π°Π΅ΠΌ AccessShareLock. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠΎΠΊΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΡΠΎ-ΡΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΡΡΠΈΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΠ΅ AccessShareLock Π½Π°Π΄ Π²ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΈ ΡΡΡΠΎΠΊΠΎΠΉ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΠΎ ΠΏΠΎΠΊΠ° Π²Ρ ΡΡΠΎ-ΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΠ΅, ΠΎΠ½ΠΈ Π½Π΅ ΡΠΌΠΎΠ³ΡΡ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ. ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π½Π° ΡΡΡΠΎΠΊΠ΅ Π΅ΡΡΡ ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½ΡΠΉ lock Π½Π°Π΄ Π²ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ.
ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ exclusive lock, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ?
ΠΠ°, ΡΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°. Π Π°Π·Π±ΠΈΡΠ°ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΊΠ°Π·Π²Π°ΡΠ΅. ΠΠ°Π·Π²Π°ΡΠ΅, ΡΠ΅ Π°ΠΊΠΎ Π½Π°ΠΏΡΠ°Π²Ρ SELECT, ΡΠ΅ ΠΈΠΌΠ°ΠΌ ShareExclusive, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π³ΠΎ ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π°ΠΌ Π² Row Exclusive, Π΄Π°Π»ΠΈ ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ? ΠΠΎ ΡΡΡΠ΄Π²Π°ΡΠΎ, Π½Π΅ ΡΡΠ·Π΄Π°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠ΅ΠΏΠ΅Π½ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅, Π½ΠΎ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΠΌΠ°ΠΌ lock, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ. Π ΡΠ΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠ°Π²Ρ ΡΠΎΠ·ΠΈ lock ΠΏΠΎ-ΡΠΈΠ»Π΅Π½, ΡΠΎΠΉ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ. Π’Π°ΠΊΠ° ΡΠ΅ Π½Π΅ Π΅ ΡΠ°ΠΊΠ°, ΡΠ΅ Π°Π· ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°ΠΌ. Π’.Π΅. ΡΠΎΠΉ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° ΡΠΎΠ²Π° ΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π° ΠΏΠΎ-Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΠΌ Π½ΠΈΠ²ΠΎΡΠΎ ΠΌΡ, ΡΠΎΠΉ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°.
Π Π°Π·Π±ΠΈΡΠ°ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΊΠ°Π·Π²Π°ΡΠ΅. Π’ΡΠΊ Π½ΡΠΌΠ° ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ΅ΠΏΠ΅Π½ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΎΡ Π΅Π΄Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π·Π° Π΄Π° Π²ΠΊΠ°ΡΠ°ΡΠ΅ ΠΏΠΎ-ΠΌΠΎΡΠ½Π°. Π’ΡΠΊ ΠΏΡΠΎΡΡΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°Π½Π΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π½ΠΈΠΊΠ°ΠΊΡΠ² ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ. ΠΠΎ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΡ Π²ΡΠΏΡΠΎΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ, ΡΠ΅ Π³ΠΎ Π·Π°Π΄Π°Π΄ΠΎΡ ΡΠ΅!
ΠΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π° deadlock, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΈΠΈ, Π³ΠΎΠ»ΡΠΌΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ?
Postgres Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π·Π°Π±Π΅Π»ΡΠ·Π²Π° ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π° deadlock. Π Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ²Π° Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅ΡΠΈΠΈΡΠ΅. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ ΠΌΡΡΡΠ²ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π΅ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ Ρ ΠΎΡΠ°ΡΠ° Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ. Π’Π°ΠΊΠ° ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ, ΡΠ΅ΡΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° Π·Π° deadlocks... ΠΠ΅ΠΊΠ° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΠ΅ ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΠΌ Π΄Π²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π΅ΡΠ°. ΠΠ΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° 1, Π° Π΄ΡΡΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° 2, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ°Π±Π»ΠΈΡΠ° 1. ΠΠ°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ deadlocks Π΅ Π΄Π° ΠΏΡΠ΅Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΡΠ΅, ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° ΡΡΠ°Π²Π° Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΠΎΠ²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π° 80% ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅, Π·Π°ΡΠΎΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Ρ ΠΎΡΠ° ΠΏΠΈΡΠ°Ρ ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π°ΠΊΠΎ Π³ΠΈ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ, Π½Π΅ ΡΡΠ΅ΡΠ°ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π° deadlock.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅! ΠΠΎΠ²ΠΎΡΠ΅Ρ ΡΠ΅ Π·Π° vacuum full ΠΈ, Π°ΠΊΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, vacuum full Π΄Π΅ΡΠΎΡΠΌΠΈΡΠ° ΡΠ΅Π΄Π° Π½Π° Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ΠΊΡΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΎΡΡΠ°Π²Π°Ρ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ. Π Π·Π°ΡΠΎ vacuum full Π²Π·Π΅ΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΅ΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΈ Π·Π°ΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈΡΠ° Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ Π·Π°ΠΏΠΈΡ?
Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΡ Π²ΡΠΏΡΠΎΡ. ΠΡΠΈΡΠΈΠ½Π°ΡΠ° Π΅, ΡΠ΅ vacuum full Π²Π·ΠΈΠΌΠ° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. ΠΡΡΡΠ½ΠΎΡΡ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. Π ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π½ΠΎΠ²Π°. Π’Π°ΠΊΠ° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°, ΡΠ΅ ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ, Π½Π΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Ρ
ΠΎΡΠ°ΡΠ° Π΄Π° Ρ ΡΠ΅ΡΠ°Ρ, Π·Π°ΡΠΎΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΈΠ΄ΡΡ Π½ΠΎΠ²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°. Π Π·Π°ΡΠΎΠ²Π° ΡΠΎΠ²Π° ΡΠ΅ ΡΡΡΠ΅ΡΠ°Π²Π° Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Π²ΡΠΏΡΠΎΡ. ΠΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ
ΠΌΠ΅ Π΄Π° ΡΠ΅ΡΠ΅ΠΌ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π½Π΅ Π±ΠΈΡ
ΠΌΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Ρ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ ΠΈ Π΄Π° Π½Π°ΡΠΎΡΠΈΠΌ Ρ
ΠΎΡΠ°ΡΠ° ΠΊΡΠΌ Π½ΠΎΠ²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°. Π©Π΅ΡΠ΅ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°ΠΌΠ΅, Π·Π° Π΄Π° Π·Π°Π²ΡΡΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ Ρ ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°, ΠΈ Π·Π°ΡΠΎΠ²Π° Π²ΡΡΡΠ½ΠΎΡΡ ΡΠΎΠ²Π° Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π° lock exclusive.
ΠΡΠΎΡΡΠΎ ΠΊΠ°Π·Π²Π°ΠΌΠ΅, ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ°ΠΌΠ΅ ΠΎΡ ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ, Π·Π°ΡΠΎΡΠΎ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ Π² ΠΊΡΠ°Ρ ΡΠ΅ Π½ΠΈ ΡΡΡΠ±Π²Π° ΡΠΊΡΠΊΠ»ΡΠ·ΠΈΠ²Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π·Π° Π΄Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ Π²ΡΠΈΡΠΊΠΈ Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠΏΠΈΡ. Π’Π°ΠΊΠ° ΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ ΡΠΎΠ²Π°. Π ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π° Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅. ΠΠΎ ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΠΎΠ²Π° ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Π²ΠΈ Π²ΡΠΏΡΠΎΡ Π·Π° lock exclusive.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ locking timeout Π² Postgres? Π Oracle ΠΌΠΎΠ³Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π° Π½Π°ΠΏΠΈΡΠ° βΠΈΠ·Π±Π΅ΡΠΈ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅β ΠΈ Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°ΠΌ 50 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ. Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅ Π΄ΠΎΠ±ΡΠΎ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎ Π² Postgres ΠΈΠ»ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Ρ Π²Π΅Π΄Π½Π°Π³Π° ΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ Π΄Π° Π½Π΅ΡΠ°ΠΊΠ°ΠΌ, ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΡΠ°ΠΊΠ°ΠΌ Π΄ΠΎ Π½ΡΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡ Π·Π° Π²Π°ΡΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° no way, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ..., Π°ΠΊΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. Π’Π°ΠΊΠ° ΡΠ΅ ΠΈΠ»ΠΈ lock timeout, ΠΈΠ»ΠΈ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π΄Π° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅. Π’ΠΎΠ²Π° Π½Π΅ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ½ΠΎ Π½ΠΈΠ²ΠΎ. ΠΡΠ°Π²ΠΈ ΡΠ΅ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΡΠ²ΡΡΠ°. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°.
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π΄Π° ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ 75-ΡΠΈ ΡΠ»Π°ΠΉΠ΄?
ΠΠ°.

Π ΠΌΠΎΡΡ Π²ΡΠΏΡΠΎΡ Π΅ ΡΠ»Π΅Π΄Π½ΠΈΡΡ. ΠΠ°ΡΠΎ Π΄Π²Π°ΡΠ° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ°ΠΊΠ°Ρ 703?
Π ΡΠΎΠ²Π° Π΅ ΡΡΠ΄Π΅ΡΠ΅Π½ Π²ΡΠΏΡΠΎΡ. ΠΡΡΡΠ½ΠΎΡΡ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ Π·Π°ΡΠΎ Postgres Π³ΠΎ ΠΏΡΠ°Π²ΠΈ. ΠΠΎ ΠΊΠΎΠ³Π°ΡΠΎ 703 Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½, ΡΠΎΠΉ Π΅ ΠΎΡΠ°ΠΊΠ²Π°Π» 702. Π ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ 704 ΠΈ 705, ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π½Π΅ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ°ΠΊΠ°Ρ, Π·Π°ΡΠΎΡΠΎ ΡΠ°ΠΌ Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ° Π½ΠΈΡΠΎ. Π Postgres Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΊΠ°: ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅, ΡΠΎΠΉ ΠΏΠΈΡΠ΅ "ΠΠ°ΠΊΡΠ² Π΅ ΡΠΌΠΈΡΡΠ»ΡΡ Π΄Π° Π²ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌ?", Π·Π°ΡΠΎΡΠΎ Π²ΠΈΠ΅ ΠΈ ΡΠ°ΠΊΠ° ΡΠ°ΠΊΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ³ΠΎ. ΠΠ°ΡΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ Π³ΠΎ ΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π΄Π° Π²ΠΈΡΠΈ Π²ΡΠ² Π²ΡΠ·Π΄ΡΡ Π°, ΡΠΎΠΉ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠΎΠ²Π°. ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΡΠΊ? ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ 702 Π·Π°Π²ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ 703 ΠΏΠΎΠ»ΡΡΠΈ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ ΡΠΈ, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ Π²ΡΡΠ½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. Π ΠΊΠ°Π·Π°, ΡΠ΅ ΡΠ΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π°ΠΌΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ°ΠΊΠ°Ρ. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π΅ΠΊΠ° Π΄Π° Π³ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π·Π°Π΅Π΄Π½ΠΎ. Π Π΄Π° ΠΏΠΎΡΠΎΡΠΈΠΌ, ΡΠ΅ ΠΈ Π΄Π²Π°ΠΌΠ°ΡΠ° ΡΠ°ΠΊΠ°Ρ.
ΠΠ΅ Π·Π½Π°ΠΌ Π·Π°ΡΠΎ Postgres Π³ΠΎ ΠΏΡΠ°Π²ΠΈ. ΠΠΎ ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° fβ¦. ΠΠΈΡΠ»Ρ, ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΠ΅ΡΠΌΠΈΠ½ Π½Π° Π±ΡΠ»Π³Π°ΡΡΠΊΠΈ. Π’ΠΎΠ²Π° Π΅, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΊΠ°Ρ Π΅Π΄Π½ΠΎ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅, Π΄ΠΎΡΠΈ ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° 20 ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°ΠΊΠ°Ρ Π·Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅. Π ΠΈΠ·Π²Π΅Π΄Π½ΡΠΆ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ ΡΡΠ±ΡΠΆΠ΄Π°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π Π²ΡΠΈΡΠΊΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Π΄Π° ΡΠ΅Π°Π³ΠΈΡΠ°Ρ. ΠΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΊΠ°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΊΠ°Ρ 703. ΠΠ°ΡΠΎΡΠΎ ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΊΠ°Ρ ΠΈ Π½ΠΈΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π³ΠΈ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°ΠΌΠ΅ Π½Π° ΠΎΠΏΠ°ΡΠΊΠ°. Π Π°ΠΊΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π²ΡΡΠΊΠΎ Π½ΠΎΠ²ΠΎ ΠΈΡΠΊΠ°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π±ΠΈΠ»ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 707, ΡΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ°Π·Π½ΠΎΡΠ°.
Π ΠΌΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅, ΡΠ΅ Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ 702 ΠΎΡΠ°ΠΊΠ²Π° 703, Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΠΉΠ΄ΠΎΡ Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, Π½ΡΠΌΠ°Ρ Π½ΠΈΠΊΠ°ΠΊΠ²Π° Π·Π°ΠΏΠΈΡΠΊΠ° Π² ΡΠΎΠ²Π° ΠΏΠΎΠ»Π΅. ΠΠΎ ΡΠΎΠΌ ΠΏΡΡΠ²ΠΈΡΡ ΡΠ°ΠΊΠ°Ρ Π½Π°ΠΏΡΡΠ½Π΅, Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°ΠΊΠ°Π»ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΄ΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΡΡΡΠΈΡ ΠΌΠ°ΡΠΊΠ΅Ρ. Π Π·Π°ΡΠΎΠ²Π° ΠΌΠΈ ΡΠ΅ ΡΡΡΡΠ²Π°, ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ ΠΏΠΎ ΡΠ΅Π΄, Π·Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ.
ΠΠΈΠ½Π°Π³ΠΈ ΡΡΠΌ Π³Π»Π΅Π΄Π°Π» Π½Π° ΡΠΎΠ²Π° ΠΊΠ°ΡΠΎ Π½Π° Π΄ΠΎΡΡΠ° ΡΡΡΠ°Π½Π΅Π½ ΡΠ΅Π½ΠΎΠΌΠ΅Π½. ΠΠ°ΡΠΎΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΊ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π³ΠΈ ΠΈΠ·Π±ΡΠΎΡΠ²Π°ΠΌΠ΅. ΠΠΎ ΠΌΠΈ ΡΠ΅ ΡΡΡΡΠ²Π°, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ²ΠΎ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅, Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π² ΡΠ°ΠΊΠ°ΡΠ΅Π»Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. Π’ΠΎΠ³Π°Π²Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΠΆΠ΄Π°Ρ Π½Π° ΠΎΠΏΠ°ΡΠΊΠ°. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°, Π²ΡΠ΅ΠΊΠΈ Π½ΠΎΠ², ΠΊΠΎΠΉΡΠΎ ΠΈΠ΄Π²Π°, ΠΏΠΎΠΏΠ°Π΄Π° Π½Π° ΠΎΠΏΠ°ΡΠΊΠ° ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΡ ΡΠΎΠ²Π΅ΠΊ Π·Π°Π²ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°. ΠΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΡ Π²ΡΠΏΡΠΎΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° Π²ΡΠΏΡΠΎΡΠ°!
ΠΠΈΡΠ»Ρ, ΡΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ 705 ΠΎΡΠ°ΠΊΠ²Π° 704.
ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠ° ΡΡΠΊ Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ°. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ±ΡΠ΄ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠ·ΠΈ, ΠΈΠ»ΠΈ ΠΎΠ½Π·ΠΈ. Π Π·Π°ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ±ΡΠ΄ΠΈΠΌ ΡΠΎΠ·ΠΈ ΠΈΠ»ΠΈ ΠΎΠ½Π·ΠΈ. ΠΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°? ΠΠΈΠΆΠ΄Π°ΡΠ΅, ΠΊΠ°ΠΊ 703 Π² ΡΠ°ΠΌΠΈΡ Π²ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠΈ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΎΠ½Π½ΠΎ ID. Π’ΠΎΠ²Π° Π΅ Π½Π°ΡΠΈΠ½ΡΡ, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Postgres. Π 703 ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠΈ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΠΎΠ½Π½ΠΎ ID, Π·Π°ΡΠΎΠ²Π°, Π°ΠΊΠΎ Π½ΡΠΊΠΎΠΉ ΠΈΡΠΊΠ° Π΄Π° ΡΠ°ΠΊΠ°, ΡΠΎΠΉ ΡΠ΅ ΡΠ°ΠΊΠ° 703. Π ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, 703 Π·Π°Π²ΡΡΡΠ²Π°. Π ΡΠ°ΠΌΠΎ ΡΠ»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ, Π½ΡΠΊΠΎΠΉ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΡΡΠ±ΡΠΆΠ΄Π°. Π Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ. ΠΠΎ Π½Π΅ Π΅ ΡΡΠ½ΠΎ ΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ ΡΡΠ±ΡΠΆΠ΄Π° ΠΏΡΡΠ²ΠΈ, Π·Π°ΡΠΎΡΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΊΠΎΠΉΡΠΎ ΠΊΠ°Π·Π°, ΡΠ΅ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π±ΡΠ΄ΠΈΠΌ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΡΠΎΡΡΠΎ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ Π½Π° ΡΠ»ΡΡΠ°Π΅Π½ ΠΏΡΠΈΠ½ΡΠΈΠΏ. ΠΠ°ΡΠΎΠ²Π° ΠΈ Π΄Π²Π°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΡΠ±Π΅Π»ΡΠ·Π°Π½ΠΈ, Π·Π°ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ±ΡΠ΄ΠΈΠΌ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ .
Π ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠ° Π΅, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ CP-Π±Π΅Π·ΠΊΡΠ°ΠΉΠ½ΠΎΡΡ. Π Π·Π°ΡΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ±ΡΠ΄ΠΈΠΌ ΠΏΠΎ-ΠΊΡΡΠ΅Π½. Π Π°ΠΊΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ±ΡΠ΄ΠΈΠΌ ΠΏΠΎ-ΠΊΡΡΠ΅Π½, ΡΠΎ ΡΠ΅ ΡΠ°ΠΊΠ°ΠΌΠ΅ ΡΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΠΎΠΊΡ-ΡΠΎ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°, Π·Π°ΡΠΎΠ²Π° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΌΠ΅ ΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΡΠ±ΡΠ΄Π΅Π½ ΠΏΡΡΠ²ΠΈ. ΠΡΠΎΡΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ°ΠΊΠ°Π²Π° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ Π³ΠΈ Π±ΡΠ΄ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΡΠ΅Π΄.
ΠΠΌΠ° . ΠΠΈΠΆΡΠ΅, ΡΠ΅ ΡΡΡΠΎ ΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ. Π’Π΅ΠΌΠ°ΡΠ°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π΅ ΡΠΆΠ°ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΡΡΡ!
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
