具有NVDIMM作为持久性存储装置的数据库制造方法及图纸

技术编号:23941002 阅读:54 留言:0更新日期:2020-04-25 05:04
共享存储体系架构将数据库文件持久性地存储在多节点DBMS的计算节点的非易失性随机存取存储器(NVRAM)中。多节点DBMS的计算节点不仅将数据库数据集中存储在节点的NVRAM上,而且还托管并行处理查询的主机数据库服务器实例、托管数据库会话和数据库进程,并共同管理对存储在节点的NVRAM上的数据库的访问。为了从持久性存储装置执行数据块读取操作,可以在持久性地存储数据块的节点的NVRAM到请求数据块的另一节点的非易失性RAM中的数据库缓冲区之间通过网络直接传输数据块。使用远程直接存储器访问(“RDMA”)完成传输。除了用于执行对NVRAM的数据块读取操作的技术外,计算节点还执行数据块写入操作。

Database with nvdimm as persistent storage device

【技术实现步骤摘要】
【国外来华专利技术】具有NVDIMM作为持久性存储装置的数据库
本公开涉及数据库系统。更具体而言,本公开涉及用于在共享存储装置中存储数据库数据的关系数据库组织。
技术介绍
DBMS(数据库管理系统)是用于存储和管理多种类型的数据的重要机制。DBMS包括至少一个数据库服务器。数据库服务器被托管在至少一个计算元件(例如,计算机、服务器刀片)上,并且可以将数据库数据存储在块模式存储设备中。块模式存储设备可以是经由计算元件的高速总线连接到计算元件的一个或多个硬件处理器(“处理器”)和/或计算元件的存储器的一个或多个盘驱动器和闪存驱动器。块模式存储设备也可以是启用网络的存储设备,其经由网络连接到计算元件,并且包括其它块存储设备,诸如盘驱动器和闪存驱动器。功能更强大的DBMS被托管在并行处理器硬件平台上。这样的DBMS在本文中被称为多节点DBMS。多节点DBMS包括在本文中被称为计算节点的多个计算元件。每个计算节点包括一个或多个硬件处理器,每个硬件处理器共享对同一主存储器的访问。多节点DBMS可以使用若干种存储体系架构中的一种来存储数据库数据。一种这样的体系架构在本文中称为共享存储体系架构。在共享存储体系架构中,多节点DBMS中的每个计算节点共享对持久性地存储数据库的一个或多个块存储设备的直接网络访问。图1是图示共享存储多节点DBMS的框图。参考图1,共享存储多节点DBMS100包括数据库服务器实例,每个数据库服务器实例被托管在相应的计算节点上,每个数据库服务器实例提供对存储在共享存储装置121上的同一数据库的访问。DBMS100的数据库服务器实例包括数据库服务器实例103-1、103-2、103-3和103-4,它们分别托管在计算节点102-1、102-2、102-3和102-4上。共享存储装置121包括存储单元122-1和122-2。数据库服务器实例103-1、103-2、103-3和103-4中的每一个通过高速网络101连接到存储单元122-1和122-2中的每一个。存储单元122-1和122-2中的每一个是包括存储DBMS100的一个或多个数据库的“数据库文件”的持久性存储装置(例如,盘、闪存)的计算节点。存储单元122-1包括持久性存储装置129-1和主存储器124-1,并且存储单元122-2包括持久性存储装置129-2和主存储器124-2。在存储单元122-1和122-2中的每一个上运行的一个或多个存储进程(诸如存储进程125-1和存储进程125-2)从数据库服务器实例103-1、103-2、103-3和103-4中的任何一个接收从持久性存储装置中存储的数据库文件中读取数据块或向该数据库文件写入数据块的请求。存储单元缓冲区池128-1和存储单元缓冲区池128-2分别是从主存储器124-1和124-2分配的缓冲区。如本文所使用的,术语“进程”是指在“软件概述”部分中定义的计算机系统进程。数据库服务器实例每个数据库服务器实例都包括在托管数据库服务器实例的计算节点上运行的数据库进程。数据库进程可以是但不限于在数据库会话内运行的执行数据库会话内发出的数据库命令的进程、或者属于被指派为执行通过数据库会话发出的查询的进程池的查询执行进程。参考图1,数据库服务器实例103-1、103-2、103-3和103-4中的每一个包括多个数据库进程和高速缓存从共享存储装置121读取的数据块的数据库缓冲区。数据库服务器实例103-1、103-2、103-3和103-4分别托管在计算节点102-1、102-2、102-3和102-4上。数据库服务器实例103-1包括在计算节点102-1上运行的数据库进程105-1a和105-1b以及从主存储器104-1分配的数据库缓冲区池108-1。数据库服务器实例103-2包括在计算节点102-2上运行的数据库进程105-2a和105-2b以及从主存储器104-2分配的数据库缓冲区池108-2。数据库服务器实例103-3包括在计算节点102-3上运行的数据库进程105-3a和105-3b以及从主存储器104-3分配的数据库缓冲区池108-3。数据库服务器实例103-4包括在计算节点102-4上运行的数据库进程105-4a和105-4b以及从主存储器104-4分配的数据库缓冲区池108-4。共享存储体系架构中的数据块读取操作DBMS100的任何数据库服务器实例可以访问存储在共享存储装置121的任何存储单元中的数据块。为了读取数据块,数据块读取操作由DBMS100的任何数据库服务器实例发起。例如,数据库服务器实例103-1通过经由网络101将对数据块的数据块请求发送到存储单元122-1来发起对数据块的数据块读取操作,该存储单元122-1将数据块存储在持久性存储装置129-1中。在发送数据块之前,首先在本文中被称为读取暂存(staging)的操作中将数据块添加到从主存储器分配的存储单元缓冲区中。读取暂存需要从持久性存储装置中检索数据块,并将数据块写入到随机存取存储器(“RAM”,例如,非易失性RAM存储器),数据块从随机存取存储器被发送到数据块的请求者。存储单元122-1从持久性存储装置129-1中检索数据块,并将数据块存储在存储单元缓冲区池128-1的缓冲区中。数据块从该缓冲区被发送到数据库缓冲区池108-1中的缓冲区。类似地,数据库服务器实例103-2通过经由网络101向存储单元122-1发送请求来发起对数据块的读取操作,该存储单元122-1将数据块存储在持久性存储装置129-1中。存储单元122-1从持久性存储装置129-1中检索数据块,并将数据块存储在存储单元缓冲区池128-1的缓冲区中。数据块从该缓冲区被发送到数据库缓冲区池108-2中的缓冲区。共享存储的各种优点和缺点共享存储体系架构的优点尤其包括更高的可用性。如果任何计算节点和数据库服务器实例出现故障,则数据库可以通过其余的计算节点和/或数据库服务器实例而保持可用。此外,由于每个数据库服务器实例都为相同的数据库服务并暴露相同的数据库,因此客户端可以在利用由多个计算节点提供的并行处理能力的同时,将数据库中的数据作为单个数据库进行访问。缺点是多个数据库服务实例对数据库的访问速度取决于公共网络连接和处理以及执行读取暂存的存储单元的存储器容量。本文描述了用于在共享存储体系架构下改善数据库访问的方法。附图说明在附图的各图中,以示例而非限制的方式图示了本专利技术的(一个或多个)示例实施例,并且附图中相似的附图标记指代相似的元件,并且其中:图1图示了根据本专利技术的实施例的使用共享存储结构的DBMS。图2图示了根据本专利技术的实施例的使用基于NVRAM的共享存储结构的DBMS。图3图示了根据本专利技术的实施例的数据块读取操作。图4图示了根据本专利技术的实施例的用于镜像的主存储位置和辅助存储位置。图5A和图5B图示了根据本专利技术的实施例的以交错和非交错模式存储在NVRAM中的数据库文件。图6图示了根据本专利技术的实施例的在基于NVRAM的共享存储结构中服务经过滤的数据本文档来自技高网...

【技术保护点】
1.一种方法,包括:/n第一计算元件,第一计算元件将数据文件存储在持久性存储装置中,所述计算元件包括在非易失性随机存取存储器NVRAM中的写暂存池,其中所述数据文件包括数据块;/n第二计算元件,第二计算元件将数据块写入到所述写暂存池,其中写入所述数据块包括:/n发出远程直接存储器访问RDMA写,以将所述数据块写入到所述写暂存池中的写暂存缓冲区;/n在完成所述数据块向所述写暂存缓冲区的写入之后,在与所述数据块对应的记录中设置值,以指示所述数据块处于写暂存延缓状态,所述记录被存储在所述NVRAM中;/n当所述数据块处于所述写暂存延缓状态时:/n防止响应于对所述数据块的请求而从持久性存储装置返回所述数据块;/n所述第一计算元件将所述数据块从所述写暂存缓冲区写入到所述NVRAM;/n响应于完成将所述数据块从所述写暂存缓冲区到所述NVRAM的所述写入,在与所述数据块对应的所述记录中设置值,以指示所述数据块不处于写暂存延缓状态。/n

【技术特征摘要】
【国外来华专利技术】20170929 US 15/720,9491.一种方法,包括:
第一计算元件,第一计算元件将数据文件存储在持久性存储装置中,所述计算元件包括在非易失性随机存取存储器NVRAM中的写暂存池,其中所述数据文件包括数据块;
第二计算元件,第二计算元件将数据块写入到所述写暂存池,其中写入所述数据块包括:
发出远程直接存储器访问RDMA写,以将所述数据块写入到所述写暂存池中的写暂存缓冲区;
在完成所述数据块向所述写暂存缓冲区的写入之后,在与所述数据块对应的记录中设置值,以指示所述数据块处于写暂存延缓状态,所述记录被存储在所述NVRAM中;
当所述数据块处于所述写暂存延缓状态时:
防止响应于对所述数据块的请求而从持久性存储装置返回所述数据块;
所述第一计算元件将所述数据块从所述写暂存缓冲区写入到所述NVRAM;
响应于完成将所述数据块从所述写暂存缓冲区到所述NVRAM的所述写入,在与所述数据块对应的所述记录中设置值,以指示所述数据块不处于写暂存延缓状态。


2.如权利要求1所述的方法,其中:
所述记录包括客户端侧计数器值和服务器侧计数器值;
在与所述数据块对应的记录中设置值以指示所述数据块处于写暂存延缓状态包括:递增所述客户端侧计数器值;
在与所述数据块对应的所述记录中设置值以指示所述数据块不处于写暂存延缓状态包括:递增所述服务器侧计数器值;
防止从持久性存储装置返回所述数据块包括:
读取所述记录;
确定所述客户端侧计数器值大于所述服务器侧计数器值,从而指示所述数据块处于写暂存延缓状态。


3.如权利要求1所述的方法,
还包括所述第一计算元件的RDMA机制向处理进程发送所述数据块已经被写入到所述写暂存缓冲区的通知;以及
其中,所述第一计算元件将所述数据块从所述写暂存缓冲区写入到所述NVRAM包括:响应于所述处理进程接收到所述通知,所述第一计算元件将所述数据块从所述写暂存缓冲区写入到所述NVRAM。


4.如权利要求2所述的方法,其中:
读取所述记录包括:所述第二计算元件发出RDMA读取,以读取所述记录来检索该记录并比较客户端侧计数器值和服务器侧计数器值;以及
确定所述客户端侧计数器值更大包括:所述第二计算元件确定所述客户端计数器值大于所述服务器侧计数器值;
响应于确定所述客户端侧计数器值更大,所述第二计算元件放弃发出用于读取所述数据块的RDMA读取请求。


5.如权利要求2所述的方法,其中:
读取所述记录包括:所述第二计算元件发出RDMA读取,以读取所述记录来检索该记录并比较客户端侧计数器值和服务器侧计数器值;以及
确定所述客户端计数器值更大包括:所述第二计算元件确定所述客户端侧计数器值大于所述服务器侧计数器值;
响应于确定所述客户端侧计数器值更大,所述第二计算元件向运行所述第一计算元件的特定进程发出对所述数据块的请求。


6.如权利要求5所述的方法,还包括:
响应于所述特定进程接收到对所述数据块的所述请求,所述第一计算元件读取所述记录以确定所述客户端侧计数器值是否大于所述服务器侧计数器值;
响应于确定所述客户端侧计数器值不大于所述服务器侧计数器值,从所述持久性存储装置读取所述数据块并将所述数据块发送到所述第二计算元件。


7.一种方法,包括:
将数据库存储在多节点数据库管理系统DBMS中的多个计算节点的非易失性随机存取存储器NVRAM中的多个数据库文件中,所述多个计算节点中的每个计算节点托管数据库服务器实例;
其中,所述多个计算节点中的每个计算节点包括NVRAM,并将所述多个数据库文件的相应子集存储在所述每个计算节点的NVRAM中;
所述多个计算节点中的第一计算节点上的数据库进程执行查询,其中执行所述查询包括:
确定第一数据块存储在所述多个计算节点中的第二计算节点的NVRAM中;
向所述第一计算节点上的第一RDMA硬件机制发出RDMA读取请求,以从第二计算节点的NVRAM中读取所述第一数据块;
所述第二计算节点上的第二RDMA机制从所述NVRAM检索所述特定数据块,并将所述数据块发送到所述第一RDMA硬件机制;
所述第一RDMA机制将所述数据块存储在所述第一计算节点上的数据库缓冲区池的数据库缓冲区中。


8.如权利要求...

【专利技术属性】
技术研发人员:是佳金一亮张哲人陶左宇V·斯里达兰K·尤玛玛格斯瓦兰G·艾维李运睿N·乔杜里K·梅亚潘张锴S·乌斯蒂门科S·S·科沃赛尔亚S·萨尔达史迪
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

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

1