CN103548020B - 用于由小树进行的大小可变分层名称的最长前缀匹配的方法和系统 - Google Patents
用于由小树进行的大小可变分层名称的最长前缀匹配的方法和系统 Download PDFInfo
- Publication number
- CN103548020B CN103548020B CN201280022871.2A CN201280022871A CN103548020B CN 103548020 B CN103548020 B CN 103548020B CN 201280022871 A CN201280022871 A CN 201280022871A CN 103548020 B CN103548020 B CN 103548020B
- Authority
- CN
- China
- Prior art keywords
- fragment
- tree
- little
- little tree
- stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种用于确定所请求资源的位置的方法,所述方法包括:接收针对资源的请求,其中所述资源由分层结构名称进行识别;将所述分层结构名称分解为多个片段;将所述多个片段中的每一者与多个两级小树的父节点进行比较,其中以并行方式执行所述多个片段中的至少两个片段与所述多个两级小树的父节点的比较,其中两级小树的组合包括网络资源的分层名称;以及确定所述分层结构名称的最长前缀匹配。
Description
技术领域
本发明涉及通信网络,尤其涉及用于由小树进行的大小可变分层名称的最长前缀匹配的方法和系统。
背景技术
在计算机系统中,存在两种用于定位/识别资源的广泛应用的方式:平坦名称(flat name)和分层名称(hierarchical name)。平坦名称由一个长度固定或可变的字符串构成,以唯一地表示一个资源。使用精确匹配来查找资源。平坦名称的一个实例为电气和电子工程师协会(IEEE)802.3中所描述的48位以太网媒体接入控制(MAC)地址,该实例以引用的方式并入本文中,如全文再现一般。并入了平坦名称的系统不能很好地按比例缩放,这是因为它们在所有可用名称用完之前只能增长到固定大小。分层名称被划分为不同区域,这些区域可以被视作子名称。并入了分层名称结构的系统被认为包含分层名称空间。分层名称空间可以被视作树,其中每一子名称表示来自根名称的树的分枝。因此,每个区域是其在总体名称空间内的自身的子名称空间。因此,每个对象必须仅在其子名称空间内具有唯一名称,以便在名称空间分层结构内具有明确的可解析的名称。因此,与平坦名称空间相反,并入了分层名称的系统可以按比例缩放为极大的网络。
发明内容
在一项实施例中,本发明包含一种用于确定所请求资源的位置的方法,所述方法包括:从客户端接收针对资源的请求,其中所述资源由分层结构名称进行识别;将所述分层结构名称分解为多个片段;将所述多个片段中的每一者与多个两级小树的父节点进行比较,其中以并行方式执行所述多个片段中的至少两个片段与所述多个两级小树的父节点的比较,其中两级小树的组合包括网络资源的分层名称;以及确定所述分层结构名称的最长前缀匹配。
在另一项实施例中,本发明包含一种用于由小树进行的最长前缀匹配的网络单元,所述网络单元包括:多个输入端口和输出端口;包括多个两级小树的小树数据存储装置,其中所述两级小树表示网络中分层命名的资源的片段;以及处理器,其耦接到所述多个输入端口和输出端口且耦接到所述小树数据存储装置,其中所述处理器用于将分层结构名称分解为多个片段,其中所述处理器进一步用于将所述多个片段中的每一者与所述多个两级小树的父节点进行比较,其中以并行方式执行所述多个片段中的至少两个片段与所述多个两级小树的父节点的比较,其中两级小树的组合包括网络资源的分层名称,且其中所述处理器进一步用于确定所述分层结构名称的最长前缀匹配。f
在另一项实施例中,本发明包含一种用于由两级小树进行的最长前缀匹配的系统,所述系统包括:最长前缀匹配(LPM)交换机;以及耦接 到所述LPM交换机的多个存储单元,其中所述LPM包括多个输入端口、多个输出端口、小树数据存储装置以及耦接到所述数据存储装置的处理器,其中所述多个输入端口用于从客户端接收请求,其中所述请求包括分层结构名称,其中所述小树数据存储装置包括多个两级小树,其中所述两级小树表示网络中分层命名的资源的片段,其中所述处理器用于将分层结构名称分解为多个片段,其中所述处理器进一步用于将所述多个片段中的每一者与所述多个两级小树的父节点进行比较,其中以并行方式执行所述多个片段中的至少两个片段与所述多个两级小树的父节点的比较,其中两级小树的组合包括网络资源的分层名称,且其中所述处理器进一步用于确定所述分层结构名称的最长前缀匹配。
从结合附图和所附权利要求书进行的以下详细描述将更清楚地理解这些和其他特征。
附图说明
为了更完整地理解本发明,现在参考以下结合附图和详细描述进行的简要描述,其中相同参考标号表示相同部分。
图1图示了大小可变的分层名称的两个实例。
图2描绘了树以及可以重新构建这一树的小树的一个实例。
图3是为资源标识符名称使用最长前缀匹配的一个实例。
图4是网络系统的一个实例,在该网络系统中可以实施由小树方法进行的最长前缀匹配。
图5是根据一项实施例的基于LPM模型硬件的图形处理单元(GPU)的方框图。
图6是根据一项实施例的使用小树执行最长前缀匹配的示例性方法的流程图。
图7描绘了依据一项实施例的说明小树查找方法的方框图。
图8是网络单元的一项实施例的示意图。
图9是内容识别网络单元的一项实施例的示意图。
图10是通用计算机系统的一项实施例的示意图。
具体实施方式
最初应理解,尽管下文提供一个或一个以上实施例的说明性实施方案,但可以使用任何数目的技术,不管是当前已知还是现有的,来实施所揭示的系统和/或方法。本发明决不应限于下文所说明的所述说明性实施方案、附图和技术,包含本文所说明并描述的示范性设计和实施方案,而是可在所附权利要求书的范围以及其均等物的完整范围内修改。
由于分层名称具有可缩放性且易于使用,因此与平坦名称相比,分层名称在小型计算机系统和大型计算机系统这两者中的使用都更加广泛。在这一命名方案中,资源被组织成分层结构。因此,分层名称可以由预定义的分隔符划分为多个级。互联网协议(IP)地址和文件系统文件名称是分层名称的两种典型实例。分层名称的查找方法可以是精确匹配,在这一情况中,规则集含有全部名称。查找方法也可以是级间片段的最长前缀匹配与级内片段的精确匹配的混合体。在这类情况中,规则集由于前缀所造成的名称聚合而含有较少的项。例如,在具有三个目录“/”、“/foo”、“/foo/bar”的文件系统中:文件名称“/fobar”的匹配结果为“/”;而“/foo/bar/test.out”的匹配结果为“/foo/bar”。尽管严格来说这并不是最长前缀匹配方法,但是为了简洁起见,在文档中使用名称最长前缀匹配(LPM)来表示这一混合方法。
本文中所揭示的是用于在分层结构的命名系统中使用小树来确定资源的位置,从而有效地处理大小可变分层名称的最长前缀匹配的系统、设备以及方法。所述资源可以是,例如网页、文件、应用程序、流视频、音频或其他内容。所述资源也可以是存储装置、服务器、交换机或任何其他网络装置。所述资源可以是任何装置、软件、固件、或可由分层名称在网络中寻址的内容。在一项实施例中,每个分层结构名称被划分为包括所 述分层结构名称的多个两级小树。这些小树存储在最长前缀匹配(LPM)交换机中的数据存储装置中,例如,转发索引库(forwarding index base)(FIB)。当LPM交换机从客户端接收到针对具有分层结构名称的资源的请求时,LPM交换机将接收到的分层结构名称分解为其组成两级小树(或片段)。将这些小树中的每一者以并行方式与所存储的小树进行比较。通过确定未找到匹配小树的第一个接收到的小树,来确定最长前缀匹配。随后,将最长前缀匹配确定为在未找到匹配小树的第一个小树之前具有匹配的小树的组合。然后,可以使用所述最长前缀匹配从FIB中获得所请求的资源所在的输出端口。接下来,可以经由所确定的输出端口来转发所述请求,进而对所请求的资源进行检索或操控。
大小可变的分层名称,与绝对文件路径和统一资源标识符(URI)一样,通常用于计算机系统中以对资源进行识别和/或定位。为了处理这些分层名称,可以使用一种混合查找方法,所述方法由用于级间片段的最长前缀匹配与用于级内片段的精确匹配组成。对于大型系统而言,分层名称的大小和数目这两者可以都变得过大而无法有效地进行处理。
所揭示的方法、系统以及设备利用两级树数据结构来缩小最长前缀匹配中的搜索空间。在给定某一规则集的情况下,形成了一束小树以对一个查找请求中最长的匹配前缀进行快速识别。所揭示的方法、系统以及设备可以应用于在内容导向网络中建立内容路由器,以及在本地网络存储系统中建立文件请求重定向器。
图1图示了大小可变的分层名称的两个实例。一个分层名称102为“/home/foo/bar.txt”,其中片段104为“home”、“foo”和“bar.txt”,且由“/”来表示级别分隔符106。另一个分层名称108为http://foobar.com/index.html,其中片段104为“foobar.com”和“index.html”,且再次由“/”来表示级别分隔符106。尽管使用“/”分隔符进行描绘,但是所属领域的一般技术人员将认识到用于表示片段之间的分隔符的其他方法。
在内容导向网络(CON)或本地网络存储与文件系统中,资源(网页、视频、图像、文件)大多使用分层名称来命名。由于所存储的内容以及用户体验的可变的大小,分层名称的大小通常是不固定的。对于典型的CON系统或分布式文件系统而言,可能存在几百万以上甚至几十亿以上的资源或聚合的前缀。所述大量的大小可变的分层名称使得这些系统很难在高速下查找资源,或者很难与部署在高性能路由器中的线路速率查找引擎相匹敌。
树是计算机科学中的基本数据结构。它是由一组链接节点组成的有序定向的树。树数据结构很好地表现出分层结构。两级小树是基本树中的一种,并且包括一个父级以及一个或多个子级。一个树可以表示为多个两级小树。当这些小树在分层结构中对齐时,它们可以通过相等连接操作(equal join operation)而形成原始树。
图2描绘了树200以及可以重新构建这一树200的小树220和230的一个实例。树200包括节点A、B、C、D、E和F。树200可以表示为第一分层结构级两级小树210和第二分层结构级两级小树220和230。第一分层结构级两级小树210包含节点A、B和C。第二分层结构级两级小树220包括节点B、D和E。第二分层结构级两级小树230包括节点C和F。第二分层结构级小树220和230的父节点是第一分层结构级小树210的子节点。尽管图2中的实例图示了仅仅包括小树的两个分层结构级的树210,但是分层结构级的数目可以大于二。因此,一般来说,小树的分层结构级的父节点为这一小树的前一个分层结构级的子节点。并且,尽管小树220和230中的每一者被图示为具有不超过两个的子节点,但是一般来说,每个小树可以具有两个以上的子节点。与术语“两级”相反,术语“分层结构级”可以用于区分树的分层结构中的小树的级别,而术语“两级”则指代每个小树包括一个父节点以及一个或多个子节点这一事实。
相等连接可以用于使用分层两级小树来重新构建树。以树200为 例,将父节点为“B”的第二分层结构级小树220固定到第一分层结构级小树210的子级“B”;并且将父节点为“C”的第二分层结构级树230固定到第一分层结构级小树210的子级“C”。从第一分层结构级到最末分层结构级重复这一过程,可以实现完整树的重新构建。
在大多数情况下,最长前缀匹配的前缀规则集可以由树表示。如果存在多个根,那么可以使用常见的虚拟节点来将一片森片连接到一棵巨树上。一些应用场景可以像文件系统的名称空间一样自然地映射到树。因此,前缀规则集可以被视为树的子集。
前缀规则集的这一巨树可以在不损失排序关系(ordering relationship)的情况下被分解为一束分层两级小树。将树分解为分层两级小树的过程简单直接:迭代地考虑树的每个节点,使该节点的全部子级和其自身成为两级小树。这一小树的分层结构由巨树中父节点的分层结构来确定。
借助于小树数据结构可以更有效地完成大小可变分层名称的最长前缀匹配。这种匹配可以在级别方面独立地完成。对于每个级别,将所述片段与每个级别的小树的父节点进行匹配。(由于表达受到压缩而造成的冲突)可能存在零个、一个或多个匹配。随后,也获取了父节点的子级的全部信息。一旦完成了级别方面的匹配或者找到一个不匹配,便使用相等连接来连接所收集的每级的结果,以在巨树内重新构建完整的路径。起始于根的第一不匹配指示了匹配的最长前缀的结尾。
由于每级的匹配彼此独立,因此可以并行地处理每级的匹配。这是为实现高效的最长前缀匹配程序而减少有问题的搜索空间的过程。所述整个过程可以在映射/降低模型中完成,或者在专用集成电路(ASIC)/现场可编程门阵列(FPGA)/具有用于硬件并行性的多核能力的通用微处理器中完成。然而,简单直接的级别方面的线性探测也是可行的。
图3为使用资源标识符名称“/A/B/H/sample.txt”300的最长前缀匹 配的实例。前缀规则集小树为第一分层级小树302和第二分层级小树304和306。基于所述前缀规则集小树,针对资源标识符名称300的前两个分层结构级(例如,“A”和“B”)识别出两个小树302和304;而资源标识符名称300的第三个分层结构级(例如,“H”)则产生不匹配。两个小树的相等连接产生匹配。因此,基于前缀规则集,“/A/B/H/sample.txt”的最长前缀匹配为“/A/B”。
大小可变分层名称的由小树进行的最长前缀匹配可以用于在内容导向网络(CON)或本地网络存储与文件系统中建立匹配系统。在一项实施例中,由小树方法进行的最长前缀匹配应用于在针对内容导向网络的内容路由器中建立兴趣匹配系统(interestmatching system)。在CON中,分层名称用于识别资源。它们的位置信息统一存储在内容路由器中。当需要资源时,用户向CON发出兴趣数据包(interest packet)。所述内容路由器捕获兴趣,将其置于待决兴趣表(PIT)中,然后基于兴趣匹配结果而将其转发到适当的目的地。
在另一项实施例中,由小树方法进行的最长前缀匹配应用于为本地网络存储与文件系统建立文件请求重定向器。在本地网络存储与文件系统中,文件请求重定向器部署于一些特殊的交换机中,以便将文件系统请求重定向到适当的文件服务器。用户可能不会意识到后台的服务器和特殊的交换机。一般的分布式文件系统请求或稍作修改的分布式文件系统请求由用户发送,用于文件系统操作。特殊的交换机捕捉所述请求,将文件请求与资源名称前缀进行比较,随后将所述请求转发到目的地。
在这些情况中,聚合的资源名称前缀的数目可能超过一百万,并且兴趣或文件系统请求的平均大小可能是几百字节。因此,由小树进行的最长前缀匹配可以有助于减少匹配搜索空间,继而减少了兴趣与文件系统请求与资源名称前缀的匹配工作量。
另外,由小树方法进行的最长前缀匹配可能不会造成重大开销。可 以通过后台运行、增量更新(incremental update)以及描影缓冲(shadow buffer)对建立前缀规则集小树的开销进行最小化和摊销。可以通过硬件和/或软件并行性对每级检查的开销进行最小化。
两级小树可以压缩相同的前缀规则,例如/A/B/C、/A/B/D和/A/B/E将仅仅达到三个小树:A/B、B/C、B/D、B/E。因此,九个字符变成八个。在实际的文件系统中,前缀规则大小在不使用小树的情况下可以减小到规则大小的大约1/4,此外,可以在具有大量核心的各种类型的硬件上完成独立的匹配,所述硬件例如,图形处理单元(GPU)或FPGA。与可比较的中央处理单元(CPU)上的性能相比,GPU上的性能可以加速约6倍。
由于大多数所揭示的LPM方法可以由能够完全实现并行查找的独立查找代理在每一分层级处独立地执行,因此所揭示的LPM方法可以提供高性能。这一特征不仅可以增大查找吞吐量,而且还可以缩短延迟时间。所揭示的LPM方法也可以提高存储效率。前缀规则集可以在不损失固有的父级子级关系信息,且具有非常少的空间成本的情况下被分解为分层两级小树(即,规则集压缩)。
图4图示了网络400,在网络400中可以实施由小树方法进行的最长前缀匹配。网络400可以包括多个LPM交换机402、多个客户端404、多个第一存储节点406,以及多个第二存储节点408。网络400的组件可以如图4所示进行布置。每个LPM交换机402可以包括转发信息库(forwarding information base)(FIB),例如FIB410。FIB410可以包括多个前缀和多个相关输出端口标识符。例如,FIB410包括前缀“/usr/stone/”、“/usr/stone/pic”、“/root/bin/X11”和“0100***”,其中对应的输出端口标识符如同所示为1、2和3。每个LPM交换机402也可以包括小树的数据存储装置(未图示),所述存储装置包括网络400中的各种资源名称。
第一存储节点406可以是可移植操作系统接口(POSIX)文件系统(FS),其负责POSIX FS中的一个或多个子树。例如,如图4中所示,第 一存储节点406中的一个可以负责子树“/usr/stone/pic”,且另一个第一存储节点406可以负责子树“/usr/stone/rootbin/X11/”。第二存储节点408可以是使用分布式哈希表(distributed hash table)(DHT)命名约定的存储节点。例如,第二存储节点408中的一个可以负责子树“01000XXX”。也可以使用其他类型的存储节点。在网络400中,LPM402可以支持由存储节点406、408利用的所有类型的命名约定。
客户端404可以向LPM交换机402中的一者发送针对资源的请求。例如,客户端404可以请求读取“/usr/stone/pic/1.jpg”。接收LPM交换机402可以接收该请求,并将资源标识符分解为该资源标识符的分层片段。分层片段可以与小树进行比较。可以按照并行方式来执行片段与小树的比较。通过从根部向上连接片段直到到达第一个找不到匹配的片段,来确定请求的最长前缀匹配。因此,读取“/usr/stone/pic/1.jpg”的请求的最长前缀匹配为“/usr/stone/pic”。LPM交换机402将“/usr/stone/pic”的项定位于FIB410中,并且确定输出端口为“2”。该请求由LPM交换机402经由输出端口“2”转发到负责子树“/usr/stone/pic”的第一存储节点408。所述LPM从第一存储节点408接收由“/usr/stone/pic/1.jpg”识别的资源,并将所述资源转发回请求客户端404。
图5为根据一项实施例的示例性的基于GPU的LPM模型硬件的方框图。处理组件500可以在任何一个LPM交换机402中实施。处理组件500可以包括数据包处理单元510,例如数据平台开发套件(Data Plane Development Kit)(DPDK)数据包处理单元,以及基于GPU的处理单元520。数据包处理单元510可以包括多个网络接口卡(NIC)512,所述多个网络接口卡用于从网络400内的其他组件中接收数据包,以及向所述其他组件发送数据包。数据包处理单元510也可以包括随机存取存储器(RAM)514以及至少一个中央处理单元(CPU)516。数据包处理单元510还可以包括耦接到NIC512并且耦接到CPU516的输入/输出集线器(IOH) 518。
基于GPU的处理单元520可以包括耦接到IOH518的IOH522。另外,基于GPU的处理单元520可以包括CPU524、RAM526和GPU528。如所描绘的,GPU528可以是,例如GTX480;然而,也可以利用其他类型的GPU。所请求的资源名称可以由IOH522从IOH518中获得。GPU528可以将资源名称切片或分解为其对应的片段,然后将这些片段与可以存储在RAM526中的小树进行比较。一旦获得了所请求资源的最长前缀匹配,GPU528便可以确定对应于该最长前缀匹配的NIC512的适当端口,并将端口值返回到数据包处理单元510。数据包处理单元510随后可以经由NIC512的适当端口将请求转发出去。处理组件500的组件可以如图所示进行布置。
图6为根据一项实施例的使用小树执行最长前缀匹配的示范性方法600的流程图。方法600可以在方框602处开始,此处LPM交换机可以接收所请求资源的分层名称。在方框604处,LPM交换机可以将分层名称切片或分解为其分层片段。在方框606处,LPM交换机将所述分层片段中的每一者与网络中资源树的小树进行比较。至少有一些比较可以按照实质上并行的方式来执行。在方框608处,LPM交换机确定了小树中不具有匹配的第一个分层片段。在方框610处,LPM交换机可以按照从根到缺少匹配的分层片段的前一个分层片段的顺序来连接匹配分层片段中的每一者,以构建最长前缀匹配。在方框612处,LPM交换机可以基于所述最长前缀匹配来确定用于转发所述请求的输出端口。LPM交换机可以咨询FIB以确定所述输出端口。在方框614处,LPM可以沿着所确定的输出端口向资源转发所述请求。如果所述请求是用于接收内容的请求,那么LPM可以在方框616处从存储节点接收所述内容,然后在方框618处将所接收到的内容转发到请求客户端,在此之后,方法600可以结束。
提供了小树分解、存储效率和小树查找的实例。就小树分解而言, 前缀规则集可以在不损失固有的父级子级关系信息,且具有非常少的空间成本的情况下被分解为分层两级小树(规则集压缩)。
此处是示出了如何获得存储效率的一些实例。在实际的文件系统中,我们可以具有类似表1中所描绘的这些项(例如10个项)的项。
表1
在进行精确的小树分解之后,这10个项变为如表2中所描绘的10个小树。
表2
对于具有大量文件的实际文件系统而言,这种分解可以将存储大小减小到原始存储大小的约1/2到约1/4,其中所述原始存储大小具有关于原始分层信息以及精确字串信息的完整信息。
另外,数据的存储相对有效,这是因为树或资源标识符可以使用小树进行重新构建。例如,我们可以使用两个小树/var/backup和backup/group.bak来重新构建/var/backups/group.bak。
图7描绘了依据一项实施例的说明用于小树查找的系统700的方框图。系统700可以包括切片单元702和聚合单元704。切片单元702可以 将所请求资源的分层名称切片为其组件片段或小树。在所描绘的实例中,所述片段包括四个小树706、708、710和712。系统700可以为小树706、708、710和712中的每一者执行查找例程714、716、718和720,并且将每个小树706、708、710和712的匹配指示或不匹配指示返回到722、724、726和728。聚合单元704可以将匹配小树聚合为最长前缀匹配,并返回结果730。
由于小树706、708、710和712变得彼此独立,因此可以如图7所示以并行方式执行独立匹配。回到这个实例,如果我们寻找/var/backups/ground.bak。我们首先将输入项切片为小树:var/backups和backups/ground.bak。随后查找引擎将使用这些小树独立地进行两次匹配,并返回这两者(如果可以找到匹配的话,否则返回零)。这样,最长前缀匹配应为第二小树,即/var/backups/ground.bak。每个小树返回的聚合可以按照连续的方式或并行的方式来完成,例如线性搜索、二进制搜索、k进制(k-ary)搜索或SIMD(单指令多数据)搜索等等。
如上文所示,所揭示的方法、系统和设备与其他查找方法互补。首先,所揭示的小树方法提供了如何将分层结构分解为并列子结构(小树),同时保留原始信息的一般战略。这一方法完全独立于使用算法来处理切片、查找或聚合的方法。第二,其他查找方法可以易于与所揭示的方法、系统和设备进行整合,以实现更高的存储效率或性能增益。
所揭示的方法可以与哈希映射(hash map)进行整合。例如,如果使用哈希密钥(hash key)/映射或其他压缩方法来表示小树,那么小树压缩可以进一步将存储大小减小为不使用小树且不进行压缩的存储大小的1/10或者更小。然而,压缩技术增大了冲突的可能性。表3中描绘了上述表2中的小树在使用哈希映射进行压缩之后的情况。
表3
作为另一实例,所揭示的方法、系统和设备也可以整合霍夫曼压缩(Huffmancompression)。为了简洁起见,我们可以构建如表4中所示的霍夫曼表。
表4
接着,表2中所示的小树变为如表5中所示。
表5
在使用小树算法的特殊情况中,可以形成虚拟ID(ghost ID)以消除节点名称的复制和错误的最长前缀匹配。在上面的章节中,描述了小树算法的理念和实施方案,以及与其他方法的整合。在下面的章节中,对小树算法中的一种特殊情况进行了检查,并且提供了处理这种情况的方法。为使其简洁且直观,使用大写字母A、B、C、D和E,而不是实际的目录或文件名称。表6中示出了分层名称。
表6
上文表6中的两个分层名称将变为表7中所示的三个小树。
表7
如果接收到具有“A/B/E”的输入请求,那么将其切片为小树“A/B”和“B/E”。显然,这两个小树都将出现在表7中然后,将返回“A/B/E”。然而,由于不存在具有分层名称“A/B/E”的资源,因此这是错误的最长前缀匹配。
如上文所示的错误的最长前缀匹配是由于表7中公共的“B”而造成的。为了消除由公共的“B”所造成的错误的最长前缀匹配问题,定义了虚拟ID(例如,0、1、2等)来区分这两个“B”。在引入虚拟ID之后,表7中的小树变为如表8中所示,其中表8描绘具有虚拟ID的小树。
表8
接着,表8中的小树将返回“1.0”和“1.1”。小数点之后的数字为虚拟ID。由于这两个虚拟ID不相同,因此聚合器将仅仅返回一个,即最长前缀匹配将为“A/B”。如果没有虚拟ID,那么处理方法将与上文所述的相同。存在很多将虚拟ID分配给每个小树方法。一个实施方案使用了哈希映射。
图8描绘了网络单元800的一项实施例,该网络单元可以是经由网络、云或视频转码系统传输和处理数据的任一装置,例如LPM交换机402。网络单元800可以包括一个或多个输入端口或单元810,所述输入端口或单元耦接到用于从其他网络单元或组件接收信号、帧和/或数据(例如,视 频文件/片段)的接收器(Rx)812。网络单元800可以包括逻辑单元820,该逻辑单元用上述小树方法和系统支持或实施LPM。逻辑单元820可以使用硬件、软件或这两者来实施。网络单元800还可以包括一个或多个输出端口或单元830,所述输出端口或单元耦接到用于向其他网络单元或组件发射信号、帧和/或数据(例如,视频文件/片段)的发射器(Tx)832。网络单元800的组件可以如图8所示进行布置。
图9描绘了网络单元900的一项实施例,该网络单元可以为经由网络传输和处理数据的任一装置。例如,网络单元900可以位于网络400中的LPM交换机402或任何节点中,或者位于上述方案中的任何节点中。网络单元900(即内容路由器)也可以用于使用上述的小树系统和方法来实施或支持LPM。网络单元900可以包括一个或多个输入端口或单元910,所述输入端口或单元耦接到接收器(RX)912,以从其他网络组件接收信号和帧/数据。网络单元900可以包括内容识别单元920,用于确定将内容发送到哪些网络组件。内容识别单元920可以使用硬件、软件或这两者来实施。网络单元900还可以包括耦接到发射器(TX)930的一个或多个输出端口或单元932,以将信号和帧/数据传输到其他网络组件。接收器912、内容识别单元920和发射器932也可以用于实施至少一些所揭示的方案和方法,其可以基于硬件、软件或这两者。网络单元900的组件可以如图9所示进行布置。
内容识别单元920也可以包括可编程内容转发平面块928,以及可以耦接到所述可编程内容转发平面块928的一个或多个存储块922。可编程内容转发平面块928可以用于实施内容转发和处理功能,例如在应用层或L3处,其中可以基于内容名称或前缀对内容进行转发,并且可能基于将内容映射到网络流量的其他内容相关信息而进行转发。此类映射信息可以保存在内容识别单元920或网络单元900中的内容表中。可编程内容转发平面块928可以解译用户的内容请求,并相应地例如基于元数据和/或内 容名称从网络或其他内容路由器中获取内容,并且可以例如暂时地将该内容存储在存储块922中。可编程内容转发平面块928随后可以将所缓存的内容转发给用户。可编程内容转发平面块928可以使用软件、硬件或这两者实施,并且可以在IP层或L2以上的层级中操作。存储块922可以包含用于暂时地存储内容,诸如订阅者所请求的内容的缓冲存储器924。另外,存储块922可以包含用于相对持久地存储内容,诸如发布者所提交的内容的长期存储装置926。例如,缓冲存储器924和长期存储装置926可以包括动态随机存取存储器(DRAM)、固态驱动器(SSD)、硬盘,或这些器件的组合。
上述网络组件和装置可以在任一通用网络组件上实施,例如特定的计算机或网络组件,所述计算机或网络组件具有足够的处理能力、存储资源和网络吞吐能力来处理其上的必要工作量。图10描绘了典型的通用网络组件1000,其适用于实施本文所揭示的组件的一项或多项实施例。网络组件1000包含处理器1002(可以称为中央处理器单元或CPU),所述处理器与包含以下项的存储装置通信:辅助存储装置1004、只读存储器(ROM)1006、随机存取存储器(RAM)1008、输入/输出(I/O)装置1010,以及网络连接装置1012。处理器1002可以作为一个或多个CPU芯片实施,或者可以是一个或多个ASIC或数字信号处理器(DSP)的一部分。
辅助存储装置1004通常由一个或多个磁盘驱动器或磁带驱动器组成,并且用于数据的非易失性存储,并且,如果RAM1008的大小不足以保存所有工作数据,那么该辅助存储装置还用作溢流数据存储装置。辅助存储装置1004可用于存储程序,当选择此些程序来执行时,所述程序被加载到RAM1008中。ROM1006用于存储在程序执行期间读取的指令以及可能的数据。ROM1006为非易失性存储装置,其存储容量相对于辅助存储装置1004的较大存储容量而言通常较小。RAM1008用于存储易失性数据,并且可能用于存储指令。对ROM1006和RAM1008两者的存取通 常比对辅助存储装置1004的存取快。
揭示至少一个实施例,且所属领域的技术人员对所述实施例和/或所述实施例的特征的变化、组合和/或修改在本发明的范围内。因组合、整合和/或省略所述实施例的特征而产生的替代实施例也在本发明的范围内。在明确陈述数值范围或限制的情况下,应将此些表达范围或限制理解为包含属于明确陈述的范围或限制内的类似量值的重复范围或限制(例如,从约1到约10包含2、3、4等;大于0.10包含0.11、0.12、0.13等)。举例来说,每当揭示具有下限Rl和上限Ru的数值范围时,具体是揭示属于所述范围的任何数字。具体而言,特别揭示所述范围内的以下数字:R=Rl+k*(Ru-Rl),其中k为从1%到100%范围内以1%递增的变量,即,k为1%、2%、3%、4%、7%、......、70%、71%、72%、......、95%、96%、97%、98%、99%或100%。Moreover,any numerical range defined by two R numbers as defined in the aboveis also specifically disclosed.除非另有说明,否则使用术语“约/大约”是指随后数字的±10%。相对于权利要求的任一元件使用术语“任选地”意味着所述元件是需要的,或者所述元件是不需要的,两种替代方案均在所述权利要求的范围内。使用例如包括、包含和具有等较广术语应被理解为提供对例如由......组成、基本上由......组成以及大体上由......组成等较窄术语的支持。因此,保护范围不受上文所陈述的描述限制,而是由所附权利要求书界定,所述范围包含所附权利要求书的标的物的所有均等物。每一和每个权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的实施例。所述揭示内容中的参考的论述并不是承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文中,其提供补充本发明的示范性、程序性或其他细节。
虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精 神或范围的情况下,所揭示的系统和方法可以许多其他特定形式来体现。本发明的实例应被视为说明性的而非限制性的,且本发明不限于本文所给出的细节。举例来说,各种元件或组件可在另一系统中组合或整合,或某些特征可省略或不实施。
另外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可与其他系统、模块、技术或方法组合或整合。展示或论述为彼此耦接或直接耦接或通信的其他项目也可以电方式、机械方式或其他方式通过某一接口、装置或中间组件间接地耦接或通信。改变、替代和更改的其他实例可由所属领域的技术人员确定,且可在不脱离本文所揭示的精神和范围的情况下作出。
Claims (17)
1.一种用于确定所请求资源的位置的方法,所述方法包括:
从客户端接收针对资源的请求,其中所述资源由分层结构名称进行识别;
将所述分层结构名称分解为多个片段;
将所述多个片段中的每一者与多个两级小树的父节点进行比较,其中以并行方式执行所述多个片段中的至少两个片段与所述多个两级小树的父节点的比较,其中两级小树的组合包括网络资源的分层名称;以及
确定所述分层结构名称的最长前缀匹配;
其中确定所述分层结构名称的所述最长前缀匹配包括:
从所述多个片段的根开始,确定所述多个片段与多个小树的第一不匹配;
将所述第一不匹配识别为所述分层结构名称的匹配的最长前缀的结束;以及
使用所述多个小树中的匹配的小树按照从根到所述第一不匹配的分层片段的前一个分层片段的顺序来连接匹配分层片段中的每一个,来构建最长前缀匹配。
2.根据权利要求1所述的方法,其中所述多个小树包括分层目录名称的小树片段的哈希表。
3.根据权利要求2所述的方法,其进一步包括对所述多个片段进行散列。
4.根据权利要求1所述的方法,其中所述多个小树包括虚拟标识符(ID),以对出现在所述多个两级小树中的两个不同小树中的公共节点名称进行区分。
5.根据权利要求1所述的方法,其进一步包括将霍夫曼算法应用于所述多个片段。
6.根据权利要求1所述的方法,其进一步包括确定对应于所述最长前缀匹配的输出端口。
7.根据权利要求6所述的方法,其进一步包括经由识别的输出端口转发所述请求。
8.根据权利要求7所述的方法,其中所述请求包括对内容的请求,且进一步包括:
从存储节点接收所述内容;以及
将所述内容转发到所述客户端。
9.一种用于使用小树进行的最长前缀匹配的网络单元,所述网络单元包括:
多个输入端口和输出端口;
小树数据存储装置,其包括多个两级小树,其中所述两级小树表示网络中分层命名的资源的片段;以及
处理器,其耦接到所述多个输入端口和输出端口,且耦接到所述小树数据存储装置,其中所述处理器用于将分层结构名称分解为多个片段,其中所述处理器进一步用于将所述多个片段中的每一者与多个所述两级小树的父节点进行比较,其中以并行方式执行所述多个片段中的至少两个片段与多个所述两级小树的父节点的比较,其中两级小树的组合包括网络资源的分层名称;其中所述处理器进一步用于:
从所述多个片段的根开始,确定所述多个片段与多个小树的第一不匹配;
将所述第一不匹配识别为所述分层结构名称的匹配的最长前缀的结束;以及
使用所述多个小树中的匹配的小树按照从根到所述第一不匹配的分层片段的前一个分层片段的顺序来连接匹配分层片段中的每一个,来构建最长前缀匹配。
10.根据权利要求9所述的网络单元,其中所述处理器包括图形处理单元。
11.根据权利要求9所述的网络单元,其进一步包括转发信息库(FIB),且其中所述处理器进一步用于确定所述FIB中的对应于所述最长前缀匹配的输出端口。
12.根据权利要求11所述的网络单元,其中所述处理器进一步用于经由所述所识别的输出端口转发请求。
13.根据权利要求12所述的网络单元,其中所述请求包括对内容的请求,并且所述输入端口用于从存储节点接收所述内容,且所述输出端口用于将所述内容转发到客户端。
14.一种用于使用两级小树进行的最长前缀匹配的系统,所述系统包括:
最长前缀匹配(LPM)交换机;以及
多个存储单元,所述存储单元耦接到所述LPM交换机,
其中所述LPM包括多个输入端口、多个输出端口、小树数据存储装置以及耦接到所述数据存储装置的处理器,
其中所述多个输入端口用于从客户端接收请求,其中所述请求包括分层结构名称,
其中所述小树数据存储装置包括多个两级小树,其中所述两级小树表示网络中分层命名的资源的片段,
其中所述处理器用于将分层结构名称分解为多个片段,
其中所述处理器进一步用于将所述多个片段中的每一者与所述多个两级小树的父节点进行比较,其中以并行方式执行所述多个片段中的至少两个片段与所述多个两级小树的父节点的比较,其中两级小树的组合包括网络资源的分层名称,其中所述处理器进一步用于:
从所述多个片段的根开始,确定所述多个片段与多个小树的第一不匹配;
将所述第一不匹配识别为所述分层结构名称的经匹配的最长前缀的结束;以及
使用所述多个小树中的经匹配的小树按照从根到所述第一不匹配的分层片段的前一个分层片段的顺序来连接匹配分层片段中的每一个,来构建最长前缀匹配。
15.根据权利要求14所述的系统,其中所述LPM进一步包括转发信息库(FIB),且其中所述处理器进一步用于确定所述FIB中的对应于所述最长前缀匹配的输出端口。
16.根据权利要求15所述的系统,其中所述处理器进一步用于经由所述所识别的输出端口转发所述请求。
17.根据权利要求16所述的系统,其中所述请求包括对内容的请求,并且所述输入端口用于从存储节点接收所述内容,且所述输出端口用于将所述内容转发到所述客户端。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161485201P | 2011-05-12 | 2011-05-12 | |
US61/485,201 | 2011-05-12 | ||
PCT/US2012/037568 WO2012155065A2 (en) | 2011-05-12 | 2012-05-11 | Method and system for longest prefix matching of variable-sized hierarchical names by treelets |
US13/469,528 | 2012-05-11 | ||
US13/469,528 US8972453B2 (en) | 2011-05-12 | 2012-05-11 | Method and system for longest prefix matching of variable-sized hierarchical names by treelets |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103548020A CN103548020A (zh) | 2014-01-29 |
CN103548020B true CN103548020B (zh) | 2017-06-27 |
Family
ID=46598918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280022871.2A Active CN103548020B (zh) | 2011-05-12 | 2012-05-11 | 用于由小树进行的大小可变分层名称的最长前缀匹配的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8972453B2 (zh) |
EP (1) | EP2702514B1 (zh) |
CN (1) | CN103548020B (zh) |
WO (1) | WO2012155065A2 (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101437071B (zh) * | 2007-11-15 | 2011-09-28 | 华为技术有限公司 | 终端设备管理树管理对象实例化的方法及设备 |
KR101798402B1 (ko) * | 2011-06-02 | 2017-12-22 | 삼성전자주식회사 | 계층적 이름 구조에 기반한 네트워크에서 컨텐츠 요청자 및 컨텐츠 응답자의 통신 방법 및 장치 |
WO2013000165A1 (en) * | 2011-06-30 | 2013-01-03 | France Telecom Research & Development Beijing Company Limited | Data routing |
US9237190B2 (en) * | 2012-04-18 | 2016-01-12 | Samsung Electronics Co., Ltd. | Node and method for generating shortened name robust against change in hierarchical name in content-centric network (CCN) |
CN103874157B (zh) | 2012-12-12 | 2017-07-07 | 华为技术有限公司 | 路由转发、建立路由表、和获取内容的方法及其装置 |
US9172743B2 (en) * | 2012-12-31 | 2015-10-27 | Futurewei Technologies, Inc. | Scalable storage systems with longest prefix matching switches |
KR101474320B1 (ko) * | 2013-02-04 | 2014-12-18 | 아주대학교산학협력단 | 위치기반 컨텐츠를 위한 위치기반 컨텐츠 중심 네트워킹 방법 |
US9112833B2 (en) | 2013-05-01 | 2015-08-18 | Red Hat, Inc. | Compression of content paths in a digital certificate |
US9185120B2 (en) * | 2013-05-23 | 2015-11-10 | Palo Alto Research Center Incorporated | Method and system for mitigating interest flooding attacks in content-centric networks |
KR102052520B1 (ko) * | 2013-06-11 | 2019-12-05 | 삼성전자주식회사 | 컨텐츠 중심 네트워크에서 컨텐츠의 이동성을 지원하기 위한 노드의 통신 방법 및 노드 |
KR101430882B1 (ko) | 2013-06-25 | 2014-08-18 | 경희대학교 산학협력단 | 콘텐츠 중심 네트워크에서 콘텐츠 제공 방법 |
US9547731B2 (en) * | 2013-07-12 | 2017-01-17 | Blackberry Limited | Merging sets of data objects for display |
CN103593466B (zh) * | 2013-11-26 | 2017-08-04 | 优视科技有限公司 | 网页加载方法及客户端和服务器 |
US9992281B2 (en) * | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
US9455835B2 (en) * | 2014-05-23 | 2016-09-27 | Palo Alto Research Center Incorporated | System and method for circular link resolution with hash-based names in content-centric networks |
US9276751B2 (en) * | 2014-05-28 | 2016-03-01 | Palo Alto Research Center Incorporated | System and method for circular link resolution with computable hash-based names in content-centric networks |
US9536059B2 (en) * | 2014-12-15 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and system for verifying renamed content using manifests in a content centric network |
CN104506431B (zh) * | 2014-12-25 | 2017-11-17 | 中国科学院声学研究所 | 一种内容中心网络的内容查询方法,及路由器和节点 |
US10965459B2 (en) | 2015-03-13 | 2021-03-30 | Fornetix Llc | Server-client key escrow for applied key management system and process |
US10001930B2 (en) * | 2015-12-02 | 2018-06-19 | Macau University Of Science And Technology | High-efficient packet I/O engine for commodity PC |
AU2015101807A4 (en) * | 2015-12-02 | 2016-01-28 | Macau University Of Science And Technology | Packetusher: Accelerating Computer-Intensive Packet Processing |
US10931653B2 (en) * | 2016-02-26 | 2021-02-23 | Fornetix Llc | System and method for hierarchy manipulation in an encryption key management system |
US10244071B2 (en) * | 2016-11-21 | 2019-03-26 | Intel Corporation | Data management in an edge network |
CN107749893B (zh) * | 2017-11-09 | 2021-03-30 | 北京精一强远科技有限公司 | 一种共享文件系统中实现快速接收和储存数据的方法 |
US10397115B1 (en) * | 2018-04-09 | 2019-08-27 | Cisco Technology, Inc. | Longest prefix matching providing packet processing and/or memory efficiencies in processing of packets |
US10831720B2 (en) * | 2018-05-31 | 2020-11-10 | Microsoft Technology Licensing, Llc | Cloud storage distributed file system |
US11727057B2 (en) | 2019-09-04 | 2023-08-15 | Samsung Electronics Co., Ltd. | Network key value indexing design |
CN112804153A (zh) * | 2020-12-30 | 2021-05-14 | 中国科学院计算机网络信息中心 | 一种面向gpu加速ip查找的更新方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604561A (zh) * | 2003-09-30 | 2005-04-06 | 国际商业机器公司 | 对分布树中节点数据分组传输的无状态组通信与修复方法 |
CN101211346A (zh) * | 2006-12-30 | 2008-07-02 | 上海意渊信息科技有限公司 | 一种优化存储器性能的方法 |
CN101820386A (zh) * | 2009-01-30 | 2010-09-01 | 帕洛阿尔托研究中心公司 | 用于促进在以内容为中心的网络中转发分组的方法和系统 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410691A (en) * | 1990-05-07 | 1995-04-25 | Next Computer, Inc. | Method and apparatus for providing a network configuration database |
US5819275A (en) * | 1995-06-07 | 1998-10-06 | Trusted Information Systems, Inc. | System and method for superimposing attributes on hierarchically organized file systems |
US5706510A (en) * | 1996-03-15 | 1998-01-06 | Hewlett-Packard Company | Zymbolic history management system |
US6041324A (en) * | 1997-11-17 | 2000-03-21 | International Business Machines Corporation | System and method for identifying valid portion of computer resource identifier |
US6947931B1 (en) | 2000-04-06 | 2005-09-20 | International Business Machines Corporation | Longest prefix match (LPM) algorithm implementation for a network processor |
US7114008B2 (en) * | 2000-06-23 | 2006-09-26 | Cloudshield Technologies, Inc. | Edge adapter architecture apparatus and method |
US6792423B1 (en) | 2000-11-28 | 2004-09-14 | International Business Machines Corporation | Hybrid longest prefix match and fixed match searches |
US7146429B2 (en) * | 2001-03-16 | 2006-12-05 | The Aerospace Corporation | Cooperative adaptive web caching routing and forwarding web content data requesting method |
US7054855B2 (en) * | 2001-07-03 | 2006-05-30 | International Business Machines Corporation | Method and system for performing a pattern match search for text strings |
US6667700B1 (en) * | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US6947950B2 (en) * | 2002-11-06 | 2005-09-20 | Oracle International Corporation | Techniques for managing multiple hierarchies of data from a single interface |
US7720846B1 (en) * | 2003-02-04 | 2010-05-18 | Lexisnexis Risk Data Management, Inc. | System and method of using ghost identifiers in a database |
US7031971B1 (en) * | 2003-03-21 | 2006-04-18 | Microsoft Corporation | Lock-free handle resolution |
US7539771B2 (en) * | 2003-06-06 | 2009-05-26 | Microsoft Corporation | Organizational locality in prefix-based structured peer-to-peer overlays |
US7602785B2 (en) | 2004-02-09 | 2009-10-13 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
US7277885B2 (en) * | 2004-02-18 | 2007-10-02 | Microsoft Corporation | Systems and methods for filter processing using hierarchical data and data structures |
US7363317B2 (en) * | 2005-02-15 | 2008-04-22 | International Business Machines Corporation | Memory efficient XML shredding with partial commit |
US9264355B2 (en) * | 2006-09-05 | 2016-02-16 | Telefonaktiebolaget L M Ericsson (Publ) | Name-address management and routing in communication networks |
US7769779B2 (en) * | 2006-11-02 | 2010-08-03 | Microsoft Corporation | Reverse name mappings in restricted namespace environments |
US8355324B2 (en) * | 2007-03-01 | 2013-01-15 | Alcatel Lucent | Method and apparatus for filtering data packets |
US8402147B2 (en) * | 2007-04-10 | 2013-03-19 | Apertio Limited | Nomadic subscriber data system |
US7664866B2 (en) * | 2007-04-10 | 2010-02-16 | Apertio Limited | Sub-tree access control in network architectures |
US7849156B2 (en) * | 2007-06-04 | 2010-12-07 | International Business Machines Corporation | Method, apparatus and computer program product for discovering and prioritizing patterns of component usage in a virtual application container for enhancing prefetching |
WO2009149063A1 (en) * | 2008-06-02 | 2009-12-10 | Azuki Systems, Inc. | Media mashup system |
US8243735B2 (en) | 2009-01-30 | 2012-08-14 | Palo Alto Research Center Incorporated | System for forwarding packets with hierarchically structured variable-length identifiers using an exact-match lookup engine |
US8160069B2 (en) * | 2009-01-30 | 2012-04-17 | Palo Alto Research Center Incorporated | System for forwarding a packet with a hierarchically structured variable-length identifier |
CN102035815B (zh) * | 2009-09-29 | 2013-04-24 | 华为技术有限公司 | 数据获取方法、接入节点和系统 |
US8326839B2 (en) * | 2009-11-09 | 2012-12-04 | Oracle International Corporation | Efficient file access in a large repository using a two-level cache |
-
2012
- 2012-05-11 EP EP12741127.0A patent/EP2702514B1/en active Active
- 2012-05-11 WO PCT/US2012/037568 patent/WO2012155065A2/en active Application Filing
- 2012-05-11 US US13/469,528 patent/US8972453B2/en active Active
- 2012-05-11 CN CN201280022871.2A patent/CN103548020B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604561A (zh) * | 2003-09-30 | 2005-04-06 | 国际商业机器公司 | 对分布树中节点数据分组传输的无状态组通信与修复方法 |
CN101211346A (zh) * | 2006-12-30 | 2008-07-02 | 上海意渊信息科技有限公司 | 一种优化存储器性能的方法 |
CN101820386A (zh) * | 2009-01-30 | 2010-09-01 | 帕洛阿尔托研究中心公司 | 用于促进在以内容为中心的网络中转发分组的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2702514A2 (en) | 2014-03-05 |
EP2702514B1 (en) | 2017-02-22 |
US20120290696A1 (en) | 2012-11-15 |
US8972453B2 (en) | 2015-03-03 |
WO2012155065A3 (en) | 2013-04-11 |
WO2012155065A2 (en) | 2012-11-15 |
CN103548020A (zh) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103548020B (zh) | 用于由小树进行的大小可变分层名称的最长前缀匹配的方法和系统 | |
Waldvogel et al. | Scalable high-speed prefix matching | |
CN101673307B (zh) | 空间数据索引方法及系统 | |
US20150039629A1 (en) | Method for storing and searching tagged content items in a distributed system | |
CN107368527B (zh) | 基于数据流的多属性索引方法 | |
CN110737663B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN102332030A (zh) | 用于分布式键-值存储系统的数据存储、管理和查询方法及系统 | |
CN103299297A (zh) | 文件目录存储方法、检索方法和设备 | |
CN102045412B (zh) | IPv6地址前缀压缩存储方法及设备 | |
CN103678550A (zh) | 一种基于动态索引结构的海量数据实时查询方法 | |
CN106484821A (zh) | 一种云计算架构下的混合云存储方法 | |
Le et al. | Memory-efficient and scalable virtual routers using FPGA | |
CN103002061A (zh) | 一种长域名与短域名互相转化的方法及装置 | |
US9600538B2 (en) | Systems and methods for managing large volumes of data in a digital earth environment | |
Byers et al. | Fast approximate reconciliation of set differences | |
CN102378407A (zh) | 一种物联网中的对象名字解析系统及其解析方法 | |
CN113590348B (zh) | 基于树状结构的参数传递方法、装置、设备及介质 | |
Kniesburges et al. | Hashed Patricia Trie: Efficient longest prefix matching in peer-to-peer systems | |
Dai et al. | CONSERT: Constructing optimal name-based routing tables | |
Chazapis et al. | Replica-aware, multi-dimensional range queries in distributed hash tables | |
Erdem | Pipelined hierarchical architecture for high performance packet classification | |
Villaça et al. | HCube: Routing and similarity search in data centers | |
Lu et al. | Content sharing graphs for deduplication-enabled storage systems | |
Ghanbari et al. | Distributed search of logical expressions in dht storage systems | |
Dan et al. | A range query model based on DHT in P2P system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |