访问存储在服务器上高速缓存中的数据记录的设备和方法技术

技术编号:10599400 阅读:215 留言:0更新日期:2014-10-30 13:07
服务器和/或客户端存储元数据哈希映射,所述元数据哈希映射包括与用于存储在服务器上的高速缓存中的数据记录的键相关联的一个或多个条目。每个条目存储对应的数据记录的元数据,其中所述元数据包括服务器侧远程指针以及所述键的版本标识符,所述服务器侧远程指针引用存储在所述高速缓存中的对应的数据记录。使用所提供的键通过以下访问所选择的数据记录:(1)使用所提供的键标识在所述元数据哈希映射中的可能匹配的条目;(2)使用来自可能匹配的条目的服务器侧远程指针来访问存储在高速缓存中的数据记录;以及(3)使用所提供的键和来自可能匹配的条目的版本标识符来确定所访问的数据记录是否匹配于所选择的数据记录。

【技术实现步骤摘要】
访问存储在服务器上高速缓存中的数据记录的设备和方法
本专利技术一般而言涉及由计算机进行的数据库管理系统,并且特别地涉及RDMA优化的高性能分布式高速缓存(cache)。
技术介绍
当今的消费者要求即时响应的驱动器应用以开发多种缓存方案。小规格的应用可以依赖本地高速缓存和复制(replication)。然而,在各请求之间的服务器相似性(affinity)不能被确保且涉及的数据空间是庞大的情况下,当向外扩展因特网应用和使用云时,不再能够使用本地高速缓存。替代地,系统不得不依赖于必须被远程访问的划分的并分布的高速缓存(例如WebSphereExtremeScaleTM或OracleCoherenceTM)。常规的键-值(key-value)高速缓存架构是使得客户端通过将键作为参数而传递的网络发送对数据的请求到服务器。服务器在其高速缓存中为了所关联的对象-值、例如对于数据对象的句柄(handle)或到数据对象指针而进行键查找(通常基于哈希(hash))。如果找到,则数据对象被串行化并被返回给客户端。在接收到串行化的数据对象时,客户端对其去串行化并将其返回到进行请求的应用。
技术实现思路
根据本专利技术的一个或多个实施例,提供了用于访问存储在服务器上的高速缓存中的一个或多个数据记录的方法、设备和制造品。服务器和/或客户端存储元数据哈希映射(map),其包括一个或多个与用于存储在服务器上的高速缓存中的数据记录的键相关联的条目(entry)。每一个条目存储用于对应的数据记录的元数据,其中该元数据包括引用(reference)存储在高速缓存中的对应的数据记录的服务器侧远程指针以及键的版本标识符。通过以下使用所提供的键访问所选择的数据记录:(1)使用所提供的键标识在元数据哈希映射中的可能匹配的条目;(2)使用来自元数据哈希映射中的可能匹配的条目的服务器侧远程指针来访问存储在高速缓存中的一个或多个数据记录;和(3)使用所提供的键和来自元数据哈希映射中的可能匹配的条目的版本标识符来确定所访问的数据记录是否匹配于所选择的数据记录。附图说明现在参考附图,附图中相同的参考数字通篇代表相应的部分:图1是图解可以用于实现本专利技术的至少一个实施例的要素的示例网络数据处理系统的图。图2是图解可以用于实现本专利技术的至少一个实施例的要素的示例数据处理系统的图。图3是图解可以用于实现本专利技术的至少一个实施例的要素的示例数据处理系统的图。图4A是图解根据本专利技术的至少一个实施例的使用RDMA用于高速缓存的系统环境的示意图。图4B是图解根据本专利技术的至少一个实施例的与RDMA操作一起使用的元数据哈希映射的示意图。图4C是图解根据本专利技术的至少一个实施例的服务器在某个指定的时间将来自元数据哈希映射的条目传输到一个或多个客户端的示意图。图5是图解根据本专利技术的至少一个实施例的使用RDMA优化的高速缓存来访问存储在服务器上的高速缓存中的数据记录的一般步骤或功能的流程图。具体实施方式在以下描述中,参考附图,该附图形成本说明书的一部分并且在附图中通过图解示出其中可以实施本专利技术的一个或多个具体实施例。应该理解,可以利用其它实施例,并且可以不脱离本专利技术的范围而进行结构的和功能的改变。概述在以上“
技术介绍
”中描述的流程需要至少四次通过TCP/IP堆栈,例如,客户端到网络接口控制器(NIC)、NIC到服务器、服务器到NIC和NIC到客户端。此外,数据对象需要两次经历(去)串行化操作,并且数据对象在其流经众多的I/O堆栈层时被多次复制。因此,远程访问可能比本地访问慢了多达三个数量级(即数百微妙vs.纳秒)。这或者完全阻止了向外扩展应用,或者使得应用过分地慢。在此描述的本专利技术的实施例包括重新架构的、分布式键-值对高速缓存,其被适当地配置用于RDMA(RemoteDirectMemoryAccess远程直接存储器访问)通信,避免上面描述的TCP/IP协议堆栈问题,并降低数据传输的操作系统涉及。这得到通过网络的极其快的、基于键的高速缓存查找。代替为客户端提供到存储在服务器上的高速缓存的远程获得/放置接口(get/putinterface),服务器提供了客户端可访问的元数据哈希映射,其包括由高速缓存条目的键配对到包括它们的远程RDMA指针和键的版本标识符的元数据而组成的键-值对。元数据哈希映射允许客户端使用键来查找高速缓存条目的元数据,然后在单侧RDMA操作中使用远程RDMA指针并进行与键的版本标识符的比较来访问在服务器上的高速缓存条目。单侧RDMA操作不涉及服务器侧的软件,因为这些操作由RDMANIC进行,其中NIC进行直接到或来自于服务器的存储器的DMA操作,这导致甚至在重负载以下的非常低的服务器CPU利用率。具体地,可以使用单侧RDMA操作来实现读取、更新和删除操作,而创建操作需要一些服务器侧的软件涉及,因为创建操作引入了新键。因此,本专利技术可以用于诸如零售、旅行、银行业务、信息服务等的与上下文高度相关的和个人化的应用的更快的页面呈现。本专利技术的实施例还可以用于诸如零售、移动、信用卡等的“大数据”应用的更快的实时分析中。另外,本专利技术的实施例可以用于诸如高速数据捕捉、实时(on-the-fly)的数据丰富等的任何以因特网规模通信速率的数据处理。因此,本专利技术的实施例所展示的优点是实际的并且自然几乎是颠覆性的。RDMA优化的高速缓存通过增加总处理能力并加速依赖于对分布式数据的访问的等待时间至关重要的消费者情景而“超越(leapfrog)”了现有技术的性能。本申请与以上标识的交叉引用的申请提供了另外的改进:1.消除了保留键的客户端侧复制本的必要性。2.消除了广播者将服务器侧修改多播(multicast)到客户端的必要性。3.引入了对键的版本控制(versioning)。在此实施例中,服务器在大的预分配的并固定的(pinned)/登记的存储器页中存储所有高速缓存条目。对于每个被添加到高速缓存的条目,创建包含关于条目在高速缓存中的位置的信息以及对于条目的键的版本的元数据。该元数据可以用于经由RDMA网络适配器从服务器的外部访问高速缓存条目。服务器在通过RDMA已知的存储而分配的存储器区域中连续地存储条目的键和数据值。键也包括唯一的版本标识符,其等同于在它的元数据中存储的标识符。服务器存储到高速缓存条目的句柄或指针以及在元数据哈希映射中的通过条目的键而散列的(hashed)键的版本标识符。元数据哈希映射被存储在服务器上,而客户端可以仅存储来自该元数据哈希映射的条目的子集。通过使用实质上减少冲突(collision)并因此避免在客户端存储器中存储键的高级散列技术,元数据哈希映射被保持为相对小,对于甚至具有几十千兆字节(GB)大小的大的高速缓存具有几十兆字节(MB)的大小。在启动时,客户端以空的元数据哈希映射开始,该空的元数据哈希映射充当本地元数据高速缓存。因此,客户端对于高速缓存丢失(miss)、高速缓存命中和陈旧元数据不同地做出反应。客户端使用它的元数据哈希映射来本地查找远程高速缓存条目的句柄并使用它来通过RDMA直接对条目进行CRUD(创建、读取、更新、删除)操作。硬件和软件环境如本领域技术人员将认识到的,本专利技术的方面可以体现为系统、方法或计算机程序产品。因而,本专利技术的方面可以采取完全硬件实施例本文档来自技高网
...
访问存储在服务器上高速缓存中的数据记录的设备和方法

