что означает понятие «холодный кэш» и «теплый кеш»?

10

Я прочитал статью, в которой использовались термины «холодный кеш» и «теплый кеш». Что означает понятие «холодный кэш» и «теплый кеш»? Я посещаю это, но мне нужно что-то большее.

эмир
источник
1
Что бы вы посчитали полезным? Как вы собираетесь использовать информацию? Я спрашиваю только потому, что вы знаете: google.com/search?q=wikipedia+cold+cache
mikeserv
Я хочу использовать эту концепцию в своей статье, поэтому мне нужно больше деталей о них.
Амир
Он просто использует температуру в качестве метафоры для понимания того, насколько полезен конкретный кеш, поскольку «полезность» существует в континууме. Более теплые кеши имеют высокую частоту обращений, тогда как холодные кеши заполнены данными, которые вы, вероятно, не будете запрашивать снова в ближайшее время, и поэтому они просто занимают место.
Братчли
@JoelDavis - Если кэшам не нужно обрабатывать ошибки, то вышеприведенное будет верным, и единственным методом замены кэшированных данных, который когда-либо потребовалось бы разработать, будет LFU, но поскольку данные подвержены ошибкам по разным причинам, обработка холодный кеш немного сложнее, чем просто замена наименее используемых данных.
mikeserv

Ответы:

13

Ну, вкратце: теплый кеш полезен, а холодный - нет. На самом деле, холодный кеш может быть опасным для использования.

Видите ли, весь смысл кэша в том, чтобы обеспечить доступность часто используемых данных. Например, DNS-кэш будет локально хранить результаты разрешений имен, которые вы недавно запрашивали, и, когда эти же разрешения запрашиваются снова, их результаты уже доступны и немедленно обслуживаются, не запрашивая большую, вероятную базу данных имен вне сайта. , Другими словами , ваш компьютер не должен спросить сервер доменных имен вашего интернет - провайдера для IP - адреса на google.com , потому что ваш компьютер уже знает - ваш DNS кэш является тепло.

Но если вы никогда не запросите IP-адрес Google, он не будет в вашем кэше. Кэш холодной или слишком черствый , чтобы быть полезным - как в данных , содержащихся в нем, вероятно , слишком стар , чтобы быть точным - или она полностью пустая, и опорожнить'S вволю простуду.

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

Я не буду отвечать на любой из этих вопросов - они оба в зависимости от реализации и , возможно , далеко и далеко за пределами моей способности, так или иначе - но следует понимать , что все системы кэширования приходят с некоторым присущим риском из неточностей. Это идет с территорией. Риск может быть невелик - часто это всего лишь несколько дополнительных наносекунд во время обработки. Система кеширования будет проверять запрошенные данные на предмет того, что разработчик кеша реализовал в качестве отказоустойчивого устройства, и, если оно сочтет нужным, то кеш-система, например, запросит DNS у интернет-провайдера для ip-адреса google, и все в порядке.

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

mikeserv
источник
7
Как гласит известная цитата: «В компьютерной науке есть две серьезные проблемы: именование вещей, аннулирование кэша и ошибки« один на один ». Знание того, что ваши кэшированные значения старые, это именно то, что означает недействительность кэша :)
Riking
На ваш комментарий о неточности кэша, это не обязательно верно. Если система / приложение имеет эксклюзивный доступ к источнику данных, то записи кэша могут быть обновлены или удалены по мере необходимости. Только если вы имеете дело с источниками с одновременным доступом (например, DNS, NFS или CIFS), вы столкнетесь с этой проблемой (даже если только один имеет доступ для записи, например, с DNS).
Братчли
«иначе, почему вы кешируете вообще?» Та же самая причина, по которой вы кешируете что-либо еще: защита от высокой задержки. Например, кеш файловой системы просто так, чтобы ОС не приходилось выходить на диск для общих запросов. Кэш все еще находится в согласованном состоянии, поскольку модификации локальных файловых систем в любом случае должны пройти через ядро. Часть ECC на самом деле не имеет отношения к делу, поскольку такого рода искажения связаны не с кэшированием, а с кэшированием, а из-за аппаратной ошибки, которая одинаково затронет все системы, независимо от их дизайна.
Братчли
Диск это кеш оперативки?
Братчли
Я думаю, что вы изменили отношения. Содержимое диска, к которому недавно обращались, кэшируется в ОЗУ, поэтому память является кешем для диска (или, по крайней мере, используется как часть системы кеширования). Доступ к диску - это медленная операция, которая предназначена для хранения информации в памяти.
Братчли
6

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

И наоборот, теплый кеш хорошо заполнен информацией, которую вы недавно или часто получали.

Что касается файловых систем ext и структур каталогов, то здесь есть некоторая информация о том, как кэширование обычно работает в Виртуальной файловой системе (VFS) в Linux: http://www.tldp.org/LDP/tlk/fs/filesystem.html.

cpugeniusmv
источник
"недавно или часто"? Недавно да. но часто?
Фахим Митха
1
@FaheemMitha Это правда - LFU, безусловно, очень распространенная аббревиатура, с которой вы столкнетесь в этом отделе. Если в вашем кеше есть достаточная уверенность, что он содержит только свежую информацию и он полон, у вас должны быть какие-то другие средства определения того, какая информация заменяется при прочтении новых данных. LFU - это, вероятно, путь, по которому ты пойдешь.
mikeserv
@cpugeniusmv Спасибо за ссылку. Это может быть разумно включено в ваш ответ.
Фахим Митха