Нефайловые файловые системы? - PullRequest
0 голосов
/ 04 февраля 2009

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

Я не имею в виду FAT или NTFS или конкретный тип файловой системы, я имею в виду структуру файловой системы в целом. Мы просто привыкли думать о «файлах» внутри «папок», как будто наш жесткий диск был одним гигантским шкафом для хранения документов. Это отличная аналогия, и действительно, когда мы думаем об этом, гораздо легче учиться, но действительно ли это лучший способ описать программы и их части?

Я хотел бы знать, может ли кто-нибудь придумать (или знать о) методику хранения данных, которая могла бы использоваться для хранения данных в операционной системе, которая использовалась бы для организации частей данных другим способом. Есть ли что-то ... другое, даже существует?

Ответы [ 12 ]

6 голосов
/ 04 февраля 2009

Письма часто хранятся в папках. Но с тех пор, как я перешел на Gmail, я привык классифицировать свои электронные письма с тегами.

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

/home/john/personal/contacts.txt

а вот так:

contacts[john,personal]

Ну ... просто пища для размышлений (возможно, она уже существует!)

3 голосов
/ 04 февраля 2009

Мэйнфреймы, используемые просто для того, чтобы дать программистам несколько «устройств» для использования. Устройство соответствовало диску или его разделу, и программист отвечал за организацию всех данных на нем. Конечно, они быстро создали библиотеки, чтобы помочь с этим.

Единственная операционная система, которая, на мой взгляд, использует общее иерархическое расположение плоских файлов (например, UNIX), это PICK . Это использовало своего рода реляционную базу данных в качестве файловой системы.

3 голосов
/ 04 февраля 2009

Например, у вас могут быть выделенные решения, например Oracle Raw Partition . Другие базы данных поддерживают аналогичные вещи. В этих случаях файловая система обеспечивает ненужные издержки и может быть опущена - программное обеспечение БД позаботится об организации структуры.

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

1 голос
/ 04 февраля 2009

Я знал парня, который написал докторскую диссертацию о жестком диске, который поставляется с собственной файловой системой. Он был основан на расширении команд SCSI, которое позволяло отправлять обычные команды открытия, чтения, записи и закрытия на диск напрямую, минуя драйверы файловой системы ОС. Я думаю, что вывод заключался в том, что он негибкий и не добавляет много эффективности.

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

1 голос
/ 04 февраля 2009

Microsoft изначально планировала представить новую файловую систему для Windows Vista (WinFS - Windows Future Storage). Идея заключалась в том, чтобы хранить все в реляционной базе данных (SQL Server). Насколько я знаю, этот проект никогда (или еще не?) Был завершен.

Подробнее об этом можно узнать в википедии .

0 голосов
/ 04 февраля 2009

Лично мне очень жаль, что WinFS не полетела. Я любил концепцию .. Из Википедии (http://en.wikipedia.org/wiki/WinFS):

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

0 голосов
/ 04 февраля 2009

Если вы посмотрите на время запуска операционных систем, должно быть ясно, что можно улучшить доступ к дискам. Я не уверен, должны ли изменения быть в файловой системе или скорее в коде запуска ОС.

0 голосов
/ 04 февраля 2009

Я потратил некоторое время, пытаясь найти файловую систему с автоматическим управлением версиями, которая будет поддерживать версии (и историю версий) любого конкретного файла и / или структуры каталогов.

Идея заключалась в том, что все стандартные команды доступа (например, dir, read и т. Д.) Будут иметь необязательный параметр даты / времени, который можно передать для доступа к файловой системе, как она выглядела в тот момент времени.

Я довольно далеко продвинулся в этом, но мне пришлось отказаться от него, когда я должен был действительно пойти и заработать немного денег. С тех пор он отошел на второй план.

0 голосов
/ 04 февраля 2009

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

Когда у нас в куче слишком много вещей, нам нравится разделять кучу. Мы сортируем это каким-то образом, и нам нравится строить иерархии, в которых вы можете перемещаться по количеству вещей произвольного размера.

Следовательно, каталоги и файлы просто отображают наш естественный способ работы с реальными объектами. Так как вы можете положить что-нибудь в файл. В Unix даже аппаратное обеспечение отображается в файловой системе как «узлы устройства», которые представляют собой специальные файлы, которые вы можете читать / записывать для отправки команд оборудованию.

Я думаю, что метафора настолько сильна, что останется.

0 голосов
/ 04 февраля 2009

Я повторю другие ответы. Если бы я мог выбрать тип файловой системы, я лично предпочел бы увидеть гибридный подход: плоская база данных поддеревьев, где каждое поддерево рассматривается как единая единица, но если вы рассматриваете сами поддеревья как дискретные единицы, у них не будет никакой иерархии, но вместо этого могут иметь метаданные + для запроса к этим метаданным.

...