Кесте (информатика) - Schedule (computer science)

Өрістерінде мәліметтер базасы және транзакцияны өңдеу (транзакцияны басқару), а кесте (немесе Тарих) жүйенің - жүйеде жұмыс істейтін транзакциялардың орындалуын сипаттайтын абстрактілі модель. Көбінесе бұл тізім жиынтығымен орындалатын уақыт бойынша тапсырыс берілген операциялар (әрекеттер) транзакциялар жүйеде бірге орындалатын. Егер белгілі бір операциялар арасындағы уақыт тәртібі жүйемен анықталмаса, онда а ішінара тапсырыс қолданылады. Мұндай операциялардың мысалдары: оқу операциясын сұрау, оқу, жазу, тоқтату, жасау, құлыптауды сұрау, құлыптау және т.с.с. транзакция операцияларының барлық түрлері кестеге қосылмауы керек, және тек таңдалған операция түрлері (мысалы, деректерге қол жеткізу операциялары) ) белгілі бір құбылыстар туралы ойлау және сипаттау үшін қажет болған жағдайда енгізілген. Кестелер мен кесте қасиеттері мәліметтер базасындағы негізгі ұғымдар болып табылады параллельдік бақылау теория.

Ресми сипаттама

Төменде кестенің мысалы келтірілген:

Д.
T1 T2 T3
R (X)
Ж (Х)
Ком.
R (Y)
Ж (Ү)
Ком.
R (Z)
Ж (Ж)
Ком.

Бұл мысалда көлденең ось кестедегі әртүрлі транзакцияларды білдіреді. Тік ось операциялардың уақыт тәртібін білдіреді. D кестесі T1, T2, T3 үш транзакциядан тұрады. Кесте транзакциялардың әрекеттерін сипаттайды ДББЖ.Бірінші T1 Х объектісіне оқиды және жазады, содан кейін тапсырады. Содан кейін T2 Y және Commits объектісіне оқыды және жазады, соңында T3 Z және Commits объектісіне оқиды және жазады. Бұл а сериялық кесте, яғни уақыт бойынша қабаттаспайтын дәйектілік, өйткені барлық үш операцияның әрекеттері дәйекті, ал операциялар уақытында өзара байланыста болмайды.

Жоғарыдағы D кестесін кесте арқылы көрсету (тізімнен гөрі) әр транзакцияның операцияларын бір қарағанда анықтауға ыңғайлы. Бұл жазба төмендегі мақалада қолданылады. Техникалық әдебиеттерде мұндай кестені ұсынудың кең тараған тәсілі - тізім:

D = R1 (X) W1 (X) Com1 R2 (Y) W2 (Y) Com2 R3 (Z) W3 (Z) Com3

Әдетте, мәліметтер қорындағы параллельдік бақылау туралы ойлау мақсатында операция келесідей модельденеді атомдық, уақыттың белгілі бір уақытында, ұзақтықсыз пайда болады. Егер бұл қанағаттанарлықсыз болса, басталу және аяқталу уақытының нүктелері, мүмкін басқа нүктелік оқиғалар көрсетіледі (сирек). Нақты орындалатын операциялардың әрдайым белгілі бір ұзақтығы және олардың ішіндегі оқиғалардың пайда болу уақыттары көрсетілген (мысалы, басталу мен аяқталудың «дәл» уақыттары), бірақ параллельдік бақылау үшін әдетте барлық операциялар уақытының басымдығы ғана ( әр операцияның өте күрделі бөлшектері), яғни қандай операция басқа операцияға дейін немесе кейін жасалатыны маңызды. Сонымен қатар, көптеген жағдайларда екі нақты амалдар арасындағы / кейінгі қатынастар маңызды емес және басқа жұп операциялар үшін көрсетілген кезде көрсетілмеуі керек.

