【问题标题】:Caching is orthogonal to recursion... Explain? [closed]缓存与递归正交......解释一下? [关闭]
【发布时间】:2010-01-27 14:47:51
【问题描述】:

虽然确实有些 递归名称服务器配置 被(草率地)称为 “缓存”,例如,通过 RHEL/Fedora/CentOS,真的是 该功能的坏名声-因为 缓存与递归正交。

理论上,你可以写一个 执行递归服务的名称服务器 但不缓存其结果。 (那 会有点反常,我不 知道任何。)相反,名称服务器 缓存但什么都不知道的包 关于如何递归而不是做 不太有用的替代迭代 服务很常见:dnsmasq、pdnsd、 等等…………

以上文字来源:http://linuxgazette.net/170/lan.html

请解释一下作者所说的“缓存与递归正交”是什么意思?

【问题讨论】:

    标签: c networking caching recursion nameservers


    【解决方案1】:

    来自维基百科的definition of orthogonal:

    例如,一辆汽车有正交 组件和控件(例如 加速车辆不 影响除 组件只涉及 加速函数)。

    作者是说nameserver是否缓存与能否递归无关。

    【讨论】:

      【解决方案2】:

      缓存与递归正交?

      缓存不需要/暗示递归。

      “正交”一词的意思是从数学意义上松散地解释为“事物没有共同点,即独立的概念”。

      【讨论】:

      • 如何同时使用缓存和递归进行搜索?
      • 理论上我们可以拥有一个同时使用缓存和递归的函数/服务,例如名称服务器。如果没有什么是共同的,我无法理解它们是如何一起使用的?
      【解决方案3】:

      这意味着它是一个功能独立于另一个功能。或者有这两个特征对另一个没有影响。所以它们可以独立实现

      从编程的角度来看,两个正交特征

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-29
        • 2021-10-30
        • 1970-01-01
        • 2022-09-17
        • 2021-09-12
        • 2022-01-18
        • 2013-09-01
        • 2013-05-21
        相关资源
        最近更新 更多