Відкладене оновлення проти негайного оновлення
Відкладене оновлення та негайне оновлення - це дві методи, що використовуються для підтримки файлів журналів транзакцій систем управління базами даних (СУБД). Журнал транзакцій (також званий журналом журналу або повторним журналом) - це фізичний файл, в якому зберігається ідентифікатор транзакції, часова марка транзакції, старе значення та нові значення даних. Це дозволяє СУБД відслідковувати дані до та після кожної транзакції. Коли транзакції здійснюються і база даних повертається в послідовний стан, журнал може бути усічений для видалення здійснених транзакцій.
Відкладене оновлення
Відкладене оновлення, яке також називається NO-UNDO / REDO - це техніка, яка використовується для відновлення / підтримки збоїв транзакцій, які виникають через збої в роботі операційної системи, живлення, пам'яті або машини. Під час запуску транзакції будь-які оновлення або зміни, внесені до бази даних транзакцією, не здійснюються негайно. Вони записуються у лог-файл. Зміни даних, записані у файлі журналу, застосовуються до бази даних при фіксації. Цей процес називається "Повторне виконання". При відкаті відхиляються будь-які зміни даних, записаних у файлі журналу; отже, ніякі зміни не будуть застосовані до бази даних. Якщо транзакція не вдається і вона не вчиняється через будь-яку з вищезгаданих причин, записи у файлі журналу відкидаються, а транзакція перезапускається. Якщо зміни транзакції здійснюються перед збоєм, то після перезавантаження системи зміни, записані у файлі журналу, застосовуються до бази даних.
Негайне оновлення
Негайне оновлення, яке також називається UNDO / REDO, також є іншою технікою, яка використовується для відновлення / підтримки збоїв транзакцій, які трапляються через збої операційної системи, живлення, пам'яті або машини. Коли транзакція запускається, будь-яке з оновлень або змін, здійснених транзакцією, записується безпосередньо в базу даних. Як вихідні, так і нові значення також записуються у файл журналу перед тим, як внести зміни в базу даних. Після фіксації всі зміни, внесені до бази даних, стають постійними, а записи у файлі журналу відкидаються. При відкаті старі значення відновлюються в базі даних за допомогою старих значень, що зберігаються у файлі журналу. Усі зміни, внесені транзакціями в базу даних, відкидаються, і цей процес називається «Не роби». Коли система перезавантажується після збоїв, всі зміни бази даних стають постійними для вчинених транзакцій. Для непосланих транзакцій вихідні значення відновлюються за допомогою значень у файлі журналу.
Яка різниця між відкладеним оновленням та негайним оновленням
Навіть незважаючи на те, що відкладене оновлення та негайне оновлення - це два способи відновлення після відмови системи, процес, який використовується у кожному методі, відрізняється. У різному методі оновлення будь-які зміни, внесені до даних трансакцією, спочатку записуються у файл журналу та застосовуються до бази даних при фіксації. При методі негайного оновлення зміни, здійснені транзакцією, безпосередньо застосовуються до бази даних, а старі значення та нові значення записуються у файл журналу. Ці записи використовуються для відновлення старих значень при відкаті. У різних способах оновлення записи у файлі журналу відкидаються під час повернення назад і ніколи не застосовуються до бази даних. Одним з недоліків методу відкладеного оновлення є збільшення часу, необхідного для відновлення у разі відмови системи. З іншого боку, часті операції вводу / виводу під час активної транзакції є недоліком методу негайного оновлення.