【技术实现步骤摘要】
访问存储在服务器上高速缓存中的数据记录的设备和方法
本专利技术一般而言涉及由计算机进行的数据库管理系统,并且特别地涉及RDMA优化的高性能分布式高速缓存(cache)。
技术介绍
当今的消费者要求即时响应的驱动器应用以开发多种缓存方案。小规格的应用可以依赖本地高速缓存和复制(replication)。然而,在各请求之间的服务器相似性(affinity)不能被确保且涉及的数据空间是庞大的情况下,当向外扩展因特网应用和使用云时,不再能够使用本地高速缓存。替代地,系统不得不依赖于必须被远程访问的划分的并分布的高速缓存(例如WebSphereExtremeScaleTM或OracleCoherenceTM)。常规的键-值(key-value)高速缓存架构是使得客户端通过将键作为参数而传递的网络发送对数据的请求到服务器。服务器在其高速缓存中为了所关联的对象-值、例如对于数据对象的句柄(handle)或到数据对象指针而进行键查找(通常基于哈希(hash))。如果找到,则数据对象被串行化并被返回给客户端。在接收到串行化的数据对象时,客户端对其去串行化并将其返回到进行请求的应用。
技术实现思路
根据本专利技术的一个或多个实施例,提供了用于访问存储在服务器上的高速缓存中的一个或多个数据记录的方法、设备和制造品。服务器和/或客户端存储元数据哈希映射(map),其包括一个或多个与用于存储在服务器上的高速缓存中的数据记录的键相关联的条目(entry)。每一个条目存储用于对应的数据记录的元数据,其中该元数据包括引用(reference)存储在高速缓存中的对应的数据记录的服务器侧远程指针 ...
【技术保护点】
一种用于访问存储在服务器上的高速缓存中的数据记录的设备,包括:(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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。