Друзья, прошел JVM Day.
В этот раз выступал с докладом про кэширование - "Превратности кэша: как Redis спасает latency и тихо ломает корректность".
Мне хотелось сделать не очередной рассказ про @Cacheable, TTL и "не забывайте инвалидировать кэш". Поэтому весь доклад строился как расследование одной системы: мы последовательно решали вполне реальные проблемы - высокий p95, нагрузку на PostgreSQL, устаревшие данные, stampede, холодный кэш, несовместимость данных при релизах - и почти каждый раз обнаруживали, что хорошее на первый взгляд исправление меняет систему сильнее, чем кажется, и открывает следующий класс проблем.
В итоге для меня весь доклад свелся к нескольким довольно простым, но важным мыслям:
• hit ratio показывает, как часто мы нашли значение, но не говорит, можно ли этому значению верить
• evict после выполнения метода еще не означает evict после успешного коммита
• cache miss не должен автоматически превращаться в SQL-запрос
• кэш - это не просто ускоритель, а договор о том, насколько старые данные система имеет право показать ради скорости.
Отдельно понравилось, что после выступления разговор не закончился на слайдах. Было много вопросов в частности, про то, где вообще проходит граница, после которой проще отказаться от кэша, чем продолжать наращивать вокруг него инфраструктуру.
Для меня это обычно лучший критерий технического доклада: не когда аудитория просто соглашается с набором "best practices", а когда после выступления люди начинают сравнивать услышанное со своими ПРОД-системами и спорить о границах применимости решений.
Спасибо организаторам JVM Day и всем, кто пришел, голосовал на интерактивах, задавал вопросы и продолжил обсуждение после доклада.
В целом, огранизация мероприятия была на очень высоком уровне.
Ссылка на презентацию
Запись, насколько понимаю, появится позже - когда будет, тоже поделюсь.
А пока главный вывод оставлю здесь:
Кэш - это не место хранения быстрых ответов. Это контракт о том, когда системе разрешено отвечать не из источника истины.
Post #373
3.21K








- ❤ 51
- 🔥 23
- 👍 4
- 😍 1