Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠœΠΈΡ€ InterBase. АрхитСктура, администрированиС ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π² InterBase/FireBird/YaffilΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 26

Автор А Ковязин

ВзаимодСйствиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ΅Π½ процСсс опрСдСлСния, являСтся Π»ΠΈ тСкущая вСрсия мусором ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½Π° Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

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

Π˜Ρ‚Π°ΠΊ, опрСдСлСния:

ЗаинтСрСсованная транзакция - это транзакция, ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ.

Π‘Ρ‚Π°Ρ€Π΅ΠΉΡˆΠ°Ρ заинтСрСсованная транзакция (oldest interesting transaction) - это ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠ°Ρ транзакция, ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ.

КаТдая транзакция (ΠΈ тСкущая Ρ‚ΠΎΠΆΠ΅, разумССтся) ΠΈΠΌΠ΅Π΅Ρ‚ "маску Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ", которая прСдставляСт собой снимок страницы ΡƒΡ‡Π΅Ρ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, начиная ΠΎΡ‚ ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠ΅ΠΉ заинтСрСсованной Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΄ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ.

Π‘Ρ‚Π°Ρ€Π΅ΠΉΡˆΠ°Ρ активная транзакция (oldest active transaction, OAT) - это транзакция, которая Π±Ρ‹Π»Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ самая старая ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ.

ИмСнно ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠ°Ρ активная транзакция ΠΈ занимаСтся сборкой мусора, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΡ… измСнСния "ΠΌΠΎΠ»ΠΎΠΆΠ΅" Π΅Π΅.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π²Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠ°Ρ активная транзакция - это Π½Π΅ постоянно ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ транзакция, Π° всСго лишь ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ; Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠ°Ρ транзакция ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ мусор ΠΎΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ²ΡˆΠΈΡ…ΡΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ ΡΡ‚Π°Ρ€ΡˆΠ΅ Π΅Π΅! Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ процСсс сборки мусора динамичСски - ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚ΠΎΡΠ½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ обязанностСй ΠΏΠΎ сборкС мусора ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

РазумССтся, здСсь ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ лишь ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ вопросов, связанных с многовСрсионной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ InterBase ΠΈ Π΅Π΅ особСнностями. На сайтах www.InterBase-world.com ΠΈ www.ibase.ru Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ смоТСт ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с мноТСством статСй ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅.

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

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

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π΄Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… измСняСт Π΄Π°Π½Π½Ρ‹Π΅, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ) ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π²ΠΈΠ΄Π΅Ρ‚ΡŒ измСнСния, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π”ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ - это опрСдСляСтся ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ изоляции.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ изолированности Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния, сдСланныС Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… транзакциях, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹ Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

КаТдая транзакция ΠΈΠΌΠ΅Π΅Ρ‚ свой ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСтся ΠΏΡ€ΠΈ Π΅Π΅ запускС ΠΈ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСй Π΅Π΅ ΠΆΠΈΠ·Π½ΠΈ.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² InterBase ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ 3 основных Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… уровня изоляции: READ COMMITTED, SNAPSHOT ΠΈ SNAPSHOT TABLE STABILITY. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Ρ‚Ρ€Π΅Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ изоляции опрСдСляСт ΠΏΡ€Π°Π²ΠΈΠ»Π° видимости Ρ‚Π΅Ρ… дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ транзакциями. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΡƒΡ€ΠΎΠ²Π½ΠΈ изоляции Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

* READ COMMITTED. Π‘ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ пСрСводится ΠΊΠ°ΠΊ "Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅", ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ совсСм (Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π½Π΅ всСгда) Ρ‚Π°ΠΊ. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ изоляции READ COMMITTED ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΆΠ΅Π»Π°Π΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ (Ρ‚. Π΅. Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ) дСйствий. Π­Ρ‚ΠΎΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ НЕ смоТСм ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… транзакциях, ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π’ΠžΠ—ΠœΠžΠ–ΠΠ«Πœ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

* SNAPSHOT. Π­Ρ‚ΠΎΡ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания "ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ" снимка Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния Π΄Π°Π½Π½Ρ‹Ρ…, выполняСмыС Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ изоляции SNAPSHOT, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ состояниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° запуска Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. ВсС измСнСния, сдСланныС Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… (ΠΈ разумССтся, Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ…) транзакциях, Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ Π² этой Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя SNAPSHOT Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π½Π΅ измСняСт.

