PIG DATA

"Температура" кэша


Что вкладывается в категорию «холодный (теплый) кэш»? Интуитивно полезна и верна часто приводимая аналогия с «движком» авто – холодным или теплым.
Суть кэша (кэширования)

)
Представим ситуацию: хотим удостовериться программным способом, как с CPU происходит обмен. Используем кэш. «Холодный» – без значений, не ускоряющий. Он пуст или с нерелевантными (и даже неопределенными) данными. «Теплый» – со значениями, способный ускорить вычисления за счет быстроты выборки обрабатываемых в данным момент данных.
Кэш – структура, маленькая и быстрая память, содержащая некоторые значения для убыстрения поиска: индексные ссылки, блоки или страницы памяти и др. Онам помогает избавить CPU от обращения к собственной (адресуемой) памяти. Кэш сохраняет значения в ссылках оперативного поиска (применяются таблицы, деревья) или медиа-доступа (применяются RAM, SSD вместо HDD). Чтобы выполнить поиск оперативно и необходим кэш.
Например, файловая Linux-система. Для доступа к файлу системы, следует идентифицировать его начало на диске с помощью индекс-системы, оформляемой в виде таблицы где-то на диске («superblock»).
Чем горячей – тем лучше
Если нужно прочесть содержимое файла, следует прочесть таблицу индексов на HDD (10 мс). Затем анализировать, получить начальный блок файла и прочесть файл (еще 10 мс). Всего затратили около 20 мс. Много!
Если добавим кэш (хэш-таблицу в RAM, 10 нс), то все произойдет на 3 порядка быстрее.
В каждой строке хэш-таблиц – два значения. В начале кэш пустой, холодный. Нужно его заполнить значениями. Если индекс (файл) в кэше не найден, то выполняется цикл:
• чтение индекс-таблицы;
• анализ ее;
• чтением файла;
• сохранение номера индекса;
• работаем с начальным блоком диска в кэше.
Итерации продолжаются: попытка прочесть иной файл, просмотр кэша, получение «промаха» («холодный» кэш), чтение HDD, добавление в кэш строки таблицы.
Холодный кэш ускорить ничего не сможет, все читаете с HDD по-прежнему. Даже иногда замедляется работа с системой – за счет времени дополнительного поиска по таблице («разогрева» кэша).
Некоторые значения в кэше начинают появляться, вы пытаетесь прочесть файл, смотрите – и вот, попали в кэш (индекс найден)! Есть «стартовый» HDD-блок. Можно пропустить чтение суперблока, начать читать нужный файл. Ваш кэш «разогрелся», время уменьшили на 10 мс. В кэше – соответствующие данные, все чтения для программы – через кэша.
Чем кэш горячее, тем быстрее обработка, самый горячий режим соответствует режиму реальной потоковой обработке. Подобный кэш регулярно обслуживаемый (используются update, removal и др.), иначе он увеличит свои размеры (накопит «мусор») с потерей производительности.
Интерфейс, извлекая впервые данные, сохраняет их в «своем» (локальном) кэше, затем извлекает их из него.
213 просмотров
0 комментариев
Последние

Кликните на изображение чтобы обновить код, если он неразборчив
Комментариев пока нет
PIG DATA
Community о Хрюшах, событиях, технологиях и IT. Создан для людей и маленьких Хрюшек.