Linux. Алексей Стахнов
Чтение книги онлайн.

Читать онлайн книгу Linux - Алексей Стахнов страница 31

СКАЧАТЬ проста – существует набор связанных операций, называемых транзакцией, и эта группа операций является атомарной (неделимой). Таким образом, транзакция является успешной (завершенной) в том случае, если все операции, составляющие транзакцию, завершились успешно. Но это еще не все. Система ведет журнал, в котором отражаются все действия с данными и все изменения данных протоколируются. В случае сбоя на основании журнала можно вернуть систему в безошибочное состояние.

      Основное отличие транзакций из области баз данных от транзакций, применяемых в журналируемых файловых системах, состоит в том, что в базах данных в журнале сохраняются изменяемые данные и вся управляющая информация, а в файловых системах – только мета-данные: индексные дескрипторы изменяемых файлов, битовые карты распределения свободных блоков и свободных индексных дескрипторов.

Файловая система Ext3

      По большому счету, файловая система Ext3 не является новой файловой системой. Это похоже на ситуацию с файловой системой FAT 16/FAT 32 – они совместимы, но проблема решена экстенсивным путем. Было необходимо срочно создать журналируемую файловую систему. Если начинать с нуля – долго и накладно, тогда сделали для Ext2 несколько десятков специальных функций и назвали все это Ext3 – получился непонятный гибрид.

      Вроде бы добавились журналирующие функции – но не в том объеме, в каком хотелось. И узкие места Ext2 остались: оптимизация использования дискового пространства, ограничение на размер файла и т. п. Пока же общественность (fido7.ru.linux) более склоняется к использованию других журналируемых файловых систем.

Файловая система ReiserFS

      Кроме проблемы быстрого восстановления после сбоев, в файловой системе Ext2 имеется еще несколько нерешенных проблем. Из самых основных – нерациональное использование дискового пространства, ограничение на размер файла, неоптимальный поиск.

      Поскольку в файловой системе используется простой связный список, то время поиска информации линейно зависит от длины списка. Таким образом, чем длиннее список (к примеру, файлов в каталоге), тем дольше идет поиск необходимого элемента.

      В системе ReiserFS применяются так называемые "сбалансированные деревья" или "B+Trees", время поиска в которых пропорционально не количеству объектов, а логарифму этого числа. В сбалансированном дереве все ветви имеют одинаковую длину. ReiserFS использует сбалансированные деревья для хранения всех объектов файловой системы: файлов в каталогах, данных о свободных блоках и т. д. Это позволяет существенно повысить производительность обращения к дискам.

      Кроме того, система ReiserFS является журналируемой, т. е. в ней решена проблема быстрого восстановления после сбоев. Решена в ReiserFS и проблема с ограничением на размер файла. По всей видимости, именно эта файловая журналируемая система в ближайшее время станет стандартом de-facto для многих дистрибутивов Linux.

      Ссылки

      • e2fsprogs.sourceforge.net – утилиты файловой системы Ext2.

      • СКАЧАТЬ