Cache penetration — повторные промахи кеша для данных, которых нет и в БД. Bloom filter позволяет быстро отклонить заведомо отсутствующие ключи, но допускает ложноположительные ответы.
Что такое Cache Penetration (запросы по несуществующим ключам) и как фильтр Блума помогает защитить базу данных?
Cache penetration — повторные промахи кеша для данных, которых нет и в БД. Bloom filter позволяет быстро отклонить заведомо отсутствующие ключи, но допускает ложноположительные ответы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Cache penetration — повторные промахи кеша для данных, которых нет и в БД. Bloom filter позволяет быстро отклонить заведомо отсутствующие ключи, но допускает ложноположительные ответы.
В фильтр заносят существующие ключи. Ответ «нет» означает отсутствие в корректно синхронизированном наборе, ответ «возможно есть» требует обычной проверки кеша и БД. При создании записей обновление фильтра должно предотвращать ошибочный отказ новым ключам. Стандартный фильтр не поддерживает безопасное удаление произвольного элемента. Дополнительные меры — короткое отрицательное кеширование, валидация ключей и rate limit. Фильтр не заменяет авторизацию.