2010-01-27 21 views
0

Bien qu'il soit vrai que certaines configurations récursif-nameserver sont (sloppily) appelé "cache", par exemple, par RHEL/Fedora/CentOS, qui est un nom vraiment mauvais pour cette fonction - parce que la mise en cache est orthogonale à la récursivité.La mise en cache est orthogonale à la récursion ... Expliquer?

Théoriquement, vous pouvez écrire un serveur de noms qui ne le service récursif mais ne cache pas ses résultats. (Ce serait un peu pervers, et je ne connaissez.) À l'inverse, nameserver paquets qui cache, mais ne savent rien sur la façon de récursivité et au lieu faire alternative moins utile itérative services sont communs: Dnsmasq , pdnsd etc ... ...

au-dessus de la source de texte: http://linuxgazette.net/170/lan.html

S'il vous plaît expliquer ce que l'auteur entend par "la mise en cache est orthogonale à récursion"?

Répondre

0

La mise en cache est orthogonale à la récursion?

La mise en cache ne nécessite pas/n'implique pas de récursivité. Le terme "orthogonal" est destiné à être interprété d'un sens mathématique a vaguement "les choses n'ont rien en commun, c'est-à-dire des concepts séparés".

+0

comment à la fois la mise en cache et récursion être utilisés ensemble pour des fins de recherche –

+0

? on peut théoriquement avoir une fonction/service qui utilise à la fois la mise en cache et la récursivité, comme un serveur de noms. Si rien n'est commun, je ne suis pas capable de comprendre comment ils sont utilisés ensemble? –

2

de Wikipédia de definition of orthogonal:

Par exemple, une voiture a orthogonales des composants et des contrôles (par exemple accélération du véhicule n'a pas influence toute autre chose, mais les composants impliqués exclusivement la fonction d'accélération).

L'auteur dit que le fait de mettre en cache un serveur de noms n'a rien à voir avec le fait qu'il puisse ou non être recourbé.

0

Cela signifie que c'est une caractéristique qui est indépendante de l'autre. Ou ont fonctionnalité Bothe n'ont aucune influence avec l'autre. Ils peuvent donc être mises en œuvre indépendamment

dans un point de vue de la programmation, deux caractéristiques orthogonales

do_work(bool feature1, bool feature2) 
{ 
    // do common work 

    if(feature1) 
    { //... do this } 

    // do common work 

    if(feature2) 
    { // do work } 

    // do common work 
} 

ou: si elles ne sont pas orthogonales:

vous devez faire ceci: (et peut-être cas où vous ne pouvez pas combiner les deux entités.

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.. 
}