CN117730314A - 计算设备及在该计算设备中使用的方法 - Google Patents

计算设备及在该计算设备中使用的方法 Download PDF

Info

Publication number
CN117730314A
CN117730314A CN202180100610.7A CN202180100610A CN117730314A CN 117730314 A CN117730314 A CN 117730314A CN 202180100610 A CN202180100610 A CN 202180100610A CN 117730314 A CN117730314 A CN 117730314A
Authority
CN
China
Prior art keywords
computing device
redo
local memory
memory
undo information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180100610.7A
Other languages
English (en)
Inventor
罗曼·雅科文科
迈克尔·赫希
丹·伯纳德·巴尔·多夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN117730314A publication Critical patent/CN117730314A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种计算设备,被配置成在集群系统中作为服务器运行。计算设备包括控制器、本地存储器和通信接口。通信接口被配置成连接至第二计算设备,并连接至被配置成存储数据的共享存储器。控制器被配置成从客户端接收命令,并确定与命令有关的重做和/或撤销信息。控制器还被配置成将重做和/或撤销信息存储在本地存储器中,并将重做和/或撤销信息存储在第二计算设备的本地存储器中,从而镜像重做和/或撤销信息,其中,本地存储器为持久存储器。计算设备提供了各种数据库服务器与公共存储装置之间的带宽的高效和充分使用,从而降低了延迟并提高了集群系统的吞吐量。

Description

计算设备及在该计算设备中使用的方法
技术领域
本发明大体上涉及数据库管理领域,更具体地,涉及被配置成在集群系统中作为服务器运行的计算设备和在所述计算设备中使用的方法。
背景技术
一般情况下,数据库需要保存重做和撤消信息。原因是重做信息(或重做数据)用于在典型服务器发生故障时重建页面的最新版本。通常,数据库在提交更改时对重做日志(或重做日志文件)使用写入更改。更新的页面通过检查点机制从典型内存中扫描。在崩溃(或故障)的情况下,需要重做日志,在这种情况下,重做日志用于重建页面的最新版本。在典型集群的情况下,需要幸存的节点访问已崩溃的节点的重做日志,以便执行重建。尽管在崩溃中使用了重做日志,但重做日志通常是只写的。与重做日志类似,典型的数据库使用撤消日志来重建与事务开始时的时间点一致的页面的早期版本。这确保运行事务的客户端看到数据的一致视图。在典型集群的另一种情况下,幸存的节点需要访问崩溃节点的撤消日志,以便执行对仍在进行的事务页面的早期版本的重建。尽管在崩溃中使用了撤销日志,但撤销日志通常是只写的。然而,尽管重做和撤销日志以简洁的形式(更改最小)和简洁的方式(尽可能以顺序写入的形式)存储,重做和撤销日志仍然占用数据库引擎和公共存储装置之间的很大一部分带宽。这继而又会导致更高的延迟,并产生降低数据库吞吐量(或速度)的总体影响。
目前,已经进行了某些尝试来减少延迟和提高数据库的吞吐量。在传统的方法中,撤销日志和重做日志存储到所有数据库引擎可公共访问的存储层。存储层通常被称为“永不故障”层。这种将重做日志和撤销日志存储到存储层的存储也可以称为企业级昂贵的存储。因此,这种类型的存储很昂贵,而且它需要快速,以免延迟事务。写入重做日志和撤销日志的所有数据都需要通过整个协议栈发送,并且任何所需的数据都必须通过整个协议栈显式读取。在典型的集群数据库中,当需要从节点故障中恢复数据时,此问题变得尤其严重,在这种情况下,整个数据库最多可能面临持续几分钟的停电。因此,存在一种技术问题,即数据库引擎和公共存储装置之间的带宽使用低效和不充分,导致更高的延迟和降低数据库的吞吐量(或速度)。
因此,根据上述讨论,需要克服与减少延迟和提高数据库吞吐量的传统方法相关的上述缺点。
发明内容
本发明提供了一种用于在集群系统中作为服务器运行的计算设备和在该计算设备中使用的方法。本发明提供了一种解决现有问题的技术方案,现有问题即低效和不充分地使用数据库引擎与公共存储装置之间的带宽,导致更高的延迟和降低数据库的吞吐量(或速度)。本发明的目的是提供一种至少部分克服现有技术中遇到的问题的技术方案,并提供一种被配置成在集群系统中作为服务器运行的改进的计算设备和在该计算设备中使用的方法,用于减少延迟并提高所述数据库的吞吐量。
本发明的目标是通过所附独立权利要求中提供的技术方案来实现的。本发明的有利实施方式在从属权利要求中进一步定义。
在一个方面,本发明提供了一种计算设备,其被配置成在集群系统中作为服务器运行。该计算设备包括控制器、本地存储器和通信接口。该通信接口被配置成连接至第二计算设备,并连接至被配置成存储数据的共享存储器。该控制器被配置成从客户端接收命令,并且该命令与存储在共享存储器中的数据的至少一部分有关。控制器还被配置成确定与该命令有关的重做和/或撤销信息并将该重做和/或撤销信息存储在本地存储器中,并将重做和/或撤销信息存储在第二计算设备的本地存储器中,从而镜像重做和/或撤销信息,其中,本地存储器为持久存储器。
所述公开的计算设备提供了各种数据库服务器与公共存储装置之间的带宽的高效和充分使用,从而降低了延迟并提高了集群(或数据库)系统的吞吐量(或速度)。所述计算设备和第二计算设备中的每一个的重做和/或撤销信息存储在彼此的本地存储器中,使得能够高速数据访问以及镜像彼此的重做和/或撤销信息。这进一步有助于恢复崩溃的计算设备(例如,第二计算设备)的丢失事务,并且幸存设备(例如,计算设备)使用镜像到其本地存储器的重做和/或撤销信息恢复丢失的事务。这大大加快了恢复速度,因为不需要从公共存储装置读取重做和/或撤消信息。
在一种示例性实现方式中,控制器还被配置成确定与第二计算设备的连接发生故障,并响应此将重做和/或撤销信息存储在共享存储器中,而不是存储在第二计算设备的本地存储器中。
通过在与第二计算设备发生故障连接的情况下将第二计算设备的重做和/或撤销信息存储在共享存储器中,使用存储在共享存储器中的重做和/或撤销信息提供对第二计算设备丢失的事务的高效和快速恢复。
在另一种实现方式中,本地存储器被配置成从另一计算设备接收重做和/或撤销信息,并存储另一计算设备的重做和/或撤销信息。
另一计算设备的重做和/或撤销信息存储在本地存储器中导致镜像重做和/或撤销信息。这进一步导致在另一计算设备发生故障的情况下高效和快速地恢复另一计算设备丢失的事务。
在另一种实现方式中,另一计算设备为第二计算设备。
在一种实现方式中,另一计算设备是连接至计算设备的本地存储器的第二计算设备,因此形成连接的集群系统。
在另一种实现方式中,控制器还被配置成利用远程直接存储器访问(remotedirect memory access,RDMA)写命令将重做和/或撤销信息存储在第二计算设备的本地存储器中。
RDMA写命令的使用导致在第二计算设备的本地存储器中存储重做和/或撤销信息时的高速度。
在另一种实现方式中,控制器还被配置成使用直接访问将重做和/或撤销信息存储在本地存储器中。
直接访问(直接存储器访问(direct memory access,DMA))的使用提供了重做和/或撤销信息在计算设备的本地存储器中的快速存储。
在另一种实现方式中,计算设备被配置成在数据库系统中作为数据库服务器运行,并且其中,所述客户端是数据库客户端。
当计算设备在数据库系统中用作数据库服务器且客户端是数据库客户端时,计算设备提供了改进的吞吐量。
在另一方面,本发明提供了一种用于在集群系统中作为服务器运行的计算设备中使用的方法,其中,计算设备包括本地存储器。该方法包括从客户端接收命令,该命令与存储在共享存储器中的数据的至少一部分有关。该方法还包括确定与命令有关的重做和/或撤销信息并将重做和/或撤销信息存储在本地存储器中,并将重做和/或撤销信息存储在第二计算设备的本地存储器中,从而镜像重做和/或撤销信息,其中,本地存储器为持久存储器。
该方法实现了本发明的计算设备的所有优点和技术特征。
在又一个方面中,本发明提供了一种计算机可读介质,其包括指令,在指令加载到存储器控制器中并由其执行时,存储器控制器能够实现所述方法。
存储器控制器(例如,计算设备的控制器)在执行方法后实现了方法的所有优点和效果。
应当理解的是,所有上述实施方式可以组合在一起。
需要说明的是,本申请中描述的所有设备、元件、电路、单元和装置都可以在软件元件或硬件元件或其任何类型的组合中实现。本申请中描述的各种实体所执行的步骤以及所描述的各种实体要执行的功能均意在指各个实体适于或被配置成执行各个步骤和功能。即使在以下具体实施例的描述中,外部实体要执行的特定功能或步骤未反映在执行该特定步骤或功能的实体的特定详细元件的描述中,技术人员应清楚,这些方法和功能可以在相应的软件或硬件元件中实现,或以此类元件的任何种组合实现。可以理解的是,本发明的特征易于以各种组合进行组合,而不脱离由所附权利要求书所定义的本发明的范围。
附图以及结合所附权利要求解释的说明性实施方式的详细描述将清楚地描述本发明的其它方面、优点、特征和目的。
附图说明
结合所附附图阅读时,可以更好地理解上述发明内容以及说明性实施例的下列详细描述。为了说明本发明,本发明的示例性结构在附图中示出。然而,本发明并不限于本文公开的特定方法和手段。此外,本领域的技术人员将理解,这些附图并非按比例绘制。在可能的情况下,相同的元件使用相同的数字表示。
下面仅通过举例,结合以下附图对本发明实施例进行描述。
图1为根据本发明实施例的计算设备的各种示例性组件的框图。
图2为根据本发明实施例的用于在集群系统中作为服务器运行的计算设备中使用的方法的流程图。
图3A示出了根据本发明实施例的描绘了使用持久存储器来镜像一个或更多个计算设备的重做和撤销信息的集群系统。
图3B示出了根据本发明实施例的描述了使用持久存储器来使用计算设备的镜像重做和撤销信息来恢复丢失的信息的集群系统。
在附图中,带下划线的数字用于表示带下划线的数字所在的项目或与带下划线的数字相邻的项目。不带下划线的数字与将该不带下划线的数字链接到项目的线条所标识的项目相关。当数字不带下划线但带有关联箭头时,不带下划线的数字用于标识箭头所指的一般项目。
具体实施方式
以下详细描述说明了本发明的实施例及其可以实现的方式。虽然已公开本发明的一些实施方式,但本领域的技术人员将认识到,也可以实现用于执行或实践本发明的其它实施例。
图1为根据本发明实施例的计算设备的各种示例性组件的框图。参考图1,示出了包括控制器104、本地存储器106和通信接口108的计算设备102的框图100。还示出了第二计算设备110和共享存储器112。第二计算设备110具有本地存储器110A。
计算设备102包括适当的逻辑、电路、接口和/或代码,该计算设备被配置成在集群系统中作为服务器运行。在一种实现方式中,计算设备102可以是单个硬件服务器。在另一种实现方式中,计算设备102可以是运行在并行或分布式架构中的多个硬件服务器,以形成备份系统。计算设备102的示例包括但不限于存储服务器、网页服务器、应用服务器或其组合。第二计算设备110对应于计算设备102。在用例中,计算设备102可以用于具有终端用户可见的持久状态的分布式应用中。例如,分布式文件系统,其中终端用户可以将数据写入数据文件并在确认中获得“OK”。从那时间点起,分布式文件系统负责持久性。分布式文件系统可以将数据存储在快速临时存储装置中,然后将其移动到另一层。
控制器104包括适当的逻辑、电路、接口和/或代码,该控制器被配置成从客户端接收命令。在一种实现方式中,控制器104可以被配置成执行存储在本地存储器106中的指令。控制器104的示例可以包括但不限于:微控制器、微处理器、中央处理单元(centralprocessing unit,CPU)、复杂指令集计算(complex instruction set computing,CISC)处理器、专用集成电路(application-specific integrated circuit,ASIC)处理器、精简指令集计算(reduced instruction set computing,RISC)处理器、超长指令字(very longinstruction word,VLIW)处理器、数据处理单元以及其它处理器或控制电路。此外,控制器104可以指一个或更多个单独的处理器、处理设备、作为机器一部分的处理单元,例如计算设备102。
本地存储器106包括适当的逻辑、电路、接口或代码,本地存储器被配置成存储重做和撤销信息,所述重做和撤销信息在系统中的计算设备故障的情况下分别用于重建页面的最新版本和页面的之前版本。在一种实现方式中,本地存储器106可以被配置成存储控制器104可执行的数据和指令。本地存储器106的实现示例可以包括但不限于电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、硬盘驱动器(Hard Disk Drive,HDD)、闪存、固态驱动器(Solid-State Drive,SSD)或CPU高速缓冲存储器。本地存储器106可以存储操作系统或其它程序产品(包括一个或更多个操作算法),以操作计算设备102。
通信接口108包括适当的逻辑、电路和/或接口,该通信接口被配置成连接至第二计算设备110并连接至被配置成存储数据的共享存储器112。在一种实现方式中,通信接口108可以被配置成与一个或更多个计算设备例如第二计算设备110通信。通信接口108的示例可以包括但不限于收发器、天线、远程信息处理单元、射频(radio frequency,RF)收发器和/或用户识别模块(subscriber identity module,SIM)卡。
在操作中,计算设备102被配置成在集群系统中作为服务器运行,其中,计算设备102包括控制器104(CPU)、本地存储器106和通信接口108。通信接口108被配置成连接至第二计算设备110,并连接至被配置成存储数据的共享存储器112。计算设备102被配置成在集群系统中作为服务器运行。计算设备102和第二计算设备110中的每个设备也可以被称为数据库(database,DB)服务器或运行数据库(database,DB)引擎的计算节点。通常,计算节点可以定义为在其上运行工作的节点。或者,计算节点在集群系统中执行计算工作,并且计算工作可以由集群系统(例如,管理节点)提供。计算节点上的槽位数由集群系统定义。集群系统也可以称为工作负载管理系统。数据库服务器可以被定义为使用数据库应用的服务器,该数据库应用向其它计算机程序或计算机提供数据库服务,如客户端服务模型所定义的。集群系统也可以称为集群,其可以具有两个或更多个计算设备,例如计算设备102和第二计算设备110。通信接口108被配置成连接至第二计算设备110。在一种可能的方式中,通信接口108可以被配置成连接至第二计算设备110的本地存储器110A。更具体地,在计算设备102上以及第二计算设备110上运行的服务或进程之间创建连接。这些进程决定了对等数据应存储在集群系统中的位置。然而,也可以使用将通信接口108连接至第二计算设备110的其它可能的方式。通信接口108还被配置成连接至被配置成存储数据的共享存储器112。共享存储器112还可以被配置成存储对等数据。共享存储器112也可以被计算设备102和第二计算设备110访问。共享存储器112也可以称为公共存储装置。
控制器104被配置成从客户端接收命令,该命令与存储在共享存储器112中的数据的至少一部分有关。控制器104还被配置成确定与命令有关的重做和/或撤销信息并将重做和/或撤销信息存储在本地存储器106中,并将重做和/或撤销信息存储在第二计算设备110的本地存储器110A中,从而镜像重做和/或撤销信息,其中,本地存储器106为持久存储器。控制器104被配置成从客户端接收命令。客户端也可以称为数据库(database,DB)客户端。从客户端接收的命令与存储在共享存储器112中的数据的至少一部分有关。从客户端接收的命令也可以称为一个或更多个查询。控制器104被配置成根据命令确定重做和撤销信息,并将重做和撤销信息存储在本地存储器106以及第二计算设备110的本地存储器110A中。通过将重做和撤销信息存储在第二计算设备110的本地存储器110A中,重做和撤销信息被镜像。重做和撤销信息的镜像副本的存储有助于在集群系统的计算设备(例如计算设备102和第二计算设备110)故障的情况下恢复数据。计算设备102的本地存储器106和第二计算设备110的本地存储器110A中的每个存储器都是持久存储器。通常,持久存储器可以用于高效地存储数据结构,使得即使在创建或最后修改数据结构的过程结束之后,也可以使用存储器指令或存储器应用程序编程接口(memory application programming interface,API)继续访问存储的数据结构。持久存储器与常规存储器类似,但它在服务器崩溃时是持久的,如硬盘或固态驱动器(solid-state drive,SSD)。但是,永久存储器与常规存储器类似是字节寻址的,并且可以使用远程直接存储器访问(remote direct memory access,RDMA)进行访问。持久存储器的使用提供了对存储在其中的数据的快速访问。计算设备102的本地存储器106和第二计算设备110的本地存储器110A可以是在计算设备102与第二计算设备110(或节点)之间共享或划分的单个本地存储器(或持久存储器)的一部分,并且当第二计算设备110健康时,存在计算设备102不接触与第二计算设备110共享的本地存储器的部分的布置,或反之亦然。这也意味着,当计算设备102健康时,第二计算设备110不接触与计算设备102共享的本地存储器的部分。因此,本地存储器的共享在从计算设备102到第二计算设备110和从第二计算设备110到计算设备102的两个方向上工作。
根据一个实施例,控制器104还被配置成确定与第二计算设备的连接故障,并响应于此将重做和/或撤销信息存储在共享存储器112中,而不是第二计算设备110的本地存储器110A中。控制器104还被配置成确定与第二计算设备110的本地存储器110A(或持久存储器)的连接故障。在一个示例中,与第二计算设备110的本地存储器110A的连接可以断开,或者太慢或不可能。在另一个示例中,与第二计算设备110的本地存储器110A的连接被称为故障,原因是第二计算设备110没有响应或在集群系统中找不到。响应于与第二计算设备110的本地存储器110A的故障连接,重做和撤销信息存储在共享存储器112中,而不是第二计算设备110的本地存储器110A中。在一个示例中,在与第二计算设备110的故障连接的情况下,在与第二计算设备110的连接恢复期间生成更多的重做和/或撤销信息。生成的重做和/或撤销信息存储在计算设备102的本地存储器106中以及共享存储器112中,以确保双副本。在恢复与第二计算设备110的连接之后,更新本地存储器110A。
根据一个实施例,本地存储器106被配置成从另一计算设备接收重做和/或撤销信息,并存储另一计算设备的重做和/或撤销信息。计算设备102的本地存储器106被配置成从另一计算设备(例如,第二计算设备110)接收重做和撤销信息,并存储另一计算设备的重做和撤销信息。因此,将另一个计算设备的重做和撤销信息镜像到计算设备102的本地存储器106中。此后,计算设备102能够使用镜像到本地存储器106的另一计算设备(或崩溃服务器)的重做信息恢复另一计算设备丢失的事务。这反过来又大大加快了恢复速度,因为不需要从公共存储装置读取此信息。
根据一个实施例,另一计算设备为第二计算设备110。在一种实现方式中,其它计算设备可以是第二计算设备110。集群系统具有两个计算设备(即计算设备102和第二计算设备110)。集群系统可以推广到超过两个计算设备。集群系统可能有n个计算设备(或服务器),其中第k个服务器镜像的存储区域位于第(k+1)%n个服务器的持久存储器中。
根据一个实施例,控制器104还被配置成利用RDMA写命令将重做和/或撤销信息存储在第二计算设备110的本地存储器110A中。控制器104被配置成通过使用随机直接存储器访问(random direct memory access,RDMA)写命令将计算设备102的重做和撤销信息存储在第二计算设备110的本地存储器110A中。RDMA写命令是单侧的。第二计算设备110的本地存储器110A也可以称为远程持久存储器。
根据一个实施例,控制器104还被配置成使用直接访问将重做和/或撤销信息存储在本地存储器106中。控制器104被配置成使用直接存储器访问(direct memory access,DMA)命令将计算设备102的重做和撤销信息存储在本地存储器106中。这意味着简单的存储器读/写指令足以将计算设备102的重做和撤销信息存储在本地存储器106中。
根据一个实施例,计算设备102被配置成在数据库系统中作为数据库服务器运行,并且其中,所述客户端是数据库客户端。计算设备102被配置成在数据库系统中作为数据库服务器运行。这意味着集群系统也可以称为数据库系统或数据库集群。客户端是数据库客户端。
因此,计算设备102和第二计算设备110中的每个设备被配置成将重做和/或撤销信息存储在彼此的本地存储器(即,本地存储器106和本地存储器110A)中,使得以显著降低的延迟进行高速数据访问。此外,计算设备102的重做和/或撤销信息存储在本地存储器106(使用存储器直接访问)以及第二计算设备110的本地存储器110A(使用单侧RDMA写命令)中。类似地,第二计算设备110的重做和/或撤销信息存储在本地存储器110A和计算设备102的本地存储器106中。计算设备102和第二计算设备110中的每个设备的重做和/或撤销信息存储在彼此的本地存储器(即,本地存储器106和本地存储器110A)中,使得镜像彼此的重做和/或撤销信息。这进一步有助于恢复崩溃的计算设备(例如,第二计算设备110)的丢失事务,并且幸存设备(例如,计算设备102)使用镜像到其本地存储器(例如,本地存储器106)的重做和/或撤销信息恢复丢失的事务。这大大加快了恢复速度,因为不需要从公共存储装置读取重做和/或撤消信息。
图2为根据本发明实施例的用于在集群系统中作为服务器运行的计算设备中使用的方法的流程图。已经结合图1的元件描述了图2。参考图2,示出了在计算设备102(图1的)中使用的方法200。方法200包括步骤202至208。方法200由计算设备102的控制器104执行。
本发明提供了一种用于在集群系统中作为服务器运行的计算设备(例如,计算设备102)中使用的方法(即,方法200),其中,计算设备102包括本地存储器106,其中,方法200包括:
从客户端接收命令,命令与存储在共享存储器112中的数据的至少一部分有关;
确定与命令有关的重做和/或撤销信息;
将重做和/或撤销信息存储在本地存储器106中;以及
将重做和/或撤销信息存储在第二计算设备110的本地存储器110A中,从而镜像重做和/或撤销信息,其中,本地存储器(本地存储器106和本地存储器110A)是持久存储器。
在步骤202中,方法200包括从客户端接收命令,命令与存储在共享存储器112中的数据的至少一部分有关。更具体地,计算设备102的控制器104被配置成从客户端接收命令(或查询)。从客户端接收的命令与存储在共享存储器112中的数据的至少一部分有关。
在步骤204中,方法200还包括确定与命令有关的重做和/或撤销信息。计算设备102的控制器104在从客户端接收到命令之后,还被配置成根据接收到的命令确定重做和/或撤销信息。
在步骤206中,方法200还包括将重做和/或撤销信息存储在本地存储器106中。在根据接收到的命令确定重做和/或撤销信息之后,计算设备102的控制器104还被配置成将确定的重做和/或撤销信息存储在本地存储器106中,从而快速访问重做和/或撤销信息。
在步骤208中,方法200还包括将重做和/或撤销信息存储在第二计算设备110的本地存储器110A中,从而镜像重做和/或撤销信息,其中,本地存储器(本地存储器106和本地存储器110A)是持久存储器。计算设备102的控制器104在将重做和/或撤销信息存储在本地存储器106中之后,还被配置成将重做和/或撤销信息存储在第二计算设备110的本地存储器110A中,这使得镜像计算设备102的重做和/或撤销信息。重做和/或撤销信息的镜像有助于第二计算设备110在计算设备102发生故障时恢复计算设备102丢失的信息。
根据一个实施例,方法200还包括确定与第二计算设备110的连接故障,并响应于此将重做和/或撤销信息存储在共享存储器112中,而不是第二计算设备110的本地存储器110A中。在一种实现方式中,计算设备102的控制器104还被配置成确定与第二计算设备110的本地存储器110A(或持久存储器)的连接故障。响应于与第二计算设备110的本地存储器110A的故障连接,控制器104被配置成将重做和撤销信息存储在共享存储器112中,而不是第二计算设备110的本地存储器110A中。
根据一个实施例,本地存储器106被配置成从另一计算设备接收重做和/或撤销信息,并且其中,方法200还包括存储另一计算设备的重做和/或撤销信息。计算设备102的本地存储器106被配置成从另一计算设备(例如,第二计算设备110)接收重做和撤销信息。响应于从另一计算设备接收重做和/或撤销信息,控制器104被配置成将另一计算设备的重做和撤销信息存储在本地存储器106中。因此,将另一个计算设备的重做和撤销信息镜像到计算设备102的本地存储器106中,有助于恢复另一计算设备的丢失事务。
根据一个实施例,另一计算设备为第二计算设备110。在一种实现方式中,另一计算设备是第二计算设备110。
根据一个实施例,方法200还包括利用远程直接存储器访问(remote directmemory access,RDMA)写命令将重做和/或撤销信息存储在第二计算设备110的本地存储器110A中。控制器104被配置成通过使用单侧随机直接存储器访问(random direct memoryaccess,RDMA)写命令将计算设备102的重做和撤销信息存储在第二计算设备110的本地存储器110A中。RDMA写命令的使用也以降低的延迟提供了计算设备102与第二计算设备110之间的带宽的高效使用。
根据一个实施例,方法200还包括使用直接访问将重做和/或撤销信息存储在本地存储器106中。控制器104被配置成使用存储器直接访问将计算设备102的重做和撤销信息存储在本地存储器106中。
根据一个实施例,计算设备102被配置成在数据库系统中作为数据库服务器运行,并且其中,所述客户端是数据库客户端。计算设备102被配置成在数据库系统中作为数据库服务器运行。这意味着集群系统也可以称为数据库系统或数据库集群。客户端是数据库客户端。
根据一个实施例,一种计算机可读介质,其包括指令,在指令被加载到存储器控制器(例如,计算设备102的控制器104)中并由其执行时,使存储器控制器能够执行方法200。存储器控制器(即计算设备102的控制器104)在执行(图2的)方法200之后实现计算设备102的所有优点和技术特征。
因此,方法200提供了各种数据库服务器(例如,计算设备102和第二计算设备110)与公共存储装置之间的带宽的高效和充分使用,使得延迟减少并增加数据库的吞吐量(或速度)。计算设备102和第二计算设备110中的每个设备的重做和/或撤销信息存储在彼此的本地存储器中,使得进行高速数据访问以及镜像彼此的重做和/或撤销信息。这进一步有助于恢复崩溃的计算设备(例如,第二计算设备110)的丢失事务,并且幸存设备(例如,计算设备102)使用镜像到其本地存储器的重做和/或撤销信息恢复丢失的事务。这大大加快了恢复速度,因为不需要从公共存储装置读取所述重做和/或撤消信息。
步骤202至208只是说明性的,并且还可以提供其它替选方案,其中在不脱离本文的权利要求书的范围的情况下添加一个或更多个步骤,删除一个或更多个步骤,或按照不同的顺序提供一个或更多个步骤。
图3A示出了根据本发明实施例的描绘了使用持久存储器来镜像一个或更多个计算设备的重做和撤销信息的集群系统。已经结合图1和图2的元件描述了图3A。关于图3A,示出了包括(图1的)计算设备102和第二计算设备110的集群系统300A。还示出了一个或更多个客户端302和公共存储装置304。还示出了一系列操作306至320。系列操作306至312由计算设备102执行,系列操作314至320由第二计算设备110执行。
在操作306中,计算设备102(也表示为数据库(database,DB)服务器0)被配置成执行过程。更具体地,计算设备102的控制器104被配置成执行所述过程。在一种实现方式中,所述过程可以是数据库(database,DB)引擎过程。在另一种实现方式中,所述过程可以用于建立计算设备102与第二计算设备110之间的连接。此外,所述过程有助于本地存储器106和本地存储器110A对远程直接存储器访问(remote direct memory access,RDMA)公开。此外,在发生故障切换的情况下,所述过程承担“恢复”责任。DB引擎过程处理锁、页、缓存内存、所有权等。
在操作308中,计算设备102(更具体地,计算设备102的控制器104)被配置成从一个或更多个客户端302(或数据库客户端)接收命令。接收到的命令涉及存储在公共存储装置304(即,共享存储器112)中的数据的至少一部分。计算设备102被配置成根据命令确定重做和撤销信息(例如,Redo 0和Undo 0)。
在操作310中,计算设备102还被配置成将重做和撤销信息(即,Redo 0和Undo 0)存储在本地存储器106(或持久存储器)中。重做和撤销信息(即,Redo0和Undo0)可以通过使用标准存储器读/写指令或直接持久存储器(persistent memory,PM)访问存储在本地存储器106中。
在操作312中,计算设备102还被配置成通过使用单侧远程直接存储器访问(remote direct memory access,RDMA)写命令将重做和撤销信息存储在第二计算设备110的本地存储器110A中。由于计算设备102的通信接口108被配置成连接至第二计算设备110的本地存储器110A。因此,计算设备102和第二计算设备110相互连接,并在彼此的本地存储器(即本地存储器106和本地存储器110A)中预留空间。因此,计算设备102还被配置成将重做和撤销信息(即,Redo 0和Undo 0)存储在第二计算设备110的本地存储器110A(或持久存储器)中。或者,第二计算设备110被配置成接收对本地存储器110A中的预留空间的请求,供计算设备102使用。因此,在第二计算设备110的本地存储器110A中生成重做和撤销信息(即,Redo 0和Undo 0)的镜像副本。重做和撤销信息(即,Redo 0和Undo 0)的镜像副本有助于在计算设备102故障的情况下恢复数据,反之亦然。
类似于系列操作306至312由计算设备102执行,系列操作314至320由第二计算设备110(也表示为DB服务器1)执行。
在操作314中,第二计算设备110被配置成执行DB引擎过程。
在操作316中,第二计算设备110被配置成从一个或更多个客户端302接收命令。第二计算设备110被配置成根据从一个或更多个客户端302接收的命令确定重做和撤销信息(例如,Redo 1和Undo 1)。
在操作318中,第二计算设备110还被配置成将重做和撤销信息(即,Redo 1和Undo1)存储在本地存储器110A(或持久存储器)中。重做和撤销信息(即,Redo1和Undo1)可以通过使用标准存储器读/写指令或直接持久存储器(persistent memory,PM)访问存储在本地存储器110A中。
在操作320中,第二计算设备110还被配置成通过使用单侧RDMA写命令将重做和撤销信息(Redo1和Undo 1)存储在计算设备102的本地存储器106中。原因是第二计算设备110在计算设备102的本地存储器106中预留空间。因此,生成重做和撤消信息(即Redo 1和Undo1)的镜像副本。重做和撤销信息(即,Redo 1和Undo 1)的镜像副本有助于在第二计算设备110故障的情况下恢复数据(例如在图3B中详细描述),反之亦然。
因此,计算设备102和第二计算设备110中的每个设备被配置成分别将各自的重做和撤销信息存储在本地存储器106和本地存储器110A中。与传统方法相比,在传统方法中,一个或更多个传统计算设备的重做和撤销信息存储在公共存储装置中,导致带宽减小,延迟和成本增加。然而,在集群系统300A中,计算设备102和第二计算设备110中的每个设备被配置成将重做和撤销信息存储在彼此的本地存储器中。原因是计算设备102在第二计算设备110的本地存储器110A中预留空间,反之亦然。这样,在第二计算设备110的本地存储器110A中生成计算设备102的重做和撤销信息(即,Redo 0和Undo 0)的镜像副本。重做和撤销信息(即,Redo 0和Undo 0)的镜像副本有助于在计算设备102故障的情况下恢复数据,反之亦然。这进一步使得带宽增大,延迟也降低。
图3B示出了根据本发明实施例的描述了使用持久存储器来使用计算设备的镜像重做和撤销信息来恢复丢失的信息的集群系统。已经结合图1、图2和图3A的元件描述了图3B。关于图3B,示出了包括(图1的)计算设备102和第二计算设备110的集群系统300B。
在集群系统300B中,已经示出与第二计算设备110(即DB服务器1)的连接故障。在一个示例中,与第二计算设备110的连接可以断开,或者太慢或不可能。在另一个示例中,与第二计算设备110的连接被称为故障,原因是第二计算设备110没有响应或在集群系统300B中找不到或崩溃。然而,第二计算设备110的丢失事务通过使用存储在计算设备102(也称为幸存节点或幸存DB服务器)的本地存储器106中的镜像重做和/或撤销信息来恢复。在集群系统300A中,在操作320中,第二计算设备110的重做和/或撤销信息(即,Redo 1和Undo 1)被镜像到计算设备102的本地存储器106中。因此,在计算设备的本地存储器106中镜像第二计算设备110的重做和/或撤销信息,因为不需要从公共存储装置读取重做和/或撤销信息,从而大大加速了恢复。
此外,集群系统300B容易受到第二故障的影响,直到第二计算设备110(或崩溃的节点)重新启动并重新加入集群系统300B。此外,恢复过程和恢复时间期间的正常操作(例如,一系列操作314至320)生成更多的重做和/或撤销信息。生成的重做和/或撤销信息被镜像到计算设备102(或恢复节点)的本地存储器106,并镜像到公共存储装置304,以确保双副本。此外,当第二计算设备110恢复时,跟踪生成的重做和/或撤销信息,并且更新第二计算设备110的本地存储器110A。因此,集群系统300B显示了在第二计算设备110发生故障的情况下保存重做和/或撤销信息的第二副本的方法,因此,集群系统300B也确保了在双重故障的情况下的生存性。
在不脱离所附权利要求书界定的本发明的范围的情况下,可以对上述本发明的实施例进行修改。用于描述和主张本发明的“包括”、“包含”、“结合”、“具有”、“是”等表达应视为以非唯一的方式解释,即允许没有明确描述的项目、部分或要素也可出现。对单数的引用也应解释为与复数有关。本文使用的词语“示例性”表示“作为一个示例、实例或说明”。任何被描述为“示例性的”实施例并不一定理解为优先于或优越于其它实施例,和/或并不排除其它实施例特点的结合。本文使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。应当理解,为了清楚起见而在单独实施例的上下文中描述的本发明的某些特征还可以通过组合提供在单个实施例中。相反地,为了清楚起见而在单个实施例的上下文中描述的本发明的各种特征也可以单独地或通过任何合适的组合或作为本发明的任何其它描述的实施例提供。

