Получить доступ

Чем write-through отличается от write-back при кэшировании записи?

MiddleКэширование и CDN
Ещё спрашивают так:
  • Что такое write-around?
  • Как кэш обрабатывает запись?
Коротко

Write-through — запись синхронно в кэш и хранилище: согласованно и надёжно, но каждая запись медленная. Write-back — запись в кэш, в хранилище позже: быстро и объединяет изменения, но падение кэша теряет данные.

  • Write-back — для счётчиков и частых обновлений, где потеря допустима или есть журнал
  • Write-around — мимо кэша прямо в хранилище: не засоряет кэш редко читаемым
  • Page cache ОС — тоже write-back, поэтому существует fsync

А ещё Самый частый вариант в приложениях — cache-aside с удалением ключа

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Write-through держит кэш и хранилище согласованными и переживает потерю кэша, но каждая запись стоит обращения к медленному хранилищу. Write-back резко снижает задержку и позволяет объединять несколько изменений одной записи, поэтому его выбирают для счётчиков и высокочастотных обновлений, — но подтверждённые данные какое-то время существуют только в кэше, и его падение означает потерю. Есть и третий вариант, который стоит назвать: write-around пишет мимо кэша прямо в хранилище, что полезно, когда записанное вряд ли будут скоро читать и незачем вытеснять из кэша горячие данные. Выбор всегда делают от требований к потере данных и к задержке, а не по привычке.

Что хотят услышать

  • Различие по моменту записи в хранилище.
  • Компромисс: надёжность против задержки.
  • Где уместен каждый, write-around — плюс.

Частые ошибки

  • Использовать write-back для данных, потеря которых недопустима.
  • Забывать про write-around и засорять кэш редко читаемыми записями.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Write-through пишет в кэш и в хранилище синхронно (медленнее, но данные не теряются); write-back подтверждает сразу после записи в кэш и сбрасывает позже (быстрее, но при сбое кэша данные теряются)
  • ✗Write-through пишет только в кэш, write-back — только в хранилище
  • ✗Это два названия одной стратегии
  • ✗Write-back применим только к CDN

Что спросят дальше

  • Когда уместен write-around?
  • Как write-back сочетается с требованием долговечности?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем