Кіріспе

Деректер базасы жүйелерінде беріктік – ACID қасиеттерінің бірі, ол жасалған транзакциялардың әсерлерінің, тіпті ақаулар болған жағдайда да, инциденттер мен катастрофалық оқиғаларды қоса алғанда, мәңгілік сақталуын қамтамасыз етеді. Мысалы, егер рейсті брондау орын сәтті брондалғанын хабарласа, жүйе құлаған жағдайда да ол орын брондалған күйінде қалады. Формальды түрде, деректер базасы жүйесі беріктік қасиетін қамтамасыз етеді, егер ол үш түрлі ақауға төзімді болса: транзакциялық, жүйелік және медиалық ақаулар. Мұндай үзілістер транзакция деңгейінде деректерді енгізу қателері, оператордың тоқтатуы, уақыттың өтуі немесе банк шотынан жеткіліксіз қаражатпен ақша алу сияқты қолданбаға тән қателерден туындауы мүмкін. Нақты айтқанда, сенімділік механизмі транзакциялардың басталуын, аяқталуын және кері қайтарылуын немесе журналдау мен құлыптауды нақты көрсететін бастауыш элементтерді қажет етеді. Осы типтегі ақауларға бейім болатын ұшқыш жадты, ұшқыш емес жадты таңдау себебі – осы жад түрлерін іске асыру үшін қолданылатын технологиялардың өнімділік айырмашылығында. Дегенмен, жағдай өзгеруі мүмкін, өйткені ұшқыш емес жад (NVM) технологиясының танымалдылығы артып келеді. Ұшқыш емес жадты қолдайтын жүйелерде беріктікке міндеттемелерді растамас бұрын транзакциялардың өзгермейтін тізбекті журналын сақтап, осы ұшқыш емес жадқа жіберу арқылы қол жеткізуге болады. Атомикалық қасиеттерінің арқасында транзакциялар қалпына келтіру процесіндегі жұмыс бірлігі ретінде қарастырылады, ол журналды пайдалану арқылы беріктікті қамтамасыз етеді. Атап айтқанда, журналға жазу механизмі алдын ала жазу журналы (WAL) деп аталады және негізгі жадтан дискіге синхрондалғанға дейін өзгерістерді буферлеу арқылы беріктікті қамтамасыз етеді. Осылайша, журналды қайта құру арқылы жасалған барлық транзакциялар жүйелік деңгейдегі ақауларға төзімді болады, өйткені оларды қайта жасауға болады. Ал міндеттемесіз транзакцияларды қалпына келтіруге болады, өйткені олардың операциялары деректер базасының күйін өзгертпей тұрып, ұшқыш емес жадқа журналдалады. Осылайша, ішінара орындалған операцияларды жүйе күйіне әсер етпей кері қайтаруға болады. Содан кейін, толыққан жоқ транзакцияларды қайта жасауға болады. Сондықтан, ұшқыш емес жадтан алынған транзакция журналын жүйелік деңгейдегі кез келген ақаудан бұрынғы жүйе күйін қайта құру үшін қайта өңдеуге болады. Журналдау деректерді және операцияларды (яғни транзакцияларды) бақылаудың комбинациясы ретінде жүзеге асырылатынын атап өту керек, бұл өнімділікті арттыру мақсатында жасалады.

Медиа деңгейі

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

Таратылған деректер қорлары

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