DISS

Материал из Deeptown Manual
Версия от 20:23, 1 мая 2008; Korvin (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

DISS (Distributed Information Storage System) -- распределенная ФС Диптауна. Данная ФС была разработана учитывая специфику проекта и его потребности. В основу был положен принцип полной абстракции данных как таковых, от места их расположения а также от конкретной иерархии файлов.

Содержание

Файлы

С точки зрения DISS, файл -- это некоторая сущность, фигурирующая в рамках графа ФС. При этом, с файлом ассоциирован некоторый поток данных, который представляет своего рода дескриптор к данным этого файла. Это означает, что физически, данные могут располагаться где угодно: как на локальной машине, так и на сервере, на другом конце Земли.

Файлы могут быть как специального типа, так и общего. К специальным типам файлов относятся:

  • ссылка
  • сокет
  • FIFO буфер
  • мутекс
  • адрес потока
  • ...

Потоки

Потоки данных в Диптауне так же предоставляют абстракцию от конкретного протокола передачи данных, будь то FTP, HTTP или любой другой протокол. Пользователь работает с потком данных просто производя операции записи и/или чтения, а конкретная реализация сама разбирается, какие реальные действия необходимо выполнять. Это позволяет добиться большой гибкости. Например, выполнив единственную команду в оболочке диптауна

cat bz2:http://deeptown.org/pub/sample.bz2 > 7z:ftp://example.com/incoming/sample.7z

мы выполняем сразу 4 действия. По протоколу HTTP получаем BZ2 архив, распаковываем его, запаковываем его в другой формат (7z) а затем отправляем его на FTP сервер.

А вот так, буквально в одну строчку, можно отправить email на некоторый адрес:

echo "Hello world!" > mailto:someone@example.com[Subject=Hello]

Метаинформация

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

Монтирование

Идеология монтирования DISS ближе всего к UnionFS. Это означает, что граф ФС представляет из себя совокупность нескольких "слоев", наложенных друг на друга. Каждый слой представляется одним конкретным носителем. При монтировании еще одного носителя поверх текущего дерева, происходит перекрытие одноименных файлов.

Примеры использования

Предположим, у нас есть DVD диск, содержащий БД объектов диптауна, который можно использовать, чтобы не качать имеющиеся файлы из сети. Однако, получаемые файлы из сети надо куда то сохранять. В обычном случае пришлось бы заводить отдельную директорию для кеша, в которую помещать новые и обновленные файлы.

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

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты