Отрицательный кеш
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2021 г. ) |
В компьютерном программировании отрицательный кеш — это кеш , в котором также хранятся «отрицательные» ответы, то есть сбои. Это означает, что программа запоминает результат, указывающий на сбой, даже после устранения причины. Обычно отрицательный кэш — это дизайнерский выбор, но это также может быть программная ошибка .
Примеры
[ редактировать ]Рассмотрим веб-браузер , который пытается загрузить страницу, пока сеть недоступна. Браузер получит код ошибки, указывающий на проблему, и может отобразить это сообщение об ошибке пользователю вместо запрошенной страницы. Однако браузеру неправильно помещать сообщение об ошибке в кэш страниц, поскольку это приведет к повторному отображению ошибки, когда пользователь попытается загрузить ту же страницу - даже после восстановления сети. страницы Сообщение об ошибке не должно кэшироваться под URL-адресом ; до тех пор, пока браузер не сможет успешно загрузить страницу. Всякий раз, когда пользователь пытается загрузить страницу, браузер должен предпринять новую попытку.
Разочаровывающий аспект отрицательных кэшей заключается в том, что пользователь может приложить большие усилия для устранения проблемы, а затем, после определения и устранения основной причины, ошибка все равно не исчезнет.
Бывают случаи, когда состояния, подобные сбоям, необходимо кэшировать. Например, DNS требует, чтобы кэширующие серверы имен запоминали отрицательные ответы. [1] так и положительные. Если авторитетный сервер имен возвращает отрицательный ответ, указывающий, что имя не существует, оно кэшируется. Отрицательный ответ может быть воспринят как сбой на уровне приложения; однако для сервера имен, кэширующего его, это не является ошибкой. Время кэширования для отрицательного и положительного кэширования можно настраивать независимо.
Описание
[ редактировать ]Отрицательный кэш обычно желателен только в том случае, если сбой очень дорог и состояние ошибки возникает автоматически без действий пользователя. Создается ситуация, когда пользователь не может выявить причину сбоя: несмотря на исправление всего, что можно придумать, программа по-прежнему отказывается работать. При кэшировании сбоя программа должна четко указывать, что необходимо сделать для очистки кэша, а также описание причины ошибки. В таких условиях отрицательный кэш является примером антишаблона проектирования .
Отрицательный кеш по-прежнему может быть восстановлен, если срок действия кэшированных записей истечет.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ RFC 2308