Claims (15)

1.一种计算设备(102),其被配置成在集群系统(300A,300B)中作为服务器运行,其中,所述计算设备(102)包括控制器(104)、本地存储器(106)和通信接口(108),其中,
所述通信接口(108)被配置成:
连接至第二计算设备(110)并且;
连接至被配置成存储数据的共享存储器(112),并且其中,
所述控制器(104)被配置成:
从客户端接收命令,所述命令与存储在所述共享存储器(112)中的所述数据的至少一部分有关;
确定与所述命令有关的重做和/或撤销信息;
将所述重做和/或撤销信息存储在所述本地存储器(106)中;以及
将所述重做和/或撤销信息存储在所述第二计算设备(110)的本地存储器(110A)中,从而镜像所述重做和/或撤销信息,其中,所述本地存储器(106,110A)是持久存储器。
2.根据权利要求1所述的计算设备(102),其中,所述控制器(104)还被配置成确定与所述第二计算设备(110)的连接发生故障,并响应于此将所述重做和/或撤销信息存储在所述共享存储器(112)中,而不是存储在所述第二计算设备(110)的所述本地存储器(110A)中。
3.根据权利要求1或2所述的计算设备(102),其中,所述本地存储器(106)被配置成从另一计算设备接收重做和/或撤销信息,并且存储所述另一计算设备的所述重做和/或撤销信息。
4.根据权利要求3所述的计算设备(102),其中,所述另一计算设备是所述第二计算设备(110)。
5.根据任一前述权利要求所述的计算设备(102),其中,所述控制器(104)还被配置成利用远程直接存储器访问RDMA写命令将所述重做和/或撤销信息存储在所述第二计算设备(110)的所述本地存储器(110A)中。
6.根据任一前述权利要求所述的计算设备(102),其中,所述控制器(104)还被配置成使用直接访问将所述重做和/或撤销信息存储在所述本地存储器(106)中。
7.根据任一前述权利要求所述的计算设备(102),其中,所述计算设备(102)被配置成在数据库系统中作为数据库服务器运行,并且其中,所述客户端是数据库客户端。
8.一种用于在集群系统(300A,300B)中作为服务器运行的计算设备(102)中使用的方法(200),其中,所述计算设备(102)包括本地存储器(106),其中,所述方法(200)包括:
从客户端接收命令,所述命令与存储在共享存储器(112)中的数据的至少一部分有关;
确定与所述命令有关的重做和/或撤销信息;
将所述重做和/或撤销信息存储在所述本地存储器(106)中;以及
将所述重做和/或撤销信息存储在第二计算设备(110)的本地存储器(110A)中,从而镜像所述重做和/或撤销信息,其中,
所述本地存储器(106,110A)是持久存储器。
9.根据权利要求8所述的方法(200),其中,所述方法(200)还包括确定与所述第二计算设备(110)的连接发生故障,并响应于此将所述重做和/或撤销信息存储在所述共享存储器(112)中,而不是存储在所述第二计算设备(110)的所述本地存储器(110A)中。
10.根据权利要求8或9所述的方法(200),其中,所述本地存储器(106)被配置成从另一计算设备接收重做和/或撤销信息,并且其中,所述方法(200)还包括存储所述另一计算设备的所述重做和/或撤销信息。
11.根据权利要求10所述的方法(200),其中,所述另一计算设备是所述第二计算设备(110)。
12.根据权利要求8至11中任一项所述的方法(200),其中,所述方法(200)还包括利用远程直接存储器访问RDMA写命令将所述重做和/或撤销信息存储在所述第二计算设备(110)的所述本地存储器(110A)中。
13.根据权利要求8至12中任一项所述的方法(200),其中,所述方法(200)还包括使用直接访问将所述重做和/或撤销信息存储在所述本地存储器(106)中。
14.根据权利要求8至13中任一项所述的方法(200),其中,所述计算设备(102)被配置成在数据库系统中作为数据库服务器运行,并且其中,所述客户端是数据库客户端。
15.一种计算机可读介质,其包括指令,当所述指令被加载到存储器控制器中并由所述存储器控制器执行时,使所述存储器控制器能够执行根据权利要求8至14中任一项所述的方法(200)。
CN202180100610.7A 2021-08-03 2021-08-03 计算设备及在该计算设备中使用的方法 Pending CN117730314A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/071639 WO2023011703A1 (en) 2021-08-03 2021-08-03 Computing device and method for use in the computing device

Publications (1)

Publication Number Publication Date
CN117730314A true CN117730314A (zh) 2024-03-19

Family

ID=77317032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180100610.7A Pending CN117730314A (zh) 2021-08-03 2021-08-03 计算设备及在该计算设备中使用的方法

Country Status (4)

Country Link
US (1) US20240176704A1 (zh)
EP (1) EP4371015A1 (zh)
CN (1) CN117730314A (zh)
WO (1) WO2023011703A1 (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145838B1 (en) * 2009-03-10 2012-03-27 Netapp, Inc. Processing and distributing write logs of nodes of a cluster storage system

Also Published As

Publication number Publication date
WO2023011703A1 (en) 2023-02-09
US20240176704A1 (en) 2024-05-30
EP4371015A1 (en) 2024-05-22

Similar Documents

Publication Publication Date Title
US7779295B1 (en) Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints
US7631214B2 (en) Failover processing in multi-tier distributed data-handling systems
CA2550003C (en) Geographically distributed clusters
US8132043B2 (en) Multistage system recovery framework
US8127174B1 (en) Method and apparatus for performing transparent in-memory checkpointing
US9798631B2 (en) Block storage by decoupling ordering from durability
CN105830033B (zh) 用于在分布式数据网格中支持持久存储装置版本化和完整性的系统和方法
JP4461147B2 (ja) リモートデータミラーリングを用いたクラスタデータベース
US20110082832A1 (en) Parallelized backup and restore process and system
US20090089338A1 (en) Techniques for file system recovery
CN113326006A (zh) 一种基于纠删码的分布式块存储系统
CN112214649A (zh) 一种时态图数据库分布式事务解决系统
US20210157684A1 (en) Scalable Low-Loss Disaster Recovery for Data Stores
CN117730314A (zh) 计算设备及在该计算设备中使用的方法
CN115202925A (zh) 基于rdma的支持细粒度容错的共识方法及系统
CN116601610A (zh) 连续数据保护单元、用于数据保护的恢复单元及其方法
KR102019565B1 (ko) 데이터 베이스 관리 방법
US20190073128A1 (en) Computer system, data management method, and data management program
CN114721869A (zh) 一种账户余额处理方法及系统
CN112559253B (zh) 一种计算机系统数据备份与还原的方法及装置
WO2017023244A1 (en) Fault tolerant computing
US7584271B2 (en) Method, system, and computer readable medium for delaying the configuration of a shared resource
CN116910064A (zh) 一种分布式系统中在线创建表索引方法和系统
US7543017B1 (en) Cluster file system node failure file recovery by reconstructing file state
Rahm A Reliable and Efficient Synchronization Protocol for Database Sharing Systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination