Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΈΡ… контроля

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ называСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ†

Вранзакция это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈ записи. ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ сохранСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (фиксация, commit) Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΎΡ‚ΠΊΠ°Ρ‚, rollback). ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π‘Π” транзакция это Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ запрос.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ свойствам ACID

ΠΡ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ. Вранзакция Π»ΠΈΠ±ΠΎ выполняСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π»ΠΈΠ±ΠΎ Π½Π΅ выполняСтся вовсС.

Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π°Ρ€ΡƒΡˆΠ΅Π½Ρ‹ ограничСния Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ constraints Π² Π‘Π”). Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ систСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ состояния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅.

Π˜Π·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ. ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ выполняСмыС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π»ΠΈΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ другая транзакция. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π£ΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ. ПослС фиксации измСнСния Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ утСряны.

Π–ΡƒΡ€Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Π–ΡƒΡ€Π½Π°Π» Ρ…Ρ€Π°Π½ΠΈΡ‚ измСнСния Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ транзакциями, обСспСчиваСт Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π² случаС сбоя систСмы

Π–ΡƒΡ€Π½Π°Π» содСрТит значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π»ΠΈ Π΄ΠΎ ΠΈ послС ΠΈΡ… измСнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ. Write-ahead log strategy обязываСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΆΡƒΡ€Π½Π°Π» запись ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… значСниях Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π°, Π° ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’ случаС Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠΉ остановки систСмы Π‘Π” Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π»ΠΎΠ³ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС ΠΈ отмСняСт измСнСния сдСланныС транзакциями. ВстрСтив ΠΏΡ€Π΅Ρ€Π²Π°Π½Π½ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Π‘Π” выполняСт Π΅Π΅ ΠΈ вносит измСнСния ΠΎ Π½Π΅ΠΉ Π² ΠΆΡƒΡ€Π½Π°Π». ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² состоянии Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ сбоя, Π‘Π” Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π»ΠΎΠ³ Π² прямом порядкС ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ измСнСния сдСланныС транзакциями. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сохраняСтся ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ зафиксированы ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ нСдостаточно для восстановлСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. На счСту Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ 500$ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΡΠ½ΡΡ‚ΡŒ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ‚. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΄Π²Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ баланса ΠΈ Ссли Π½Π° балансС достаточно срСдств Π²Ρ‹Π΄Π°Π΅Ρ‚ дСньги ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Вторая Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ· баланса Π½ΡƒΠΆΠ½ΡƒΡŽ сумму. Допустим, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» сбой систСмы ΠΈ пСрвая опСрация Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ, Π° вторая Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ. Π’ этом случаС ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹Π΄Π°Ρ‚ΡŒ дСньги ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±Π΅Π· Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° систСмы Π² ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС с ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ балансом.

Π£Ρ€ΠΎΠ²Π½ΠΈ изоляции

Π§Ρ‚Π΅Π½ΠΈΠ΅ фиксированных Π΄Π°Π½Π½Ρ‹Ρ… (Read Committed)

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° грязного чтСния (Dirty Read) Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ транзакция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ баланса 0$. Π’1 добавляСт ΠΊ балансу 50$. Π’2 считываСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ баланса (50$). Π’1 отмСняСт измСнСния ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ. T2 ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ располагая Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ балансС.

РСшСниСм являСтся Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ фиксированных Π΄Π°Π½Π½Ρ‹Ρ… (Read Committed) Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰Π΅Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ. Если транзакция A ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ транзакция B ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ Π·Π° этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ A.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (Repeatable Read)

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° потСрянных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Lost Updates). Π’1 сохраняСт измСнСния ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π’2.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ баланса 0$ ΠΈ Π΄Π²Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ баланс. T1 ΠΈ T2 Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ баланс Ρ€Π°Π²Π½Ρ‹ΠΉ 0$. Π—Π°Ρ‚Π΅ΠΌ T2 прибавляСт 200$ ΠΊ 0$ ΠΈ сохраняСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. T1 прибавляСт 100$ ΠΊ 0$ ΠΈ сохраняСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ 100$ вмСсто 300$.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° нСповторяСмого чтСния (Unrepeatable read). ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ значСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. Π’1 Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ баланса Ρ€Π°Π²Π½ΠΎΠ΅ 0$. Π—Π°Ρ‚Π΅ΠΌ Π’2 добавляСт ΠΊ балансу 50$ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ. Π’1 ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ нСсоотвСтствиС с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅ΠΌΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (Repeatable Read) Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Если транзакция A ΠΏΡ€ΠΎΡ‡Π»Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ транзакция B ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ Π·Π° этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ A.

УпорядочСнноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (Serializable)

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ„Π°Π½Ρ‚ΠΎΠΌΠ½ΠΎΠ³ΠΎ чтСния (Phantom Reads). Π”Π²Π° запроса Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π½Π΅ΠΊΠΎΠ΅ΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ значСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. T1 Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ количСство всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ баланс ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… большС 0$ Π½ΠΎ мСньшС 100$. T2 Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ 1$ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с балансом 101$. T1 ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ выполняСт запрос.

УпорядочСнноС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (Serializable). Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. ЗапрСщаСтся ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ записи, ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ условия запроса. Если транзакция A запросила Π΄Π°Π½Π½Ρ‹Π΅ всСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‚ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ замораТиваСтся для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ A.

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ (Scheduler)

УстанавливаСт ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΡ… транзакциях

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изолированности. Если Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ зависит ΠΎΡ‚ ΠΈΡ… очСрСдности, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ (Permutable). ΠšΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния-записи ΠΈ записи-записи Π½Π΅ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹. Π—Π°Π΄Π°Ρ‡Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Ρ‡Π΅Ρ€Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ выполняСмыС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ транзакциями Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π±Ρ‹Π» эквивалСнтСн ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ контроля ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ (Concurrency Control)

ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ основан Π½Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ², пСссимистичСский Π½Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ возникновСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²

ΠŸΡ€ΠΈ оптимистичСском ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π² своС распоряТСниС ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ²ΡˆΠΈΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сохраняСт измСнСния, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ слияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ позволяСт ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρƒ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Π½ΠΎ систСма Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ послС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.

ΠŸΡ€ΠΈ пСссимистичСском ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ²ΡˆΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ прСпятствуСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ. Если ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Ρ€Π΅Π΄ΠΊΠΈ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° обСспСчиваСт Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°.

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (Locking)

Если ΠΎΠ΄Π½Π° транзакция Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π»Π° Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ обязаны ΠΆΠ΄Π°Ρ‚ΡŒ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

Π‘Π»ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, ряд ΠΈΠ»ΠΈ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. БовмСстный Π·Π°Ρ…Π²Π°Ρ‚ (Shared Lock) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π»ΠΎΠΆΠ΅Π½ Π½Π° ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ нСсколькими транзакциями, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ всСм транзакциям (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π½Π°Π»ΠΎΠΆΠΈΠ²ΡˆΡƒΡŽ) Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π·Π°Ρ…Π²Π°Ρ‚. ΠœΠΎΠ½ΠΎΠΏΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π·Π°Ρ…Π²Π°Ρ‚ (Exclusive Lock) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π»ΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ дСйствия налоТившСй Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ дСйствия ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ.

Π’Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ считаСтся ситуация ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания, длящСмся бСсконСчно Π΄ΠΎΠ»Π³ΠΎ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΠ΅Ρ€Π²Π°Ρ транзакция ΠΆΠ΄Π΅Ρ‚ освобоТдСния Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Π²Ρ‚ΠΎΡ€ΠΎΠΉ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ вторая ΠΆΠ΄Π΅Ρ‚ освобоТдСния Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π²ΠΎΠΉ.

ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ позволяСт Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Π½ΠΎ Π·Π°Ρ‚Π΅ΠΌ восстанавливаСт систСму откатывая ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅

Π‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ производится поиск Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. Один ΠΈΠ· способов обнаруТСния β€” ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° Ссли транзакция выполняСтся слишком Π΄ΠΎΠ»Π³ΠΎ. Когда Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π°, Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ откатываСтся, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ транзакциям ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ. Π’Ρ‹Π±ΠΎΡ€ ΠΆΠ΅Ρ€Ρ‚Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ основан Π½Π° стоимости Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΡ… ΡΡ‚Π°Ρ€ΡˆΠΈΠ½ΡΡ‚Π²Π΅ (Wait-Die ΠΈ Wound-wait схСмы).

КаТдой Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ T присваиваСтся врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° TS содСрТащая врСмя Π½Π°Ρ‡Π°Π»Π° выполнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Wait-Die.

Если TS(Ti) < TS(Tj), Ρ‚ΠΎ Ti ΠΆΠ΄Π΅Ρ‚, ΠΈΠ½Π°Ρ‡Π΅ Ti откатываСтся ΠΈ начинаСтся Π·Π°Π½ΠΎΠ²ΠΎ с Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ.

Если молодая транзакция Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ»Π° рСсурс, Π° Π±ΠΎΠ»Π΅Π΅ старая Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ рСсурс, Ρ‚ΠΎ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ. Если Π±ΠΎΠ»Π΅Π΅ старая транзакция Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ»Π° рСсурс, Ρ‚ΠΎ молодая транзакция Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π°Ρ этот рСсурс Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Ρ‡Π΅Π½Π°.

Wound-wait.

Если TS(Ti) < TS(Tj), Ρ‚ΠΎ Tj откатываСтся ΠΈ начинаСтся Π·Π°Π½ΠΎΠ²ΠΎ с Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, ΠΈΠ½Π°Ρ‡Π΅ Ti ΠΆΠ΄Π΅Ρ‚.

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

ΠŸΠ΅ΡΡΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π΅ позволяСт Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ссли Π΅ΡΡ‚ΡŒ риск возникновСния Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

Для обнаруТСния Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ строится Π³Ρ€Π°Ρ„ (Π³Ρ€Π°Ρ„ оТидания, wait-for-graph), Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π° Ρ€Π΅Π±Ρ€Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… освобоТдСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΠ²ΡˆΠΈΠΌ эти Π΄Π°Π½Π½Ρ‹Π΅. БчитаСтся Ρ‡Ρ‚ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π°, Ссли Π³Ρ€Π°Ρ„ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°Ρ†ΠΈΠΊΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π° оТидания, особСнно Π² распрСдСлСнных Π‘Π”, дорогостоящая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°.

Двухфазная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° β€” ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΏΡƒΡ‚Π΅ΠΌ Π·Π°Ρ…Π²Π°Ρ‚Π° всСх рСсурсов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ освобоТдСния ΠΈΡ… Π² ΠΊΠΎΠ½Ρ†Π΅

ВсС Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ. Π˜ΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ Ρ„Π°Π·Ρ‹ β€” Growing Phase ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ происходит Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ Π·Π°Ρ…Π²Π°Ρ‚ΠΎΠ² ΠΈ Shrinking Phase ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ происходит освобоТдСниС Π·Π°Ρ…Π²Π°Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ нСвозмоТности Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· рСсурсов транзакция начинаСтся сначала. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ситуация ΠΊΠΎΠ³Π΄Π° транзакция Π½Π΅ смоТСт Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ссли нСсколько Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° ΠΎΠ΄Π½ΠΈ рСсурсы.

Π”Π²ΡƒΡ…Ρ„Π°Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ обСспСчиваСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π° всСх Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ… Π‘Π”

КаТдая Π‘Π” вносит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² Π»ΠΎΠ³ ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρƒ ОК (Voting Phase). ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ всС ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ ОК ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ отсылаСт сигнал ΠΎΠ±ΡΠ·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ всСх произвСсти ΠΊΠΎΠΌΠΌΠΈΡ‚. ПослС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° сСрвСра ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ ОК, Ссли Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ» ОК, Ρ‚ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ отсылаСт сигнал ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ всСм сСрвСрам (Completion Phase).

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ

Π‘ΠΎΠ»Π΅Π΅ старая транзакция откатываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, задСйствованным Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ

КаТдой Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ назначаСтся врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° TS ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°Ρ‡Π°Π»Π° выполнСния. Если Ti ΡΡ‚Π°Ρ€ΡˆΠ΅ Tj, Ρ‚ΠΎ TS(Ti) < TS(Tj).

Когда транзакция откатываСтся, Π΅ΠΉ назначаСтся новая врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Q задСйствованный Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ помСчаСтся двумя ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ. W-TS(Q) β€” врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° самой ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ²ΡˆΠ΅ΠΉ запись Π½Π°Π΄ Q. R-TS(Q) β€” врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° самой ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ²ΡˆΠ΅ΠΉ запись чтСния Π½Π°Π΄ Q.

Когда транзакция T Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Q Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Если TS(T) < W-TS(Q), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ, Ρ‚ΠΎ транзакция T откатываСтся.

Если TS(T) >= W-TS(Q), Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ выполняСтся ΠΈ R-TS(Q) становится MAX(R-TS(Q), TS(T)).

Когда транзакция T Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Q Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

Если TS(T) < R-TS(Q), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ Ссли произвСсти ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. Вранзакция T откатываСтся.

Если TS(T) < W-TS(Q), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ транзакция пытаСтся ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, транзакция T откатываСтся. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ выполняСтся ΠΈ W-TS(Q) становится Ρ€Π°Π²Π½Ρ‹ΠΌ TS(T).

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

Одно ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ каскадных ΠΎΡ‚ΠΊΠ°Ρ‚ΠΎΠ². Вранзакция выполняСт всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π² ΠΊΠΎΠ½Ρ†Π΅, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ обязаны ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ.

Thomas write rule β€” вариация ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ старой

Вранзакция T Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Q. Если TS(T) < W-TS(Q), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ транзакция пытаСтся ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, транзакция T Π½Π΅ откатываСтся ΠΊΠ°ΠΊ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