Кэш в СХД

реклама
Кэш в СХД
Кривых Алексей [email protected]
Зольников Павел [email protected]
Самунь Виктор [email protected]
IT Summer SPb 2012
Что такое кэш?
• Кэш – промежуточный буфер с быстрым
доступом, содержащий информацию,
которая может быть запрошена с
наибольшей вероятностью
2
Терминология
• Вся кэш память
разбивается на
сегменты,
размер одного
сегмента равен
размеру страйпа
На рисунке A1 A2 A3 Ap Aq - страйп
3
Классификация сегментов
• Чистые сегменты – сегменты, содержащие
копию данных, хранимых на диске
• Грязные сегменты – сегменты, содержащие
данные, более новые, чем на диске
• Пустые
• Используемые
4
Чтение
• Кэш попадание – ситуация, когда
запрашиваемые данные есть в кэше
• Кэш промах – ситуация, обратная к кэш
попаданию
5
Чтение (look through)
t = tcache + tdisk
6
Чтение (look aside)
t = min {tcache, tdisk}
7
Запись (write through)
8
Запись (write back)
+ : скорость
- : безопасность
9
Задача
• Разработать действующую модель кэша
СХД AVRORA для измерения эффективности
работы отдельных ее компонент
– Реализация модели
– Верификация модели
• Попытаться ускорить работу системы
кэширования
-Вытеснение сегментов кэша
10
Поиск в кэше
• При чтении, сначала происходит поиск
данных в кэше
• Для этого в кэше ищется адрес данных на
диске
• Какую структуру данных использовать для
хранения адресов?
11
Вытеснение сегментов кэша
• Рано или поздно пустые сегменты кончатся
• При записи новых данных в кэш
необходимо вытеснить старые
• Необходимо определить правило, по
которому будет происходить вытеснение
12
Алгоритмы вытеснения
•
•
•
•
•
•
LRU (Least Recently Used)
LRU\k
MRU (Most Recently Used)
LFU (Least Frequently Used)
ARC (Adaptive Replacement Cache)
…
13
Еще идея для вытеснения
• Одновременно работают несколько
алгоритмов
• Только один из них в данный момент влияет
на систему, за остальными просто наблюдаем
• Сравниваем результаты работ алгоритмов
через определенные промежутки времени
• Если другой алгоритм показал лучший
результат, чем текущий активный, передаем
ему управление
14
Скачать