Жалпы, кестедегі транзакциялармен операциялар өзара байланысты болуы мүмкін (яғни, транзакциялар бір уақытта орындалуы мүмкін), ал әрбір транзакциядағы операциялар арасындағы уақыттық тапсырыстар транзакция бағдарламасы көрсеткендей өзгеріссіз қалады. Барлық операциялар арасындағы уақыттық тапсырыстар әрдайым маңызды бола бермейтіндіктен, кесте негізінен а ішінара тапсырыс а емес, операциялар арасында жалпы тапсырыс (мұнда операциялар тізіміндегідей әр жұпқа тапсырыс анықталады). Сондай-ақ, жалпы жағдайда, әр транзакция бірнеше процестерден тұруы мүмкін және өзі толық тәртіппен емес, операциялардың ішінара ретімен дұрыс ұсынылуы мүмкін. Сонымен, жалпы, кесте дегеніміз (ендіру ) оның барлық операцияларының ішінара бұйрықтары.

Екі амал арасындағы уақыт тәртібін an арқылы ұсынуға болады тапсырыс берілген жұп осы операциялардың (мысалы, жұптың болуы (OP1, OP2) OP1 әрқашан OP2 алдында екенін білдіреді), ал жалпы жағдайда кесте - орнатылды осындай тапсырыс берілген жұптардың. Мұндай жиынтық, кесте - а ішінара тапсырыс арқылы ұсынылуы мүмкін ациклдік бағытталған граф (немесе бағытталған ациклдік график, DAG) түйіндер сияқты операциялармен және а ретінде уақыт тәртібімен бағытталған жиек (ешқандай циклға жол берілмейді, өйткені цикл циклдегі бірінші (кез-келген) операция циклдегі екінші екінші операцияға дейін де, одан кейін де (кез келген) болуы мүмкін дегенді білдіреді, бұл біздің қабылдауымызға қайшы келеді Уақыт ). Көптеген жағдайларда кестені көрсету үшін мұндай графиктің графикалық көрінісі қолданылады.

Пікір: Әрекеттер тізімі (және осы мақалада қолданылған кесте жазбасы) әрдайым операциялар арасындағы жалпы тәртіпті білдіретіндіктен, жалпы тапсырыс болып табылмайтын кестелер тізіммен ұсыныла алмайды (бірақ әрқашан DAG арқылы ұсынылуы мүмкін).

Кесте түрлері

Сериялық

Транзакциялар бір-бірімен жасалмайды (жоғарыдағы мысалды қараңыз), яғни сериялық кесте - бұл орындалатын транзакция аяқталғанға дейін ешқандай транзакция басталмайтын кесте.

Тізбектелген

Тізбектелген кестеге (оның нәтижесі бойынша) балама кесте бар сериялылық мүлік.

Е кестесінде транзакциялардың орындалу тәртібі D-мен бірдей емес, бірақ соңында E D-мен бірдей нәтиже береді.

E
T1 T2 T3
R (X)
R (Y)
R (Z)
Ж (Х)
Ж (Ү)
Ж (Ж)
Ком. Ком. Ком.

Қайшылықты әрекеттер

Екі әрекет қарама-қайшылықты (қақтығысқан жұп) деп аталады, егер:

  1. Әрекеттер әртүрлі транзакцияларға жатады.
  2. Әрекеттердің кем дегенде біреуі - жазу әрекеті.
  3. Әрекеттер бір объектіге қол жеткізеді (оқу немесе жазу).

Келесі әрекеттер жиынтығы қайшылықты:

  • R1 (X), W2 (X), W3 (X) (3 қарама-қайшы жұп)

Келесі әрекеттер жиынтығы:

  • R1 (X), R2 (X), R3 (X)
  • R1 (X), W2 (Y), R3 (X)

Қақтығыстың эквиваленттілігі

S1 және S2 кестелері келесі екі шарт орындалған жағдайда қайшылықты-эквивалентті деп аталады:

  1. S1 және S2 кестелерінің екеуі де бір транзакциялар жиынтығын қамтиды (әр транзакция шеңберінде әрекеттерге тапсырыс беруді қосқанда).
  2. Екі кестеде бірдей қарама-қайшы операциялар жиынтығы бар.

Қақтығыстар-серияланатын

Кесте бір немесе бірнеше сериялық кестеге қайшы-эквивалентті болған кезде, кесте қақтығысқа серияланатын деп аталады.

Қақтығыстық-серияландырудың тағы бір анықтамасы - кесте қақтығыстық-серияланатын болады, егер ол болса ғана басымдылық графигі / тек қана жасалған транзакциялар қарастырылған кезде серияландыру графигі ациклді болады (егер графикке сонымен қатар жасалмаған транзакциялар кіретіні анықталған болса, онда келісілмеген сериялылықты бұзбай циклдар жасалуы мүмкін).

G
T1 T2
R (A)
R (A)
Ж (В)
Ком.
Ж (А)
Ком.

сериялық кестесіне қайшы-эквивалентті, бірақ емес.

Міндеттеме тапсырыс берді

Кесте міндеттеме-тапсырыс (міндеттеме-тапсырыс) немесе міндеттеме-бұйрық сериялы деп аталады, егер ол орындалса Міндеттемелерге тапсырыс беру (СО; сонымен қатар тапсырыс беру немесе тапсырыс беру-серияландыру) кесте сипаты. Бұл дегеніміз, транзакциялардың міндеттемелерін орындау кезіндегі тәртіп олардың транзакцияларының ациклдық басымдылық графигімен (серияландыру графикасы, қақтығыс графигі) туындатқан сәйкес транзакциялардың басымдығына (ішінара) сәйкес келеді. Бұл оның қайшылықты-сериялық болатындығын білдіреді. CO қасиеті оған жету үшін әсіресе тиімді Жаһандық серияландыру таратылған жүйелерде.

Пікір: Міндеттемелерге тапсырыс беру 1990 жылы табылған, (Бернштейн және т.б. 1987 ж ). Оның дұрыс анықтамасы (Вейкум және Воссен 2001 ж ) дегенмен, оның сипаттамасы, оған қатысты техникалар мен теория ішінара, дұрыс емес және жаңылыстырады.[кімге сәйкес? ] Міндеттемелерге тапсырыс беру және оның ақпарат көздері туралы толық ақпарат алу үшін Міндеттемелерге тапсырыс беру және Міндеттемелерге тапсырыс беру тарихы.

Эквиваленттілікті қарау

S1 және S2 екі кестесі келесі шарттар орындалған кезде эквивалентті деп аталады:

  1. Егер транзакция болса S1-де X нысаны үшін бастапқы мән оқылады, транзакция да солай жасалады S2-де.
  2. Егер транзакция болса S1-де транзакциямен жазылған мәнді оқиды X нысаны үшін S1-де транзакция да жасалады S2-де.
  3. Егер транзакция болса S1-де X объектісі үшін мәнді жазуға арналған соңғы транзакция, транзакция да солай болады S2-де.

Қарауға серияланатын

Кесте кейбір сериялық кестеге қарауға-эквивалентті болса, оны қарауға серияланатын деп айтады. Анықтама бойынша, барлық қайшылықты серияланатын кестелер қарауға серияланатын болып табылады.

G
T1 T2
R (A)
R (A)
Ж (В)

Назар аударыңыз, жоғарыда келтірілген мысал (бұл конфликттерді сериялауға болатын талқылаудағы мысалмен бірдей) бір уақытта қарауға сериялануға және конфликттерге сериялануға болады. Алайда қарама-қарсы серияланбайтын қарау сериалданатын кестелер бар: транзакцияны орындайтын кестелер соқыр жазу:

H
T1 T2 T3
R (A)
Ж (А)
Ком.
Ж (А)
Ком.
Ж (А)
Ком.

Жоғарыда келтірілген мысал қайшылықты сериялануға жатпайды, бірақ оны қарауға сериялдандыруға болады, өйткені оның көрінуіне эквивалентті сериялық кестесі бар .

Кестенің сериялануға болатындығын анықтағаннан бері NP аяқталды, қарау-серияландырудың практикалық қызығушылығы шамалы.[дәйексөз қажет ]

Қалпына келтіруге болады

Транзакциялар тек өзгертулер оқылатын барлық операциялардан кейін жасалады.

F
T1 T2
R (A)
Ж (А)
R (A)
Ж (А)
Ком.
Ком.
T2
R (A)
Ж (А)
R (A)
Ж (А)
Тоқтату
Тоқтату

Бұл кестелер қалпына келтіріледі. F қалпына келтіріледі, өйткені T1 T2 алдында болады, бұл T2 оқылған мәнді дұрыс етеді. Сонда T2 өзіне өзі жауап бере алады. F2-де, егер T1 тоқтатылса, онда T2-ді тоқтату керек, өйткені оқылған A мәні дұрыс емес. Екі жағдайда да мәліметтер базасы тұрақты күйде қалады.

