+  HandyCache форум
|-+  Главная категория» Новые предложения» Hardlink + MD5
Имя пользователя:
Пароль:
Голосование
Вопрос: Нужна нижеописанная функциональность HC?
Да
Нет
Всё равно

Страниц: [1]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Hardlink + MD5  (Прочитано 9712 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« : 22 января 2011, 01:11:44 »

Изложу идею в общих чертах:
HC при загрузке/записи_в_кэш файла считает его CRC/MD5
HC хранит у себя базу c хешами всех файлов в кэше (или можно список добавить для настройки) [в этой же базе можно хранить и даты последнего доступа к файлам, для эффективной очистки кэша]
• при записи в кэш проверяет что бы не было повторов, т.е. делает жёсткие ссылки на дубликаты файлов.

выгодно ли это? вот смотрим на 5гиговой папке кеша для vkontakte.ru:
Hardlink:   1444
Economy:   1367832206bytes (1,27 ГБ)
т.е. на всём кэше это будет ещё выгоднее!!

всё вышесказанное действительно только для NTFS!
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #1 : 23 января 2011, 15:53:16 »

HC при загрузке/записи_в_кэш файла считает его CRC/MD5

Подсчет CRC/MD5 займет немало времени и отъест немало системных ресурсов! Лично для меня это более критично, чем несколько сэкономленных гигабайтов на терабайтном диске!
С учетом постоянной работы Content Mastera, HC и без этого ощутимо грузит процессор...

Цитировать
HC хранит у себя базу c хешами всех файлов в кэше (или можно список добавить для настройки) [в этой же базе можно хранить и даты последнего доступа к файлам, для эффективной очистки кэша]

Вижу здесь две проблемы:
1) Базы для хранения метаданных у HC пока нет, хотя и планируется в будущем прикрутить SQLite.
2) Ведение базы хешей всех файлов в кэше затруднит ручное удаление, добавление, перенос и правку файлов в кэше. После любых действий с кэшем сторонними средствами придется пересчитывать все хеши и пересобирать всю базу, что весьма ресурсоемко при большом кэше.

Цитировать
• при записи в кэш проверяет что бы не было повторов, т.е. делает жёсткие ссылки на дубликаты файлов.
...
всё вышесказанное действительно только для NTFS!

Что нельзя назвать плюсом! Можно обойтись и без хардлинков, путь к файлу на диске и URL-ы, по которым его уже загружали, можно хранить вместе с хешем все в той же базе SQLite.


P.S. В общем, необходимость описанного выше способа борьбы с дублями в кэше за счет увеличения потребления ресурсов и отказа от ручной правки кэша лично у меня вызывает сомнения...
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #2 : 23 января 2011, 17:06:29 »

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

Цитировать
Подсчет CRC/MD5 займет немало времени и отъест немало системных ресурсов! Лично для меня это более критично,…
Согласен нагрузка на CPU возрастёт, но моему PhenomII 965 Black Editions это "по барабану". А вот нагрузка на винт уменьшится (меньше износ) + фрагментация меньше, и увеличится скорость работы HDD в целом.
Я предлагаю делать хеширование отключаемым. (Может попытаться делать в виде расширения? я пока не думал про это)

Цитировать
Что нельзя назвать плюсом!
Издеваетесь? Улыбка  У кого сейчас FAT остался? да и те у кого такая слабая машинка предпочтут отключить хеширование вовсе, вместе с CM Улыбка

P.S. На работе, по свободе, посмотрю позволяет ли API HC сделать что-то подобное в виде расширения.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #3 : 23 января 2011, 18:04:37 »

Никак не затруднит — кэш можно чистить как и раньше и удалять ручками что угодно. Просто нужно периодически будет чистить базу с хешами (так сказать, актуализировать)

Не просто чистить! Базу надо будет пересобирать с пересчетом хешей многих файлов! Это обязательно потребуется, чтобы прохешировать новые файлы или проверить, не изменились ли старые. Можно, конечно, запоминать в базе время модификации файлов, чтобы не делать лишнюю работу, но вся эта процедура все равно займет немало времени и ресурсов.

Цитировать
А вот нагрузка на винт уменьшится (меньше износ)

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

Цитировать
У кого сейчас FAT остался? да и те у кого такая слабая машинка предпочтут отключить хеширование вовсе, вместе с CM

HC пока поддерживает работу и на Win98, а там как правило FAT32.

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

И еще не стоит забывать про сервера Linux с Ext2/Ext3. Когда-нибудь mai62 сделает версию и под него. У некоторых уже сейчас HC под wine-ом работает.

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

Цитировать
На работе, по свободе, посмотрю позволяет ли API HC сделать что-то подобное в виде расширения.

Посмотри, если чего не хватит, можно попросить mai62 добавить нужные функции.
Например, функция для подсчета CRC/MD5 может пригодится и в других расширениях, да и самому HC, для проверки актуальности установленных компонентов и их обновления.
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #4 : 23 января 2011, 18:31:43 »

