Чем write-through отличается от write-back при кэшировании записи?
- Что такое write-around?
- Как кэш обрабатывает запись?
Write-through — запись синхронно в кэш и хранилище: согласованно и надёжно, но каждая запись медленная. Write-back — запись в кэш, в хранилище позже: быстро и объединяет изменения, но падение кэша теряет данные.
- Write-back — для счётчиков и частых обновлений, где потеря допустима или есть журнал
- Write-around — мимо кэша прямо в хранилище: не засоряет кэш редко читаемым
- Page cache ОС — тоже write-back, поэтому существует fsync
А ещё Самый частый вариант в приложениях — cache-aside с удалением ключа
Подробно
Write-through держит кэш и хранилище согласованными и переживает потерю кэша, но каждая запись стоит обращения к медленному хранилищу. Write-back резко снижает задержку и позволяет объединять несколько изменений одной записи, поэтому его выбирают для счётчиков и высокочастотных обновлений, — но подтверждённые данные какое-то время существуют только в кэше, и его падение означает потерю. Есть и третий вариант, который стоит назвать: write-around пишет мимо кэша прямо в хранилище, что полезно, когда записанное вряд ли будут скоро читать и незачем вытеснять из кэша горячие данные. Выбор всегда делают от требований к потере данных и к задержке, а не по привычке.
Что хотят услышать
- Различие по моменту записи в хранилище.
- Компромисс: надёжность против задержки.
- Где уместен каждый, write-around — плюс.
Частые ошибки
- Использовать write-back для данных, потеря которых недопустима.
- Забывать про write-around и засорять кэш редко читаемыми записями.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Write-through пишет только в кэш, а write-back — только в хранилище, минуя кэш
- ✗Это два названия одной и той же стратегии
- ✗Write-back применим только к CDN и статическим файлам
- ✓Write-through пишет в кэш и хранилище синхронно; write-back — сначала в кэш, в хранилище позже
Что спросят дальше
- Когда уместен write-around?
- Как write-back сочетается с требованием долговечности?
Разбор темы
- Кэширование и CDN
Кэш как размен согласованности на задержку, hit rate и слои, стратегии чтения и записи, инвалидация и гонка с записью, stampede и лавина, вытеснение и горячие ключи, CDN и ключ кэша.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.