advanced

Cache-aside

Let the application read-through on miss and write the cache after database reads, accepting miss and stampede handling work. Всегда проговаривайте freshness и invalidation.

Cache-aside: приложение само наполняет кеш — при miss читает БД и кладёт в кеш; при write обновляет БД и удаляет или обновляет кеш. Гибко и с любым store, но нужна защита miss и stampede.

Писатели должны инвалидировать или обновлять кеш, иначе долгое окно несогласованности. Read replica плюс cache-aside — ясность, откуда наполнять кеш после write.

На интервью: последовательности read miss и write update, риск stampede на горячих ключах, сравнение с write-through.

Типовые ошибки: удаление кеша до commit в БД; нет инвалидации при delete; наполнение из устаревшей реплики.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Путь загрузки при read miss.
  • Инвалидация или update кеша на каждую запись.
  • Защита stampede на горячих ключах.
  • Источник кеша в духе consistency.