Думаю запрос файла по хешу будет самым эффективным.
Сомневаюсь в этом!
1. Запрос файла по хешу абсолютно не пригоден для поиска файлов, которые ты никогда раньше не качал, но зато качали другие. Тебе придется сначала закачать файл из интернета, затратив на это время и трафик, вместо того, чтобы быстро спросить файл у друга в локалке.
2. Как следствие из п.1: если файл уже был тобой раньше скачан из инета и он не для одноразового использования, то вероятно он был записан тебе в основной кэш, поэтому искать его по хешу в локалке не придется.
Исключая форс-мажор, не могу представить случаи, когда постоянно нужный тебе файл вдруг пропал из твоего основного кэша. Что с ним вдруг стало?
Вообще, постоянно зависеть в этом плане от режима работы других пользователей несколько напрягает и увеличивает время ожидания, поэтому раньше уже звучало предложение копировать к себе в основной кэш файлы, взятые у других пользователей.
3. Хеширование - весьма ресурсозатратная процедура и производить ее придется для каждого скачанного файла, что в итоге снизит производительность не только HC, но всей системы.
Для часто меняющегося контента не имеет смысла хранить хеш.
В эту категорию попадают почти все HTML и даже некоторые картинки. Если исключить еще музыку, фильмы, архивы, софт и игры, т.к. подобного рода контент обычно качается из сети один раз и, как правило, торрент-клиентами или даунлодерами в обход HC, то останутся лишь некоторые картинки, которые по непонятным причинам куда-то пропали из кэша, но это уже частный случай неправильной настройки HC или действий пользователя...
В общем, применимость хеширования в HC вызывает у меня большие сомнения. Это хорошо для пиринговых сетей, но неэффективно для кэширующего прокси-сервера.