32 lines
5.5 KiB
Markdown
32 lines
5.5 KiB
Markdown
# P05. SIEVE: простая политика вытеснения веб-кэша
|
|
|
|
- **Версия и дата проверки:** 1.1, 07.09.2026.
|
|
- **Статус:** готово к назначению.
|
|
|
|
## Статья и исходные материалы
|
|
|
|
- **Основная статья:** Yazhuo Zhang и соавт. — [SIEVE is Simpler than LRU: an Efficient Turn-Key Eviction Algorithm for Web Caches](https://www.usenix.org/system/files/nsdi24-zhang-yazhuo.pdf). NSDI 2024.
|
|
- **Кратко о статье:** Политика вытеснения веб-кэша должна одновременно давать хорошую долю попаданий и допускать дешёвую конкурентную реализацию. SIEVE использует однобитную отметку востребованности и последовательный указатель вытеснения, поэтому попадания не требуют перестройки общей структуры. Авторы показывают, что простая политика конкурентоспособна с более сложными алгоритмами. Проект проверяет этот результат на нескольких трассах и размерах кэша.
|
|
- **Почему результат актуален:** авторы предлагают очень простую политику вытеснения SIEVE и показывают на веб-трассах, что она часто сочетает высокую скорость с хорошей долей попаданий.
|
|
- **Артефакты и данные:** [cacheMon/NSDI24-SIEVE](https://github.com/cacheMon/NSDI24-SIEVE) с симулятором, прототипами и открытыми трассами. Зафиксированные ревизии: `cacheMon/NSDI24-SIEVE@0861f8261c37` (Apache-2.0).
|
|
- **Что уже предоставляет артефакт:** Артефакт содержит симулятор libCacheSim, реализации политик, прототипы и ссылки на трассы. Их роль — данные и эталон для сопоставления; центральные реализации SIEVE, LRU и третьей политики команда пишет независимо.
|
|
|
|
## Обязательный результат
|
|
|
|
- **Проверяемый вопрос или утверждение:** очень простая политика SIEVE может одновременно давать высокую пропускную способность и меньшую долю промахов, чем существенно более сложные политики, но результат зависит от следа и размера кэша.
|
|
- **Технический результат:** Независимо реализовать SIEVE, LRU и ещё одну сильную политику в общем симуляторе кэша. Симулятор должен читать одинаковый формат трасс, проверять инварианты ёмкости и учёта запросов и формировать сопоставимую статистику попаданий, вытеснений и служебных операций.
|
|
- **Обязательное приращение команды:** Создать уже предусмотренный общий симулятор с тремя собственными политиками, проверкой инвариантов и сопоставимым учётом служебных операций. Подготовить сравнение на нескольких трассах и анализ зависимости от размера кэша; готовые графики служат ориентиром при разборе результатов.
|
|
- **Эксперимент:** на нескольких открытых трассах сравнить SIEVE, LRU и ещё одну сильную политику по доле промахов и служебным операциям, воспроизвести часть результатов статьи и проверить чувствительность к размеру кэша.
|
|
- **Границы выводов:** сравнение характеризует долю попаданий и алгоритмические накладные расходы на выбранных трассах и размерах кэша; без работающего сервера оно не подтверждает производственную пропускную способность и цену синхронизации.
|
|
- **Ресурсный профиль:** локально, CPU, 8–16 ГБ памяти; можно использовать подвыборки трасс с проверкой устойчивости выводов.
|
|
|
|
## Содержательные направления
|
|
|
|
- реализации политик.
|
|
- подготовка трасс и стенда.
|
|
- анализ режимов, визуализация и дополнительные гипотезы.
|
|
|
|
## Возможное продолжение
|
|
|
|
Искать классы нагрузок, на которых SIEVE проигрывает, исследовать влияние размера объектов или предложить небольшую модификацию без заметного усложнения.
|