+  HandyCache форум
|-+  Главная категория» Новые предложения» Индексирование кэша
Имя пользователя:
Пароль:
Страниц: 1 [2] 3 4 ... 6   Вниз
  Отправить эту тему    Печать  
Автор Тема: Индексирование кэша  (Прочитано 77343 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #20 : 22 февраля 2007, 01:41:15 »

DenZzz
Цитировать
Ты серьезно считаешь, что индекс 1 уровня, который будет постоянно находиться в памяти, способствует ее экономии?!
Имел ввиду ресурсов.
Цитировать
Кэш DNS содержит ограниченное число записей (у меня max=500), он автоматически чистится и обновляется - эх, не хотел бы я, чтобы в нем были все 55 000 записей!
IP-адрес сервера нам нужен только после того как принято решение лезть в интернет. Слазив туда, мы должны проверить наличие файла в кэше. Значит, один хрен грузить индекс 2 уровня. Выходит, информацию об IP-адресе надо хранить в переменной в файле индекса 2 уровня и не засорять ими память вообще. Ну и пусть 55 тыс. IP хранится. Чего ж тут плохого? Долой их из индекса 1 уровня!
Цитировать
Во-первых, критерий свежести работает по дате модификации файла, а не по дате доступа к нему! Читать можно часто, а писать редко...
Во-вторых, у некоторых браузеров есть привычка последним загружать favicon.ico - вот тебе и обновление даты доступа к хосту, а все остальные файлы точно старее!
Я не путал дату доступа с датой модификации. Логика такая. Если запрашиваемый URL имеет критерий свежести, например, 1 день, а доступа к серверу не было год, то URL заведомо из кэша браться не будет (не надо даже проверять, есть ли он там). Если же запись в кэш для такого URL исключена, то дергать индекс второго уровня нам не нужно вообще.
Но теперь поразмыслив, прикинул, что это нелогичные, противоречащие друг другу условия - установить критерий свежести и при этом не писать в кэш. Это как раз то, за пресечение возможности пользователю сделать чего копья недавно с тобой ломал. Поэтому далее не обращаем внимания на этот "предварительный отсев по критерию свежести". Оставляем дату доступа только для нужд грубой автоматической очистки. Но очень уж она грубая - удалить весь сайт по дате последнего доступа. Хотя определенная логика есть. Будем думать, как сделать ее изящнее.
Цитировать
Ну, в общем, все что перечислено в первом посте этого топика, рожденное коллективным мозговым штурмом...
Скромно поправлю: в этом топике.  :Улыбка
Цитировать
Что за статистика и с какой целью ее собирать?
Статистика, отражающая осуществляемую НС экономию. С какой целью ее собирать - понятия не имею: просто не захотел вникать в эту тему до определения исхода голосования и "заложился на возможное будущее". Подмигивающий
Цитировать
Синхронизировать их накладно!
Пока у меня нет определенности в вопросе,а надо ли вообще их синхронизировать. Чего-то голова кругом... Разберусь завтра.
Цитировать
М-да... Опять началось навязывание другим своих моделей поведения!
Если ты писал это без учета моего последнего поста, то понятно. Если да, то где ты увидел навязывание? И еще. "Опять" - это про меня или про Ру-борд?  Крутой
Цитировать
Хоть я всегда выступал в поддержку индексов, но, похоже, противника опять придется изображать мне за отсутствием их кворума на нашем форуме...
Жизнь - театр, и люди в ней - актеры Подмигивающий Ты уж постарайся, чтоб rs и unreal666 не было за себя стыдно Подмигивающий Мож, узнают, посмеются дружно и беззлобно и дополнят собою кворум на оффоруме.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #21 : 22 февраля 2007, 02:01:36 »

Rick
Цитировать
Заменить собой DNS кэш индекс не сможет
Пока имею мнение, что вполне сможет. Сохраняем IP-адрес в переменной в файле индекса 2 уровня. Как подгрузили индекс, считался и IP. Тот самый из семи, который сейчас сохраняется кэшем DNS.
Цитировать
Именно тем, что в кэше может быть файл, о котором индекс "не в курсе".
Как он туда попал? Охотники постарались? Подмигивающий
Цитировать
У меня пессимистичный взгляд на перспективу индекса.
Из-за того, что его сложнее реализовать, чем потоки NTFS, или почему-то еще?
Сообщить модератору   Записан
Rick
Администратор
*****

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

Сообщений: 868


WWW
« Ответ #22 : 22 февраля 2007, 02:13:45 »

Пока имею мнение, что вполне сможет. Сохраняем IP-адрес в переменной в файле индекса 2 уровня. Как подгрузили индекс, считался и IP.
Представь: после процедуры очистки файлового кэша папка хоста удалена, запись из индекса соответственно тоже. Или мы скачивали нечто не сохраняя на диск в кэш. В обоих случаях кэш DNS оказывается зависим от того что есть в файловом кэше, а это не верно.

Цитировать
Как он туда попал? Охотники постарались? Подмигивающий
Да.

Цитировать
Из-за того, что его сложнее реализовать, чем потоки NTFS, или почему-то еще?
Из-за того, что желание иметь актуальный индекс и желание иметь возможность ручной работы с кэшем мала-мала противоречат друг-другу.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #23 : 22 февраля 2007, 02:20:53 »

Rick
Цитировать
Из-за того, что желание иметь актуальный индекс и желание иметь возможность ручной работы с кэшем мала-мала противоречат друг-другу.
Почему из этих двух желаний перетягивает второе?
Сообщить модератору   Записан
Rick
Администратор
*****

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

Сообщений: 868


WWW
« Ответ #24 : 22 февраля 2007, 02:47:35 »

Почему из этих двух желаний перетягивает второе?
Запретить ручную работу с кэшем нельзя - некоторым это действительно нужно. Например, некоторые синхронизируют кэш на работе и дома. Пренебречь их интересами нельзя - значит еще не сделанный индекс уже тянет за собой необходимость делать некие мастера синхронизации для слияния кэшей, мастер перестройки индекса (сканить весь кэш на предмет совпадения с индексом). Разработчики дополнений должны будут обучать свои дополнения работе с этим индексом или из самостоятельных приложений превращаться в несуществующие пока плагины, с тем, чтобы работу с индексом выполнял таки НС. Вот так: индекса еще нет, а проблем для того, чтобы он появился - хватает.
Сообщить модератору   Записан
Oneri
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #25 : 22 февраля 2007, 13:21:40 »

достаточно индексов в каждой папке (без общего для всех) а в нем можно хранить все данные
думаю при процедура восстановления кеша будет занимать не немного дольше чем обход всего дерева кеша т.к. нам достаточно проверить наличие файла и соответсвие ему записи в кеше,
а составление общего индекса по сайтам только обход 1ого уровня подкаталогов.
и тем более его можно запустить в отдельном потоке с низким приоритетом (как раз при запуске в винду закешируются все каталоги, что может привести к ускорению работы)
PS DNS можно хранить и в двух местах - никто не запрещает, а вот нужна ли эта копеечная экономи(если dns хранить в каждом каталоге) (на несколько запросов к DNS серверу - большой вопрос)
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #26 : 22 февраля 2007, 13:45:46 »

Oneri
Цитировать
а вот нужна ли эта копеечная экономи(если dns хранить в каждом каталоге) (на несколько запросов к DNS серверу - большой вопрос)
Помимо "копеечной экономии" приобретаем дополнительную ясность структуры - вся информация, относящаяся к хосту, хранится в корневой папке хоста (в частности, в файле индекса) и не разбросана по разным файлам, которые приходится открывать. Есть еще мысль хранить там поддерживаемую сервером версию HTTP для выбора наиболее эффективного способа формирования запросов.
Rick
Цитировать
Или мы скачивали нечто не сохраняя на диск в кэш.
Всеми силами хочется уйти от этого варианта Подмигивающий Для того и думаю над отысканием эффективного алгоритма автоматической очистки.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #27 : 22 февраля 2007, 14:11:12 »

Цитировать
Или мы скачивали нечто не сохраняя на диск в кэш.
Всеми силами хочется уйти от этого варианта Подмигивающий Для того и думаю над отысканием эффективного алгоритма автоматической очистки.

Это неправильный подход! Зачем изначально писать в кэш то, что на 100% никогда больше не пригодится?!
Чтобы этим оправдать необходимость автоматической очистки?! Хвост вертит собакой!  Улыбка
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #28 : 22 февраля 2007, 14:20:32 »

DenZzz
Цитировать
Это неправильный подход!
В предыдущем посте я сказал неверно: правильнее будет не "для того и думаю", а "в т.ч. для того и думаю".
Предлагаю на данном этапе от этой темы уклониться в целях продвижения основной темы топика Улыбка
« Последнее редактирование: 22 февраля 2007, 14:32:19 от Михаил » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #29 : 22 февраля 2007, 14:33:28 »

Предлагаю на данном этапе от этой темы уклониться в целях продвижения основной темы топика Улыбка

О.К. Но тогда следует также уклониться и от утверждений, что индекс заменит собой DNS-кэш, частично RAM-кэш и т.п. до тех пор пока не будут устранены ключевые противоречия! Подмигивающий

Есть еще мысль хранить там поддерживаемую сервером версию HTTP для выбора наиболее эффективного способа формирования запросов.

Версию HTTP в запросе браузер выбирает в соответствие со своими настройками! HC зачем нужны такие подробности?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #30 : 22 февраля 2007, 14:41:15 »

DenZzz
Цитировать
О.К. Но тогда следует также уклониться и от утверждений, что индекс заменит собой DNS-кэш, частично RAM-кэш и т.п. до тех пор пока не будут устранены ключевые противоречия!
ОК. С легкостью уклоняюсь. Только про RAM-кэш я имел ввиду другое - не заменить его индексом, а проанализировать, не вступит ли в противоречие/дублирование работа индекса как мы ее сейчас примерно мыслим с работой RAM-кэш. Если вступит - найти путь выхода из такого противоречия. И честно говоря, руки пока не дошли. Ну да ладно... Опустили пока эту тему.
Цитировать
Версию HTTP в запросе браузер выбирает в соответствие со своими настройками! HC зачем нужны такие подробности?
Если браузер тупо запрашивает по HTTP 1.0 сайт, который двести раз качался по HTTP 1.1 (что есть факт), то это нехорошо. И если мы браузеру при этом верим, то не можем сразу же начать использовать, например, pipeline.
« Последнее редактирование: 22 февраля 2007, 14:50:11 от Михаил » Сообщить модератору   Записан
Oneri
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #31 : 22 февраля 2007, 15:05:48 »

Ram Cache должен хранить  только данные ...  индексы тут не причем 
т.е. при запросе URL  процедура будет такова

1. обращаемся в индекс
2. если в индексе есть файл то лезем в рам кеш
3. если в рам кеше не нашлось то лезем в дисковый кеш

А если браузер сменился? 

Добавлено позже:
т.е. у меня на машине несколько браузеров один например Opera которая ходит по 1.1 а вторая FireFox у которого pipe line отключен в настройках
« Последнее редактирование: 22 февраля 2007, 15:34:42 от Oneri » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #32 : 22 февраля 2007, 15:13:08 »

Если браузер тупо запрашивает по HTTP 1.0 сайт, который двести раз качался по HTTP 1.1 (что есть факт), то это нехорошо. И если мы браузеру при этом верим, то не можем сразу же начать использовать, например, pipeline.

А что мы должны сделать? Ответить браузеру на его 1.0 нашим 1.1? Подмигивающий
Он может нас не понять от своей педантичности и правильно сделает! Проблема выбора протокола запроса должна решаться настройками самого браузера! Не забывай, что через HC может работать не только браузер, но любой другой клиент (приложение), которое может ничего не знать о 1.1 или не хотеть его использовать! А маскироваться эти приложения любят под известные браузеры (берут User-Agent из системных настроек)...
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #33 : 22 февраля 2007, 15:17:22 »

Oneri
Цитировать
т.е. при запросе URL  процедура будет такова
1. обращаемся в индекс
2. если в индексе есть файл то лезем в рам кеш
3. если в рам кеше не нашлось то лезем в дисковый кеш
Спасибо. Теперь видно, что пересекаться не будут. Прочел к тому же, наконец, то место в ФАКе про RAM-кэш. Улыбка
Цитировать
А если браузер сменился?
Не понял, что будет "если он сменился"? Это ты о чем?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #34 : 22 февраля 2007, 15:20:51 »

DenZzz
Цитировать
А что мы должны сделать? Ответить браузеру на его 1.0 нашим 1.1?
Именно так. Так ответит и сам сервер. Только вот браузер нигде не применит это знание и в другой раз снова запросит 1.0. А мы применим.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #35 : 22 февраля 2007, 15:48:06 »

Так ответит и сам сервер.

Уверен? Или речь идет о "неправильном" сервере? Боюсь, HTTP/1.0 клиент его не поймет... Подмигивающий
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #36 : 22 февраля 2007, 17:35:07 »

DenZzz
Цитировать
Уверен? Или речь идет о "неправильном" сервере? Боюсь, HTTP/1.0 клиент его не поймет...
Мы просто передадим ответ сервера. И если он более поздней версии HTTP, "возьмем на заметку".
К примеру, handycache.ru - "правильный" сервер? Подмигивающий
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #37 : 23 февраля 2007, 02:05:22 »

Oneri
Цитировать
т.е. у меня на машине несколько браузеров один например Opera которая ходит по 1.1 а вторая FireFox у которого pipe line отключен в настройках
В голове давно сидит мысль о включении в программу возможности самостоятельно организовывать pipeline при закачке с серверов, поддерживающих 1.1. Без оглядки на браузер.
Сообщить модератору   Записан
Rick
Администратор
*****

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

Сообщений: 868


WWW
« Ответ #38 : 23 февраля 2007, 02:10:09 »

Не отвлекаемся от темы.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #39 : 23 февраля 2007, 02:19:33 »

Rick
Цитировать
Запретить ручную работу с кэшем нельзя - некоторым это действительно нужно. Например, некоторые синхронизируют кэш на работе и дома. Пренебречь их интересами нельзя - значит еще не сделанный индекс уже тянет за собой необходимость делать некие мастера синхронизации для слияния кэшей, мастер перестройки индекса (сканить весь кэш на предмет совпадения с индексом). Разработчики дополнений должны будут обучать свои дополнения работе с этим индексом или из самостоятельных приложений превращаться в несуществующие пока плагины, с тем, чтобы работу с индексом выполнял таки НС. Вот так: индекса еще нет, а проблем для того, чтобы он появился - хватает.
Согласен, создание индекса тяжким бременем ложится на головы разработчиков. Но это, на мой взгляд, оправдано, т.к. пользователю при таком раскладе достаются практически одни преимущества.
Сообщить модератору   Записан
Страниц: 1 [2] 3 4 ... 6   Вверх
  Отправить эту тему    Печать  

 
Перейти в: