Кэширование без загадочных устаревших данных
Ключи, время жизни, инвалидация и наблюдаемость кэшированного слоя.
Короткий ответ
Ключи, время жизни, инвалидация и наблюдаемость кэшированного слоя. На практике ответ сводится к четырём решениям: определите источник истины; документируйте состав ключа; выберите допустимую свежесть; измеряйте попадания и ошибки обновления.
Что важно понять
Предсказуемая разработка строится вокруг короткой обратной связи: изменение легко понять, проверить, выпустить, наблюдать и при необходимости откатить.
Порядок действий
- Определите источник истины.
- Документируйте состав ключа.
- Выберите допустимую свежесть.
- Измеряйте попадания и ошибки обновления.
Эти пункты идут в рабочем порядке: сначала определяется исходное условие, затем настраивается основной сценарий, после чего проверяются исключения и реальное поведение. Если тема не требует последовательного выполнения, используйте список как четыре независимых критерия проверки.
Частые ошибки
- оптимизировать процесс без понимания узкого места. Из-за этого решение опирается на неверное исходное предположение.
- наказывать людей за сообщения об ошибках. Так инструмент или процесс начинает маскировать проблему вместо её решения.
- хранить критические знания только в голове одного разработчика. Ошибка часто проявляется только в ближайшем реальном сценарии.
- Не определить критерий готовности. Без него невозможно отличить завершённую работу от бесконечной настройки.
Когда базового подхода недостаточно
Процесс должен уменьшать риск и время обратной связи. Если правило создаёт работу, но не помогает обнаруживать или предотвращать ошибки, его стоит пересмотреть.
Итог
Ключи, время жизни, инвалидация и наблюдаемость кэшированного слоя. Используйте четыре пункта выше как минимальный чек-лист и пересматривайте решение, когда меняются исходные условия.