Кэширование ортогонально рекурсии… Объясните?[закрыто]
-
23-09-2019 - |
Вопрос
Хотя это правда, что некоторые рекурсивные конфигурации Nameserver (небрежно) называются «кэшированием», например, Rhel/Fedora/Centos, это действительно плохое имя для этой функции-потому что кэширование является ортогональным для рекурсии.
Теоретически, вы можете написать сервер имен, который выполняет рекурсивный сервис, но не кэширует его результаты.(Это было бы немного извращено, и я не знаю ни одного.) Наоборот, пакеты именных серверов, которые кэшируют, но ничего не знают о том, как повторять, и вместо этого выполняют менее убедительные альтернативные итерационные услуги, являются обычными:DNSMASQ, PDNSD и т. Д.......
Источник текста выше: http://linuxgazette.net/170/lan.html
Объясните, пожалуйста, что подразумевает автор под словами «кэширование ортогонально рекурсии»?
Решение
кеширование ортогонально рекурсии?
Кэширование не требует/подразумевает рекурсию.
Термин «ортогональный» следует интерпретировать в математическом смысле: «вещи не имеют ничего общего, т.е.отдельные понятия».
Другие советы
Из Википедии определение ортогонального:
Например, у автомобиля есть ортогональные компоненты и управления (например,Ускорение транспортного средства не влияет на ничего другого, кроме компонентов, связанных исключительно с функцией ускорения).
Автор говорит, что кэширование сервера имен не имеет ничего общего с тем, может ли он рекурсивно работать.
Это означает, что одна функция независима от другой.Или обе функции не влияют на другую.Поэтому их можно реализовать независимо
с точки зрения программирования, две ортогональные функции
do_work(bool feature1, bool feature2)
{
// do common work
if(feature1)
{ //... do this }
// do common work
if(feature2)
{ // do work }
// do common work
}
или:если они не ортогональны:
вам нужно сделать это:(и может быть случай, когда вы не можете объединить эти две функции.
do_work(bool feature1, bool feature2)
{
if(not feature1 and feature 2)
{ //... do this }
else if(feature1 and not feature2)
{ // do work }
// else impossible or different behavior
// etc..
}