Кіріспе

Себептік тұрақтылық - естелік тұрақтылығының негізгі модельдерінің бірі. Бір мезгілдегі бағдарламалауда, бір мезгілдегі процестер ортақ жадқа қол жеткізгенде, сәйкестік моделі қандай қол жеткізулер заңды екенін шектейді. Бұл бөлінген ортақ жады немесе бөлінген транзакциялардағы дұрыс дерек құрылымдарын анықтау үшін пайдалы. Себептік сәйкестік - Partition астында қол жетімді, яғни процесс процестер арасында жұмыс істейтін желілік байланыс болмаған кезде де жадынан оқи алады және жаза алады (жад қол жетімді); бұл асинхронды модель. Қауіпсіз және бөлініп тұрған және синхрондастыруды қажет ететіндіктен жауап беруі баяу болатын, реттілік немесе сызықтық жүйелілік сияқты мықты жүйелілік модельдеріне қарама-қайшы. 1990 жылдары себептік сәйкестік ортақ жады модельдерінің әлсіз сәйкестік моделі ретінде ұсынылды. Себептік сәйкестік байланыс протоколдардағы себептік хабарландыру тұжырымдамасымен тығыз байланысты. Бұл модельдерде бөлінген орындау Лампорттың потенциалдық себептік байланысы тұжырымдамасына негізделген ішінара тәртіп ретінде бейнеленеді. Себептік сәйкестік - пайдалы сәйкестік моделі, өйткені ол бағдарламалаушылардың уақыт туралы интуициясына сәйкес келеді, ол берік сәйкестік модельдерінен көбірек қол жетімді, бірақ соңғы сәйкестен артық пайдалы кепілдіктер береді. Мысалы, таратылған деректер қорында себептік сәйкестік операциялардың ретін қолдайды, ал соңғы сәйкестікке қарама-қайшы. Сондай-ақ, себептік дәйектілік кезектер немесе санаушылар сияқты абстрактілік дерек түрлерін дамытуға көмектеседі. Уақыт пен тәртіп біздің интуициямызға өте маңызды болғандықтан, себептік тұрақтылықты талап етпейтін жүйе туралы ойлау қиын. Алайда, көптеген таратылған деректер қорларында, тіпті сериялануды қамтамасыз ететіндерінде де, бұл кепілдік жоқ. Spanner себептік тұрақтылықты кепілдендіреді, бірақ ол сондай-ақ қатты тұрақтылықты мәжбүрлейді, осылайша бөлініс бойынша қол жетімділіктен аулақ болады. Себептік сәйкестікті қамтамасыз ететін қосымша деректер қорына MongoDB және AntidoteDB кіреді.

Анықтама

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

Сессиялық кепілдіктер

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