Π’ высоконагруТСнных ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах сохранСниС цСлостности Π΄Π°Π½Π½Ρ‹Ρ… являСтся критичСски Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Когда нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ записи Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ риск ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ транзакция Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Π‘Π£Π‘Π”, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС этого инструмСнта ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (deadlock) ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ оТидания рСсурсов. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° фиксации ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Вранзакция Π² 1Π‘ β€” это Π½Π΅ просто ΠΊΠΎΠΌΠ°Π½Π΄Π° "Π½Π°Ρ‡Π°Ρ‚ΡŒ" ΠΈ "Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ". Π­Ρ‚ΠΎ слоТный процСсс взаимодСйствия ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, сСрвСра ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвСра Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим, Ρ‡Ρ‚ΠΎ происходит "ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ" ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ вас ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π Π΅ΠΆΠΈΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ активируСтся явным Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΠ°Ρ‡Π°Ρ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° всС измСнСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π±Π°Π·Ρƒ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π° Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π±ΡƒΡ„Π΅Ρ€Π΅. ЀизичСская запись ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ().

Если Π² процСссС выполнСния ΠΊΠΎΠ΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка ΠΈΠ»ΠΈ логичСскоС условиС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ(). Π’ этом случаС всС Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½Ρ‹Π΅ измСнСния ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… возвращаСтся Π² состояниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ свойство называСтся Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° транзакция Π½Π΅ зафиксирована, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ внСсСнныС Π²Π°ΠΌΠΈ измСнСния, Π² зависимости ΠΎΡ‚ уровня изоляции. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ "грязных" Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌ.

πŸ’‘

ВсСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя ΠΆΠΈΠ·Π½ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…

Одним ΠΈΠ· самых слоТных аспСктов Ρ€Π°Π±ΠΎΡ‚Ρ‹ с транзакциями являСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ. Когда Π²Ρ‹ измСняСтС запись Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, систСма устанавливаСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π° эту запись ΠΈΠ»ΠΈ Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ записСй. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΏΡ‹Ρ‚Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ вашСй Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

БущСствуСт Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ сталкиваСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ: управляСмыС ΠΈ автоматичСскиС. УправляСмыС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Π”Π°Π½Π½Ρ‹Ρ…. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π·Π°Ρ€Π°Π½Π΅Π΅, прСдотвращая ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ записи.

  • πŸ”’ Эксклюзивная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСансам Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.
  • πŸ“– Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ позволяСт Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСансам Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².
  • ⚑ АвтоматичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ записи ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π±Π΅Π· явного ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ блокирования, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ оТиданиям.

ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Π”Π°Π½Π½Ρ‹Ρ… считаСтся Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ. Π’Ρ‹ явно сообщаСтС систСмС: "Π― ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этими Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ", ΠΈ систСма Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдсказуСмым ΠΈ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° транзакция прСрываСтся Π² самый нСподходящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ·-Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.

β˜‘οΈ ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π£Ρ€ΠΎΠ²Π½ΠΈ изоляции Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ изоляции опрСдСляСт, насколько измСнСния, сдСланныС Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π²ΠΈΠ΄Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌ транзакциям. Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ тСсно связан с настройками ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π” (Microsoft SQL Server, PostgreSQL, Oracle). ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ уровня ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ„Π°Π½Ρ‚ΠΎΠΌΠ½ΠΎΠΌΡƒ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ нСповторяСмому Ρ‡Ρ‚Π΅Π½ΠΈΡŽ.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с управляСмыми Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ систСмы. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ зафиксированы Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ, Ссли бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° это допускаСт. Однако Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ строгий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ финансовой точности.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ изоляции ГрязноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ НСповторяСмоС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π€Π°Π½Ρ‚ΠΎΠΌΡ‹
Read Uncommitted Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
Read Committed Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
Repeatable Read Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
Serializable Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ

Π’Ρ‹Π±ΠΎΡ€ уровня изоляции влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π§Π΅ΠΌ строТС ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Ρ‚Π΅ΠΌ большС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ устанавливаСтся систСмой ΠΈ Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². Для Π·Π°Π΄Π°Ρ‡ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ мягкиС ΡƒΡ€ΠΎΠ²Π½ΠΈ, Π° для Π·Π°Π΄Π°Ρ‡ провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² β€” строгиС.

ВлияниС Π‘Π£Π‘Π” Π½Π° ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΡƒΡ€ΠΎΠ²Π½ΠΈ изоляции ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. НапримСр, Π² PostgreSQL ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Repeatable Read ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈ Ρ„Π°Π½Ρ‚ΠΎΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ многовСрсионности (MVCC), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² классичСском SQL Server для этого трСбуСтся ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Serializable.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ β€” Π·Π°Π»ΠΎΠ³ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π² процСссС выполнСния ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка, транзакция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ Π»ΠΈΠ±ΠΎ фиксации, Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚Π°. Π’ 1Π‘ принято ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для контроля этого процСсса.

Π’ Π±Π»ΠΎΠΊΠ΅ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚ΠΊΠ°Ρ‚Π°. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ, сСрвСр 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Ρ‹Π²Π΅ соСдинСния, Π½ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° это Π½Π΅ стоит. Π―Π²Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ частичныС измСнСния Π½Π΅ останутся Π² Π±ΡƒΡ„Π΅Ρ€Π΅.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ выполняйтС Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ запросы ΠΊ внСшним HTTP-сСрвисам Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… всС врСмя оТидания ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ внСшнСго рСсурса, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ "ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ" Ρ€Π°Π±ΠΎΡ‚Ρƒ всСй Π±Π°Π·Ρ‹ для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ всС установлСнныС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: Ссли Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ошибки, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сСанса ΠΈΠ»ΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°, создавая ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠ· ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

