The OpenNET Project / Index page

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



"В Reiser5 анонсирована поддержка Burst Buffers (Data Tiering)"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "В Reiser5 анонсирована поддержка Burst Buffers (Data Tiering..." +/
Сообщение от пох. (?), 29-Май-20, 16:11 
> На CoW получить старое состояние файла в случае "не прокатило"

вопрос что такое старое состояние в случае
begin; set sum=sum-b where id='c'; set sum=sum+b where id='d'; commit; выполнившегося примерно на 2/3. И не останешься ли ты при этом без денег, при том что d их так и не получил.

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

> Если журналить данные - можно либо завершить ту запись,

fs ничего не знает о "той" или "не той".
Вот сколько в том примере выше записей? Без знания структуры файла и насколько далеко в нем лежат нужные куски? Правильный ответ - а хз! fs можно что-то подсказать только сделав fsync - но это медленно.

> Есть только 1 нюанс: писать данные сперва в журнал, потом в основную область означает ДВЕ
> записи данных.

да. Причем первая запись еще и синхронная, с ожиданием подтверждения. И любая обеспечивающая транзакционную целостность субд - так и делает. double write, fsync. CoW в ней при этом может и не быть, данные могут заменяться in-place, индексы могут при крэше портиться и требовать хитрых процедур восстановления, но вот лог транзакции сохраняется целиком и она не подтвердится пока не будет сохранена.

А для fs это просто lseek/write/lseek/write - и она не знает, это одна транзакция или две разные.
Или половина одной, и сейчас еще два таких приедут. Вообще в другой файл, потому что у нас sharding ;-)

> Думаю что они не полностью корректно смогли изобразить файлухой журнал.

там идея что оно при нормальной эксплуатации глючит. Без крэшей - просто данные портятся. А хз почему. Вероятнее всего проблема где-то в mysql, этот режим работы просто никто не тестирует.

Поэтому идея sqlite с rename (который почти всегда атомарный) на самом деле не так уж ужасно плоха, пока записей не слишком много. Гарантированно работает в любой системе вплоть до msdos.


Ответить | Правка | Наверх | Cообщить модератору

Оглавление
В Reiser5 анонсирована поддержка Burst Buffers (Data Tiering), opennews, 26-Май-20, 14:08  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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