The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Micron открыл код движка хранения HSE, оптимизированного для..."
Отправлено нах., 28-Апр-20 14:15 
вариантов в любом случае возможны ровно два: мы сохраняем транзакционную целостность, подтверждая программе факт фиксации изменения на персистентном носителе, или мы на нее плюем. (необратимая порча базы/fs все равно возможна - для этого (надеюсь) у нас был бэкап?)

Во втором случае вполне можно сохранить (или восстановить, в конце-концов) _структурную_ целостность базы (или fs) - но нет никакой возможности сказать, какие операции теперь надо переделать или считать не происходившими. Потому что мы это теперь никак не узнаем. Эти данные потеряны, нет их. Нигде нет.

Вот зарплату нашему прохфессору кислых щей к счету приплюсовали, но эта ячейка осталась только в памяти. А из счета его работодателя уже вычли, и эта информация (ну, так получилось) уже попала на носитель. А с базой у нас все в порядке.
Вариант интересней - мы уже начали туда писать, и вдруг питание йок, указатель на блок обновился, но содержимое блока - мусор с диска. Опа, оказывается, прохфессор в этом месяце не только не заработал ничего, но и торчит банку пятнадцать миллиардов. Блок на диске - существует, причин не доверять содержимому нет, прохфессор, пройдите на эстакаду. Вместо адреса блока на диске в указателе лежит -1? Профессора не существует вообще, эктерминационная команда выехала для установления структурной целостности мироздания.

Чтобы таких вещей не происходило - используются transaction logs и трехступенчатая запись. И любая база, даже такая которой деньги доверять нельзя - пишет их с O_DIRECT, чтобы быть абсолютно точно уверенной, что если запись вернула OK - данные попали на диск, а не в воздухе повисли.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру