« Кусочек нашего устройства под рентген-контролемR3-FS файловая система для роботов »

R3-FS (продолжение 1)

2009-12-17

Постоянная ссылка 10:21:47, от george Email , 357 слов   Russian (RU)
Рубрики: Хроники лаборатории, Статьи, R3FS

R3-FS (продолжение 1)

Решения... Рассказать в двух словах не получается.

Продолжение:

Решение:
Структура носителя хранится в виде списка "векторов размещения". Векторами мы назвали указатели на дисковое пространство, которые содержат два числа - смещение и протяженность. Вектора организуются в списки. Определены операции над "векторами". Вектора могут удлиняться, можно перераспределять протяженность между соседними векторами, можно вырезать из одного вектора другой вектор, можно объединять вектора.

Тезис: При потоковой записи данных на носитель, не выделяется динамической памяти. Вектора просто перекладываются из одного списка в другой или отрезается фрагмент от одного вектора и присоединяется к другому. Например, отрезается от вектора свободного пространства и присоединяется к вектору размещения файла.

один из парадоксальных тезисов: список битых блоков хранить не надо. Битые блоки -- это пропуски в пространстве - дырка от бублика. Черно-белое изображение описывается либо только белым цветом либо только черным.

Одно из основных решений - принцип распределения динамической памяти для хранения структуры носителя, директорий и векторов размещения, в оперативной памяти.
Для распределения памяти используется отдельный менеджер динамических объектов, аналогичный SLICE, как они определены в Glib. Распределение памяти "слайсами" определенного фиксированного размера эффективно для таких динамических объектов как деревья и списки. В нашем случае был использован свой уникальный способ хранения слайсов и способ сбора мусора. Процедура выделения места под слайс не содержит цикла и работает одинаково эффективно при любом количестве динамических объектов.

Тезис: Не надо хранить размещение данных, если размещение подчиняется алгоритму выделения места. Т.е. когда я повторяю туже последовательность действий, я получаю тоже самое размещение. Поэтому можно хранить алгоритм и транзакции, последовательность воздействий на алгоритм. При включении устройства производится процедура инициализации файловой системы, в ходе которой структура носителя и размещение данных генерируется последовательностью команд-транзакций. Понятию "таблица размещения файлов" мы противопоставили "журнал файловой системы" и транзакции. Структура носителя хранится только в виде транзакций.

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

Идея размещения журнала на носителе. Можно вообще нигде не хранить списки цепочек кластеров в которых лежит журнал. Потому что алгоритм всегда будет выбирать те же блоки на основе той же входной информации.

(продолжение следует)

Трекбек адрес этой записи

URL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку)

Еще нет отзывов

Оставить комментарий


Ваш email адрес не будет показан на сайте.

Ваш URL будет показан.
ПлохоПревосходно
(Заменить прерывания строк на <br />)
(Имя, email и сайт)
(Разрешить пользователям посылать вам сообщения (ваш email не отображается).)

Вы можете использовать OpenID чтобы предоставить ваше имя, email и url.

Компания "НПФ Геолаб" является разработчиком систем сбора данных и контроллеров станков с ЧПУ. Чтобы общественность была в курсе наших последних разработок, мы решили вести блог.

Поиск