Кіріспе
Бір мезгілдестікті басқару әдісі
бір мезгілдестікті басқару
Деректер базаларында және транзакцияларды өңдеуде екі кезеңді құлыптау (2PL) – конфликттік серияландыруды қамтамасыз ететін пессимистік бір мезгілдестікті басқару әдісі. Бұл сонымен қатар деректер базасы транзакция кестелерінің (тарихтарының) жиынтығын атау ретінде де қолданылады. Протокол транзакция деректеріне қолданылатын құлыптарды пайдаланады, олар транзакцияның өмірлік циклі ішінде басқа транзакциялардың сол деректерге қол жеткізуін тоқтата алады (бұл тоқтату сигналы ретінде қарастырылады). 2PL протоколы бойынша құлыптамалар екі кезеңде қолданылады және алынып тасталады:
Кеңейту кезеңі: құлыптамалар алынады және ешбір құлыптама босатылмайды. Қысқару кезеңі: құлыптамалар босатылады және ешбір құлыптама алынбайды. Негізгі протокол екі түрлі құлыптаманы пайдаланады: ортақ және эксклюзивті құлыптамалар. Негізгі протоколды жетілдіру үшін қосымша құлыптама түрлері қолданылуы мүмкін. Процестерді тоқтатуға қабілетті құлыптамаларды пайдалану арқылы 2PL, S2PL және SS2PL екі немесе одан көп транзакциялардың бір-бірін тоқтатуынан туындайтын тұйыққа қадалу (deadlock) жағдайларына ұшырауы мүмкін.
concurrency control
In databases and transaction processing, two phase locking (2PL) is a pessimistic concurrency control method that guarantees conflict serializability. It is also the name of the resulting set of database transaction schedules (histories). The protocol uses locks, applied by a transaction to data, which may block (interpreted as signals to stop) other transactions from accessing the same data during the transaction's life. By the 2PL protocol, locks are applied and removed in two phases:
Expanding phase: locks are acquired and no locks are released. Shrinking phase: locks are released and no locks are acquired. Two types of locks are used by the basic protocol: Shared and Exclusive locks. Refinements of the basic protocol may use more lock types. Using locks that block processes, 2PL, S2PL, and SS2PL may be subject to deadlocks that result from the mutual blocking of two or more transactions.
Консервативті екі фазалы бұғаттау
2PL мен C2PL арасындағы айырмашылық – C2PL транзакциялары басталар алдынан қажетті барлық құлыптарды алады. Бұл, қандай да бір құлыптары бар транзакцияның, басқа құлыптарды күтіп тоқтау себебімен тоқтамауын қамтамасыз етеді. Консервативті 2PL тұйықталудың алдын алады.
Қатты екі фазалы бұғаттау
Қатаң екі фазалы құлыптау (S2PL) протоколына сәйкес болу үшін транзакция 2PL-ге сәйкес болуы керек және транзакция аяқталғаннан кейін ғана (яғни, қабылданып немесе жойылғаннан кейін) жазу (ексклюзивті) құлыптарын босатуы керек. Екінші жағынан, оқу (ортақ) құлыптары қысқарту фазасында үнемі босатылады. 2PL-ден өзгеше, S2PL қатаңдықпен қамтамасыз етеді (каскадтық қалпына келтірудің ерекше жағдайы). Бұл протокол B-ағаштары үшін қолайлы емес, себебі ол тұйыққа тірелуге (bottleneck) әкеледі (өйткені B-ағаштары әрқашан ата-ана түбірінен іздеуді бастайды).