【技术保护点】
一种用于访问存储在服务器上的高速缓存中的数据记录的设备,包括:(a)服务器或客户端,存储元数据哈希映射,其中所述元数据哈希映射包括与用于存储在服务器上的高速缓存中的数据记录的键相关联的一个或多个条目,每个条目存储对应的数据记录的元数据,并且所述元数据包括服务器侧远程指针以及所述键的版本标识符,所述服务器侧远程指针引用存储在所述服务器上的高速缓存中的对应的数据记录;以及(b)所述服务器或客户端使用所提供的键通过以下来访问存储在所述服务器上的高速缓存中的所选择的数据记录:(1)使用所提供的键标识在所述元数据哈希映射中的一个或多个可能匹配的条目;(2)使用来自所述元数据哈希映射中的可能匹配的条目的服务器侧远程指针来访问存储在所述服务器上的高速缓存中的一个或多个数据记录;以及(3)使用所提供的键和来自所述元数据哈希映射中的可能匹配的条目的版本标识符来确定所访问的数据记录是否匹配于所选择的数据记录。

【技术特征摘要】
2013.04.26 US 13/872,0071.一种用于访问存储在服务器上的高速缓存中的数据记录的设备,包括:(a)服务器和客户端,存储元数据哈希映射,其中所述元数据哈希映射包括与用于存储在服务器上的高速缓存中的数据记录的键相关联的一个或多个条目,每个条目存储对应的数据记录的元数据,并且所述元数据包括服务器侧远程指针以及所述键的版本标识符,所述服务器侧远程指针引用存储在所述服务器上的高速缓存中的对应的数据记录,其中在所述客户端上的元数据哈希映射仅存储在所述服务器上的元数据哈希映射中存储的条目的一个子集,并且仅当由所述服务器在所述客户端的指示下进行的创建、读取、更新或删除操作导致所述服务器上的元数据哈希映射被更新时,更新在客户端上的元数据哈希映射;以及(b)所述客户端使用所提供的键通过以下方式来访问存储在所述服务器上的高速缓存中的所选择的数据记录:(1)使用所提供的键标识在所述客户端上的元数据哈希映射中的一个或多个可能匹配的条目;(2)使用来自所述元数据哈希映射中的可能匹配的条目的服务器侧远程指针来访问存储在所述服务器上的高速缓存中的一个或多个数据记录;以及(3)使用所提供的键和来自所述元数据哈希映射中的可能匹配的条目的版本标识符来确定所访问的数据记录是否匹配于所选择的数据记录。2.根据权利要求1所述的设备,还包括所述客户端从所述服务器接收对所述元数据哈希映射的更新。3.根据权利要求1所述的设备,其中所述访问(2)包括使用服务器侧远程指针在所述客户端上进行一个或多个远程直接存储器访问(RDMA)操作,以经由RDMA网络接口控制器直接地访问存储在所述服务器上的高速缓存中的数据记录。4.根据权利要求3所述的设备,其中进行所述一个或多个RDMA操作还包括所述客户端通过以下进行创建操作:所述客户端进行到服务器的发送操作,并将键、所述键的哈希码和所述键的值传递到服务器;所述服务器使用所述键和所述键的值来在所述高速缓存中分配新的数据记录;以及使用哈希码更新所述服务器上的元数据哈希映射以将用于新数据记录的键、新数据记录的服务器侧远程指针和所述键的版本标识符添加到该元数据哈希映射。5.根据权利要求3所述的设备,其中进行所述一个或多个RDMA操作还包括客户端通过以下进行读取操作:客户端使用来自元数据哈希表中的可能匹配的条目的服务器侧远程指针来进行在所述服务器上的单侧RDMA读取操作。6.根据权利要求3所述的设备,其中进行所述一个或多个RDMA操作还包括客户端通过以下进行更新操作:客户端使用来自元数据哈希表中的可能匹配的条目的服务器侧远程指针来进行在所述服务器上的单侧RDMA读取操作,当所访问的数据记录之一匹配于所选择的数据记录时,所述客户端使用所述服务器侧远程指针来进行到服务器的单侧RDMA写入操作并盖写所述所访问的记录之一,以及当所访问的数据记录不匹配于所选择的数据记录时,所述客户端进行到所述服务器的发送操作并将键、该键的哈希码和该键的值传递到所述服务器用于更新所述服务器上的高速缓存。7.根据权利要求3所述的设备,其中进行所述一个或多个RDMA操作还包括客户端通过以下进行删除操作:客户端进行到服务器的发送操作并将键、该键的哈希码和该键的值传递到所述服务器用于删除在所述服务器上...

【专利技术属性】
技术研发人员:XR格林TJ萨洛
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1