LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Там и есть подобие лога транзакций, bitmap называется. Замедляет все записи на +1 seek time. Работает так: на каждый блок по биту-флагу, в бите указано, была ли в этот блок запись в последние сколько-то там времени (или там количество записей считается, не знаю). Если с момента вылета диска прошло меньше чем длина этого цикла - то все блоки, которые могут отличаться, помечены единицами.

Если прошло больше времени, или если если bitmap-а нет и на диск после вылета была хоть одна запись - то re-add откажется делаться вроде.

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

Исходная версия firkax, :

Там и есть подобие лога транзакций, bitmap называется. Замедляет все записи на +1 seek time. Работает так: на каждый блок по биту-флагу, в бите указано, была ли в этот блок запись в последние сколько-то там времени (или там количество записей считается, не знаю). Если с момента вылета диска прошло меньше чем длина этого цикла - то все блоки, которые могут отличаться, помечены единицами.

Если прошло больше времени, или если если bitmap-а нет и на диск после вылета была хоть одна запись - то re-add откажется делаться вроде.