πŸ’‘

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ "ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ": вСсь ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ максимально быстро. Π›ΡŽΠ±Ρ‹Π΅ тяТСлыС вычислСния ΠΈ внСшниС запросы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ вынСсСны Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π±Π»ΠΎΠΊΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Π’Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (Deadlock)

Взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ситуации, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ сСанса ΠΆΠ΄ΡƒΡ‚ рСсурсы, ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. НапримСр, сСанс А Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π» Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ "Π—Π°ΠΊΠ°Π· β„–1" ΠΈ пытаСтся Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ "Π—Π°ΠΊΠ°Π· β„–2", Π° сСанс Π‘ ΡƒΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π» "Π—Π°ΠΊΠ°Π· β„–2" ΠΈ ΠΆΠ΄Π΅Ρ‚ освобоТдСния "Π—Π°ΠΊΠ°Π·Π° β„–1". Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π‘Π£Π‘Π” ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, выбирая "ΠΆΠ΅Ρ€Ρ‚Π²Ρƒ". Π’ 1Π‘ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию ошибки Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ рСгистрации ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ deadlock, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ порядок блокирования рСсурсов.

  • πŸ”„ Π•Π΄ΠΈΠ½Ρ‹ΠΉ порядок: всСгда Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сначала справочники, ΠΏΠΎΡ‚ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, сортируя ΠΈΡ… ΠΏΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ).
  • ⏱️ Π’Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° ΠΏΡ€ΠΈ установкС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ Π²Π΅Ρ‡Π½ΠΎ, Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ управляСмоС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.
  • πŸ“‰ Π“Ρ€Π°Π½ΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ: Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ минимально Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ†Π΅Π»Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ строку.

Анализ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ изучСния ΠΆΡƒΡ€Π½Π°Π»Π° рСгистрации 1Π‘ ΠΈ Π»ΠΎΠ³ΠΎΠ² самой Π‘Π£Π‘Π”. Π’Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ запросы ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ стали ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°. РСгулярный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ‚Π°ΠΊΠΈΡ… событий ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ распрСдСлСнных ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°Π·Π°Ρ… (Π Π˜Π‘) ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ½Π°Ρ‡Π΅ ΠΈΠ·-Π·Π° нСобходимости синхронизации ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ. Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Π Π˜Π‘ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ составу ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ВсСгда ΡΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ΡΡŒ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π Π˜Π‘ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ слоТных ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ объСма Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΈ слоТности индСксов. ΠŸΡ€ΠΈ массовом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π·Π° Π³ΠΎΠ΄) использованиС ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π‘Π£Π‘Π” ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ остановку Π±Π°Π·Ρ‹.

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π Π°Π·Π±Π΅ΠΉΡ‚Π΅ большой объСм Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° нСбольшиС Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΈ фиксируйтС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹. Π­Ρ‚ΠΎ позволяСт ΠΆΡƒΡ€Π½Π°Π»Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π‘Π£Π‘Π” ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒΡΡ ΠΈ Π½Π΅ расти Π΄ΠΎ гигантских Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ· Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Π¦ΠΈΠΊΠ»

ΠΠ°Ρ‡Π°Ρ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ();

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ();

Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ();

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ();

// Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ошибки

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ»Π΅ΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ происходит Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ индСксов заставляСт Π‘Π£Π‘Π” ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всю Ρ‚Π°Π±Π»ΠΈΡ†ΡŽ для установки Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΠΊΠΎ сниТаСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

πŸ“Š Как часто Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с Π²Π·Π°ΠΈΠΌΠ½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ (Deadlock)?
Π•ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ
Раз в нСдСлю
Π Π΅Π΄ΠΊΠΎ, ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
Никогда Π½Π΅ сталкивался

ЧастыС вопросы ΠΏΠΎ транзакциям Π² 1Π‘

МоТно Π»ΠΈ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°?

ВСхничСски ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ позволяСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΠ°Ρ‡Π°Ρ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ() Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Однако это Π½Π΅ создаСт Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ Π‘Π£Π‘Π”. ВсС дСйствия ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½Ρƒ ΠΎΠ±Ρ‰ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ. ΠžΡ‚ΠΌΠ΅Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ всС измСнСния, сдСланныС ΠΈ Π²ΠΎ внСшнСй, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ с сохранСниСм состояния.

Π§Ρ‚ΠΎ происходит с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ послС ΠΎΡ‚ΠΊΠ°Ρ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ?

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ() всС измСнСния, сдСланныС Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этой Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с этим ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ всС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, установлСнныС Π² Ρ…ΠΎΠ΄Π΅ выполнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. РСсурсы ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ для Π΄Ρ€ΡƒΠ³ΠΈΡ… сСансов Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.

ВлияСт Π»ΠΈ использованиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π±Π°Π·Ρ‹?

Π”Π°, влияСт. Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ (.1CD) ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрном. Ѐиксация Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·-Π·Π° особСнностСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ монополистичСскими для всСго Ρ„Π°ΠΉΠ»Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях записи, Ρ‡Ρ‚ΠΎ сниТаСт ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

Как ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² систСмС?

Для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π» рСгистрации 1Π‘ с ΠΎΡ‚Π±ΠΎΡ€ΠΎΠΌ ΠΏΠΎ событиям Ρ€Π°Π±ΠΎΡ‚Ρ‹ с трансакциями. Π’Π°ΠΊΠΆΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ консоль администрирования сСрвСров 1Π‘ ΠΈΠ»ΠΈ спСциализированныС инструмСнты Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, sp_who2 Π² MS SQL), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ сСссии ΠΈ врСмя ΠΈΡ… выполнСния.