Некоторые соответствующие ограничения HDFS (которая является близнецом с открытым исходным кодом для файловой системы Google) можно найти в оригинальной файловой системе Google бумаге .
О случаях целевого использования мы читаем:
В-третьих, большинство файлов видоизменяются путем добавления новых данных, а не перезаписи существующих данных.Случайные записи в файле практически отсутствуют.[...]
[...] Учитывая эту схему доступа к огромным файлам, добавление становится центром оптимизации производительности и гарантий атомарности, [...]
КакВ результате:
[...] мы ослабили модель согласованности GFS, чтобы значительно упростить файловую систему, не обременяя приложения нагрузкой.Мы также ввели атомарную операцию добавления, чтобы несколько клиентов могли одновременно добавлять файлы без дополнительной синхронизации между ними.
Добавление записи приводит к тому, что данные («запись») добавляются атомарно, по крайней мереодин раз даже при наличии одновременных мутаций, [...]
Если я правильно прочитал статью, то несколько копий каждого файла (в HDFSсмысл) не обязательно будет точно таким же.Если клиенты используют только атомарные операции, каждый файл можно рассматривать как объединение записей (каждая из этих операций), но они могут выглядеть дублированными в некоторых репликах, и их порядок может отличаться от реплики к реплике.(Хотя, по-видимому, там также могут быть вставлены некоторые отступы, так что они даже не такие чистые - прочитайте статью.) Пользователь может управлять границами записи, уникальными идентификаторами, контрольными суммами и т. Д.
Итакэто совсем не то же самое, что файловые системы, к которым мы привыкли на наших настольных компьютерах.
Обратите внимание, что HDFS не подходит для многих небольших файлов, потому что:
Каждый из них обычно выделяет блок размером 64 МБ ( источник ).
Его архитектура не подходит для управления огромным количеством файлов names (источник: такой же, как в пункте 1).Существует один мастер, поддерживающий все имена файлов (которые, как мы надеемся, помещаются в его ОЗУ).