CN110677280B - 服务节点切换方法、装置、设备及计算机可读存储介质 - Google Patents
服务节点切换方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110677280B CN110677280B CN201910883949.3A CN201910883949A CN110677280B CN 110677280 B CN110677280 B CN 110677280B CN 201910883949 A CN201910883949 A CN 201910883949A CN 110677280 B CN110677280 B CN 110677280B
- Authority
- CN
- China
- Prior art keywords
- service node
- page
- switching
- identifier
- operation page
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种服务节点切换方法、装置、设备和计算机可读存储介质。该方法包括:在第一服务节点接收到操作请求时,第一服务节点获取操作请求对应的页面标识;并按操作请求处理页面标识对应的操作页面,并将处理后的操作页面同步到缓冲服务节点;在检测到第一服务节点故障时,将与第一服务节点通信连接的第二服务节点切换为上线状态,并记录第二服务节点状态切换的切换时间;在第二服务节点接收到操作请求时,第二服务节点获取操作请求中的页面标识和操作时间;若操作时间在切换时间之前,第二服务节点查询缓冲服务节点,获取页面标识对应的操作页面,并按操作请求处理操作页面。本发明缩短了主备服务节点切换时操作请求执行的等待时间。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及服务节点切换方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的飞速发展,网络服务越来越常见,网络服务依赖于数据库、软件程序和硬件结构。
在网络服务的过程中服务节点会受到不同因素的影响,出现服务节点宕机的情况,为了使得网络服务不受影响,通常设置一个主服务节点和一个备服务节点,主服务节点出现故障时,备服务节点需要基于物理日志的复制,回滚掉主机未提交的事务,然后备服务器才可以来提供相应的网络服务,也就是说主服务节点刚切换到备服务节点时,需要一定的时间进行恢复,备服务器才可以提供正常的网络服务,使得主备服务节点切换时服务处理存在一定滞后性。
发明内容
本发明的主要目的在于提出一种服务节点切换方法、装置、设备及计算机可读存储介质,旨在解决当前主备服务节点进行切换时,不可以进行及时事务处理的技术问题。
为实现上述目的,本发明提供一种服务节点切换方法,所述服务节点切换方法包括如下步骤:
在第一服务节点接收到操作请求时,第一服务节点获取所述操作请求对应的页面标识;
第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点;
在检测到第一服务节点故障时,将与第一服务节点通信连接的第二服务节点切换为上线状态,并记录第二服务节点状态切换的切换时间;
在第二服务节点接收到操作请求时,第二服务节点获取所述操作请求中的页面标识和操作时间;
若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,获取所述页面标识对应的操作页面,并按所述操作请求处理所述操作页面。
可选地,所述第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点的步骤,包括:
第一服务节点查询第一服务节点的第一数据缓冲池,并判断所述第一数据缓冲池中是否包含所述页面标识对应的操作页面;
若所述第一数据缓冲池中不包含所述页面标识对应的操作页面,第一服务节点从第一服务节点的第一磁盘中获取所述页面标识对应的操作页面;
第一服务节点将所述操作页面写入所述第一数据缓冲池,并按所述操作请求处理所述操作页面。
可选地,所述第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点的步骤,包括:
第一服务节点创建原子操作,第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并在第一服务节点的第一数据缓冲池中生成Redo日志;
在所述原子操作结束时,第一服务节点为所述Redo日志添加日志标记;
第一服务节点将包含所述日志标识的Redo日志通过远程直接内存数据存取方式发送至缓冲服务节点。
可选地,所述在所述原子操作结束时,第一服务节点为所述Redo日志添加日志标记的步骤之后,包括:
第一服务节点将包含所述日志标识的Redo日志发送至第二服务节点;
第二服务节点接收所述Redo日志,第二服务节点按照所述Redo日志的日志标识构建Redo日志链,并生成所述页面标识对应的操作页面;
第二服务节点将生成的所述操作页面存储在第二服务节点的第二数据缓冲池中,并持久化到第二服务节点的第二磁盘中。
可选地,所述若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,获取所述页面标识对应的操作页面,并按所述操作请求处理所述操作页面的步骤,包括:
若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,判断缓冲服务节点中是否包含所述页面标识对应的操作页面;
若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点通过远程直接内存数据存取方式从缓冲服务节点获取所述操作页面,并按所述操作请求处理所述操作页面。
可选地,所述若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点通过远程直接内存数据存取方式从缓冲服务节点获取所述操作页面,并按所述操作请求处理所述操作页面的步骤,包括:
若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点判断第二服务节点的Redo日志链中是否包含所述页面标识对应的操作页面;
若所述Redo日志链中包含所述页面标识对应的操作页面,第二服务节点将缓冲服务节点中的操作页面与所述Redo日志链中的操作页面进行比对,确定最新的操作页面;
若缓冲服务节点中的操作页面是最新的操作页面,第二服务节点按所述操作请求处理所述最新的操作页面,将Redo日志链中的操作页面标记为脏页面并删除;
若所述Redo日志链中的操作页面是最新的操作页面,第二服务节点则进行页面重做得到最新的操作页面,并按所述操作请求处理所述最新的操作页面。
可选地,所述若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,判断缓冲服务节点中是否包含所述页面标识对应的操作页面的步骤之后,包括:
若缓冲服务节点中不包含所述页面标识对应的操作页面,第二服务节点查询Redo日志链,获取所述Redo日志链中所述页面标识对应的操作页面;
第二服务节点按所述操作请求处理所述操作页面。
此外,为实现上述目的,本发明还提供一种服务节点切换设备,所述服务节点切换设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的服务节点切换程序,所述服务节点切换程序被所述处理器执行时实现如上所述的服务节点切换方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有服务节点切换程序,所述服务节点切换程序被处理器执行时实现如上所述的服务节点切换方法的步骤。
本发明提供一种服务节点切换方法、装置、设备及计算机可读存储介质。本发明实施例中,在第一服务节点接收到操作请求时,第一服务节点获取操作请求对应的页面标识;第一服务节点按操作请求处理页面标识对应的操作页面,并将处理后的操作页面同步到缓冲服务节点;在检测到第一服务节点故障时,将与第一服务节点通信连接的第二服务节点切换为上线状态,并记录第二服务节点状态切换的切换时间;在第二服务节点接收到操作请求时,第二服务节点获取操作请求中的页面标识和操作时间;若操作时间在切换时间之前,第二服务节点查询缓冲服务节点,获取页面标识对应的操作页面,并按操作请求处理操作页面。本发明实施例中第一服务节点正常操作时,将操作页面发送至缓冲服务节点,第一服务节点故障时,第二服务节点从缓冲服务节点中拿取操作页面,并对操作页面执行操作请求,第二服务节点不需要停下进行数据恢复,使得第二服务节点可以快速地处理操作请求,减少了第一服务节点和第二服务节点的时间浪费。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明服务节点切换方法第一实施例的流程示意图;
图3为本发明服务节点切换方法第一实施例中缓冲服务节点的示意图;
图4为本发明服务节点切换方法第一实施例的具体场景示意图;
图5为本发明服务节点切换方法第二实施例的流程示意图;
图6为本发明服务节点切换方法第三实施例的流程示意图;
图7为本发明服务节点切换装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例服务节点切换设备可以是PC机或服务器。
如图1所示,该服务节点切换设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线 1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏 (Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的服务节点切换设备结构并不构成对服务节点切换设备的限定,服务节点切换可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及服务节点切换对应的计算机程序(又叫服务节点切换程序)。
在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的服务节点切换程序,处理器上运行的服务节点切换程序被执行时所实现的方法可参照本发明服务节点切换方法各个实施例。
基于上述硬件结构,提出本发明服务节点切换方法实施例。
参照图2,图2为本发明服务节点切换方法第一实施例的流程示意图,所述方法包括:
步骤S10,在第一服务节点接收到操作请求时,第一服务节点获取所述操作请求对应的页面标识。
本实施例中的服务节点切换方法应用于服务节点切换设备,服务节点切换设备是服务节点切换平台的硬件载体,本实施例中的服务节点切换平台可以作为一个中间平台对接第一服务节点(又叫主服务节点,或者Active节点) 和第二服务节点(又叫备服务节点,或者Standby节点),此外,服务节点切换平台还可以设置在第一服务节点和/或第二服务节点上。
本实施例中预先设置有缓冲服务节点,缓冲服务节点(又叫,AOP(AtomicOperation Page,原子操作页)Server节点),AOP Server节点可以作为一个中间平台对接第一服务节点和第二服务节点。
可以理解的是,服务节点切换设备和缓冲服务节点实现的功能并不相同,服务节点切换设备运行时实现本实施例中服务节点切换方法的步骤,缓冲服务节点用于缓存页面操作信息。
本实施例中,以服务节点切换设备设置在第一服务节点和第二服务节点上,AOPServer节点作为一个中间平台对接第一服务节点和第二服务节点为例进行说明,服务节点切换设备对第一服务节点和第二服务节点进行检测,执行本申请服务节点切换方法,具体地:第一服务节点接收操作请求,操作请求的类型不作具体限定,即,操作请求可以是页面编辑请求或者页面访问请求等等,操作请求的触发形式不作具体限定,即,操作请求可以是终端自动触发的,例如,终端中设置每天凌晨访问xxx页面获取用户访问数据,则每天凌晨终端触发操作请求,终端将操作请求发送至第一服务节点;操作请求还可以是用户主动触发的。
在第一服务节点接收到操作请求时,第一服务节点获取操作请求对应的页面标识,其中,页面标识是指唯一识别页面的标识信息,例如页面ID。
步骤S20,第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点。
具体地,包括:
步骤a1,第一服务节点查询第一服务节点的第一数据缓冲池,并判断所述第一数据缓冲池中是否包含所述页面标识对应的操作页面;
步骤a2,若所述第一数据缓冲池中不包含所述页面标识对应的操作页面,第一服务节点从第一服务节点的第一磁盘中获取所述页面标识对应的操作页面;
步骤a3,第一服务节点将所述操作页面写入所述第一数据缓冲池,并按所述操作请求处理所述操作页面。
即,第一服务节点查询第一服务节点的第一数据缓冲池,第一服务节点到第一数据缓冲池中通过页面标识查找操作页面,如果没有找到,第一服务节点则从第一服务节点对应的第一磁盘上读取页面标识对应的操作页面,第一服务节点将从第一磁盘上读取到的操作页面保存第一数据缓冲池中,第一服务节点检测到操作页面进入第一数据缓冲池后,第一服务节点根据操作请求处理操作页面,完成对操作页面的修改,同时在第一数据缓冲池的Redo日志缓冲区中根据处理步骤生成Redo日志。
本实施例中,预先建立Active节点、Standby节点和AOP Server节点的连接,在操作页面处理完成之后,第一服务节点将处理后的操作页面同步到缓冲服务节点,同时第一服务节点将操作页面发送到Standby节点。
第一服务节点将操作页面同步到缓冲服务节点的具体实现方式为: Active节点根据配置信息连接AOP Server节点,Active节点与AOP Server交换信息,Active节点获得AOP Server上AOP池的内存地址,该内存地址与 Active节点本地的第一数据缓冲地址建立映射(需要保证AOP池的内存要大于Active节点上数据缓冲池的大小),Active节点将修改后的操作页面通过 RDMA(Remote Direct Memory Access远程直接内存数据存取,RDMA是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个***快速移动到远程***存储器中,而不对操作***造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和 CPU周期用于改进应用***性能)的方式同步到AOPServer节点的AOP页面池中。
结合图3,缓冲服务节点中AOP数据页面缓冲服务的内存(4100)大小和Active数据库的数据缓冲(4002)的大小相同由于RDMA每个内存注册区域的大小限制,注册多个RDMAMemory Region,AOP有一块内存区域专门存放所有页面的ID,每一个ID唯一标示一个页面,即,第一服务节点将操作之后的操作页面,和操作页面的页面标识通过RDMA的方式同步到缓冲服务节点。
在操作页面处理完成之后,第一服务节点通过RDMA的方式将操作页面和操作页面的标识同步到缓冲服务节点,RDMA的方式可以减少操作页面的传输时间,加快效率。
本实施例中,第一服务节点根据RDMA的方式无需服务节点CPU直接参与的特点,第一服务节点通过RDMA直接将操作页面同步到缓冲服务节点中,使得第二服务节点可以继续访问这些页面,使得第二服务节点无需等待 Redo,Undo操作全部完成就可读写事务,使得RTO(Recovery Time Objective 复原时间目标)接近零,具体地:
步骤S30,在检测到第一服务节点故障时,将与第一服务节点通信连接的第二服务节点切换为上线状态,并记录第二服务节点状态切换的切换时间。
服务节点切换设备在检测到第一服务节点故障时,即,第一服务节点受到硬件、软件或者其他因素影响,不可以正常提供服务时,第一服务节点发送报警信息,服务节点切换设备接收第一服务节点发送的报警信息,服务节点切换设备在检测到第一服务节点故障,服务节点切换设备将与第一服务节点通信连接的第二服务节点切换为上线状态,并记录第二服务节点状态切换的切换时间。
即,服务节点切换设备在第二服务节点状态切换时,服务节点切换设备记录时间戳的快照(Timestamp Snapshot简称TS),使得第二服务器节点可以采用MVCC(MultiVersion concurrency control,多版本并发控制算法,一种读写不阻塞的并发控制算法,该算法的原理是,当操作页面的某个元组发生修改的时候,其历史版本并不会被马上删除,而是保存下来,通过事务快照来判断元组的可见性)处理时间戳的快照,第二服务节点根据MVCC做可见性判断,这样主备服务节点之间不需要传递其他的事务快照信息,具体地:
步骤S40,在第二服务节点接收到操作请求时,第二服务节点获取所述操作请求中的页面标识和操作时间。
在第二服务节点状态切换之后,第二服务节点处于上线状态,第二服务节点承继第一服务节点的处理事务,即,第二服务节点接收操作请求,第二服务节点获取操作请求中的页面标识和操作时间。
第二服务节点状态比较操作时间和切换时间的先后顺序,若操作时间在所述切换时间之后,即,该操作请求是第一服务节点和第二服务节点切换之后用户新触发的,第二服务节点直接处理,即,第二服务节点获取操作请求对应的页面标识,第二服务节点从自身的第二磁盘或者第二数据缓冲池获取页面标识对应的操作页面,并对该操作页面执行该操作请求;若操作时间在所述切换时间之前,即,该操作请求是第一服务节点和第二服务节点切换之前,第一服务节点没有处理完成的,第一服务节点没有处理完成就出现的故障,此时,第二服务节点执行下述步骤:
步骤S50,若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,获取所述页面标识对应的操作页面,并按所述操作请求处理所述操作页面。
若操作时间在切换时间之前,该操作请求为第一服务节点没有执行完成的,第二服务节点查询缓冲服务节点,第二服务节点获取页面标识对应的操作页面,并按操作请求处理所述操作页面。
结合图4,第二服务节点查询缓冲服务节点,若缓冲服务节点中包含页面标识对应的操作页面,缓冲服务节点通过RDMAwrite将页面发送给Standby 节点;使得第二服务节点按操作请求处理操作页面。
本发明实施例中第一服务节点正常操作时,将操作页面发送至缓冲服务节点,第一服务节点故障时,第二服务节点从缓冲服务节点中拿取操作页面,并对操作页面执行操作请求,第二服务节点不需要停下进行数据恢复,使得第二服务节点可以快速地处理操作请求,减少了第一服务节点和第二服务节点的时间浪费。
可以理解的是:当Active节点出现故障以后,假设仲裁逻辑已经做出判断,Standby节点接管Active节点的服务。记录下Standby升级为Active时的时间戳快照TS1,此Active节点记为Active’。此时的恢复线程继续工作直到Redo重放工作结束,重放过程中会忽略那些页面的TS大于Redo日志中的 TS的页面。原来在恢复过程中Active’节点是无法处理事务的,所以这个过程***还不可用。引入AOP池以后,重放过程中数据库可以正常访问,产生在线的Redo日志,检查点机制也可以正常工作。当页面上的TS小于TS1时直接从AOPServer的AOP池通过RDMA协议中取相应的页面,覆盖到当前的数据缓冲的对应位置的页面上面,事务正常执行,对外提供服务不中断。
进一步地,参考图5,基于本发明服务节点切换方法第一实施例,提出本发明服务节点切换方法第二实施例。
本实施例是第一实施例中步骤S30的细化,本实施例于上述实施例的区别在于:
步骤S31,第一服务节点创建原子操作,第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并在第一服务节点的第一数据缓冲池中生成Redo日志。
本实施例中,第一服务节点创建原子操作(atomic operation指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何contextswitch),第一服务节点按操作请求处理页面标识对应的操作页面,第一服务节点生成操作相关的Redo日志,第一服务节点将生成的Redo 日志保证至第一数据缓冲池中Redo日志缓冲区。
步骤S32,在所述原子操作结束时,第一服务节点为所述Redo日志添加日志标记。
第一服务节点在原子操作结束时,第一服务节点为Redo日志添加日志标记,具体地:第一服务节点为每一个操作页面也维护一个日志标识(PageLSN)。每当一个更新操作发生在某页上时,该操作将其日志记录的LSN存储在该页的Page LSN域中。在恢复的撤销阶段,LSN值小于或等于Page LSN值的日志记录将不在该页上执行,因为它的动作已经在该页上了。
本实施例中,第一服务节点为每个日志记录包含同一事务的前一日志记录的LSN放在Page LSN中,使得一个事务可以由后向前提取,而不必读整个日志。
步骤S33,第一服务节点将包含所述日志标识的Redo日志通过远程直接内存数据存取方式发送至缓冲服务节点。
第一服务节点将包含日志标识的Redo日志通过远程直接内存数据存取方式发送至缓冲服务节点,本实施例中,第一服务节点创建原子操作执行操作请求,可以防止操过请求被打断,第一服务节点在原子操作结束之后,第一服务节点生成日志标识,并发送至缓冲服务节点,保证了缓冲服务节点中操作页面的连续性。
进一步地,参考图6,在本发明服务节点切换方法上述实施例的基础上,提出本发明服务节点切换方法第三实施例。
本实施是第一实施例中步骤S50的细化,本实施例与第一实施例的区别在于:
步骤S51,若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,判断缓冲服务节点中是否包含所述页面标识对应的操作页面;
若操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,判断缓冲服务节点中是否包含页面标识对应的操作页面。
步骤S52,若缓冲服务节点中不包含所述页面标识对应的操作页面,第二服务节点查询Redo日志链,获取所述Redo日志链中所述页面标识对应的操作页面,第二服务节点按所述操作请求处理所述操作页面。
若缓冲服务节点中不包含页面标识对应的操作页面,第二服务节点查询 Redo日志链,获取Redo日志链中页面标识对应的操作页面,第二服务节点按操作请求处理操作页面。
本实施例中,第一服务节点将操作页面发送至第二服务节点,以在第二服务节点备份第一服务节点发送的操作页面,具体地,包括:
步骤b1,第一服务节点将包含所述日志标识的Redo日志发送至第二服务节点;
步骤b2,第二服务节点接收所述Redo日志,第二服务节点按照所述Redo 日志的日志标识构建Redo日志链,并生成所述页面标识对应的操作页面;
步骤b3,第二服务节点将生成的所述操作页面存储在第二服务节点的第二数据缓冲池中,并持久化到第二服务节点的第二磁盘中。
即,第一服务节点处理完成操作页面之后,第一服务节点将包含日志标识的Redo日志通过远程直接内存数据存取的方式发送给缓冲服务节点的同时,第一服务节点通过TCP(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议)协议,第一服务节点将包含日志标识的Redo日志发送至第二服务节点。
第二服务节点接收第一服务节点发送的Redo日志,第二服务节点获取 Redo日志的日志标识,其中,日志标识中包含操作时间,第二服务节点按照各个Redo日志的操作时间构建Redo日志链,并生成页面标识对应的操作页面;第二服务节点将生成的所述操作页面存储在第二服务节点的第二数据缓冲池中,并持久化到第二服务节点的第二磁盘中。
可以理解的是,第一服务节点将包含日志标识的Redo日志发送至第二服务节点,使得第二服务节点可以根据Redo日志进行操作页面还原,具体地,包括:分析阶段:决定哪些事务要撤销,哪些页在崩溃时是脏的,以及重做阶段应从哪个LSN开始;Redo阶段:从分析阶段决定的位置开始,执行重做,将操作页面恢复到发生崩溃前的状态,此外,进行处理的过程中会产生一些特殊的Redo-only的日志,称为补偿日志记录CLR(Compensation LogRecord,补偿日志记录),CLR中还有额外的称为Undo,此时,第二服务节点还需要进行undo阶段:这一阶段回滚在发生崩溃时那些不完全的事务。
本实施例中,第一服务节点发送操作页面信息至缓冲服务节点的同时也发送至第二服务节点,使得在第二服务节点切换之后,第二服务节点可以利用备份的操作页面执行操作请求,本实施例中,第一服务节点进行重复的操作数据发送,可以有效地降低了服务节点切换的风险。
步骤S53,若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点通过远程直接内存数据存取方式从缓冲服务节点获取所述操作页面,并按所述操作请求处理所述操作页面。
具体地,包括:
步骤c1,若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点判断第二服务节点的Redo日志链中是否包含所述页面标识对应的操作页面;
步骤c2,若所述Redo日志链中包含所述页面标识对应的操作页面,第二服务节点将缓冲服务节点中的操作页面与所述Redo日志链中的操作页面进行比对,确定最新的操作页面;
步骤c3,若缓冲服务节点中的操作页面是最新的操作页面,第二服务节点按所述操作请求处理所述最新的操作页面,将Redo日志链中的操作页面标记为脏页面并删除;
步骤c4,若所述Redo日志链中的操作页面是最新的操作页面,第二服务节点则进行页面重做得到最新的操作页面,并按所述操作请求处理所述最新的操作页面。
即,若缓冲服务节点中包含页面标识对应的操作页面,第二服务节点判断第二服务节点的Redo日志链中是否包含页面标识对应的操作页面;若Redo 日志链中包含页面标识对应的操作页面,第二服务节点将缓冲服务节点中的操作页面与Redo日志链中的操作页面进行比对,确定最新的操作页面;具体地,第二服务节点将缓冲服务节点中操作页面的页面修改时间与Redo日志链中操作页面的页面修改时间进行比对,若缓冲服务节点中的操作页面是最新的操作页面,第二服务节点按所述操作请求处理最新的操作页面,将Redo日志链中的操作页面标记为脏页面(脏页面是指在数据缓冲区的页面,如果从磁盘读上来以后经过事务的修改,发生了变化,这样的页面被称为脏页面) 并删除;若Redo日志链中的操作页面是最新的操作页面,第二服务节点则进行页面重做得到最新的操作页面,并按操作请求处理所述最新的操作页面。
本实施例中,第二服务节点在缓冲服务节点获取到操作页面,第二服务节点查询第一服务节点发送的操作页面,并确定最新的操作页面,以对最新的操作页面进行处理,避免了缓冲服务节点中的页面不是最新操作页面的情况。
参照图7,本发明还提供一种服务节点切换装置,所述服务节点切换装置包括:
第一接收模块10,用于在第一服务节点接收到操作请求时,第一服务节点获取所述操作请求对应的页面标识;
处理缓冲模块20,用于第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点;
切换记录模块30,用于在检测到第一服务节点故障时,将与第一服务节点通信连接的第二服务节点切换为上线状态,并记录第二服务节点状态切换的切换时间;
第二接收模块40,用于在第二服务节点接收到操作请求时,第二服务节点获取所述操作请求中的页面标识和操作时间;
查询处理模块50,用于若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,获取所述页面标识对应的操作页面,并按所述操作请求处理所述操作页面。
在一实施例中,所述处理缓冲模块20,包括:
判断单元,用于第一服务节点查询第一服务节点的第一数据缓冲池,并判断所述第一数据缓冲池中是否包含所述页面标识对应的操作页面;
获取单元,用于若所述第一数据缓冲池中不包含所述页面标识对应的操作页面,第一服务节点从第一服务节点的第一磁盘中获取所述页面标识对应的操作页面;
写入单元,用于第一服务节点将所述操作页面写入所述第一数据缓冲池,并按所述操作请求处理所述操作页面。
在一实施例中,所述处理缓冲模块20,包括:
创建单元,用于第一服务节点创建原子操作,第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并在第一服务节点的第一数据缓冲池中生成Redo日志;
标记添加单元,用于在所述原子操作结束时,第一服务节点为所述Redo 日志添加日志标记;
缓冲单元,用于第一服务节点将包含所述日志标识的Redo日志通过远程直接内存数据存取方式发送至缓冲服务节点。
在一实施例中,所述的服务节点切换装置,包括:
日志发送模块,用于第一服务节点将包含所述日志标识的Redo日志发送至第二服务节点;
缓存模块,用于第二服务节点接收所述Redo日志,第二服务节点按照所述Redo日志的日志标识构建Redo日志链,并生成所述页面标识对应的操作页面;
生成模块,用于第二服务节点将生成的所述操作页面存储在第二服务节点的第二数据缓冲池中,并持久化到第二服务节点的第二磁盘中。
在一实施例中,查询处理模块50,包括:
第一判定子模块,用于若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,判断缓冲服务节点中是否包含所述页面标识对应的操作页面;
获取处理子模块,用于若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点通过远程直接内存数据存取方式从缓冲服务节点获取所述操作页面,并按所述操作请求处理所述操作页面。
在一实施例中,所述获取处理子模块,包括:
判断单元,用于若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点判断第二服务节点的Redo日志链中是否包含所述页面标识对应的操作页面;
比对单元,用于若所述Redo日志链中包含所述页面标识对应的操作页面,第二服务节点将缓冲服务节点中的操作页面与所述Redo日志链中的操作页面进行比对,确定最新的操作页面;
处理单元,用于若缓冲服务节点中的操作页面是最新的操作页面,第二服务节点按所述操作请求处理所述最新的操作页面,将Redo日志链中的操作页面标记为脏页面并删除;
处理单元,还用于若所述Redo日志链中的操作页面是最新的操作页面,第二服务节点则进行页面重做得到最新的操作页面,并按所述操作请求处理所述最新的操作页面。
在一实施例中,所述查询处理模块50,包括:
查询获取单元,用于若缓冲服务节点中不包含所述页面标识对应的操作页面,第二服务节点查询Redo日志链,获取所述Redo日志链中所述页面标识对应的操作页面;
处理单元,用于第二服务节点按所述操作请求处理所述操作页面。
上述各程序模块所执行的方法可参照本发明服务节点切换方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种服务节点切换方法,其特征在于,所述服务节点切换方法包括如下步骤:
在第一服务节点接收到操作请求时,第一服务节点获取所述操作请求对应的页面标识;
第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点;
在检测到第一服务节点故障时,将与第一服务节点通信连接的第二服务节点切换为上线状态,并记录第二服务节点状态切换的切换时间;
在第二服务节点接收到操作请求时,第二服务节点获取所述操作请求中的页面标识和操作时间;
若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,获取所述页面标识对应的操作页面,并按所述操作请求处理所述操作页面;
其中,所述第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点的步骤,包括:
第一服务节点创建原子操作,第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并在第一服务节点的第一数据缓冲池中生成Redo日志;
在所述原子操作结束时,第一服务节点为所述Redo日志添加日志标识 ;
第一服务节点将包含所述日志标识的Redo日志通过远程直接内存数据存取方式发送至缓冲服务节点。
2.如权利要求1所述的服务节点切换方法,其特征在于,所述第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点的步骤,包括:
第一服务节点查询第一服务节点的第一数据缓冲池,并判断所述第一数据缓冲池中是否包含所述页面标识对应的操作页面;
若所述第一数据缓冲池中不包含所述页面标识对应的操作页面,第一服务节点从第一服务节点的第一磁盘中获取所述页面标识对应的操作页面;
第一服务节点将所述操作页面写入所述第一数据缓冲池,并按所述操作请求处理所述操作页面。
3.如权利要求1所述的服务节点切换方法,其特征在于,所述在所述原子操作结束时,第一服务节点为所述Redo日志添加日志标记的步骤之后,包括:
第一服务节点将包含所述日志标识的Redo日志发送至第二服务节点;
第二服务节点接收所述Redo日志,第二服务节点按照所述Redo日志的日志标识构建Redo日志链,并生成所述页面标识对应的操作页面;
第二服务节点将生成的所述操作页面存储在第二服务节点的第二数据缓冲池中,并持久化到第二服务节点的第二磁盘中。
4.如权利要求1至3任意一项所述的服务节点切换方法,其特征在于,所述若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,获取所述页面标识对应的操作页面,并按所述操作请求处理所述操作页面的步骤,包括:
若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,判断缓冲服务节点中是否包含所述页面标识对应的操作页面;
若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点通过远程直接内存数据存取方式从缓冲服务节点获取所述操作页面,并按所述操作请求处理所述操作页面。
5.如权利要求4所述的服务节点切换方法,其特征在于,所述若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点通过远程直接内存数据存取方式从缓冲服务节点获取所述操作页面,并按所述操作请求处理所述操作页面的步骤,包括:
若缓冲服务节点中包含所述页面标识对应的操作页面,第二服务节点判断第二服务节点的Redo日志链中是否包含所述页面标识对应的操作页面;
若所述Redo日志链中包含所述页面标识对应的操作页面,第二服务节点将缓冲服务节点中的操作页面与所述Redo日志链中的操作页面进行比对,确定最新的操作页面;
若缓冲服务节点中的操作页面是最新的操作页面,第二服务节点按所述操作请求处理所述最新的操作页面,将Redo日志链中的操作页面标记为脏页面并删除;
若所述Redo日志链中的操作页面是最新的操作页面,第二服务节点则进行页面重做得到最新的操作页面,并按所述操作请求处理所述最新的操作页面。
6.如权利要求4所述的服务节点切换方法,其特征在于,所述若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,判断缓冲服务节点中是否包含所述页面标识对应的操作页面的步骤之后,包括:
若缓冲服务节点中不包含所述页面标识对应的操作页面,第二服务节点查询Redo日志链,获取所述Redo日志链中所述页面标识对应的操作页面;
第二服务节点按所述操作请求处理所述操作页面。
7.一种服务节点切换装置,其特征在于,所述服务节点切换装置包括:
第一接收模块,用于在第一服务节点接收到操作请求时,第一服务节点获取所述操作请求对应的页面标识;
处理缓冲模块,用于第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并将处理后的所述操作页面同步到缓冲服务节点;
切换记录模块,用于在检测到第一服务节点故障时,将与第一服务节点通信连接的第二服务节点切换为上线状态,并记录第二服务节点状态切换的切换时间;
第二接收模块,用于在第二服务节点接收到操作请求时,第二服务节点获取所述操作请求中的页面标识和操作时间;
查询处理模块,用于若所述操作时间在所述切换时间之前,第二服务节点查询缓冲服务节点,获取所述页面标识对应的操作页面,并按所述操作请求处理所述操作页面;
其中,所述处理缓冲模块,包括:
创建单元,用于第一服务节点创建原子操作,第一服务节点按所述操作请求处理所述页面标识对应的操作页面,并在第一服务节点的第一数据缓冲池中生成Redo日志;
标记添加单元,用于在所述原子操作结束时,第一服务节点为所述Redo日志添加日志标识 ;
缓冲单元,用于第一服务节点将包含所述日志标识的Redo日志通过远程直接内存数据存取方式发送至缓冲服务节点。
8.一种服务节点切换设备,其特征在于,所述服务节点切换设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的服务节点切换程序,所述服务节点切换程序被所述处理器执行时实现如权利要求1至6中任一项所述的服务节点切换方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有服务节点切换程序,所述服务节点切换程序被处理器执行时实现如权利要求1至6中任一项所述的服务节点切换方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910883949.3A CN110677280B (zh) | 2019-09-18 | 2019-09-18 | 服务节点切换方法、装置、设备及计算机可读存储介质 |
PCT/CN2019/115396 WO2021051492A1 (zh) | 2019-09-18 | 2019-11-04 | 数据库服务节点切换方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910883949.3A CN110677280B (zh) | 2019-09-18 | 2019-09-18 | 服务节点切换方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110677280A CN110677280A (zh) | 2020-01-10 |
CN110677280B true CN110677280B (zh) | 2020-08-18 |
Family
ID=69076897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910883949.3A Active CN110677280B (zh) | 2019-09-18 | 2019-09-18 | 服务节点切换方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110677280B (zh) |
WO (1) | WO2021051492A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296996B (zh) * | 2021-05-31 | 2024-03-29 | 中国民航信息网络股份有限公司 | 一种业务请求的处理方法、相关装置及存储介质 |
CN113656444B (zh) * | 2021-08-26 | 2024-02-27 | 友安云(厦门)数据科技有限公司 | 一种数据持久化方法、服务器及管理设备 |
CN114448781B (zh) * | 2021-12-22 | 2024-06-07 | 天翼云科技有限公司 | 一种数据处理*** |
CN114339380B (zh) * | 2022-01-06 | 2024-06-11 | 厦门亿联网络技术股份有限公司 | 基于aa模式的录制方法、装置、服务器和可读存储介质 |
CN116701387A (zh) * | 2022-02-28 | 2023-09-05 | 华为技术有限公司 | 数据分段写入方法、数据读取方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102356390A (zh) * | 2009-03-16 | 2012-02-15 | 微软公司 | 诸如用于Web服务器的灵活的日志记录 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7383329B2 (en) * | 2001-02-13 | 2008-06-03 | Aventail, Llc | Distributed cache for state transfer operations |
US20050091369A1 (en) * | 2003-10-23 | 2005-04-28 | Jones Michael D. | Method and apparatus for monitoring data storage devices |
CN103530253B (zh) * | 2013-09-30 | 2016-08-17 | 华为技术有限公司 | 集群多全局缓冲池***、中心节点、计算节点及管理方法 |
CN103605616A (zh) * | 2013-11-21 | 2014-02-26 | 浪潮电子信息产业股份有限公司 | 一种多控制器间的缓存数据一致性保障方法 |
CN105824571A (zh) * | 2015-01-05 | 2016-08-03 | ***通信集团四川有限公司 | 一种实现数据无缝迁移的方法及装置 |
US10318325B2 (en) * | 2015-01-07 | 2019-06-11 | International Business Machines Corporation | Host-side cache migration |
CN107451172B (zh) * | 2016-03-31 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 用于版本管理***的数据同步方法及设备 |
CN107688584A (zh) * | 2016-08-05 | 2018-02-13 | 华为技术有限公司 | 一种容灾切换的方法、节点及*** |
CN108156013B (zh) * | 2016-12-02 | 2021-08-10 | 阿里巴巴集团控股有限公司 | 一种页面服务容灾方法、装置及电子设备 |
US10771551B2 (en) * | 2017-03-28 | 2020-09-08 | Sap Se | Dynamic topology switch for data replication |
CN108810127B (zh) * | 2018-06-04 | 2021-06-18 | 立旃(上海)科技有限公司 | 基于区块链的灾备方法及装置 |
CN108874588A (zh) * | 2018-06-08 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种数据库实例恢复方法和装置 |
-
2019
- 2019-09-18 CN CN201910883949.3A patent/CN110677280B/zh active Active
- 2019-11-04 WO PCT/CN2019/115396 patent/WO2021051492A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102356390A (zh) * | 2009-03-16 | 2012-02-15 | 微软公司 | 诸如用于Web服务器的灵活的日志记录 |
Also Published As
Publication number | Publication date |
---|---|
CN110677280A (zh) | 2020-01-10 |
WO2021051492A1 (zh) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110677280B (zh) | 服务节点切换方法、装置、设备及计算机可读存储介质 | |
US9753954B2 (en) | Data node fencing in a distributed file system | |
US7912858B2 (en) | Data synchronization method | |
CN109739935B (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
US5802267A (en) | Method for checkpointing in computer system under distributed processing environment | |
US5140689A (en) | Data recovery system and method of distributed transaction processing system | |
WO2017185961A1 (zh) | 一种服务发现的处理方法及装置 | |
US20020059279A1 (en) | Apparatus and method for database synchronization in a duplex system | |
US7860840B2 (en) | Maintaining correct transaction results when transaction management configurations change | |
US20050193039A1 (en) | Fault tolerant mechanism to handle initial load of replicated object in live system | |
JP5705871B2 (ja) | 分散された永続性インスタンスに対するロックの解決 | |
CN111858629A (zh) | 二阶段提交分布式事务更新数据库的实现方法和装置 | |
CN113505012B (zh) | 一种消息队列的处理方法、介质、设备和*** | |
JPH113306A (ja) | エージェント方式 | |
CN111400330A (zh) | 任务处理方法、装置、设备及计算机可读存储介质 | |
CN107819556B (zh) | 一种服务状态切换方法及装置 | |
CN112463304A (zh) | 容器镜像的回滚方法、装置、计算机设备和存储介质 | |
CN112631839A (zh) | 一种实现数据备份的方法、装置及设备 | |
US8089987B2 (en) | Synchronizing in-memory caches while being updated by a high rate data stream | |
JPH06139087A (ja) | チェックポイントリスタート方式 | |
US5761403A (en) | Failure recovery system and failure recovery method in loosely coupled multi-computer system, and medium for storing failure recovery program | |
CN113778761A (zh) | 时序数据库集群及其故障处理、操作方法、及装置 | |
CN113127261A (zh) | 文件处理方法、装置、设备及存储介质 | |
JP4128667B2 (ja) | 情報バックアップシステム | |
JP2002149439A (ja) | 分散処理システムにおけるサーバ切替え方法及びサーバ装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |