Какие-либо общие файловые системы ОС используют хеши, чтобы не хранить те же данные содержания несколько раз?

Много систем хранилища файлов используют хеши для предотвращения дублирования тех же данных содержания файла (среди других причин), например, Мерзавец и Dropbox оба использования SHA256. Имена файлов и даты могут отличаться, но, пока содержание генерировало тот же хеш, это никогда не хранится несколько раз.

Кажется, что это было бы разумной вещью сделать в файловой системе ОС для оставления свободного места. Есть ли какие-либо файловые системы для Windows, или *отклоняют, которые делают это, или есть ли серьезное основание, почему ни один из них не делает?

Это, по большей части, избавило бы от необходимости утилиты средства поиска дубликата файла, потому что в той точке единственное свободное место, которое Вы будете оставлять, было бы для записи файла в файловой системе, которой для большинства пользователей является недостаточно для имения значение.

Править: Возможно это могло пойти на serverfault, но я чувствую, что разработчики, более вероятно, поймут проблемы и включенные компромиссы.

8
задан RedFilter 14 December 2009 в 22:10
поделиться

5 ответов

ZFS поддерживает дедупликацию с прошлого месяца: http://blogs.oracle.com/bonwick/en_US/entry/zfs_dedup

Хотя я бы не назвал это "обычным "файловая система (ага, в настоящее время поддерживается только * BSD), на нее определенно стоит обратить внимание.

7
ответ дан 5 December 2019 в 08:52
поделиться
3
ответ дан 5 December 2019 в 08:52
поделиться

Чтобы сделать эту работу в файловой системе, потребуется изрядно поработать. Прежде всего, пользователь может создавать копию файла, планируя редактировать одну копию, в то время как другая остается нетронутой - поэтому, когда вы устраните дублирование, жесткая ссылка, созданная таким образом, должна будет дать семантику COW.

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

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

Мне это показалось немного похожим на эффект второй системы - решение проблемы спустя долгое время после того, как проблема перестала существовать (или, по крайней мере, имела значение). С жесткими дисками, которые в настоящее время стоят менее 100 долларов США за терабайт, мне трудно поверить, что это поможет большинству людей сэкономить целый доллар места на жестком диске. В этот момент трудно представить, чтобы большинство людей сильно заботились.

0
ответ дан 5 December 2019 в 08:52
поделиться

Это сэкономит место, но затраты времени непомерно высоки. Упомянутые вами продукты уже привязаны к io, поэтому вычислительные затраты на хеширование не являются узким местом. Если вы выполняете хеширование на уровне файловой системы, все операции io, которые и так выполняются медленно, станут хуже.

4
ответ дан 5 December 2019 в 08:52
поделиться

Во-первых, это вопрос переходных зависимостей. Насколько я понимаю, если вы предоставите зависимость, Maven в свою очередь найдет любые зависимости этой зависимости. Это здорово, но для многих моих зависимостей это не сработало. (...)

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

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

Даже если идея, лежащая в основе концепции центрального репо, благородна, нельзя объективно ожидать, что она будет содержать все банки в мире. Одна из наиболее очевидных причин заключается в том, что загрузка артефактов в центральный репозиторий требует времени, а ресурсы не бесконечны. И поскольку компаниям вроде RedHat JBoss или SpringSource или Sun или даже мне нужна гибкость, реактивность (одним словом, контроль), неудивительно, что они используют собственное хранилище. И, вообще-то, я очень рад, что они разоблачают их. Но действительно, проекты должны документировать, где найти свои артефакты, если они недоступны в центральном . На всякий случай, вы можете найти это Как найти зависимости от общедоступных репозиториев Maven? полезно. В корпоративной среде наилучшим способом решения этой проблемы является создание централизованного (корпоративного) репозитория прокси. Такие решения см. на этой странице .

Тесная связь с номером 2 гарантирует наличие правильной версии артефакта. (...)

Извините, но вам нужно немного знать, что вы делаете. Проект не может угадать, какую версию JSTL вы собираетесь использовать. Затем, относительно различных версий артефактов, соглашение об именовании, используемое проектами, не имеет ничего общего с maven, это выбор проекта/поставщика (за исключением SNAPSHOT, который обрабатывает специально). FWIW, общие используемые схемы включают в себя: M1 = Этап 1, RC1 = Вариант выпуска 1, GA = Общая доступность (окончательный выпуск), CR = Выпуск клиента (часто выпуск исправления ошибок). Вы также можете видеть альфа, бета. Это действительно зависит от жизненного цикла проекта и соглашения (однако ничего необычного здесь нет).

Наконец, проблема типа зависимости. Наверное, я просто недостаточно хорошо это понимаю, но многие артефакты репо типа "пом", а не "баночка". (...)

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

-121--3294881-

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

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

-121--3303006-

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

Объем дублирующихся данных на крупном предприятии с тысячами пользователей ошеломляет. Многие из этих пользователей хранят одни и те же документы, исходный код и т.д. в своих домашних каталогах. Часто встречаются сообщения о 50-70% дедуплицированных данных , что экономит много места и тонн денег для крупных предприятий .

Все это означает, что если вы создаете общую файловую систему на логическом устройстве, экспортированном файловым устройством NetApp, то вы получаете дедупликацию бесплатно, независимо от того, что файловая система создала в этом логическом устройстве. Удачи. Узнайте, как это работает здесь и здесь .

5
ответ дан 5 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: