2009-02-21 8 views
1

Наш магазин постоянно исчерпывает дисковое пространство, потому что у нас есть мандат от разработчиков и руководства, чтобы сохранить все ночные сборки, поскольку это значительно облегчает отладку.Ищете «файловую систему хранения данных», которая может объединять дубликаты и подобные файлы для увеличения объема памяти

Каждая сборка, как правило, имеет мало изменений. Тем не менее, почти каждый файл отличается от одной сборки до следующей, потому что компилятор и компоновщик вставляют метки даты и времени (и версии) в объекты и исполняемые файлы.

Итак, вопрос: кто-нибудь знает о файловой системе, которая не только может «объединять дубликаты файлов», но также может «объединять похожие файлы», поскольку эти файлы имеют от нескольких КБ до МБ, но только несколько байтов на файл изменился? (Даже при изменении кода воздействие на исполняемые файлы, как правило, будет небольшим, если не будет изменен основной заголовок или библиотека и т. Д.)

ответ

2

Почему бы не традиционная система управления версиями?

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

Разве это не то, о чем вы просили?

+0

Это предназначение для хранения результатов сборки, а не исходного кода; мы используем контроль версий для нашего источника. – 2009-02-21 17:34:52

+0

Управление версиями также можно использовать для двоичных файлов. И он предоставляет функции, которые вы просили (дельта). –

+0

Хорошо, это имеет смысл, но есть ли VCS, который действует как файловая система? Доступ к ним возможен из Windows? (Предположительно, файловая система Windows.) – 2009-02-21 18:43:43

0

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

Хм .. Зачем вам нужно архивировать сборки? Не должно ли быть тривиально воссоздать сборку из предыдущей версии с контролируемым версией?

+0

Да, тривиально воссоздавать сборки, но это отнимает много времени и не создает эквивалент byte-by-by (из-за даты/времени привязки). Один из методов отладки - «бинарный поиск», чтобы определить, что проблема возникла в первую очередь, и все старые сборки делают это проще. – 2009-02-21 17:36:21

1

Как правило, мое мнение по этим темам «не пытайтесь сформулировать свой путь из плохого решения управления».

Если они хотят сохранить много старых файлов сборки, «человек вверх» и купить место (дисковое пространство дешево).

Если они не хотят покупать диски, «поднимитесь» и выберите разумное количество сборок, чтобы они находились в доступном пространстве.

На самом деле это не проблема.

Дальше я бы пошел по этому пути, чтобы включить «сжатие диска» на диске, если оно доступно, поскольку оно обрабатывается ОС и не нуждается в дополнительном приложении и поддержке, которая идет с ним. Конечно, это небольшой хит производительности, но это просто.

Сохраните сок «развития» для важных вещей. :-)

+0

Я согласен, что это не проблема. Как я уже сказал в другом комментарии, мы пытаемся «делать больше с меньшими затратами», чтобы мы могли сохранить свою работу ... Сжатие диска не будет иметь такое же влияние, как алгоритм, в котором говорится, что «эти два файла имеют одно и то же имя, но несколько разных байтов "и хранятся дельта. – 2009-02-21 17:38:35

0

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

0

За небольшую часть усилий по установке и поддержке новой схемы управления файлами я бы купил больше жестких дисков. Вчера вечером я был в Frys, и они продавали внешний диск на 1 ТБ за 100 долларов; это USB-накопитель, все, что вам нужно сделать, это подключить его. Если он заполняется, просто купите еще один. Говоря как разработчик, я был бы удивлен, если ваш магазин действительно захочет удержаться на строках на неопределенный срок - я подозреваю, что стоимость ночных сборок была бы низкой после некоторого количества месяцев.

Это не изящное решение, но оно может быть более экономичным.

+0

Мы используем аппаратное обеспечение серверного класса, и на экономический спад влияет экономический спад. Идея состоит в том, чтобы иметь возможность «делать больше с меньшим», поэтому для наших зарплат осталось больше денег. – 2009-02-21 17:37:01

+0

Вам действительно нужно аппаратное обеспечение «server-class» для решения этой проблемы? 100 долл. США составляют приблизительно 2 часа от вашей общей заработной платы. –

1

Это решение для бедных людей, но если сборка хранилища является важным финансовым решением, я думаю, что этот ответ оправдан. :)

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

Как насчет того, чтобы сохранить стоимость на 2 месяца на дорогостоящем хранилище (то есть RAID), а затем забрать себе некоторое дешевое хранилище для архивирования (т. Е. USB-накопитель на 1 ТБ, который кто-то еще упомянул).

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

+0

Комплекс? Зачем? Вы просто совершаете каждую сборку поверх другой, а VCS берет на себя заботу о дельта-материалах ... –

-1

Я думаю, вы должны использовать приложение для delete duplicate files, который будет лучшим решением для вас, я использовать программное обеспечение для удаления дубликатов файлов, называемых Duplicate Finder 2009

Смежные вопросы