5.2. Белгиланмаган боғлиқлик муаммолари ва уларни ҳал қилиш
В транзакция қатордаги маълумотларни ўзгартирмоқда. Шундан кейин А транзакция ўзгартирилган маълумотларни ўқийди ва улар билан ишлайди. В транзакция суриб келинади ва эски маълумотларни тиклайди.
Натижа. А транзакция В транзакция тугагунча тўхтаб қолди. Шундан кейин А транзакция оддий режимда ишини давом эттирди ва тўғри маълумотлар билан иш олиб борди. Тўқнашув А транзакция ишининг вақтини узайтириш натижасида ечимини топди.
5.3. Таҳлилларнинг бир – бирига тўғри қилмаслик муаммолари ва уларни ҳал қилиш
5.3.1. Такрорланмайдиган санаш
А транзакция икки марта битта қаторни ўқийди. Бу ўқишлар орасида қатордаги қийматни ўзгартирадиган В транзакция пайдо бўлади.
5.3.2. Фиктив элементлар (фантомлар)
А транзакция икки марта танлашни битта шарт бўйича бажаради. Танлашлар орасида танлаш шартини қаноатлантирадиган, янги қаторни қўшадиган В транзакция пайдо бўлади.
5.3.3. Ҳақиқатан тўғри келмайдиган таҳлил
Узун транзакция бутун жадвал бўйича қандайдир таҳлил ўтказади, масалан, бош бухгалтер учун банк мижозларининг ҳисобларидаги умумий пуллар суммасини ҳисоблайди. Барча ҳисоблардаги пуллар бир хил суммада бўлсин, масалан, $100. Қисқа транзакция бу вақтда бир ҳисобдан бошқасига умумий сумма барча ҳисоблар бўйича ўзгармайдиган қилиб, $50 ни ўтказмоқда.
6. Вақтинчалик белгилар усули
Транзакцияларнинг камдан-кам тўқнашувлари шароитида яхши ишлайдиган ва транзакцияларни кутиш учун графларни қуришни талаб этмайдиган транзакцияларни сериялизация қилишнинг альтернатив усули вақтинчалик белгилар усулини ишлатишга асосланган.
Усулнинг асосий ғояси қуйидагича: агар А транзакция В транзакциядан олдин бошланган бўлса, у ҳолда тизим А транзакция В транзакция бошлангунга қадар тўлиқ бажариладиган бажариш режимини таъминлайди.
В транзакция r объект устида амал бажаришдан олдин қуйидаги ишларни бажаради:
Шу объектни белгилаган А транзакция тугаганлигини текширади. Агар А транзакция тугаган бўлса, А транзакция r объектни ўзининг вақтинчалик усули билан белгилайди ва амални бажаради.
Агар А транзакция тугамаган бўлса, у ҳолда В транзакция амалларнинг тўқнашувини текширади. Агар амаллар тўқнашмаган бўлса, r объектда вақтинчалик усули қолади ёки кичик қиймат билан қўйилади ва В транзакция ўз ишини бажаради.
Агар В ва А транзакциялар тўқнашса, у ҳолда агар t(A)>t(B) (яъни А транзакция В транзакцияга нисбатан “ёш”роқ) бўлса, у ҳолда А транзакция олиб ташланади ва янги вақтинчалик белгини олиб, қайтадан бошланади. В транзакция ўз ишини давом эттиради.
Агар t(A)
Натижада тизим тўқнашувлар содир бўлганда ҳар доим “ёшроқ” (кейинроқ бошланадиган) транзакция олиб ташланадиган ишни таъминлайди.
Вақтинчалик белгилар усулининг энг катта камчилиги арзонроқ транзакциядан кейин бошланадиган қимматроқ транзакциянинг олиб ташланиши ҳисобланади.
Do'stlaringiz bilan baham: |