Цитировать
Базу надо будет пересобирать с пересчетом хешей многих файлов!
нет, именно просто чистить! Я же не говорил что хеш должен быть к каждому файлу в кэше!

Цитировать
…из-за необходимости регулярного запуска процедуры проверки/пересчета хешей файлов…
Что значит регулярно? Зачем регулярно? (Или раз в пол года просто сжать базу это регулярно?)

Цитировать
HC пока поддерживает работу и на Win98, а там как правило FAT32.
и из-за этого HC не может развиваться? может поэтому даже MS не поддерживает уже давно Win9x?
и к тому же: хеширование опционально! (Как Aero у Win7: "хош аэро купи видяху нормальную")

Цитировать
…не стоит забывать про сервера Linux с Ext2/Ext3…
А на Ext2/3 хардлинков значит нету?))

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

Цитировать
Посмотри, если чего не хватит, можно попросить mai62 добавить нужные функции.
Да на LUA можно и самому написать, вот только я не знаю этого языка Грустный
Мне сейчас думается: проще написать обёртку для HC (так сказать UserModeVM) на удобном языке и автоматом получить совместимость со всеми следующими версиями HC + скорость работы. (благо наработки в этой области есть)
P.S. Ну вот пАчему автор не реализовал плагины обычными DLL-ками… В ужасе



Добавлено: 2011-01-23, 18:20
ещё хеши можно частенько вытягивать из URL, например тот же вконтаке. в этом "+" для реализации в виде расширения.




Добавлено: 2011-01-23, 18:23

А "+" для реализации в виде обёртки HC это возможнось запихнуть весь кэш в один файл (а любителям покричать про доступ к содержимому могу сказать что никто не запретит реализовать подключение кэша HC в виде отдельной буквы диска)

В общем нужно хорошенько всё обсудить! Чем больше оппонентов тем лучше. Жаль что на форуме такая низкая активность. Для повышения которой можно добавить в HC —> "О программе" снизу графиков TOP 10 тем обсуждаемых на форуме (с обновление раз в час, или вынести в настройку) и 10 последних тем как на форуме. Сделать не сложно, а вот народу на форум привлечёт.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #5 : 23 января 2011, 22:01:44 »

нет, именно просто чистить! Я же не говорил что хеш должен быть к каждому файлу в кэше!

Не к каждому? Тогда как он убережет от дублей в кэше? Может, у меня там уже лежат сотни одинаковых файлов и еще столько же я принесу на флешке с работы! Пусть продолжают лежать?

Цитировать
А на Ext2/3 хардлинков значит нету?

Под Wine-ом они разве работают?
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #6 : 23 января 2011, 23:25:22 »

Цитировать
Под Wine-ом они разве работают?
Проблемы WINE HC не должны волновать. Это к авторам WINE Улыбка Это моё имхо конечно.

Цитировать
Тогда как он убережет от дублей в кэше? Может, у меня там уже лежат сотни одинаковых файлов и еще столько же я принесу на флешке с работы!
Теперь я понял чего Вы не поняли Улыбка
хеширование при загрузке файла не спасёт от дублей уже имеющихся в кэше! Хеширование призвано не плодить новых дублей! т.е. для максимально эффективной работы хешированию должны подлежать все файлы, но никто не заставляет хешировать принудительно уже имеющиеся файлы в кэше.
При использовании хеширования количество сэкономленного дискового пространства больше 0 — это главное.
Цитировать
Пусть продолжают лежать?
А что Вы предлагаете? У Вас есть идея лучше моей? Чем лучше?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #7 : 24 января 2011, 00:41:11 »

А что Вы предлагаете?

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

А вы так и не ответили на мои вопросы:
1. Чем хардлинки лучше простого сохранения URL одинаковых файлов прямо в базе HC, чтобы не зависеть от возможностей файловой системы.
2. Как быть с кэшем на флешке, где нельзя использовать NTFS и хардлинки?
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #8 : 24 января 2011, 01:37:00 »

Цитировать
Чем хардлинки лучше простого сохранения URL …
Тем что не нарушается структура кэша. Это как раз для любителей ручками удалять/добавлять в кэш файлы.

На второй вопрос я отвечал: хеширование опционально — не хочешь/не можешь не включай.


Добавлено: 2011-01-24, 01:35:40

Цитировать
…на флешке, где нельзя использовать NTFS…
Можно, и даже нужно. только нужно отключить некоторые опции NTFS (прямо в томе) и будет всё тип-топ.
Сообщить модератору   Записан
alex77
Старожил
****

Репутация: +11/-1
Offline Offline

Сообщений: 482



« Ответ #9 : 25 января 2011, 04:58:50 »

вижу следующие проблемы:
1, Нагрузка на процессор, диск.
Для одного-двух пользователей, может и будет уменьшение (при невысокой активности),
а если пользователей, ну скажем сотня (или какое определённое значение)?
2, Хеш должен быть к каждому файлу!
Простой пример. Несколько форумов на одном движке и шаблоне.
Ведь дублей смайлов, значков и т.д. и т.п. не должно быть! И в этом вся идея.
3, Обслуживание базы.
Чтобы все же снизить нагрузку, то придется делать это отдельным приложением и запускаться оно должно гораздо чаще, чем раз в полгода. Ежедневно это уж точно.

ну и оффтоп.
Да, скорей бы и реализации на линуксе))
а по поводу плагинов, тут не все радужно(.
будет создано автором пару плагинов и этим все ограничится,. а остальные никто писать не будет. напрашивается вывод, зачем они тогда?( если их еще можно реализовать с помощью расширений..
Добавлено: 25 Января 2011, 11:56:14

Разработчику(ам).
 как пример, реализации базы, обратите внимание на flylinkdc . Может идеи возникнут.)
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #10 : 25 января 2011, 11:43:05 »

Цитировать
…И в этом вся идея.
Нет, не в этом.

Цитировать
Обслуживание базы.…
В Firefox Вы часто базу обслуживаете? Раз в месяц он её сам сжимает, незаметно для пользователя.

Нагрузку рассчитываю на 5 пользователей. У меня HC используется дома.

И повторюсь ещё раз: всё это должно быть опциональным, и именно поэтому не может быть требования "хеш к каждому файлу". (Но нужно понимать, что чем больше хешей будет тем выше эффективность)
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #11 : 27 мая 2011, 22:17:34 »

Изложу идею в общих чертах:
HC при загрузке/записи_в_кэш файла считает его CRC/MD5
HC хранит у себя базу c хешами всех файлов в кэше (или можно список добавить для настройки) [в этой же базе можно хранить и даты последнего доступа к файлам, для эффективной очистки кэша]
• при записи в кэш проверяет что бы не было повторов, т.е. делает жёсткие ссылки на дубликаты файлов.

выгодно ли это? вот смотрим на 5гиговой папке кеша для vkontakte.ru:
Hardlink:   1444
Economy:   1367832206bytes (1,27 ГБ)
т.е. на всём кэше это будет ещё выгоднее!!

всё вышесказанное действительно только для NTFS!
Считаю что не нужно это.
Грузить HC не очень нужной работой.
Ибо выпускаемые сейчас харды имеют такой размер, что выделить лишний гиг-другой под кэш нет никакой проблемы.

А потом одинаковые файлы, имеющие разный URL, в инете могут измениться не синхронно. Поэтому если на одном сайте файл изменился, а на другом нет, то могут возникнуть глюки если новый файл сунуть в старый сайт (где этот файл не менялся)
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 312



« Ответ #12 : 28 мая 2011, 01:21:36 »

Цитировать
А потом одинаковые файлы, имеющие разный URL, в инете могут измениться не синхронно. Поэтому если на одном сайте файл изменился, а на другом нет, то могут возникнуть глюки если новый файл сунуть в старый сайт (где этот файл не менялся)
Нет. Подумайте внимательней.

Цитировать
…что выделить лишний гиг-другой под кэш нет никакой проблемы.
проблема в скорости записи и тупом износе.
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #13 : 28 мая 2011, 01:44:18 »

Нет. Подумайте внимательней.
О'кей. Щас подумаю  Непонимаю
...
...
...
Подумал.

И вижу, что проблемы, которая возникнет из-за не сихронности изменения файлов в инете не избежать.

При использовании вместо хранения N одинаковых (в данный момент времени) файлов в разных папках, хранения только одного файла, а вместо остальных - хранение только хардлинков на этот файл.
Добавлено: 28 Мая 2011, 01:33:06

проблема в скорости
... Непременно возникнет если использовать то, что Вы предлагаете

проблема в .... тупом износе.
Что касается износа...
ИМХО проблема надуманная. Высосанная из пальца.
Правда Вы не первый кто озадачивается этой проблемой.
Но повторяю, что зря.
Производители жёстких дисков, проектируя их, учитывают, что на них (диски) не молится будут и пылинки с них сдувать, а то, что диск будет загружен работой 24 часа в сутки в течении 6 лет (где-то в фирменной документации мне попадалась такая инфа). И эта теоретическая цифра близка к действительности.
Я ТУТ уже описывал в каком режиме я юзаю свой хард уже почти 5 лет. И ничего. "Полёт нормальный"
Поэтому то, что благодаря Вашим методам хард прослужит месяцем больше, месяцем меньше - эта не такая существенная цифра, чтобы изощряться с уменьшением кол-ва записей в кэш HC на 10%-30%
« Последнее редактирование: 28 мая 2011, 01:48:55 от Доктор ТуамОсес » Сообщить модератору   Записан
Страниц: [1]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: