使用RDMA共享工作数据的存储器制造技术

技术编号:19396750 阅读:25 留言:0更新日期:2018-11-10 05:02
服务器系统可以包括用于高速数据通信的联网的多个计算机的集群。计算机中的每个计算机具有一个远程直接存储器访问(RDMA)网络接口,以允许在计算机之间共享高速存储器。每个计算机的关系数据库引擎被配置为利用存储器层次结构来临时存储工作数据,包括降低以下的访问速度(a)本地主存储器,(b)经由RDMS访问的远程存储器,以及(c)大容量存储。数据库引擎使用本地主存储器来处理工作数据,并且当本地主存储器变得被消耗时,还使用RDMA可访问存储器来用于工作数据。服务器系统可以包括存储器代理,各个计算机向该存储器代理报告其可用或未使用的存储器,并且将共享存储器租赁给请求计算机。

【技术实现步骤摘要】
【国外来华专利技术】使用RDMA共享工作数据的存储器
技术介绍
大规模网络服务提供商通常利用多个服务器计算机来响应来自用户和客户端设备的网络请求。在许多情况下,服务器计算机使用关系数据库管理系统(RDBMS)来管理数据库并与数据库交互。典型的因特网网站可以由数百或数千个物理或虚拟服务器计算机和对应的RDBMS来支持,这些可以是服务器群或数据中心的一部分,其中服务器计算机使用高速局域联网(LAN)技术而彼此连接。存储器是对于RDBMS而言的重要资源。当主存储器不充足时,RDBMS被迫使用诸如硬盘驱动器(HDD)或固态驱动器(SSD)之类相对较慢的大容量媒体储存设备,这会导致性能显著下降。
技术实现思路
本公开描述了用于以其他方式利用服务器计算机的未使用的存储器的系统和方法。在所描述的实施例中,服务器计算机针对临时数据诸如针对缓冲器和高速缓存利用存储器类型的层级。存储器类型包括:(a)服务器计算机的本地RAM,其被称为服务器计算机的主存储器;(b)使用远程直接存储器访问(RDMA)访问的另一个服务器计算机的共享主存储器;(c)诸如硬盘驱动器(HDD)或固态驱动器(SSD)之类的非易失性大容量储存器。在某些实施例中,服务器计算机可以运行关系数据库管理系统(RDBMS),其管理数据库并处理数据库查询。RDBMS被配置为使用本地主存储器以用于与数据库查询相关的数据的临时储存。但是,当本地主存储器变得耗尽时,RDBMS请求分配来自不同计算机的主存储器,并使用所分配的存储器进行临时数据储存。可以使用RDMA技术来访问所分配的存储器,所述RDMA技术可以包括使用RDMA网络接口。在某些实施例中,系统可以包括存储器代理,该存储器代理跟踪已经由不同计算机使其可用的存储器和已被分配以供各种计算机使用的存储器。在特定计算机上运行的RDBMS或应用可以联系存储器代理以请求分配来自另一个计算机的存储器。提供本
技术实现思路
是为了以简化的形式介绍将在下面的具体实施方式中进一步描述的一些概念。本
技术实现思路
不旨在标识所要求保护的主题的关键或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。附图说明参考附图来描述具体实施方式。在附图中,参考标号的最左侧的(一个或多个)数字标识首次出现参考标号的图。在不同附图中使用相同的参考标号指示相似或相同的组件或特征。图1是在其中可以在服务器之间共享本地主存储器的服务器系统的框图。图2是图示出在服务器之间共享本地存储器的示例方法的流程图。图3是图示出提供用于在服务器之间共享的可用存储器的示例方法的流程图。图4是图示出分配用于在服务器之间共享的存储器的示例方法的流程图。图5是图示出使用共享存储器用于辅助高速缓存的示例方法的流程图。图6是图示出使用共享存储器用于复制缓冲池的示例方法的流程图。图7是图示出可以被用来实现图1中所示系统的服务器的服务器计算机的高级组件的框图。具体实施方式许多网站和其他在线服务由后端数据库支持。诸如这些的数据库可以由多个服务器计算机维护和管理,这些可以是数据中心或服务器群的一部分。服务器计算机中的一个或多个可以运行关系数据库管理系统(RDBMS)以用于管理对应的数据库。每个服务器计算机还可以运行应用,所述应用利用RDBMS来访问数据库并提供特定于提供服务的目的的功能性。在特定计算机上运行的RDBMS利用计算机的本地易失性主存储器,诸如计算机的随机可访问存储器(RAM),来存储诸如高速缓存、缓冲器、中间结果等的临时数据。然而,本地RAM是一种有限的资源。当本地RAM消耗(depletion)时,RDBMS将改为被迫使用诸如硬盘驱动器(HDD)或固态驱动器(SSD)之类的非易失性大容量储存,它们比本地RAM慢得多。如本文所述的RDBMS的实施例利用远程直接存储器访问(RDMA)来为临时数据提供中间类型的储存,其中该中间类型的储存具有在本地RAM和非易失性大容量储存之间的访问速度。当可用的本地RAM变得有限时,RDBMS获得远程RAM的允许并使用远程RAM,以用于某些类型的临时数据的储存。这增强了RDBMS的性能,因为RDBMS并不经常被迫使用非易失性大容量储存设备以用于临时数据的储存。RDMA存储共享图1示出了在其中可以使用所描述技术的数据库系统100的高级组件。作为示例,数据库系统100可以支持大规模因特网网站。在数据库系统100的操作期间,数据库系统100可以分析查询以响应从诸如因特网浏览器之类的网站客户端所接收的请求。数据库系统100包括多个数据库服务器102,每个数据库服务器102可以包括物理计算机或虚拟化计算机。尽管图1中仅示出了两个服务器102(a)和102(b),但是服务器102可以是容纳许多服务器计算机的数据中心或服务器群的一部分。这样的数据中心可以在服务器102之间提供高速局域联网,允许服务器102以相对高的速度彼此通信。如将更详细描述的,可以实现局域联网以便允许服务器102之间的远程直接存储器访问(RDMA)。在所图示的示例中,一个或多个服务器102具有关系数据库管理系统(RDBMS)104,该RDBMS104也可以被称为关系数据库引擎。服务器102中的一个或多个还具有应用106,其利用RDBMS104来提供特定于系统100的目的的服务。服务器102内的应用106和RDBMS104使用函数调用和/或应用编程接口(API)来彼此通信。应用106使用RDBMS104来管理和访问关系数据库108。关系数据库108包含由应用106定义并提供的表、查询和/或其他数据。为了向请求客户端提供数据,应用106向RDBMS104提交查询。RDBMS104访问数据库108以评估查询并将结果数据返回给应用106。在一些实施例中,可以由每个服务器102执行相同的应用106。类似地,每个服务器102的数据库108可以是相同的。例如,数据库108可以具有相同的逻辑结构和组织,并且可以使用网络通信而被同步,使得它们表示相同的数据。在其他实施例中,不同服务器102的应用106和RDBMS104可以访问存储在服务器102之一上或者专用于数据库储存的一个或多个其他服务器上的公共数据库。在其他实施例中,每个服务器102可以运行唯一应用106,并且可以利用相应对应的数据库108。也即,每个服务器102可以负责不同的应用,并且每个应用可以使用唯一对应的数据库。通常,数据库可以与其应用在同一服务器上,也可以在不同的设备上。在图1中,两个图示出的服务器102被示为具有对应的RDBMS104、应用106和数据库108。然而,可以将所描述的技术用于如下情形:一个或多个服务器102具有RDBMS而其他服务器不具有RDBMS。也就是说,没有RDBMS的非数据库服务器可以与数据库服务器的RDBMS共享其可用存储器,并且RDBMS可以利用由任何其他计算机共享的存储器,无论该其他计算机是否是数据库服务器、运行RDBMS、具有应用106、或者具有数据库108。此外,尽管本文参考关系数据库系统解释了各种技术,但是应该理解,可以在不同的环境中利用所描述的技术的各个方面,包括结合非关系数据库系统和可能包括或可能不包括关系数据库或其他数据库的其他类型系统。每个服务器102主存储器110对于服务器本身而言是本地的并且有时被称为“主”存储器。主存储器110本文档来自技高网
...

【技术保护点】
1.一种方法,包括:管理驻留在一个或多个大容量储存设备上的数据库;接收和响应数据库查询;将与所述数据库查询相关的第一数据临时存储在第一计算机的本地存储器中;检测所述第一计算机的所述本地存储器的消耗;响应于检测到所述第一计算机的所述本地存储器的所述消耗,请求第二计算机的存储器的分配;接收所述第二计算机的所述存储器的所述分配;以及将与所述数据库查询相关的第二数据临时存储在所述第二计算机的所述存储器中。

【技术特征摘要】
【国外来华专利技术】2016.03.25 US 15/081,6021.一种方法,包括:管理驻留在一个或多个大容量储存设备上的数据库;接收和响应数据库查询;将与所述数据库查询相关的第一数据临时存储在第一计算机的本地存储器中;检测所述第一计算机的所述本地存储器的消耗;响应于检测到所述第一计算机的所述本地存储器的所述消耗,请求第二计算机的存储器的分配;接收所述第二计算机的所述存储器的所述分配;以及将与所述数据库查询相关的第二数据临时存储在所述第二计算机的所述存储器中。2.根据权利要求1所述的方法,还包括:通过所述第一计算机的RDMA网络接口使用远程直接存储器访问(RDMA)来访问所述第二计算机的所述存储器。3.根据权利要求1或权利要求2所述的方法,还包括:与存储器代理通信以请求所述第二计算机的所述存储器的所述分配。4.根据权利要求1-3中的任一项所述的方法,还包括:向存储器代理报告所述第一计算机的未使用存储器以用于分配给其他计算机。5.根据权利要求1-4中的任一项所述的方法,还包括:在所述第一计算机的所述本地存储器中维护主高速缓存,所述主高速缓存具有多个条目;在所述第二计算机的所述存储器中维护辅助高速缓存;从所述主高速缓存中逐出第一条目;向所述辅助高速缓存写入所述第一条目;检测针对所请求数据的主高速缓存未命中;以及响应于检测到所述主高速缓存未命中,针对所述所请求数据而检查所述辅助高速缓存。6.根据权利要求1-5中的任一项所述的方法,所述第二数据包括以下中的一个或多个:表、表变量、游标、高速缓存、缓冲池、索引、物化视图、语义高速缓存或中间结果。7.一种系统,包括:多个服务器;所述多个服务器中的每个服务器具有相应的远程直接存储器访问(RDMA)网络接口;所述多个服务器中的每个服务器具有随机可访问的存储器(RAM),其他数据库服务器可通过RDMA来远程访问所述随机可访问的存储器(RAM);执行动作的存储器代理,所述动作包括:(a)与所述多个服务器中的第一服务器通信以识别所述第一服务器的未使用...

【专利技术属性】
技术研发人员:S·达斯李峰M·A·赛亚玛拉V·R·纳拉萨雅
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1