що означає концепція холодного кешу та теплого кешу?


10

Я прочитав статтю, і в ній вжиті терміни "холодний кеш" і "теплий кеш". Що означає концепція холодного кешу та теплого кешу? Я відвідую це, але мені потрібно щось більше.


1
Що б ви вважали корисним? Як ви маєте намір використовувати інформацію? Я прошу лише тому, що, знаєте: google.com/search?q=wikipedia+cold+cache
mikeserv

Я хочу використовувати цю концепцію у своїй роботі, тому мені потрібно більше деталей про них.
Амір

Це просто використання температури як метафори для розуміння того, наскільки корисний певний кеш, оскільки "корисність" існує на континуумі. Теплі кеші мають високі показники показів, тоді як холодні кеші наповнені даними, які ви, ймовірно, не збираєтеся знову просити знову, тому вони просто займають місце.
Братчлі

@JoelDavis - Якщо кешам не потрібно було обробляти помилки, то вищезазначене було б істинним, і єдиним методом заміни кешованих даних, який би коли-небудь потребував розробки, був би LFU, але оскільки дані схильні до помилок з різних причин, обробка холодний кеш - трохи складніше, ніж просто заміна найменш використаних даних.
mikeserv

Відповіді:


13

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

Розумієте, вся суть кешу полягає в тому, щоб тримати доступ до даних, доступних часто. Наприклад, кеш-пам'ять DNS локально зберігатиме результати іменних резолюцій, про які ви нещодавно запитували, і, коли ці самі рішення знову запитуються, їх результати вже доступні і подаються негайно, не запитуючи більшу, ймовірно, базу даних імен поза сайтом . Іншими словами , ваш комп'ютер не повинен запитати сервер доменних імен вашого інтернет - провайдера для IP - адреси на google.com , тому що ваш комп'ютер вже знає - ваш DNS кеш є тепло.

Але якщо ви ніколи не вимагаєте ip google, то він не буде у вашому кеші. Кеш холодної або занадто черствий , щоб бути корисним - як в даних , що містяться в ньому, ймовірно , занадто старий , щоб бути точним - або вона повністю порожня, і спорожнити'S досхочу застуду.

Але часто пусте краще, ніж старе, хоча це сильно залежить, звичайно, від даних, які кешуються. Empty простий в обробці, оскільки він просто потребує заповнення - це не потрібно, але старі кеші вимагають виправлення помилок. Це основна логістична проблема розробки та підтримки кеш-систем - як ви можете знати, що дані, які ви кешували, є актуальними та що робити, якщо їх немає?

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

Найтепліше кеш, тим не менш, менше там ризикнули. У перевагах теплого Caché в тримати дорогі дані поряд переважують ті ризики з холодного Caché в недоліках або ... ймовірно , ви не повинні бути кешуванням.


7
Як відомо відома цитата: "У інформатиці є дві важкі проблеми: називання речей, вимкнення кешу та помилки" за одним ". Знаючи, що ваші кешовані значення старі, це саме те, що означає відключення кешу :)
Riking

Що стосується Вашого коментаря щодо неточності кешу, це необов’язково правда. Якщо система / додаток має ексклюзивний доступ до джерела даних, то записи кешу можуть бути оновлені або вилучені, якщо це доречно. Ви можете зіткнутися з цією проблемою (навіть якщо лише один має доступ до запису, наприклад, з DNS), лише якщо ви маєте справу з одночасно доступними джерелами (наприклад, DNS, NFS або CIFS).
Братчлі

"інше, чому ви кешуєте взагалі" З тієї ж причини, яку ви мали б для кешування будь-чого іншого: захист від високої затримки. Наприклад, кеш файлової системи є просто таким, що ОС не повинна виходити на диск для загальних запитів. Кеш все ще знаходиться в узгодженому стані, оскільки модифікації локальних файлових систем повинні були пройти через ядро ​​в будь-якому випадку. Частина ECC насправді не є актуальною, оскільки такий вид корупції не пов’язаний з кешуванням кешами, це з-за помилки в апаратному забезпеченні, яка б вражала всі системи однаково незалежно від того, як вони були розроблені.
Братчлі

Диск - це кеш оперативної пам'яті?
Братчлі

Я думаю, у вас стосунки перетворені. Нещодавно доступний вміст диска кешується в оперативній пам'яті, тому пам'ять є кешем для диска (або принаймні використовується як частина системи кешування). Доступ до диска - це повільна робота, завдяки якій зберігання речей в пам'яті призначене для подорожі.
Братчлі

6

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

І навпаки, теплий кеш добре заповнений інформацією, яку ви нещодавно або часто отримували.

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


"останнім часом чи часто"? Останнім часом, так. але часто?
Faheem Mitha


1
@FaheemMitha Це правда - LFU, безумовно, дуже поширена абревіатура, з якою ви стикаєтесь у цьому відділі. Якщо ваш кеш обґрунтовано містить лише недавню інформацію, і вона заповнена, тоді ви повинні мати інші засоби визначення того, яка інформація замінюється під час читання нових даних. LFU - це, мабуть, той шлях, яким ти підеш.
mikeserv

@cpugeniusmv Дякуємо за посилання. Це обґрунтовано може бути включено у вашу відповідь.
Faheem Mitha
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.