LINUX.ORG.RU

алгоримы получения сигнатур файлов


0

0

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

ЗЫ: только без "зачем изобретать велосипед?" это только часть задачи.
anonymous

Re: алгоримы получения сигнатур файлов

> была еше мысля шитать контрольную сумму скажем из каждого 100го байта + хэш длины файла.

а нет смысла экономить -- каждый сотый байт смотреть -- потому что у тебя тут боттлнек это ИО диска -- а он не уменьшится если ты каждым сотым байтом ограничишься.

dilmah ★★★★★ ()

Re: алгоримы получения сигнатур файлов

Можешь crc каждого сотого блока считать

anonymous ()
Ответ на: Re: алгоримы получения сигнатур файлов от anonymous

Re: алгоримы получения сигнатур файлов

В зависимости от размера
скажем логарифм по 2 от кол-ва блоков

т.е. если <=2 блоков - считаем каждый первый
<=4 - каждый второй
<=8 - каждый третий
<=16 - каждый 5
<=256 - каждый 8
<=1024- каждый 10

разумеется всегда можно подобрать другое основание

roller ★★★ ()

Re: алгоримы получения сигнатур файлов

Дядя, не ипи моск. Ты гентушник чтоль и каждую ночь базу целиком пересчитываешь? Сам Джа велит использовать mysql/md5sum и сутки времени.

Gharik ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.