Көлеңке беттік жазу әдісі: Дерекқор жүйелерінде атомдық және тұрақтылықты қамтамасыз ету
Shadow paging
ДБ жүйелеріндегі деректердің қауіпсіздігін қамтамасыз ету үшін қолданылатын «көлеңке беттер» әдісі туралы біліңіз. Жаңа жазбалар үшін көшірме жасау арқылы деректерді сақтайды.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Компьютерлік ғылымда көлеңкелі беттеу – деректер базасы жүйелерінде атомдық қасиетті және беріктікті (ACID қасиеттерінің екеуі) қамтамасыз ететін техника. Бұл контексте бет – физикалық жадтың бірлігі (вероятно, қатты дискіде), әдетте 1-ден 64 КиБ-қа дейін. Көлеңкелі беттеу – беттерді өз орнында жаңартудан аулақ болу үшін көшіру арқылы жазу техникасы. Оның орнына, бетті өзгерту қажет болғанда, көлеңкелі бет бөлінеді. Көлеңкелі бетте басқа беттерден (дискідегі) сілтемелер болмағандықтан, оны тұрақтылық шектеулеріне алаңдамай еркін өзгертуге болады. Бет берік болуға дайын болған кезде, бастапқы бетке сілтеме берген барлық беттер жаңа алмастыру бетіне сілтеме беру үшін жаңартылады. Бет дайын болған кезде ғана «белсендіріледі», сондықтан ол атомдық. Егер сілтеме беретін беттерді де көлеңкелі беттеу арқылы жаңарту қажет болса, бұл процедура көп рет қайталануы мүмкін, бұл өте қымбатқа түсуі мүмкін. Бір шешім, Write Anywhere File Layout (WAFL) файлдық жүйесінде қолданылады, ол беттерді берік етуде жайбасарлық танытады (яғни, кэш жазу). Бұл референттік иерархияның жоғары деңгейлеріндегі (мысалы, файлдық жүйе суперблогы) көптеген жазулардан аулақ болу арқылы өнімділікті айтарлықтай арттырады, бірақ жоғары міндеттеме кешігуіне әкеледі. Алдын ала жазу – бұл орынды жаңартуларды пайдаланатын, көбірек таралған шешім. Көлеңкелі беттеу – мейнфреймдік деректер базасы жүйелерінде қолданылған ескі «шебер – жаңа шебер» партиялық өңдеу техникасына ұқсас. Бұл жүйелерде әр партияның нәтижесі (мысалы, бір күндік жұмыс) екі бөлек дискіге немесе басқа сақтау ортасына жазылды. Біреуі резервтік көшірме ретінде сақталды, ал екіншісі келесі жұмыс күні үшін бастапқы нүкте ретінде пайдаланылды. Көлеңкелі беттеу сондай-ақ таза функционалдық дерек құрылымдарына ұқсас, себебі орынды жаңартулар болдырмайды.
In computer science, shadow paging is a technique for providing atomicity and durability (two of the ACID properties) in database systems. A page in this context refers to a unit of physical storage (probably on a hard disk), typically of the order of 1 to 64 KiB. Shadow paging is a copy on write technique for avoiding in place updates of pages. Instead, when a page is to be modified, a shadow page is allocated. Since the shadow page has no references (from other pages on disk), it can be modified liberally, without concern for consistency constraints, etc. When the page is ready to become durable, all pages that referred to the original are updated to refer to the new replacement page instead. Because the page is "activated" only when it is ready, it is atomic. If the referring pages must also be updated via shadow paging, this procedure may recurse many times, becoming quite costly. One solution, employed by the Write Anywhere File Layout (WAFL) file system, is to be lazy about making pages durable (i. e., write behind caching). This increases performance significantly by avoiding many writes on hotspots high up in the referential hierarchy (e. g., a file system superblock) at the cost of high commit latency. Write ahead logging is a more popular solution that uses in place updates. Shadow paging is similar to the old master–new master batch processing technique used in mainframe database systems. In these systems, the output of each batch run (possibly a day's work) was written to two separate disks or other form of storage medium. One was kept for backup, and the other was used as the starting point for the next day's work. Shadow paging is also similar to purely functional data structures, in that in place updates are avoided.