专利名称:键/值存储器的集成分级查询处理的系统结构的制作方法
技术领域:
本发明大体涉及网络通信,确切地说,涉及键/值存储器的集成分级查询处理。
背景技术:
网络聚集了计算机、装置和其他资源,通过通信信道互联。网络简化了网络中计算机用户和装置之间的通信,并让用户能够分享网络中的计算机、装置和其他资源。企业可将 网络用于各种用途,包括,例如数据管理以及文件和存储系统。例如,某些当前网络包括向客户提供诸如按需输出的内容等内容的内容网络。在基于内容路由的网络中,内容路由器负责将用户请求和内容路由到正确的接收者。在基于内容路由的网络中,作为内容传送框架的一部分的每个实体都分配有在域范围内唯一的名称。这些实体可包括诸如视频剪辑或网页等数据内容,和/或诸如路由器、转换器或服务器等基础设施兀素。内容路由器使用名称如缀(可为完整的内容名称或内容名称的正确如缀)来在内容网络中对内容数据包进行路由。因此,与有限的互联网协议(IP)前缀空间相比,路由判定空间扩展成实质较大的名称空间。基于内容路由的网络也可将数据内容存储在,例如一个或多个内容服务器中。
发明内容
在一项实施例中,本发明包括一种键/值存储器,所述键/值存储器包括第一层存储装置,其经配置以存储关于多个值的多个键的信息,但不存储所述值;以及第二层存储装置,其耦接到所述第一层存储装置,且经配置以存储与所述键关联的值,但不存储所述键,其中与所述第二层存储装置相比,所述第一层存储装置具有较短的等待时间和较大的吞吐量,且其中与所述第一层存储装置相比,所述第二层存储装置具有较大的容量。在另一项实施例中,本发明包括一种网络部件,所述网络部件包括接收器,其经配置以接收多个命中查询和非命中查询;第一层存储介质,其经配置以存储多个值的多个键;第二层存储介质,其经配置以存储值;以及逻辑电路,其经配置以在所述第一层存储介质和所述第二层存储介质上处理所述命中查询,且仅在所述第一层存储介质上处理所述非命中查询,而不访问所述第二存储介质。在第三方面中,本发明包括一种方法,所述方法包括在第一层存储装置接收键/值操作请求;如果所述键/值操作请求有效,将所述键/值操作请求中的键映射到存储在第二层存储装置中的定位器;以及如果所述键具有相应的定位器,将所述定位器映射到第三层存储装置中的值。
通过结合附图
和所附权利要求书进行的以下详细描述将更清楚地理解这些和其它特征。附图简沭为了更透彻地理解本发明,现在结合附图和详细说明参考以下简要说明,在附图和详细说明中相同参考标号表示相同部分。图I是分级查询处理方案的一项实施例的示意图。图2是键/值存储结构的一项实施例的示意图。图3是键/值存储结构的另一项实施例的不意图。图4是键/值存储结构的另一项实施例的示意图。
图5是分级查询处理方法的一项实施例的流程图。图6是发射器/接收器单元的一项实施例的示意图。图7是通用计算机系统的一项实施例的示意图。
具体实施例方式首先应理解,尽管下文提供了一项或多项实施例的说明性实施方案,但可使用任何数量的技术,不管是当前已知、未知还是现有的,来实施所公开的系统和/或方法。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其均等物的完整范围内修改。数据内容可作为值存储在网络中,例如,存储在值存储器中。与内容或值关联的键可用于对值存储器中的值编制索引(例如,在将值添加到值存储器后),或者从值存储器中检索关联的值。键也可存储在网络中,例如,存储在键存储器中。在本文中,相结合的键存储器与值存储器称为键/值存储器,可用于存储并维持键/值条目。键/值存储器可经配置以支持针对键/值条目的多种操作,包括插入、删除和查询。在设计键/值存储器时,性能和容量是两项重要的考虑因素。由于查询操作可能是键/值存储器中使用更为频繁的操作,因此性能可描述为可完成查询的时间长度,也称为等待时间。性能也可描述为可在特定时间段内完成的查询数量,称为吞吐量。键/值存储器的容量可通过可在键/值存储器中存储或处理的条目的数量进行测量。例如,基于硬件和成本方面的限制,同时提高性能和容量可能较为困难。例如,针对性能优化的典型键/值存储器可能具有较为不理想的百万个条目量级的容量(例如,具体取决于条目大小)。针对容量优化的典型键/值存储器可能具有较为不理想的毫秒量级的等待时间,以及每秒千个查询量级的吞吐量。本文所公开的是一种系统和方法,用于提供相较于当前系统,性能和容量可得到改进的键/值存储器。所述键/值存储器可实施为,例如独立服务,或实施为诸如数据管理系统、文件和存储系统,或基于内容路由的网络等较大的系统或网络的一部分。所述系统可基于键/值存储结构,其可支持等待时间相对较短、吞吐量较大,以及容量较大的键/值存储器。所述键/值存储结构可支持分级查询处理以及集成硬件和软件功能,从而同时改进容量和性能。分级查询处理可通过将存储的键的位置与相应的存储的值解除关联来实现。图I所示是可在网络中实施的分级查询处理方案100的一项实施例。分级查询处理方案100可处理两种类型的查询请求命中查询和非命中查询。命中查询可包括对可存储在值存储器中的内容或值的查询请求,因此可成功执行。非命中查询可包括对无法存储在值存储器中的内容或值的无效查询和/或查询请求,因此无法执行。分级查询处理方案100可包括约三个处理层,即顶部的第一查询处理层110,中间的第二查询处理层112,以及底部的第三查询处理层114。第一查询处理层110可经配置以处理衍生键,并将所述衍生键映射到第二查询处理层112中的实际键。衍生键可为键的压缩数据结构,而不是实际键,因此需要资源的较少且可使查询处理的速度更快。例如,第一查询处理层110可包括布隆过滤器(bloomfilter),其用作键的压缩数据结构,且与处理实际键相比,可使成员查询的速度更快。或者,第一查询处理层110可处理所接收到的散列键,而不是实际键,以加速查询处理。在另一项实施例中,第一查询处理层110可使用其他压缩键处理方案。第二查询处理层112可经配置以处理实际键,并将所述实际键映射到第三查询处理层114中的值定位器或指数。值定位器可指示与键对应的值的位置。第三查询处理层114可经配置以处理值的定位器,从而以最低的处理和通信资源成本来访问可能包括所请求的内容的对应值。
·
命中查询可在第一查询处理层110、第二查询处理层112,以及后续的第三查询处理层114进行处理,以访问对应于所指示的键的所请求的值。因此,接收到的所有命中查询可在这三层中的每一层进行处理,这用三层之间相同大小的箭头表示,其中箭头大小表示查询请求的数量。非命中查询可在第一查询处理层110进行处理,且至少一部分非命中查询可在第二查询处理层112进行处理。例如,只有有效查询,例如包括有效键或压缩键的查询可在第二查询处理层112进行处理,而无效查询可在第一查询处理层110舍弃(处理后)。在另一个实例中,针对不存在的值的大多数查询请求可在第一查询处理层110过滤掉。这用第一查询处理层110与第二查询处理层112之间较小的箭头表示。此外,到达第二查询处理层112的所有非命中查询可舍弃(处理后),且任何非命中查询均不可到达第三查询处理层114,因为值存储器中可能不具有与此类查询对应的值。这用第二查询处理层112与第三查询处理层114之间箭头的缺少表示。通过将查询处理步骤分割或划分成分级查询处理方案100中的三层,可避免为非命中查询分配不必要或未使用过的系统资源(例如,处理时间、成本和/或动力),从而改进性能(例如,等待时间和容量)。使用分级查询处理方案100来提前中止非命中查询也可限制或减少系统上的服务拒绝(DoS)或分布式DoS (DDoS)攻击,因为此类攻击可能包括无效查询和/或可能在值存储器中没有对应值。在某些系统中,存储值/键可存储在一个或多个存储装置中,包括动态随机存取存储器(DRAM)、固态驱动器(SSD),以及硬盘驱动器(HDD)。在这三种存储装置中,DRAM的性能可能最高但容量最小,SSD的容量和性能可能中等,而HDD的容量可能最大但性能最低。例如,DRAM的等待时间可为毫微秒量级(例如,约10毫微秒),且DRAM的吞吐量可为每秒千兆字节(GB/s)量级或约每秒100,000个查询。DRAM在典型服务器上的容量可为约100GB。相比较而言,SSD可具有微秒量级的等待时间,以及每秒兆字节(MB/s)量级的吞吐量。SSD在典型服务器上的容量可约为DRAM的容量的10倍,例如,约一太字节(TB)。HDD可具有毫秒量级的等待时间、MB/s量级的吞吐量,以及约为SSD的容量的10倍的容量,例如,十亿条目量级。DRAM,SSD和HDD的属性总结在表I中。存储装置被分类成三层,其中相较于较低层上的存储装置而言,较高层上的存储装置具有较高的性能和较高的成本。性能与成本的比率可表示存储装置的存储技术先进水平。例如,与性能/成本比率较低的存储装置相比,以较高性能/成本比率制造的存储装置可能基于更加先进的技术。可向表I的列表中添加额外层,因为可能出现具有不同特性和属性的新存储装置。
权利要求
1.一种键/值存储器,所述键/值存储器包括 第一层存储装置,其经配置以存储关于多个值的多个键的信息,而不存储所述值;以及 第二层存储装置,其耦接到所述第一层存储装置,且经配置以存储与所述键关联的所述值,而不存储所述键, 其中与所述第二层存储装置相比,所述第一层存储装置具有较短的等待时间和较大的吞吐量,以及 其中与所述第一层存储装置相比,所述第二层存储装置具有较大的容量。
2.根据权利要求I所述的键/值存储器,进一步包括 第三层存储装置,其耦接到所述第一层存储装置和所述第二层存储装置,且经配置以存储与所述键和所述值关联的多个定位器, 其中与所述第一层存储装置相比,所述第三层存储装置具有较长等待时间和较小吞吐量,且与所述第二层存储装置相比,所述第三层存储装置具有较短等待时间和较大吞吐量,以及 其中与所述第一层存储装置相比,所述第三层存储装置具有较大容量,且与所述第二层存储装置相比,所述第三层存储装置具有较小容量。
3.根据权利要求2所述的键/值存储器,其中所述第一层存储装置是动态随机存取存储器(DRAM),所述第三层存储装置是固态驱动器(SSD),且所述第二层存储装置是硬盘驱动器(HDD)。
4.根据权利要求2所述的键/值存储器,其中所述键在所述第一层装置中用布隆过滤器表示,其中所述定位器与相应的键一起存储在所述第三层存储装置中的条目列表中,且其中所述值与所述第二层存储装置中的相应的定位器关联。
5.根据权利要求2所述的键/值存储器,其中与所述键对应的多个散列键存储在所述第一层装置中,其中所述定位器与相应的键一起存储在所述第三层存储装置中的条目列表中,且其中所述值与所述第二层存储装置中的相应的定位器关联。
6.根据权利要求I所述的键/值存储器,其中所述第一层存储装置是动态随机存取存储器(DRAM),且所述第二层存储装置是固态驱动器(SSD)。
7.根据权利要求I所述的键/值存储器,其中所述键以及与所述键关联的多个定位器存储在所述第一层存储装置中的条目列表中,且其中所述值与所述第二层存储装置中的相应的定位器关联。
8.一种网络部件,所述网络部件包括 接收器,其经配置以接收多个命中查询和非命中查询; 第一存储介质,其经配置以存储多个值的多个键; 第二存储介质,其经配置以存储所述值;以及 逻辑电路,其经配置以在所述第一存储介质和所述第二存储介质上处理所述命中查询,以及仅在所述第一存储介质上处理所述非命中查询,而不访问所述第二存储介质。
9.根据权利要求8所述的网络部件,其中所述命中查询包括多个有效的键,其在所述第二层存储介质中具有关联的值,且其中所述非命中查询包括多个无效的键,其在所述第二存储介质中不具有关联的值,或者对应于服务拒绝(DoS)/分布式服务拒绝(DDoS)攻击。
10.根据权利要求9所述的网络部件,其中所述命中查询的处理方式为,将有效的键映射到所述第一存储介质中的多个定位器,然后将所述定位器映射到所述第二存储介质中的所述值。
11.根据权利要求9所述的网络部件,其中所述非命中查询的处理方式为,舍弃无效的键或将所述非命中查询映射到所述第一存储介质中的多个定位器,然后舍弃与所述第二存储介质中的值无关的非命中查询。
12.根据权利要求9所述的网络部件,进一步包括 第三存储介质,其经配置以存 储与所述键和所述值关联的多个定位器。
13.根据权利要求12所述的网络部件,其中所述第一存储介质包括动态随机存取存储器(DRAM),所述第三存储介质包括固态驱动器(SSD),且所述第二存储介质包括硬盘驱动器(HDD)。
14.根据权利要求12所述的网络部件,其中所述键在所述第一存储介质中用布隆过滤器表示,其中所述定位器与相应的键一起存储在所述第三存储介质中的条目列表中,且其中所述值与所述第二存储介质中的相应的定位器关联。
15.根据权利要求12所述的网络部件,其中与所述键对应的多个散列键存储在所述第一存储介质中,其中所述定位器与相应的键一起存储在所述第三存储介质中的条目列表中,且其中所述值与所述第二存储介质中的相应的定位器关联。
16.—种方法,所述方法包括 在第一层存储装置接收键/值操作请求; 如果所述键/值操作请求有效,将所述键/值操作请求中的键映射到存储在第二层存储装置中的定位器;以及 如果所述键具有相应的定位器,将所述定位器映射到第三层存储装置中的值。
17.根据权利要求16所述的方法,进一步包括 在第三最高层存储装置,使用键操作请求中的布隆过滤器或散列键来将所述键/值操作映射到所述键。
18.根据权利要求16所述的方法,其中所述键/值操作请求在第一查询处理层进行处理以获取所述键,其中所述键映射到第二查询处理层上的定位器,且其中所述定位器映射到第三查询处理层上的值。
19.根据权利要求18所述的方法,进一步包括 如果所述键/值操作请求或所述键无效,在所述第一查询处理层舍弃所述键/值操作;以及 如果所述键不具有相应的定位器,在所述第二查询处理层舍弃所述键/值操作请求。
20.根据权利要求16所述的方法,进一步包括 在第三最高层存储装置或在较高层存储装置的一部分上,对所述键的一部分、所述值的一部分,或这两者进行高速缓存,且使用所缓存的键和值来处理所述键/值操作请求。
全文摘要
一种键/值存储器,所述键/值存储器包括第一层存储装置,其经配置以存储关于多个值的多个键的信息,而不存储所述值;以及第二层存储装置,其耦接到所述第一层存储装置,且经配置以存储与所述键关联的值,而不存储所述键,其中与所述第二层存储装置相比,所述第一层存储装置具有较短的等待时间和较大的吞吐量,且其中与所述第一层存储装置相比,所述第二层存储装置具有较大的容量。本发明还公开了一种方法,所述方法包括在第一层存储装置接收键/值操作请求;如果所述键/值操作请求有效,将所述键/值操作请求中的键映射到存储在第二层存储装置中的定位器;以及如果所述键具有相应的定位器,将所述定位器映射到第三层存储装置中的值。
文档编号G06F17/30GK102971732SQ201180033303
公开日2013年3月13日 申请日期2011年6月30日 优先权日2010年7月2日
发明者吴建明, 施广宇, 马苏德·莫塔扎维, 阿夫兰·卡普雅 申请人:华为技术有限公司