* SNAPSHOT TABLE STABILITY. Π­Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции Ρ‚Π°ΠΊΠΆΠ΅ создаСт "ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ" снимок Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° запись Π΄Π°Π½Π½Ρ‹Π΅, задСйствованныС Π² опСрациях, выполняСмыС Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли транзакция SNAPSHOT TABLE STABILITY ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ‚ΠΎ послС этого Π΄Π°Π½Π½Ρ‹Π΅ Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… транзакциях. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ изоляции SNAPSHOT TABLE STABILITY Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½ΠΈΡ… ΡƒΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² контСкстС Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ этой Π³Π»Π°Π²Ρ‹ Π±Ρ‹Π»Π° сдСлана ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² Π‘Π£Π‘Π” InterBase Π² Ρ†Π΅Π»ΠΎΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ практичСскиС аспСкты ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² InterBase.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ соврСмСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для доступа ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… InterBase, ΠΊΠ°ΠΊ FIBPlus, IBProvider, IBX ΠΈ IBObjects (см. Π³Π»Π°Π²Ρƒ "ΠžΠ±Π·ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ доступа ΠΊ InterBase"), ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ для получСния Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ для этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пСрСчислСния Π½Π°Π±ΠΎΡ€Π° констант, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции. Π­Ρ‚ΠΈ константы ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈΠ· InterBase API ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄: isc_tpb_read, isc_tpb_write, isc_tpb_ read_committed ΠΈ Ρ‚. Π΄.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ прСфикс isc_tpb_ опускаСтся ΠΈ константы для опрСдСлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π±Π΅Π· Π½Π΅Π³ΠΎ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ синтаксис примСнСния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ константы.

Π’ΠΈΠ΄Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

ВсС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 1.4:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ

Π“Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС константы

Π Π΅ΠΆΠΈΠΌ доступа

Read

Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния

write

Π Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи

Π Π΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

Wait

УстанавливаСт Ρ€Π΅ΠΆΠΈΠΌ отсрочСнного Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². Π‘ΠΌ. Π½ΠΈΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π» "Π Π΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ"

nowait

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ

read_committed rec_version

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ rec_version позволяСт Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ записи, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ вСрсии

read_committed no_rec_version

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ no_rec_version Π½Π΅ позволяСт Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ записи, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ вСрсии

concurrency

ΠŸΡ€ΠΈ запускС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ создаСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ "снимок" состояния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚ΠΎΡ‡Π½Π΅Π΅, копируСтся "маска Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ" Π½Π° этот ΠΌΠΎΠΌΠ΅Π½Ρ‚), поэтому измСнСния, сдСланныС Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… транзакциях, Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ Π² этой Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

consistency

АналогичСн ΡƒΡ€ΠΎΠ²Π½ΡŽ concurrency, Π½ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ этого Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π½Π° запись. Π‘ΠΌ. Π½ΠΈΠΆΠ΅

ОбилиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² впСчатляСт, вСдь ΠΈΡ… сочСтания Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π½ΡƒΠΆΠ΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Однако ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ лишь нСбольшой Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для опрСдСлСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

Π Π΅ΠΆΠΈΠΌ доступа

Π Π΅ΠΆΠΈΠΌ доступа опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π² контСкстС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Ρ‚. Π΅. Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ) ставится Ρ€Π΅ΠΆΠΈΠΌ чтСния-записи, Ρ‚. Π΅. ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Часто Π·Π°Π΄Π°ΡŽΡ‚ вопрос, ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈ смысл Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Ссли Π½Π΅ прСдполагаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ измСнСнию Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ‚Π²Π΅Ρ‚: Π΄Π°, ΠΈΠΌΠ΅Π΅Ρ‚. ОсобСнно Π² послСдних ΠΊΠ»ΠΎΠ½Π°Ρ… InterBase 6.x - InterBase 6.5, Yaffil ΠΈ Firebird. Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ доступа Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния мСньшС Π½Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ сСрвСр, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… вСрсий записСй.

Для установки Ρ€Π΅ΠΆΠΈΠΌΠ° чтСния-записи ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сочСтаниС констант read write. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ константы Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π² столбик ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ: read write

Π Π΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

Π Π΅ΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ опрСдСляСт, ΠΊΠ°ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹. Если Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Ρ‚ΠΎ Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²ΡˆΠ΅ΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Ρ‹Ρ…ΠΎΠ΄Π° - Π»ΠΈΠ±ΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π±ΡƒΠ΄ΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, послС Ρ‡Π΅Π³ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚.

БоотвСтствСнно Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ - wait ΠΈ nowait. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ wait.