Қалпына келтірілмейді

Егер T1 транзакциясы тоқтатылса, ал T2 транзакциясы жасалса, бірақ T2 T1-ге сүйенетін болса, бізде қалпына келтірілмейтін кесте бар.

G
T1 T2
R (A)
Ж (А)
R (A)
Ж (А)
Ком.
Тоқтату

Бұл мысалда G қалпына келтірілмейді, өйткені T2 Т1 жазған А мәнін оқып, берілген. Кейінірек T1 тоқтатылды, сондықтан T2 оқыған мән қате, бірақ T2 жасалғандықтан, бұл кесте қалпына келтірілмейді.

Каскадсыз

Сондай-ақ, «Каскадтық аборттарды болдырмау (ACA)». Бір транзакцияны тоқтату транзакцияның кері кетуіне әкеліп соқтырады. Каскадты аборттардың алдын-алу стратегиясы - транзакцияға сол кестедегі басқа транзакциядағы жасалынбаған өзгерістерді оқуға тыйым салу.

Келесі мысалдар қалпына келтіруге арналған талқылаудағы мысалдармен бірдей:

F
T1 T2
R (A)
Ж (А)
R (A)
Ж (А)
Ком.
Ком.
T2
R (A)
Ж (А)
R (A)
Ж (А)
Тоқтату
Тоқтату

Бұл мысалда F2 қалпына келтірілсе де, каскадтық аборттан аулақ болмайды. Егер T1 тоқтатылса, кестенің дұрыстығын сақтау үшін T2-ді де тоқтату керек болатынын көруге болады, өйткені T2 T1 жазған жіберілмеген мәнді оқып үлгерген.

Төменде жасанды түсік тастауға жол бермейтін қалпына келтірілетін кесте берілген. Алайда, А-ны T1-ге жаңарту әрқашан жоғалып кететініне назар аударыңыз (өйткені T1 жойылған).

F3
T1 T2
R (A)
R (A)
Ж (А)
Ж (А)
Тоқтату
Міндеттеме

Егер T1 жасалса, бұл кесте серияланбайтынын ескертіңіз. Кастрюльдік абортты болдырмау жеткілікті, бірақ кестені қалпына келтіру үшін қажет емес.

Қатаң

Кесте қатаң - қатаңдық қасиетіне ие - егер T1, T2 кез-келген екі транзакция үшін, егер T1 жазу әрекеті а қайшылықты T2-нің жұмысы (оқыңыз немесе жазыңыз), содан кейін T1-тің орындалуы немесе тоқтатылуы оқиғасы да T2-нің қарама-қайшы жұмысынан бұрын болады.

Кез-келген қатаң кесте каскадты емес, бірақ керісінше емес. Қатаңдық дерекқорларды істен шығарудан тиімді қалпына келтіруге мүмкіндік береді.

Тізбектілік кластары арасындағы иерархиялық байланыс

Келесі өрнектер арасындағы иерархиялық (оқшаулау) қатынастарды бейнелейді сериялылық және қалпына келтіру сабақтар:

  • Барлық кестелер тізбектелген, міндеттелген, жанжалды-сериялы, көріністі-серияландыратын ⊂
  • Барлық кестелер сериялық, қатаң, каскадсыз (ACA), қалпына келтіріледі

The Венн диаграммасы (төменде) жоғарыдағы сөйлемдерді графикалық түрде бейнелейді.

Сериялануға қабілеттілік және қалпына келтіру кластары үшін Венн диаграммасы

Практикалық іске асыру

Іс жүзінде мәліметтер базасының жалпы мақсаттағы жүйелерінің көпшілігі қақтығыстарға негізделген және қалпына келтірілетін (ең алдымен қатаң) кестелерді қолданады.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  • Бернштейн Филипп, Васос Хадзилакос, Натан Гудман: Мәліметтер қоры жүйелеріндегі параллельдік бақылау және қалпына келтіру, Addison Wesley Publishing Company, 1987 ж., ISBN  0-201-10715-5
  • Герхард Вайкум, Готфрид Воссен: Транзакциялық ақпараттық жүйелер, Elsevier, 2001, ISBN  1-55860-508-8