CN108363641A - 一种主备机数据传递方法、控制节点以及数据库*** - Google Patents
一种主备机数据传递方法、控制节点以及数据库*** Download PDFInfo
- Publication number
- CN108363641A CN108363641A CN201710057471.XA CN201710057471A CN108363641A CN 108363641 A CN108363641 A CN 108363641A CN 201710057471 A CN201710057471 A CN 201710057471A CN 108363641 A CN108363641 A CN 108363641A
- Authority
- CN
- China
- Prior art keywords
- standby host
- storage unit
- host
- standby
- mark
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种主备机数据传递方法、控制节点以及数据库***,该方法包括:获取主机产生的操作日志,操作日志包括至少一个操作记录,每个操作记录表示主机对本地缓存或者存储设备的一个存储单元进行写操作的记录;确定第一备机对应的第一存储单元集合,确定至少一个操作记录对应的第二存储单元集合;在操作日志中获取与存储单元交集对应的操作记录,将对应的操作记录发送给第一备机,存储单元交集为所述第一存储单元集合和第二存储单元集合的存储单元的交集。实施本发明实施例,可实现减少主备机之间无效数据的传输,进而减少主/备机CPU的消耗以及网络资源的浪费。
Description
技术领域
本发明涉及共享存储技术领域,尤其涉及一种主备机数据传递方法、控制节点以及数据库***。
背景技术
在基于共享存储架构的集群***中,主机(Host)和备机(standby)共享同一个存储设备,由于使用存储设备,因此主机和备机都可以使用存储设备的数据,存储设备的数据例如可以是数据库的数据,由集群软件管理主备机进行数据的访问。
其中,对于一写多读的集群***,该集群***以一个虚拟的IP地址对外提供服务,主机和备机都可以访问存储设备上的同一个页面,为了加快访问速度,主机和备机通常会将所需要的页面同步到本地缓存(内存)中,不过,只有主机才能对页面(page)进行写操作,备机只能对页面进行读操作。当主机提供服务时,可对存储设备上的页面进行读写,当主机修改一个页面的时候,会把相关的修改信息发送到备机,以便于备机将修改信息应用到内存,使内存所涉及到的页面与主机同一个页面保持同步。
然而,当备机数量较多时,如果主机读写事务比较频繁,那么集群***中主机就要不断向备机广播相关的修改信息,备机也要不断地进行相对应的处理,这会导致主/备机的中央处理器(Central Processing Unit,CPU)的大量消耗以及网络带宽资源的大量占据。
发明内容
本发明实施例所提供一种主备机数据传递方法、控制节点以及数据库***,以期减少主备机之间无效数据的传输,进而减少主/备机CPU的消耗以及网络带宽资源的浪费。
第一方面,本发明实施例提供了一种主备机数据传递方法,应用于数据库***,所述方法包括:所述控制节点接收所述主机发送的操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录对应一个存储单元,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;对于第一备机,确定所述第一备机中存在的第一存储单元集合,以及确定所述至少一个操作记录对应的第二存储单元集合,所述第一备机为所述至少一个备机中的任意一个备机;根据同时存在于所述第一存储单元集合和所述第二存储单元集合的存储单元生成存储单元交集;在所述操作日志中获取与所述存储单元交集对应的操作记录,以及将所述对应的操作记录发送给所述第一备机。
上述第一方面从控制节点侧描述了本发明实施例所提供一种主备机数据传递方法,通过实施该方法,可实现备机只接收与该备机对应的操作记录,所以可减少主备机之间无效数据的传输,进而减少主/备机CPU的消耗以及网络带宽资源的浪费。
其中,存储单元来描述特定存储区域的数据库数据,所述存储单元是指记录有数据的一块固定大小的存储空间。结合第一方面,在一些可能的实施方式中,所述存储单元可以是页面(page),还可以是通过其他形式定义的数据存储空间,例如块(block),扇区(sector)等。
其中,在本发明实施例所描述的数据库***中,主机可对存储单元进行写操作,备机只能对存储单元进行读操作。具体的,主机进行读写事务时,对存储单元中的数据库数据进行写操作,所述存储单元被修改,主机记录存储单元修改的操作记录,其中,每个操作记录对应一个存储单元,每个操作记录表示所述主机对所述本地缓存或者存储设备的一个存储单元进行写操作的记录。在主机完成对存储单元的修改,进行事务提交的时候,主机将所有的操作记录汇总生成操作日志。在具体的实施方式中,所述存储单元为页面,每个操作记录对应一个页面,所述操作记录例如为针对一个被修改页面的重操作(redo)日志,所述操作日志例如为所有被修改页面的redo日志的集合。
结合第一方面,在一些可能的实施方式中,所述确定所述第一备机中存在的第一存储单元集合包括:根据预设的映射表确定所述第一备机中存在的第一存储单元集合。
其中,在一具体实现方式中,在主机中预设映射表,所述映射表包括至少一个表项,每个表项可包括一个备机的标识、该备机本地缓存中存在的所有存储单元(如页面)的标识、该备机的地址等,具体的,所述备机的标识可为备机号,所述存储单元的标识可为存储单元编号(如页面号),所述备机的地址可为备机的IP/Mac地址。可以理解的,主机可通过查询映射表确定数据库***中任意一个备机中存在的哪些存储单元,从而确定所述备机中存在的第一存储单元集合。
其中,在一具体实现方式中,由于所述操作日志包含所有的操作记录,每个操作记录包含所对应的页面的标识,所以控制节点通过所述页面的标识就可以确定所述操作日志对应哪些页面,从而确定所述操作日志对应的第二存储单元集合。
可以理解的,控制节点将第一存储单元集合和第二存储单元集合取交集,获得存储单元交集,即所述存储单元交集中的存储单元同时存在于第一存储单元集合和第二存储单元集合。
通过在控制节点中设置映射表,在操作记录中设置存储单元(如页面)的标识,那么,控制节点可以有效地判断主机更新了哪些页面,备机需要哪些页面,可以理解,主机根据备机中存在的页面将备机所需的操作记录发送给备机,由于备机接收到的操作记录均是备机所需的操作记录,所以可以避免将操作记录丢弃的情况,备机基于操作记录将相关的页面更新,从而可以实现主/备机相同的页面的数据保持同步更新,从而满足一写多读数据库***中用户的需求。
在一具体的实施方式中,控制节点根据所述映射表确定第K备机中存在的第K存储单元集合,其中,所述第K备机为所述至少一个备机中除所述第一备机外的一个备机,所述第K存储单元集合和所述第一存储单元集合不一致。也就是说在数据库***中,所述备机数量为至少两个,不同备机的本地缓存对应的所有存储单元的不一致,对应的,所述映射表包括至少两个表项,不同表项对应的所有存储单元的标识不一致,其中,所述不一致是指不完全相同。
结合第一方面,在一些可能的实施方式中,所述方法还包括:所述控制节点接收第二备机发送的映射表更新请求,其中,所述映射表更新请求包括所述第二备机的标识和待更新的存储单元的标识,所述第二备机为所述至少一个备机中的一个备机;
所述控制节点在所述映射表中查询与所述第二备机的标识对应的表项,以及将所述待更新的存储单元的标识增加到所述第二备机的标识对应的表项中。
具体的,所述映射表更新请求可以是注册请求或者淘汰请求。
具体的,在一些可能的实施方式中,所述控制节点接收第二备机发送的注册请求,其中,所述注册请求包括所述第二备机的标识和待注册的存储单元的标识,所述第二备机为所述至少一个备机中的任意一个备机;所述控制节点在所述映射表中查询与所述第二备机的标识对应的表项,以及将所述待注册的存储单元的标识增加到所述第二备机的标识对应的表项中。
具体的,在本发明实施例中,由于备机共享存储介质,所以用户需要查看数据库数据时,可向备机发出指令,备机收到该指令后,首先判断本地缓存是否存在所述指令对应的存储单元,若不存在,则需要从存储设备读入所述对应的存储单元。
可以理解的,如果备机从存储设备读入所述对应的存储单元至本地缓存,那么,本地缓存中的存储单元将发生变化。在这种情况下,为了向控制节点告知备机本地缓存中存储单元的变化情况,所述备机相应生成了注册请求,并向所述控制节点发送所述注册请求,所述注册请求包括所述备机的标识和待注册的存储单元的标识(亦即所述被读入的存储单元的标识)。控制节点接收所述注册请求后,根据所述备机的标识确定备机的标识对应的映射表表项,将所述待注册的存储单元的标识增加到所述备机的标识对应的表项中,实现映射表的更新。
具体的,在一些可能的实施方式中,所述控制节点接收第三备机发送的删除请求,其中,所述删除请求包括所述第三备机的标识和待删除的存储单元的标识,第三备机为所述至少一个备机中的任意一个备机;所述控制节点在所述映射表中查询与所述第三备机的标识对应的表项,以及在所述第三备机的标识对应的表项中删除所述待删除的存储单元的标识。
具体的,在本发明实施例中,在备机的本地缓存的存储空间不足的情况下,备机基于预先配置的淘汰策略将本地缓存中的部分存储单元淘汰,所述淘汰是指将该存储单元中的数据删除以获得存储空间。所述预先配置的淘汰策略可以是基于存储时间的策略,在一具体的实现方式中,当备机检测到本地缓存的存储空间不足(如检测到存储量大于预设阈值),那么,备机检测本地缓存中的存储单元的存储时间,将存储时间大于预设时长的存储单元淘汰。所述预先配置的淘汰策略也可以是基于优先级的策略,在另一具体的实现方式中,当备机检测到本地缓存的存储空间不足,那么,备机检测本地缓存中的存储单元的优先级,将优先级低于预设级别的存储单元淘汰。
可以理解的,如果备机从本地缓存中淘汰存储单元,那么本地缓存中的存储单元将发生变化,在这种情况下,为了向控制节点告知备机本地缓存中存储单元的变化情况,所述备机相应生成了删除请求,并向所述控制节点发送所述删除请求,所述删除请求包括所述备机的标识和待删除的存储单元的标识(亦即所述被淘汰的存储单元的标识)。控制节点接收所述删除请求后,根据所述备机的标识确定备机的标识对应的映射表表项,在所述备机的标识对应的表项中删除所述待删除的存储单元的标识,实现映射表的更新。
可以看出,引入映射表的更新机制后,备机可根据自身具体情况向控制节点反馈注册/删除请求,控制节点更新映射表,使得控制节点获悉数据库***中备机的最新状态,从而保证了数据库***更加实用和可靠。
结合第一方面,在一些可能的实施方式中,所述控制节点为多个物理服务器,不同的物理服务器连接不同的备机组,每个备机组包括一个或多个备机,每个备机配置有成员列表,所述成员列表记录有备机所在的备机组对应的物理服务器的标识;
在这种实现方式中,所述主机向所述多个物理服务器分别发送操作日志。所述备机根据所述对应的物理服务器的标识执行向该物理服务器发送注册请求。所述备机根据所述对应的物理服务器的标识执行向该物理服务器发送删除请求。
在具体的实施例中,例如,当主机读写事务比较频繁导致大量redo日志产生,或者在备机数量非常多的情况下,可以在所述新的数据库***中设置多个控制节点(即设置多个物理服务器),每个控制节点可以管辖不同的备机组。主机进行读写事务提交的时候,将操作日志分别向所述多个控制节点分发,控制节点接收到所述操作日志后,对操作日志进行管理,并向所管辖的备机组中的每个备机分别发送所需的操作记录(redo日志),每个备机再基于所需的操作记录更新相应的页面,使得数据库***中,操作日志所涉及的页面在主机和备机中可以保持一致。多个控制节点的引入将更加有效地减少主/备机CPU的消耗以及网络资源的浪费。
第二方面,本发明实施例提供了一种控制节点,包括:存储器以及与所述存储器耦合的处理器、发射器和接收器,其中:所述发射器用于与向外部发送数据,所述接收器用于接收外部发送的数据,所述存储器用于存储第一方面描述的方法的实现代码以及相关数据(比如操作日志等),所述处理器用于执行所述存储器中存储的程序代码,即执行第一方面描述的方法。
第三方面,本发明实施例提供了又一种控制节点,包括获取单元、处理单元和发射单元,这些功能单元用于执行第一方面描述的方法。
第四方面,本发明实施例提供了一种数据库***,所述数据库***包括一个主机、至少一个备机、存储设备以及控制节点,所述主机分别与所述控制节点和所述存储设备连接,所述备机分别与所述控制节点和所述存储设备连接,其中,所述主机,用于向所述控制节点发送操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录对应一个存储单元,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;所述控制节点,用于接收所述操作日志;对于第一备机,确定所述第一备机中存在的第一存储单元集合,以及确定所述至少一个操作记录对应的第二存储单元集合;根据同时存在于所述第一存储单元集合和所述第二存储单元集合的存储单元生成存储单元交集;在所述操作日志中获取与所述存储单元交集对应的操作记录,以及将所述对应的操作记录发送给第一备机,所述第一备机为至少一个备机中的任意一个备机;所述第一备机,用于接收所述对应的操作记录,对所述对应的操作记录所指示本地缓存中的存储单元执行相应的操作。
结合第四方面,在一些可能的实施方式中,所述存储单元为页面。
结合第四方面,在一些可能的实施方式中,所述控制节点执行所述确定所述第一备机中存在的第一存储单元集合包括:
所述控制节点根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括第一备机的标识和第一备机的本地缓存对应的所有存储单元的标识。
结合第四方面,在一些可能的实施方式中,所述数据库***还包括第二备机,所述第二备机,用于在接收到读操作指令的情况下,判断所述本地缓存中是否存在所述读操作指令对应的存储单元,若不存在,则从所述存储设备中读入所述对应的存储单元,并向所述控制节点发送注册请求,所述注册请求包括所述第二备机的标识和所述对应的存储单元的标识,所述第二备机为至少一个备机中的任意一个备机;所述控制节点,还用于接收所述注册请求,并根据所述第二备机的标识确定所述第二备机的标识对应的表项,将所述对应的存储单元的标识增加到所述第二备机的标识对应的表项中。
结合第四方面,在一些可能的实施方式中,,所述控制节点包括多个物理服务器,所述第二备机配置有成员列表,所述成员列表记录有所述多个物理服务中的一个物理服务器的标识;所述第二备机根据所述一个物理服务器的标识执行向该物理服务器发送注册请求。
结合第四方面,在一些可能的实施方式中,所述数据库***还包括第三备机,所述第三备机,用于在需要对所述本地缓存中的存储单元进行淘汰的情况下,确定待删除的存储单元,并向所述控制节点发送删除请求,所述删除请求包括所述第三备机的标识和所述待删除的存储单元的标识,所述第三备机为至少一个备机中的任意一个备机;所述控制节点,还用于接收所述删除请求,并根据所述第三备机的标识确定第三备机的标识对应的表项,在所述第三备机的标识对应的表项中删除所述待删除的存储单元的标识。
结合第四方面,在一些可能的实施方式中,所述控制节点包括多个物理服务器,所述第三备机配置有成员列表,所述成员列表记录有所述多个物理服务中的一个物理服务器的标识;所述第三备机根据所述一个物理服务器的标识执行向该物理服务器发送删除请求。
需要说明的是,第一备机、第二备机和第三备机可以是指同一个备机,也可以是不同的备机。
第五方面,本发明实施例提供了一种数据库***,所述数据库***包括一个主机、至少一个备机、存储设备,所述主机分别与所述至少一个备机和所述存储设备连接,所述至少一个备机与所述存储设备连接,所述主机和备机共享所述存储设备中的数据,其中,
所述主机,用于生成操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;还用于确定第一备机对应的第一存储单元集合,以及确定所述至少一个操作记录对应的第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机的本地缓存中保存有第一存储单元集合对应的存储单元,所述对应的存储单元是从所述存储设备读入的;在所述操作日志中获取与存储单元交集对应的操作记录,以及将所述对应的操作记录发送给所述第一备机,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的存储单元的交集;
所述第一备机,用于接收所述对应的操作记录,对所述对应的操作记录所指示本地缓存中的存储单元执行相应的操作。
结合第五方面,在一些可能的实施方式中,所述主机执行所述确定所述第一备机中存在的第一存储单元集合包括:
所述主机根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括第一备机的标识和第一备机的本地缓存对应的所有存储单元的标识。
结合第五方面,在一些可能的实施方式中,所述映射表包括至少一个表项,包括:
在所述备机的数量为至少两个、且不同备机的本地缓存对应的所有存储单元不一致的情况下,所述映射表包括至少两个表项,不同表项对应的所有存储单元的标识不一致。
结合第五方面,在一些可能的实施方式中,在一些可能的实施方式中,所述存储单元为页面。
结合第五方面,在一些可能的实施方式中,所述数据库***还包括第二备机,所述第二备机,用于在接收到读操作指令的情况下,判断所述本地缓存中是否存在所述读操作指令对应的存储单元,若不存在,则从所述存储设备中读入所述对应的存储单元,并向所述主机发送注册请求,所述注册请求包括所述第二备机的标识和所述对应的存储单元的标识,所述第二备机为至少一个备机中的任意一个备机;所述主机,还用于接收所述注册请求,并根据所述第二备机的标识确定所述第二备机的标识对应的表项,将所述对应的存储单元的标识增加到所述第二备机的标识对应的表项中。
结合第五方面,在一些可能的实施方式中,所述数据库***还包括第三备机,所述第三备机,用于在需要对所述本地缓存中的存储单元进行淘汰的情况下,确定待删除的存储单元,并向所述主机发送删除请求,所述删除请求包括所述第三备机的标识和所述待删除的存储单元的标识,所述第三备机为至少一个备机中的任意一个备机;所述主机,还用于接收所述删除请求,并根据所述第三备机的标识确定第三备机的标识对应的表项,在所述第三备机的标识对应的表项中删除所述待删除的存储单元的标识。
需要说明的是,第一备机、第二备机和第三备机可以是指同一个备机,也可以是不同的备机。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有指令(实现代码),当其在计算机上运行时,可使得计算机基于所述指令执行上述第一方面所述的方法。
第七方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,可使得计算机基于所述指令执行上述第一方面所述的方法。
可以看出,实施本发明实施例的方案,在数据库***中,主机在进行读写事务的情况下,修改主机的本地缓存或存储设备中的页面,生成相应操作日志(例如为所有redo日志)后,将操作日志发给控制节点,控制节点可通过查找映射表,获取数据库***中每个备机所需的操作记录(例如为所需的部分redo日志),并将该操作记录发给对应的备机,以便于备机更新本地缓存中的存储单元,在这个过程中,备机可以根据备机内存中页面的变化向控制节点发送注册请求或删除请求,以便于控制节点实现对映射表的更新,引入映射表的更新机制可使得数据库***更加实用和可靠。通过本发明实施例,控制节点可有针对性地向备机发送所需的操作记录(例如为所需的部分redo日志),避免了不相关的操作记录(例如为不相关的redo日志)在通信网络中的传输,有效减少了通信网络中的操作记录,节约了网络资源。主机只需要向控制节点发送操作日志,经过控制节点的处理后,备机接收到的操作记录均是其所需的,所以避免了针对不相关的操作记录进行的丢弃操作,实施本发明实施例可以有效减少主/备机CPU的消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对本发明实施例或现有技术中所需要使用的附图进行说明。
图1-a是现有技术提供的一种数据库***结构示意图;
图1-b是现有技术提供的一种数据库***中redo日志处理流程示意图;
图2是本发明实施例提供的一种数据库***结构示意图;
图3-a是本发明实施例提供的一种数据库***的示意图;
图3-b是本发明实施例提供的又一种数据库***的示意图;
图3-c是本发明实施例提供的又一种数据库***的示意图;
图3-d是本发明实施例提供的又一种数据库***的示意图;
图4是本发明实施例提供的一种主备机数据传递方法流程示意图;
图5是本发明实施例提供的又一种主备机数据传递方法流程示意图;
图6是本发明实施例提供的一种映射表示意图;
图7是本发明实施例提供的一种数据库***中redo日志处理流程示意图;
图8是本发明实施例提供的又一种主备机数据传递方法流程示意图;
图9是本发明实施例提供的一种备机向主机发送注册请求的流程示意图;
图10是本发明实施例提供的一种备机向主机发送删除请求的流程示意图;
图11是本发明实施例提供的一种控制节点结构示意图;
图12是本发明实施例提供的又一种控制节点结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
首先介绍现有技术中基于一读多写的共享存储架构的集群***,请参见图1-a,图1-a是现有技术提供的一种数据库***结构示意图,如图1-a所示,该数据库***包括一个主机、至少一个备机(图中为备机1和备机2)以及存储设备,所述主机分别与所述备机和所述存储设备连接,所述备机也和所述存储设备连接,主机、备机可与互联网连接。
在该数据库***中,主机、备机的数据库实例(database instance)共享同一个存储介质中的数据库,但是,只有主机才能写入和更新数据库,所有备机只能读取数据库。主机在接收用户所发出的写操作指令进行读写事务时,首先判断读写事务涉及数据库的表是否在本地缓存(如主机内存)中,如果涉及到的表不在本地缓存中,则会从存储设备读入相关的页面到本地缓存中,所述相关的页面记录有该表。然后,主机对该表进行写操作(例如对该表进行***和更新操作),修改本地缓存中所述相关的页面,并记录页面修改的重操作(redo)日志。在所述事务提交的时候,主机把该事务涉及的所有redo日志发送给数据库***的所有备机。备机收到该redo日志后,如果该redo日志所涉及的页面在该备机的本地缓存(如备机内存)中,将该redo日志应用到备机本地缓存所涉及的页面,该所涉及的页面就会相应地被更新;如果该redo日志所涉及的页面不在备机本地缓存中,则丢弃该redo日志。
在上述现有技术的数据库***中,虽然主机和备机连接到同一个存储设备中,但用户可通过控制主机将存储设备中的某些页面读入到主机内存中,用户也可以通过控制备机将存储设备中的另一些页面读入到备机内存中,这导致了主机内存和备机内存中的页面可能不一致,不同备机之间的所存在的页面也可能不一致。所以当备机在进行读写业务并相应修改主机内存中的页面时,为了让所有备机的备机内存中页面都能保持在最新的状态,主机会在事务提交时把当前事务所涉及的所有redo日志广播给所有备机。也就是说,在备机所接收到的所有redo日志中,有一部分redo日志是与所述备机不相关的,所以该备机需要将所述一部分redo日志丢弃,这造成了CPU的消耗和网络资源的浪费。
举例来说,参见图1-b,图1-b是现有技术提供的数据库***中redo日志处理流程示意图。如图1-b所示,假设在某种应用场景中,主机内存中有页面1、页面2、页面3、页面4、页面5这五个页面;备机1内存中有页面2、页面6、页面7这三个页面,备机2内存中有页面1、页面3、页面6这三个页面,主机在执行读写事务时,修改了页面1、页面2、页面3这三个页面,且相应地生成了这三个页面的redo日志:redo日志1,redo日志2,redo日志3。主机在事务提交的时候,把这三个页面的redo日志分发给备机1和备机2。
备机1收到1、2、3这三个页面的redo日志时,发现备机内存中没有页面1、页面3,则丢弃redo日志1和redo日志3,只在页面2中应用redo日志2。
备机2收到1、2、3这三个页面的redo日志时,发现备机内存中没有页面2,则丢弃redo日志2,在页面1中应用redo日志1,在页面3中应用redo日志3。
从上述过程可以看出,由于对于备机1而言redo日志1和redo日志3是不相关的,对于备机2而言redo日志2是不相关的,所以在广播过程中传输上述不相关的redo日志会造成网络资源的浪费。另外,由于主机向备机1和备机分别发送了不相关的redo日志,所以对主机的CPU造成了额外的消耗,而备机1和备机2需要分别丢弃各自不相关的redo日志,所以对备机1和备机2的CPU也都造成了额外的消耗。显而易见的,当主机读写事务比较频繁导致大量redo日志产生,或者在备机数量非常多的情况下,集群***中的主机和备机都要处理大量不相关的redo日志,就会导致网络资源的大量浪费以及主机和备机CPU的大量消耗。
本发明实施例提供了一种新的数据库***,可解决现有技术中的缺陷,实现对redo日志的有效管理,减少主备机之间不相关的redo日志的传输,进而减少主/备机CPU的消耗以及网络资源的浪费。参见图2,该数据库***与上述现有技术中的数据库***相比,区别包括:
(1)在数据库***中设置控制节点,所述控制节点可用于获取操作日志,所述操作日志包括一个或多个操作记录,每个操作记录对应一个存储单元,每个操作记录表示所述主机对所述存储设备的一个存储单元进行写操作的记录,在具体的实施例中,所述操作日志为所有redo日志的集合,所述存储单元为页面,所以,每个操作记录就是对应一个页面的redo日志,主机进行读写事务,修改本地缓存中所述相关的页面,并记录页面修改的redo日志,每个redo日志就是对应一个页面的操作记录。在所述事务提交的时候,主机把该事务涉及的所有redo日志(操作日志)发送给控制节点。控制节点接收到所述操作日志后,对操作日志进行管理,并确定所述数据库***中的每个备机中所存在的页面,然后对应于每个备机分别发送该备机所需要的redo日志(操作记录)。比如针对图1-b所描述的应用场景中,主机内存中有页面1、页面2、页面3、页面4、页面5这五个页面;备机1内存中有页面2、页面6、页面7这三个页面,备机2内存中有页面1、页面3、页面6这三个页面,主机在执行读写事务时,修改了页面1、页面2、页面3这三个页面,且相应地生成了这三个页面的操作记录:redo日志1,redo日志2,redo日志3。主机在事务提交的时候,把这三个页面的操作记录所组成的操作日志发送所述控制节点,所述控制节点接收到所述操作日志后,分别确定备机1和备机2中所存在的页面,基于所述操作日志判断备机1所需的操作记录为redo日志2,判断备机2所需的操作记录为redo日志1和redo日志3,然后所述控制节点将redo日志2发给备机1,将redo日志1和redo日志3发给备机2。可以看出,由于控制节点有针对性地向备机发送所需的redo日志,避免了不相关的redo日志在通信网络中的传输,有效减少了通信网络中的redo日志,节约了网络资源。
(2)在主机、备机上配置相应的策略,当主机需要通知备机更新相对应的页面时,不需要向备机广播操作日志,只需将操作日志发送给控制节点,所以可以有效减少主机CPU的消耗。控制节点时将每个备机所需的操作记录(redo日志)分别以单播的形式传输至该备机,该备机接收到所述所需的操作记录(redo日志)后,将所述操作记录(redo日志)应用到相应的页面,实现这些页面的更新,从而确保备机中的这些页面与主机保持同步。可以看出,备机由于没有收到不相关的redo日志,所以备机省去了针对不相关的redo日志进行的丢弃操作,所以可以有效减少备机CPU的消耗。
在具体的实施例中,所述控制节点的数量可以是一个或者多个,例如,当主机读写事务比较频繁导致大量redo日志产生,或者在备机数量非常多的情况下,可以在所述新的数据库***中设置多个控制节点,每个控制节点可以管辖不同的备机组。主机进行读写事务提交的时候,将操作日志分别向所述多个控制节点分发,控制节点接收到所述操作日志后,对操作日志进行管理,并向所管辖的备机组中的每个备机分别发送所需的操作记录(redo日志),每个备机再基于所需的操作记录更新相应的页面,使得数据库***中,操作日志所涉及的页面在主机和备机中可以保持一致。多个控制节点的引入将更加有效地减少主/备机CPU的消耗以及网络资源的浪费。
需要说明的是,在本发明实施例所描述的数据库***中,使用存储单元来描述特定存储区域的数据库数据,所述存储单元是指记录有数据的一块固定大小的存储空间。在具体的实施方式中,所述存储单元可以是页面(page),还可以是通过其他形式定义的数据存储空间,例如块(block),扇区(sector)等等。需要说明的是,在本发明后述实施例中,为了方便进行方案的详细说明,针对存储单元将使用页面对本发明实施例技术方案进行描述,对于存储单元其他形式的定义(块、扇区等等)所带来的实施方式类似于页面的实施方式,将不再一一说明。还需要说明的是,所述存储单元可以是指一个页面,在特定场景中也可以是多个页面的组合。本发明对于存储单元用页面进行描述仅仅用于解释本发明实施例的技术方案,不应构成对本发明适用范围的限制。
参见图3-a,在一种应用场景中,在本发明实施例提供的一种数据库***包括一个主机、至少一个备机(图中备机数量为多个)、存储设备以及控制节点,所述主机分别与所述控制节点和所述存储设备连接,所述备机分别与所述控制节点和所述存储设备连接,所述主机和备机可与外界进行通信连接(如可与互联网连接),其中:
所述主机,用于向所述控制节点发送操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录对应一个存储单元,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;
所述控制节点,用于接收所述操作日志;对于第一备机,确定所述第一备机中存在的第一存储单元集合,以及确定所述至少一个操作记录对应的第二存储单元集合;根据同时存在于所述第一存储单元集合和所述第二存储单元集合的存储单元生成存储单元交集;在所述操作日志中获取与所述存储单元交集对应的操作记录,以及将所述对应的操作记录发送给第一备机,所述第一备机为至少一个备机中的任意一个备机;
所述第一备机,用于接收所述对应的操作记录,对所述对应的操作记录所指示本地缓存中的存储单元执行相应的操作。
在一具体的实现方式中,所述控制节点执行所述确定所述第一备机中存在的第一存储单元集合包括:
所述控制节点根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括第一备机的标识和第一备机的本地缓存对应的所有存储单元的标识。
在一具体实施例中,所述数据库***还包括第二备机,所述第二备机,用于在接收到读操作指令的情况下,判断所述本地缓存中是否存在所述读操作指令对应的存储单元,若不存在,则从所述存储设备中读入所述对应的存储单元,并向所述控制节点发送注册请求,所述注册请求包括所述第二备机的标识和所述对应的存储单元的标识,所述第二备机为至少一个备机中的任意一个备机;
所述控制节点,还用于接收所述注册请求,并根据所述第二备机的标识确定所述第二备机的标识对应的表项,将所述对应的存储单元的标识增加到所述第二备机的标识对应的表项中。
在一具体实施例中,所述数据库***还包括第三备机,所述第三备机,用于在需要对所述本地缓存中的存储单元进行淘汰的情况下,确定待删除的存储单元,并向所述控制节点发送删除请求,所述删除请求包括所述第三备机的标识和所述待删除的存储单元的标识,所述第三备机为至少一个备机中的任意一个备机;
所述控制节点,还用于接收所述删除请求,并根据所述第三备机的标识确定第三备机的标识对应的表项,在所述第三备机的标识对应的表项中删除所述待删除的存储单元的标识。
参见图3-b,在又一种应用场景中,在本发明实施例提供的一种数据库***,包括一个主机、多个备机组、存储设备以及控制节点,其中,所述控制节点为多个物理服务器,不同的物理服务器连接不同的备机组,每个备机组包括一个或多个备机,所述主机分别与所述多个物理服务器和所述存储设备连接,所述备机分别与所述存储设备和相应的物理服务器连接,所述主机和备机可与外界进行通信连接(如可与互联网连接)。
也就说,每一个物理服务器都可以具备上述图3-a中控制节点所描述的功能,所不同的是,图3-a中控制节点管辖的是数据库***中所有的备机,而图3-b中的每一个物理服务器管辖一个对应的备机组。在具体的实施例中,图3-a中控制节点预设的映射表具有所有备机的相关信息(所有备机的表项),而在图3-b中的每一个物理服务器预设的映射表具有对应备机组中的备机的相关信息(备机组中的备机的表项)。
在这种实现方式中,所述主机用于向所述多个物理服务器分别发送操作日志。
为了实现每一个物理服务器对备机组的管辖,可对每个备机进行信息配置,在一具体的实现方式中,每个备机配置有成员列表,所述成员列表记录有备机所在的备机组对应的物理服务器的标识;
在一具体的实现方式中,所述备机可根据所述对应的物理服务器的标识向该物理服务器发送注册请求。
在一具体的实现方式中,所述备机可根据所述对应的物理服务器的标识向该物理服务器发送删除请求。
上述所举例的两种数据库***中,控制节点都是数据库***中独立的设备,然而,需要说明的是,在本发明实施例的具体实现形式中,控制节点未必是独立的设备。这种情况下,在一种应用场景中,控制节点可以内置于主机中,或者作为主机的一种功能模块而存在。在另一种应用场景中,控制节点可以内置于某个备机中,或者作为某个备机的一种功能模块而存在。
举例来说,当控制节点内置于主机中,或者作为主机的一种功能模块而存在时,参见图3-c,在本发明实施例提供的一种应用场景中,数据库***包括:包括一个主机、至少一个备机、存储设备,所述主机分别与所述至少一个备机和所述存储设备连接,所述至少一个备机与所述存储设备连接,所述主机和备机共享所述存储设备中的数据,所述主机和备机可与外界进行通信连接(如可与互联网连接)。其中,
所述主机,用于生成操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;还用于确定第一备机对应的第一存储单元集合,以及确定所述至少一个操作记录对应的第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机的本地缓存中保存有第一存储单元集合对应的存储单元,所述对应的存储单元是从所述存储设备读入的;在所述操作日志中获取与存储单元交集对应的操作记录,以及将所述对应的操作记录发送给所述第一备机,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的存储单元的交集;
所述第一备机,用于接收所述对应的操作记录,对所述对应的操作记录所指示本地缓存中的存储单元执行相应的操作。
在一具体的实现方式中,所述主机根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括第一备机的标识和第一备机的本地缓存对应的所有存储单元的标识。
在一具体的实现方式中,在所述备机的数量为至少两个、且不同备机的本地缓存对应的所有存储单元不一致的情况下,所述映射表包括至少两个表项,不同表项对应的所有存储单元的标识不一致。
在一具体的实现方式中,所述备机向所述主机发送注册请求。
在一具体的实现方式中,所述备机向所述主机发送删除请求。
也就说,可将原有主机的功能和控制节点的功能整合到同一服务器中,从而形成本发明实施例的主机,主机不但可以产生操作日志,还可以实现上述控制节点的功能,从而达到对操作日志中的操作记录的管理。
又举例来说,当控制节点内置于某个备机中,或者作为某个备机的一种功能模块而存在时,参见图3-d,在本发明实施例提供的一种应用场景中,数据库***包括:包括一个主机、作为控制节点的某个备机、其他备机、存储设备,所述主机分别与所述控制节点和所述存储设备连接,所述其他备机分别与所述控制节点和所述存储设备连接,所述控制节点与所述存储设备连接,所述主机、控制节点、其他备机可与外界进行通信连接(如可与互联网连接)。
也就说,可将原有备机的功能和控制节点的功能整合到同一服务器中,从而形成本发明实施例的某个备机,控制节点可以完成本身作为备机的工作(例如从存储设备读入页面等),还可以实现上述控制节点的功能,从而达到对操作日志中的操作记录的管理。有关主机、控制节点的某个备机、其他备机的具体实现方式可参见图3-a的描述,这里不再详述。
基于新的数据库***,本发明实时提供了一种主备机数据传递方法,应用于一读多写共享存储架构的数据库***中的控制节点,从单侧进行描述,所述方法包括:
步骤S401、获取所述主机产生的操作日志。
在具体的应用场景中,所述控制节点可以是独立的设备(例如独立的服务器),也可以是主机,还可以是某个备机。
当控制节点可以是独立的设备时,主机进行读写事务时,主机对本地缓存或者存储设备的一个存储单元进行写操作,并相应生成操作日志,所述操作日志包括至少一个操作记录,对应每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录,主机将所述操作日志发送至控制节点,相应的,控制节点获得所述操作日志。
当控制节点为主机,可以理解的,主机进行读写事务时,生成操作日志后,直接获得所述操作日志。
当控制节点为某个备机,主机进行读写事务时,生成操作日志后,主机将所述操作日志发送至该备机,相应的,该备机获得所述操作日志。
步骤S402、确定第一备机对应的第一存储单元集合,以及确定所述至少一个操作记录对应的第二存储单元集合。
其中,当控制节点为独立设备或者主机时,所述第一备机为所述至少一个备机中的任意一个备机,当控制节点为某个备机时,所述第一备机为所述至少一个备机中除了控制节点外的任意备机。所述第一备机中保存有第一存储单元集合对应的存储单元,所述对应的存储单元是从所述存储设备读入的。
在具体的实施例中,控制节点根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括所述第一备机的标识和所述第一备机的本地缓存对应的所有存储单元的标识。
在具体的实施例中,当控制节点为独立设备或者主机时,在所述备机的数量为至少两个、且不同备机的本地缓存对应的所有存储单元不一致的情况下,所述映射表包括至少两个表项,备机数量与表项的数量一致,但是不同表项对应的所有存储单元的标识不一致。
步骤S403、在所述操作日志中获取与存储单元交集对应的操作记录,以及将所述对应的操作记录发送给所述第一备机.
其中,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的存储单元的交集,第一备机接收到所述操作记录后,对所述对应的操作记录所指示本地缓存中的存储单元执行相应的操作。也就是说,第一备机接收的所有操作记录在本地缓存中均可应用到本地缓存中,从而实现本地缓存中相关页面与主机保持同步。
可以看出,实施本发明实施例的方案,主机在进行读写事务的情况下,修改主机的本地缓存或存储设备中的页面,生成相应操作日志,当控制节点是独立的设备或者某个备机时,主机将操作日志发给控制节点,当控制节点是主机本身时,控制节点相应获得所述操作日志。然后,控制节点可通过查找映射表,获取数据库***中每个备机所需的操作记录,并将该操作记录发给对应的备机,以便于备机更新本地缓存中的存储单元。也就是说,通过本发明实施例,控制节点可有针对性地向备机发送操作记录,避免了不相关的操作记录在通信网络中的传输,有效减少了通信网络中的操作记录,节约了网络资源。当控制节点是独立设备或者某个备机时,主机只需要向控制节点发送操作日志(即所有的操作记录),经过控制节点的处理后,备机接收到的操作记录均是其所需的,所以也省去了针对不相关的操作记录进行的丢弃操作,实施本发明实施例可以有效减少主/备机CPU的消耗。
基于上述新的数据库***,本发明实施例提供了一种主备机数据传递方法,从多侧进行描述。在本发明实施例中,数据库***包括一个主机、至少一个备机、存储设备以及控制节点,所述主机分别与所述控制节点和所述存储设备连接,所述备机分别与所述控制节点和所述存储设备连接,参见图5,所述方法包括:。
步骤S501、主机进行读写事务。
在本发明实施例所述的数据库***中,所述主机和备机为服务器,主机和备机和所述存储设备连接即存储设备(共享存储介质),所述存储设备可以是独立的存储器(storage)、磁盘阵列(Redundant Array of Independent Disks,RAID),也可以是存储区域网(Storage Area Network,SAN)中的存储设备。通过共享存储介质,主机和备机都可以使用存储设备中的数据。比如存储设备中存储有数据库,存储设备的数据为所述数据库数据。
主机根据用户(或用户设备)的操作指令进行事务的处理,所述事务可以是数据库事务,例如所述数据库事务为对数据库中的表的读取、编辑、***、更新等。在主机接收到用户(或用户设备)的操作指令后,主机首先查询本地缓存(如主机内存),判断本地缓存中是否存在所述操作指令所指示的数据库数据,如果存在,主机直接对所述数据库数据进行处理;如果不存在,那么主机就从存储设备中将该数据库数据读入到本地缓存中,也就是说,主机读入的是存储在存储设备中的数据库数据的副本(copy),然后,主机再对该数据库数据行处理。主机对本地缓存中的数据库数据行处理之后,可将所述经处理后的数据库数据同步到存储设备。
步骤S502、主机生成操作日志。
在本发明实施例所描述的数据库***中,主机可对页面进行写操作,备机只能对页面进行读操作。主机进行读写事务时,对该数据库数据行处理,当所述页面被修改,主机记录页面修改的操作记录,其中,每个操作记录对应一个存储单元,每个操作记录表示所述主机对所述本地缓存或者存储设备的一个页面进行写操作的记录。在主机完成对页面的修改,进行事务提交的时候,主机将所有的操作记录汇总生成操作日志。在具体的实施方式中,所述操作记录为针对一个被修改页面的redo日志,所述操作日志为所有被修改页面的redo日志的集合。
在一具体实现方式中,可以针对不同的页面赋予页面的标识,所述页面的标识为例如可以是页面号等。所述事件日志包括一个或多个操作记录,每个操作记录包含所对应的页面的标识。
步骤S503、主机向控制节点发送操作日志。
在所述操作日志生成后,为了实现本发明实施例所描述的技术方案,主机将所述操作日志发送给控制节点,在本发明实施例中,所述控制节点为独立的设备,例如独立的物理服务器。在具体的实现方式中,主机与控制节点可通过有线或者无线的方式进行通信连接,在主机中配置控制节点的信息(例如控制节点的地址等信息),在主机生成操作日志后,基于该信息将所述操作日志发送给控制节点。
步骤S504、控制节点确定操作日志对应的第一存储单元集合。
控制节点接收到操作日志后,为了实现对操作日志的管理,控制节点需要确定所述操作日志对应的存储单元集合,也就是说,需要确定所述操作日志对应哪些存储单元,这里使用第一存储单元集合是为了与下文的存储单元集合进行区分。控制节点需要确定所述操作日志对应哪些页面,在一具体实现方式中,由于所述操作日志包含所有的操作记录,每个操作记录包含所对应的页面的标识,所以控制节点通过所述页面的标识就可以确定所述操作日志对应哪些页面。
步骤S505、控制节点确定备机中的第二存储单元集合。
控制节点接收到操作日志后,为了实现对操作日志的管理,控制节点还需要确定数据库***中备机所存在的存储单元集合,也就是确定每一个备机中存在哪些存储单元。这里使用第二存储单元集合是为了与上文的存储单元集合进行区分。具体的,控制节点需要确定每一个备机存在哪些页面。
在一具体实现方式中,在主机中预设有映射表,所述映射表包括至少一个表项,每个表项可包括一个备机的标识、该备机本地缓存中存在的所有存储单元的标识、该备机的地址等,具体的,所述备机的标识可为备机号,所述存储单元的标识可为存储单元编号(如页面号),所述备机的地址可为备机的IP/Mac地址。可以理解的,主机可通过查询映射表确定数据库***中任意一个备机中存在的哪些存储单元。
举例来说,参见图6,图6为本发明实施例所提供的一种映射表的简单示意图。所述映射表包括表项1、表项2等,表项1包括备机号<备机1>、页面号<1、6、7>、备机1的IP地址/Mac地址等等,表项2包括备机号<备机2>、页面号<2、8、9>、备机2的IP地址/Mac地址等等,主机通过查询所述映射表可以确定数据库***中存在备机1、备机2等,还可以确定备机1的本地缓存中所存在的页面为页面号分别为1、6、7的三个页面,即对应的存储单元集合为{页面1,页面6,页面7};确定备机2的本地缓存中所存在的页面为页面号分别为2、8、9的三个页面,即对应的存储单元集合为{页面2,页面8,页面9}。在所述映射表中,其表项可以涵盖数据库***中所有备机的相关映射信息,所以,主机通过查询所述映射表,就可以确定数据库***中存在哪些备机,每个备机中存在哪些页面。
需要说明的是,步骤S504和步骤S505之间没有必然的先后顺序,也就是说,在具体的实施例中,步骤S504可以在步骤S505之前,也可以在步骤S505之后,还可以和步骤S505同时进行,上述实施例的描述不应理解为对本发明的限制。
步骤S506、控制节点根据同时存在于第一存储单元集合和第二存储单元集合的存储单元生成存储单元交集。
具体的,控制节点通过步骤S504确定了主机中的哪些页面被修改,通过步骤S505确定了每个备机存在哪些页面,所以,控制节点可确定备机中哪些页面需要更新。例如,在一具体实现方式中,所述操作日志包括多个操作记录,每个操作日志为一个redo日志,每个redo日志包括主机被修改页面的标识(如redo日志1包括页面1的标识,redo日志2包括页面2的标识等等),那么,控制节点在接收到操作日志后,发现操作日志中包括redo日志1、redo日志2和redo日志3,也就是说,控制节点确定的主机中被修改的存储单元集合为{页面1,页面2,页面3}。控制节点根据映射表确定数据库***中存在备机1和备机2,其中,确定备机1中存在的存储单元集合为{页面1,页面6,页面7},确定备机2中存在的存储单元集合为{页面2,页面8,页面9}。那么,对于备机1而言,页面1同时存在于上述两种存储单元集合中,故存储单元交集为{页面1};对于备机2而言,页面2同时存在于上述两种存储单元集合中,存储单元交集为{页面2}。
步骤S507、控制节点在所述操作日志中获取与存储单元交集对应的操作记录。
可以理解的,在确定了存储单元交集之后,控制节点可基于所述存储单元交集在操作日志中获取与所述存储单元交集对应的操作记录。例如,在具体的实施方式中,每个操作日志为一个redo日志,操作日志包括redo日志1、redo日志2和redo日志3,备机1对应的存储单元交集为{页面1},备机2对应的存储单元交集为{页面2},那么针对备机1,控制节点在所述操作日志中获取的操作记录为{redo日志1};针对备机2,控制节点在所述操作日志中获取的操作记录为{redo日志2}。
步骤S508、控制节点向备机发送对应的操作记录。
在获得与存储单元交集对应的操作记录后,控制节点向备机发送对应的操作记录。当备机数量为多个时,在一具体的实现方式中,控制节点可依次向备机发送备机所需要的操作记录,例如,所述控制节点逐一查询映射表中的表项,基于操作日志判断该表项中的备机是否具有存储单元交集,如果有,则向该备机发送与该存储单元交集对应的操作记录。在另一具体实现方式中,控制节点获取不同的备机所需要的操作记录后,同时向不同的备机分发各自需要的操作记录。
步骤S509、备机对对应的操作记录所指示本地缓存中的存储单元执行相应的操作。
备机接收到操作记录后,首先判断所述操作记录所对应的存储单元是否存在于备机的本地缓存中,如果存在,则将所述操作记录应用到所述对应的存储单元中,如果不存在,则将该操作记录丢弃。在本发明实施例的方案中,由于备机接收到的操作记录均是备机所需的操作记录,所以可以避免将操作记录丢弃的情况。
举例来说,操作记录1记录有主机对本地缓存的页面1中的表进行数据修改的指令集合,那么,备机1接收到操作记录1后,也会基于该指令集合对备机1的本地缓存中的页面1执行相应的操作,使得备机中的页面1更新到与主机中的页面1相同的状态,从而实现了主/备机相同页面的同步。
为了更好地理解本发明实施例的上述步骤,下面举一个具体的实施例场景作为例子,如图7所示,在本发明实施例所应用的数据库***包括主机、控制节点、备机1、备机2以及存储设备(图未示),主机内存中存在页面1、页面2、页面3、页面4、页面5,备机1内存中存在页面1、页面6、页面7,备机2内存中存在页面2、页面3、页面5,主机进行读写事务时,修改页面1、页面2、页面3,相应生成操作日志(包含redo日志1、redo日志2、redo日志3),并发给控制节点,控制节点基于操作日志中的页面标示确定主机中的页面1、页面2、页面3被修改,查找映射表,确定备机1中内存中存在页面1、页面6、页面7,所以主机从操作日志中获取备机1所需的redo日志1,并将redo日志1发送至备机1;确定备机2中内存中存在页面2、页面3、页面5,所以主机从操作日志中获取备机2所需的redo日志2和redo日志3,并将redo日志2和redo日志3发送至备机2。备机1接收到redo日志1后,应用redo日志1到备机1内存中的页面1,实现页面1的更新。备机2接收到redo日志2和redo日志3后,应用redo日志2到备机2内存中的页面2,实现页面2的更新;应用redo日志3到备机2内存中的页面3,实现页面3的更新。
可以看出,实施本发明实施例的方案,主机在进行读写事务的情况下,修改主机的本地缓存或存储设备中的页面,生成相应操作日志(所有redo日志)后,将操作日志发给控制节点,控制节点可通过查找映射表,获取数据库***中每个备机所需的操作记录(所需的部分redo日志),并将该操作记录发给对应的备机,以便于备机更新本地缓存中的存储单元。也就是说,通过本发明实施例,控制节点可有针对性地向备机发送所需的redo日志,避免了不相关的redo日志在通信网络中的传输,有效减少了通信网络中的redo日志,节约了网络资源。主机只需要向控制节点发送所有redo日志,经过控制节点的管理后,备机接收到的redo日志均是其所需的,所以也省去了针对不相关的redo日志进行的丢弃操作,实施本发明实施例可以有效减少主/备机CPU的消耗。
参见图8,图8是本发明实施例提供的另一种主备机数据传递方法的流程示意图。在本发明实施例中,数据库***包括一个主机、至少一个备机(图中为备机1和备机2)、存储设备(图未示)以及控制节点,所述主机分别与所述控制节点和所述存储设备连接,所述备机分别与所述控制节点和所述存储设备连接,参见图8,所述方法包括:
步骤S801、备机从存储设备读入存储单元至本地缓存。
在本发明实施例中,由于备机共享存储介质,所以用户(或用户设备)需要查看数据库数据时,可向备机发出指令,备机收到该指令后,首先判断本地缓存是否存在所述指令对应的存储单元,若不存在,则从存储设备读入所述对应的存储单元,所述存储单元存储有用户所需的数据库数据,也就是说,备机读入的是存储在存储设备中的数据库数据的副本(copy)。在具体的实施例中,如图9所示,用户(或用户设备)向备机1发出指令以便于查看页面8中的数据,备机1基于该指令查找备机1的内存,发现内存中只存在页面1、页面6和页面7,不存在页面8,所以备机1访问存储设备,并从存储设备读入页面8至备机1的内存,这样,用户(或用户设备)就可以正常地查看页面8中的数据。
可以理解的,当数据库***中有多个备机时,如具有备机1和备机2,那么备机1和备机2均可以根据用户(或用户设备)的指令判断用户(或用户设备)所需要的页面是否在本地缓存,如果不在本地缓存,则从存储设备读入该页面。需要说明的是,不同备机独立完成上述过程,彼此之间并不限定先后顺序。
步骤S802、备机向控制节点发送注册请求,相应地,控制节点接收所述注册请求,并基于所述注册请求实现对映射表的更新。
在本发明实施例中,所述控制节点为独立的设备,例如独立的物理服务器。
在备机从存储设备读入所述对应的存储单元至本地缓存后,本地缓存中的存储单元发生变化,在这种情况下,为了向控制节点告知备机本地缓存中存储单元的变化情况,所述备机相应生成了注册请求,并向所述控制节点发送所述注册请求,所述注册请求包括所述备机的标识和待注册的存储单元的标识(亦即所述被读入的存储单元的标识)。控制节点接收所述注册请求后,根据所述备机的标识确定备机的标识对应的映射表表项,将所述待注册的存储单元的标识增加到所述备机的标识对应的表项中,实现映射表的更新。
在具体的实施例中,如图9所示,备机1从存储设备读入页面8后,相应生成了注册请求,所述注册请求中包括备机1的标识和页面8的标识(页面号)。控制节点接收到所述控制请求后,根据所述备机1的标识确定第二备机的标识对应的表项为表项1,所以控制节点将所述页面8的标识增加到表项1中,也就是映射表中表项1中页面号从<1、6、7>更新为<1、6、7、8>,控制节点更新所述映射表。
当数据库***中有多个备机时,如具有备机1和备机2,那么备机1和备机2均可在生成注册请求后分别向控制节点发送所述注册请求,相应地,控制节点响应所述注册请求,并完成映射表的更新。
在本发明的具体实现方式中,可预先在备机中配置控制节点的信息,具体的,在备机中配置成员列表,所述成员列表记录有控制节点的标识,在备机生成注册请求后,备机基于所述控制节点的标识向控制节点发送所述注册请求。可以理解的,当所述控制节点包括多个物理服务器时,不同的物理服务器管辖不同的备机组,此时备机中的成员列表记录有该备机所在备机组对应的物理服务器的标识,在备机生成注册请求后,该备机根据所述物理服务器的标识向所述物理服务器发送注册请求。
需要说明的是,在本发明的又一种具体实现方式中,备机在开始读操作的情况下,如果判断该读操作对应的页面不在内存中,则首先生成注册请求,并向控制节点发送所述注册请求以便于控制节点更新所述映射表,然后才从存储设备中读入该页面至本地缓存。也就是说,步骤S801和步骤S802之间没有必然的先后顺序。
步骤S803、备机从本地缓存中淘汰存储单元。
在本发明实施例中,在备机的本地缓存的存储空间不足的情况下,备机基于预先配置的淘汰策略将本地缓存中的部分存储单元淘汰,所述淘汰是指将该存储单元中的数据删除以获得存储空间。所述预先配置的淘汰策略可以是基于存储时间的策略,在一具体的实现方式中,当备机检测到本地缓存的存储空间不足(如检测到存储量大于预设阈值),那么,备机检测本地缓存中的存储单元的存储时间,将存储时间大于预设时长的存储单元淘汰。所述预先配置的淘汰策略也可以是基于优先级的策略,在另一具体的实现方式中,当备机检测到本地缓存的存储空间不足,那么,备机检测本地缓存中的存储单元的优先级,将优先级低于预设级别的存储单元淘汰。
举例来说,参见图10,备机2的内存中存在页面2、页面4、页面8和页面9,在备机2内存不足的情况下,备机2基于预先配置的淘汰策略确定需要淘汰的页面为页面4,所以备机2从内存淘汰页面4,其他页面保持不变。
可以理解的,当数据库***中有多个备机时,如具有备机1和备机2,那么备机1和备机2均可在内存不足的情况下,基于预先配置的淘汰策略进行页面淘汰。需要说明的是,不同备机独立完成上述过程,彼此之间并不限定先后顺序。
步骤S804、备机向控制节点发送删除请求,相应地,控制节点接收所述删除请求,并基于所述删除请求实现对映射表的更新。
备机从本地缓存中淘汰存储单元后,由于本地缓存中的存储单元发生变化,在这种情况下,为了向控制节点告知备机本地缓存中存储单元的变化情况,所述备机相应生成了删除请求,并向所述控制节点发送所述删除请求,所述删除请求包括所述备机的标识和待删除的存储单元的标识(亦即所述被淘汰的存储单元的标识)。控制节点接收所述删除请求后,根据所述备机的标识确定备机的标识对应的映射表表项,在所述备机的标识对应的表项中删除所述待删除的存储单元的标识,实现映射表的更新。
在具体的实施例中,如图10所示,备机2从内存中淘汰页面4后,相应生成了删除请求,所述删除请求中包括备机2的标识和页面4的标识(页面号)。控制节点接收到所述控制请求后,根据所述备机2的标识确定备机2的标识对应的表项为表项2,所以控制节点在表项2中淘汰页面4的标识,也就是映射表中表项2中页面号从<2、4、8、9>更新为<2、8、9>,控制节点更新所述映射表。
可以理解的,当数据库***中有多个备机时,如具有备机1和备机2,那么备机1和备机2均可在生成删除请求后分别向控制节点发送所述删除请求,相应地,控制节点响应所述删除请求,并完成映射表的更新。
在本发明的具体实现方式中,可预先在备机中配置控制节点的信息,具体的,在备机中配置成员列表,所述成员列表记录有控制节点的标识,在备机生成删除请求后,备机基于所述控制节点的标识向控制节点发送所述删除请求。可以理解的,当所述控制节点包括多个物理服务器时,不同的物理服务器管辖不同的备机组,此时备机中的成员列表记录有该备机所在备机组对应的物理服务器的标识,在备机生成删除请求后,该备机根据所述物理服务器的标识向所述物理服务器发送删除请求。
需要说明的是,在本发明的又一种具体实现方式中,在备机检测到内存不足的情况下,备机基于预先配置的淘汰策略确定了需要淘汰的页面,则首先生成删除请求,并向控制节点发送所述删除请求以便于控制节点更新所述映射表,然后才从内存中淘汰该页面。也就是说,步骤S803和步骤S804之间没有必然的先后顺序。
还可以理解的是,步骤S801~步骤S802与步骤S803~步骤S804之间也没有必然的先后顺序。
步骤S805、主机进行读写事务。
主机根据用户(或用户设备)的操作指令进行事务的处理,所述事务可以是数据库事务,例如所述数据库事务为对数据库中的表的读取、编辑、***、更新等。主机在主机接收到用户(或用户设备)的操作指令后,首先查询本地缓存(如主机内存),判断本地缓存中是否存在所述操作指令所指示的数据库数据,如果存在,主机直接对所述数据库数据进行处理;如果不存在,那么主机就从存储设备中将该数据库数据读入到本地缓存中,再对该数据库数据行处理。
步骤S806、主机生成操作日志。
主机对页面进行修改的情况下,针对每一个页面分别生成操作记录,其中,每个操作记录对应一个页面,每个操作记录表示一个页面进行写操作的记录,在具体的实施方式中,每个操作记录为针对一个被修改页面的redo日志。在主机完成对页面的修改,进行事务提交的时候,主机将所有的操作记录汇总生成操作日志,即所述操作日志为所有被修改页面的redo日志的集合。
步骤S807、主机向控制节点发送操作日志。
主机与控制节点可通过有线或者无线的方式进行通信连接,在具体的实现方式中,可在在主机中预先配置成员列表,所述成员列表记录有控制节点的标识,在主机生成操作日志后,基于所述控制节点的标识将所述操作日志发送给控制节点。可以理解的,可以理解的,当所述控制节点包括多个物理服务器时,不同的物理服务器管辖不同的备机组,此时备机中的成员列表记录有所有物理服务器的标识,在主机生成操作日志后,主机基于所述成员列表将所述操作日志分别发送给每一个物理服务器。
步骤S808、控制节点确定操作日志对应的第一存储单元集合。
在一具体实现方式中,由于所述操作日志包含所有的操作记录,每个操作记录包含所对应的页面的标识,所以控制节点通过所述页面的标识就可以确定所述操作日志对应哪些页面。
步骤S809、控制节点确定备机中的第二存储单元集合。
在一具体实现方式中,主机通过查询所述映射表,确定数据库***中存在备机1和备机2,并且可以确定备机1中存在哪些页面,备机2中存在哪些页面。
可以理解的是,步骤S808和步骤S809之间没有必然的先后顺序。
步骤S810、控制节点根据同时存在于第一存储单元集合和第二存储单元集合的存储单元生成存储单元交集。
具体的,控制节点通过步骤S808确定了主机中的哪些页面被修改,通过步骤S809确定了备机1和备机2中分别存在哪些页面,所以,控制节点可分别确定备机1和备机2所对应的存储单元交集。
步骤S811、控制节点在所述操作日志中获取与存储单元交集对应的操作记录。
可以理解的,在分别确定了备机1和备机2对应的存储单元交集之后,控制节点可分别基于存储单元交集在操作日志中获取与该存储单元交集对应的操作记录。
步骤S812、控制节点向备机发送对应的操作记录。
在一具体的实现方式中,控制节点可依次向备机发送对应的操作记录,举例来说,所述控制节点查询映射表中的表项1,首先基于操作日志判断备机1具有存储单元交集后,向备机1发送与该存储单元交集对应的操作记录;然后继续查询映射表中的表项2,判断备机2具有存储单元交集后,再向备机1发送与该存储单元交集对应的操作记录。
在另一具体实现方式中,所述控制节点查询映射表,发现备机1和备机2均具有存储单元交集,控制节点获取备机1和备机2存储单元交集对应的操作记录后,分别从不同的端口向备机1和备机2分发各自对应的操作记录。
步骤S813、备机对对应的操作记录所指示本地缓存中的存储单元执行相应的操作。
可以理解的,备机1接收到控制节点发送的操作记录后,对该操作记录所指示本地缓存中的存储单元执行相应的操作。同样,备机2接收到控制节点发送的操作记录后,对该操作记录所指示本地缓存中的存储单元执行相应的操作。
需要说明的是,关于步骤S805~步骤S813的具体实现方式可参考图5~图7实施例相关的描述。
还需要说明的是,在具体的应用场景中,步骤S801~步骤S802可出现在步骤S805~步骤S812之前、之中或者之后,步骤S803~步骤S804也可出现在步骤S805~步骤S812之前、之中或者之后。上述实施例的描述仅仅为了说明本发明实施例的一种应用情景,不应理解为对本发明的限制。
可以看出,实施本发明实施例的方案,在数据库***中,主机在进行读写事务的情况下,修改主机的本地缓存或存储设备中的页面,生成相应操作日志(所有redo日志)后,将操作日志发给控制节点,控制节点可通过查找映射表,获取数据库***中每个备机所需的操作记录(所需的部分redo日志),并将该操作记录发给对应的备机,以便于备机更新本地缓存中的存储单元,在这个过程中,备机可以根据备机内存中页面的变化向控制节点发送注册请求或删除请求,以便于控制节点实现对映射表的更新,引入映射表的更新机制可使得数据库***更加实用和可靠。通过本发明实施例,控制节点可有针对性地向备机发送所需的redo日志,避免了不相关的redo日志在通信网络中的传输,有效减少了通信网络中的redo日志,节约了网络资源。主机只需要向控制节点发送所有redo日志,经过控制节点的管理后,备机接收到的redo日志均是其所需的,所以也省去了针对不相关的redo日志进行的丢弃操作,实施本发明实施例可以有效减少主/备机CPU的消耗。
基于同一发明构思,本发明实施例提供一种控制节点100,请参见图11,控制节点100包括:发射器1003、接收器1004、存储器1002和与存储器1002耦合的处理器1001。发射器1003、接收器1004、存储器1002和处理器1001可通过总线或者其它方式连接(图11中以通过总线连接为例)。其中:
处理器1001,可以是一个或多个中央处理器(Central Processing Unit,CPU),图10中以一个处理器为例,在处理器401是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
存储器1002,包括但不限于是随机存储记忆体(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable ProgrammableRead Only Memory,EPROM)、或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM),该存储器1002用于相关指令及数据,还用于存储程序代码,所述程序代码具体用于实现图5或图8实施例中的所述控制节点的功能;
发射器1003用于向外部发送数据;
接收器1004用于从外部接收数据;
具体的,处理器1001用于调用存储器1002中存储的程序代码,并执行以下步骤:
利用所述接收器1004获取所述主机产生的操作日志,并保存到所述存储器中,其中,所述操作日志包括至少一个操作记录,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;
确定第一备机对应的第一存储单元集合,以及确定所述至少一个操作记录对应的第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机中保存有第一存储单元集合对应的存储单元;
在所述操作日志中获取与存储单元交集对应的操作记录,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的存储单元的交集;
利用所述发射器1003将所述对应的操作记录发送给所述第一备机。
具体的,所述处理器1001执行确定所述第一备机中存在的第一存储单元集合包括:
所述处理器1001执行根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括所述第一备机的标识和所述第一备机的本地缓存对应的所有存储单元的标识。
可选的,所述映射表包括至少一个表项,包括:
在所述备机的数量为至少两个、且不同备机的本地缓存对应的所有存储单元不一致的情况下,所述映射表包括至少两个表项,不同表项对应的所有存储单元的标识不一致。
可选的,所述处理器还用于:
利用所述接收器获取第二备机发送的映射表更新请求,其中,所述映射表更新请求包括所述第二备机的标识和待更新的存储单元的标识,所述第二备机为所述至少一个备机中的任意一个备机;
在所述映射表中查询与所述第二备机的标识对应的表项,以及基于所述待更新的存储单元的标识更新所述第二备机的标识对应的表项。
在具体的实施例中,所述处理器1001具体用于:
利用所述接收器1004接收第二备机发送的注册请求,其中,所述注册请求包括所述第二备机的标识和待注册的存储单元的标识,所述第二备机为所述至少一个备机中的任意一个备机;
在所述映射表中查询与所述第二备机的标识对应的表项,以及将所述待注册的存储单元的标识增加到所述第二备机的标识对应的表项中。
在具体的实施例中,所述处理器1001具体用于:
利用所述接收器1004接收第三备机发送的删除请求,其中,所述删除请求包括所述第三备机的标识和待删除的存储单元的标识,第三备机为所述至少一个备机中的任意一个备机;
在所述映射表中查询与所述第三备机的标识对应的表项,以及在所述第三备机的标识对应的表项中删除所述待删除的存储单元的标识。
具体的,所述存储单元为页面。
需要说明的是,在本发明实施例中,控制节点可以是数据库***中独立的设备,例如,所述控制节点是独立的物理服务器。控制节点也可以是非独立的设备,这种情况下,在一种应用场景中,控制节点可以内置于主机中,或者作为主机的一种功能模块而存在(例如主机和控制节点作为不同的虚拟机,通过I/O接口连接,共存于同一物理服务器);在另一种应用场景中,控制节点可以内置于某个备机中,或者作为某个备机的一种功能模块而存在(例如某个备机和控制节点作为不同的虚拟机,通过I/O接口连接,共存于同一物理服务器)。
还需要说明的,处理器1001的执行步骤以及处理器1001涉及的其他技术特征还可参照图5或图8方法实施例中所述控制节点的相关内容,这里不再赘述。
基于同一发明构思,本发明实施例提供一种控制节点110,请参见图12,图12是本发明实施例提供的又一种控制节点的结构示意图,该控制节点110可包括获取单元1101、处理单元1102和发射单元1103,其中,各个功能单元的描述如下:
获取单元1101,用于获取所述主机产生的操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录对应一个存储单元,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;
处理单元1102,用于确定第一备机对应的第一存储单元集合,以及确定所述至少一个操作记录对应的第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机中保存有第一存储单元集合对应的存储单元;还用于在所述操作日志中获取与存储单元交集对应的操作记录,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的存储单元的交集;
发射单元1103,用于将所述对应的操作记录发送给所述第一备机。
其中,处理单元1102用于确定所述第一备机中存在的第一存储单元集合,包括:
处理单元1102用于根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括所述第一备机的标识和所述第一备机的本地缓存对应的所有存储单元的标识。
其中,在所述备机的数量为至少两个、且不同备机的本地缓存对应的所有存储单元不一致的情况下,所述映射表包括至少两个表项,不同表项对应的所有存储单元的标识不一致。
其中,所述获取单元1101还用于,接收第二备机发送的映射表更新请求,其中,所述映射表更新请求包括所述第二备机的标识和待更新的存储单元的标识,所述第二备机为所述至少一个备机中的一个备机;
所述处理单元1102还用于,在所述映射表中查询与所述第二备机的标识对应的表项,以及基于所述待更新的存储单元的标识更新所述第二备机的标识对应的表项。
具体的,获取单元1101还用于接收第二备机发送的注册请求,其中,所述注册请求包括所述第二备机的标识和待注册的存储单元的标识,所述第二备机为所述至少一个备机中的任意一个备机;处理单元1102还用于在所述映射表中查询与所述第二备机的标识对应的表项,以及将所述待注册的存储单元的标识增加到所述第二备机的标识对应的表项中。
具体的,获取单元1101还用于接收第三备机发送的删除请求,其中,所述删除请求包括所述第三备机的标识和待删除的存储单元的标识,第三备机为所述至少一个备机中的任意一个备机;处理单元1102还用于在所述映射表中查询与所述第三备机的标识对应的表项,以及在所述第三备机的标识对应的表项中删除所述待删除的存储单元的标识。
具体的,所述存储单元为页面。
需要说明的是,在本发明实施例中,控制节点可以是数据库***中独立的设备,例如,所述控制节点是独立的物理服务器。控制节点也可以是非独立的设备,这种情况下,在一种应用场景中,控制节点可以内置于主机中,或者作为主机的一种功能模块而存在(例如主机和控制节点作为不同的虚拟机,通过I/O接口连接,共存于同一物理服务器);在另一种应用场景中,控制节点可以内置于某个备机中,或者作为某个备机的一种功能模块而存在(例如某个备机和控制节点作为不同的虚拟机,通过I/O接口连接,共存于同一物理服务器);在又一种应用场景中,所述控制节点为主机本身,也就是说该主机除了具备上述实施例中主机的功能,还具备上述实施例控制节点的功能。
需要说明的,通过前述图5或图8实施例的详细描述,本领域技术人员可以清楚的知道控制节点110所包含的各个功能单元的实现方法,所以为了说明书的简洁,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者任意组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网络站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、微波等)方式向另一个网络站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,也可以是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD等)、或者半导体介质(例如固态硬盘)等等。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
Claims (23)
1.一种主备机数据传递方法,其特征在于,所述方法应用于数据库***中的控制节点,所述数据库***还包括一个主机、控制节点、至少一个备机以及存储设备,所述主机和备机共享所述存储设备中的数据,所述方法包括:
获取所述主机产生的操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;
确定第一备机对应的第一存储单元集合,以及确定第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机中保存有第一存储单元集合对应的存储单元,所述对应的存储单元是从所述存储设备读入的,所述第二存储单元集合包括所述至少一个操作记录对应的至少一个存储单元;
在所述操作日志中获取与存储单元交集对应的操作记录,以及将所述对应的操作记录发送给所述第一备机,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的交集。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第一备机中存在的第一存储单元集合包括:
根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括所述第一备机的标识和所述第一备机的本地缓存对应的所有存储单元的标识。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收第二备机发送的映射表更新请求,其中,所述映射表更新请求包括所述第二备机的标识和待更新的存储单元的标识,所述第二备机为所述至少一个备机中的一个备机;
在所述映射表中查询与所述第二备机的标识对应的表项,以及基于所述待更新的存储单元的标识更新所述第二备机的标识对应的表项。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
根据所述映射表确定第三备机中存在的第三存储单元集合,其中,所述第三备机为所述至少一个备机中除所述第一备机外的一个备机,所述第三存储单元集合和所述第一存储单元集合不一致。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述存储单元为页面。
6.一种控制节点,其特征在于,包括:存储器、处理器、发射器和接收器,其中,所述存储器用于存储数据和指令,所述处理器用于调用所述存储器中存储的所述指令执行以下步骤:
利用所述接收器获取所述主机产生的操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;
确定第一备机对应的第一存储单元集合,以及确定第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机中保存有第一存储单元集合对应的存储单元,所述第二存储单元集合包括所述至少一个操作记录对应的至少一个存储单元;
在所述操作日志中获取与存储单元交集对应的操作记录,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的交集;
利用所述发射器将所述对应的操作记录发送给所述第一备机。
7.根据权利要求6所述的控制节点,其特征在于,所述处理器执行确定所述第一备机中存在的第一存储单元集合包括:
所述处理器执行根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括所述第一备机的标识和所述第一备机的本地缓存对应的所有存储单元的标识。
8.根据权利要求7所述的控制节点,其特征在于,所述处理器还用于:
利用所述接收器获取第二备机发送的映射表更新请求,其中,所述映射表更新请求包括所述第二备机的标识和待更新的存储单元的标识,所述第二备机为所述至少一个备机中的任意一个备机;
在所述映射表中查询与所述第二备机的标识对应的表项,以及基于所述待更新的存储单元的标识更新所述第二备机的标识对应的表项。
9.根据权利要求7或8所述的控制节点,其特征在于,所述处理器还用于:
根据所述映射表确定第三备机中存在的第三存储单元集合,其中,所述第三备机为所述至少一个备机中除所述第一备机外的一个备机,所述第三存储单元集合和所述第一存储单元集合不一致。
10.一种控制节点,其特征在于,包括:
获取单元,用于获取所述主机产生的操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;
处理单元,用于确定第一备机对应的第一存储单元集合,以及确定第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机中保存有第一存储单元集合对应的存储单元,所述第二存储单元集合包括所述至少一个操作记录对应的至少一个存储单元;还用于在所述操作日志中获取与存储单元交集对应的操作记录,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的存储单元的交集;
发射单元,用于将所述对应的操作记录发送给所述第一备机。
11.根据权利要求10所述的控制节点,其特征在于,所述处理单元用于确定所述第一备机中存在的第一存储单元集合,具体为:
所述处理单元用于根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括所述第一备机的标识和所述第一备机的本地缓存对应的所有存储单元的标识。
12.根据权利要求11所述的控制节点,其特征在于,
所述获取单元还用于,接收第二备机发送的映射表更新请求,其中,所述映射表更新请求包括所述第二备机的标识和待更新的存储单元的标识,所述第二备机为所述至少一个备机中的一个备机;
所述处理单元还用于,在所述映射表中查询与所述第二备机的标识对应的表项,以及基于所述待更新的存储单元的标识更新所述第二备机的标识对应的表项。
13.根据权利要求11或12所述的控制节点,其特征在于,所述处理单元还用于:
根据所述映射表确定第三备机中存在的第三存储单元集合,其中,所述第三备机为所述至少一个备机中除所述第一备机外的一个备机,所述第三存储单元集合和所述第一存储单元集合不一致。
14.一种数据库***,其特征在于,所述数据库***包括一个主机、至少一个备机、存储设备以及控制节点,所述主机和备机共享所述存储设备中的数据,其中,
所述主机,用于向所述控制节点发送操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;
所述控制节点,用于接收所述操作日志;确定第一备机对应的第一存储单元集合,以及确定第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机中保存有第一存储单元集合对应的存储单元,所述对应的存储单元是从所述存储设备读入的,所述第二存储单元集合包括所述至少一个操作记录对应的至少一个存储单元;在所述操作日志中获取与存储单元交集对应的操作记录,以及将所述对应的操作记录发送给所述第一备机,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的存储单元的交集;
所述第一备机,用于接收所述对应的操作记录,对所述对应的操作记录所指示本地缓存中的存储单元执行相应的操作。
15.根据权利要求14所述的数据库***,其特征在于,所述控制节点执行所述确定所述第一备机中存在的第一存储单元集合包括:
所述控制节点根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括第一备机的标识和第一备机的本地缓存对应的所有存储单元的标识。
16.根据权利要求15所述的数据库***,其特征在于,所述数据库***还包括第二备机,
所述第二备机,用于在接收到读操作指令的情况下,判断所述本地缓存中是否存在所述读操作指令对应的存储单元,若不存在,则从所述存储设备中读入所述对应的存储单元,并向所述控制节点发送注册请求,所述注册请求包括所述第二备机的标识和所述对应的存储单元的标识,所述第二备机为至少一个备机中的一个备机;
所述控制节点,还用于接收所述注册请求,并根据所述第二备机的标识确定所述第二备机的标识对应的表项,将所述对应的存储单元的标识增加到所述第二备机的标识对应的表项中。
17.根据权利要求16所述的数据库***,其特征在于,所述控制节点包括多个物理服务器,所述第二备机配置有成员列表,所述成员列表记录有所述多个物理服务中的一个物理服务器的标识;
所述第二备机执行向所述控制节点发送注册请求,具体为:
所述第二备机根据所述一个物理服务器的标识执行向该物理服务器发送注册请求。
18.根据权利要求15至17任一项所述的数据库***,其特征在于,所述数据库***还包括第三备机,
所述第三备机,用于在需要对本地缓存中的存储单元进行删除的情况下,根据所述本地缓存中的存储单元的存储时间或者优先级确定待删除的存储单元,并向所述控制节点发送删除请求,所述删除请求包括所述第三备机的标识和所述待删除的存储单元的标识,所述第三备机为至少一个备机中的一个备机;
所述控制节点,还用于接收所述删除请求,并根据所述第三备机的标识确定第三备机的标识对应的表项,在所述第三备机的标识对应的表项中删除所述待删除的存储单元的标识。
19.根据权利要求15至18任一项所述的数据库***,其特征在于,所述控制节点还用于:
根据所述映射表确定第四备机中存在的第三存储单元集合,其中,所述第四备机为所述至少一个备机中除所述第一备机外的一个备机,所述第三存储单元集合和所述第一存储单元集合不一致。
20.一种数据库***,其特征在于,所述数据库***包括一个主机、至少一个备机、存储设备,所述主机和备机共享所述存储设备中的数据,其中,
所述主机,用于生成操作日志,其中,所述操作日志包括至少一个操作记录,每个操作记录表示所述主机对主机的本地缓存或者所述存储设备中的一个存储单元进行写操作的记录;还用于确定第一备机对应的第一存储单元集合,以及确定第二存储单元集合,所述第一备机为所述至少一个备机中的一个备机,所述第一备机中保存有第一存储单元集合对应的存储单元,所述对应的存储单元是从所述存储设备读入的,所述第二存储单元集合包括所述至少一个操作记录对应的至少一个存储单元;在所述操作日志中获取与存储单元交集对应的操作记录,以及将所述对应的操作记录发送给所述第一备机,所述存储单元交集为所述第一存储单元集合和所述第二存储单元集合的存储单元的交集;
所述第一备机,用于接收所述对应的操作记录,对所述对应的操作记录所指示本地缓存中的存储单元执行相应的操作。
21.根据权利要求20所述的数据库***,其特征在于,所述主机执行所述确定所述第一备机中存在的第一存储单元集合包括:
所述主机根据预设的映射表确定所述第一备机中存在的第一存储单元集合,其中,所述映射表包括至少一个表项,每个表项包括一个备机的标识和该备机的本地缓存对应的所有存储单元的标识,其中一个表项包括第一备机的标识和第一备机的本地缓存对应的所有存储单元的标识。
22.根据权利要求21所述的数据库***,其特征在于,所述主机还用于:
根据所述映射表确定第二备机中存在的第三存储单元集合,其中,所述第二备机为所述至少一个备机中除所述第一备机外的一个备机,所述第三存储单元集合和所述第一存储单元集合不一致。
23.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-5任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710057471.XA CN108363641B (zh) | 2017-01-26 | 2017-01-26 | 一种主备机数据传递方法、控制节点以及数据库*** |
PCT/CN2017/095477 WO2018137327A1 (zh) | 2017-01-26 | 2017-08-01 | 一种主备机数据传递方法、控制节点以及数据库*** |
US16/522,073 US10831612B2 (en) | 2017-01-26 | 2019-07-25 | Primary node-standby node data transmission method, control node, and database system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710057471.XA CN108363641B (zh) | 2017-01-26 | 2017-01-26 | 一种主备机数据传递方法、控制节点以及数据库*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108363641A true CN108363641A (zh) | 2018-08-03 |
CN108363641B CN108363641B (zh) | 2022-01-14 |
Family
ID=62979004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710057471.XA Active CN108363641B (zh) | 2017-01-26 | 2017-01-26 | 一种主备机数据传递方法、控制节点以及数据库*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US10831612B2 (zh) |
CN (1) | CN108363641B (zh) |
WO (1) | WO2018137327A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400100A (zh) * | 2020-03-16 | 2020-07-10 | 北京伟杰东博信息科技有限公司 | 一种分布式软件备份的管理方法及其*** |
CN111651526A (zh) * | 2020-08-04 | 2020-09-11 | 北京和利时***工程有限公司 | 冗余前端处理器的数据同步方法、前端处理器和处理*** |
CN113434476A (zh) * | 2021-08-26 | 2021-09-24 | 阿里云计算有限公司 | 数据同步方法、装置、设备、***、存储介质及程序产品 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190065327A1 (en) * | 2017-08-31 | 2019-02-28 | Nicira, Inc. | Efficient versioned object management |
CN111930558B (zh) | 2019-05-13 | 2023-03-03 | 华为技术有限公司 | 数据库***的故障修复方法、数据库***和计算设备 |
US11567923B2 (en) | 2019-06-05 | 2023-01-31 | Oracle International Corporation | Application driven data change conflict handling system |
US11645265B2 (en) * | 2019-11-04 | 2023-05-09 | Oracle International Corporation | Model for handling object-level database transactions in scalable computing applications |
CN112084261B (zh) * | 2020-09-03 | 2024-05-10 | 上海达梦数据库有限公司 | 一种数据同步方法、***、节点及存储介质 |
CN112307083A (zh) * | 2020-10-28 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置及服务器 |
US11972117B2 (en) * | 2021-07-19 | 2024-04-30 | EMC IP Holding Company LLC | Selecting surviving storage node based on environmental conditions |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555404A (en) * | 1992-03-17 | 1996-09-10 | Telenor As | Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas |
CN101446972A (zh) * | 2008-12-12 | 2009-06-03 | 中兴通讯股份有限公司 | 一种动态数据同步的方法和*** |
US8108343B2 (en) * | 2009-04-23 | 2012-01-31 | Microsoft Corporation | De-duplication and completeness in multi-log based replication |
CN101460930B (zh) * | 2005-05-06 | 2012-02-15 | 微软公司 | 维护数据库与文件***之间的链接级一致性 |
US8145838B1 (en) * | 2009-03-10 | 2012-03-27 | Netapp, Inc. | Processing and distributing write logs of nodes of a cluster storage system |
CN103365746A (zh) * | 2013-07-03 | 2013-10-23 | 华为技术有限公司 | 一种同步方法、设备及*** |
CN104021132A (zh) * | 2013-12-08 | 2014-09-03 | 郑州正信科技发展股份有限公司 | 主备数据库数据一致性核查备份方法及其*** |
CN104346373A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 分区日志队列同步管理方法及设备 |
EP2913768A1 (en) * | 2013-12-30 | 2015-09-02 | Huawei Technologies Co., Ltd. | Method and database engine for recording transaction log |
US20150347237A1 (en) * | 2013-06-24 | 2015-12-03 | Sap Se | N to m host system copy |
CN103019875B (zh) * | 2012-12-19 | 2015-12-09 | 北京世纪家天下科技发展有限公司 | 一种实现数据库双主改造的方法及装置 |
CN105354046A (zh) * | 2015-09-15 | 2016-02-24 | 深圳市深信服电子科技有限公司 | 基于共享磁盘的数据库更新处理方法及*** |
CN105930500A (zh) * | 2016-05-06 | 2016-09-07 | 华为技术有限公司 | 数据库***中事务恢复的方法与数据库管理*** |
CN106354865A (zh) * | 2016-09-09 | 2017-01-25 | 北京奇虎科技有限公司 | 一种同步主从数据库的方法、装置和*** |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070220059A1 (en) * | 2006-03-20 | 2007-09-20 | Manyi Lu | Data processing node |
US8327186B2 (en) * | 2009-03-10 | 2012-12-04 | Netapp, Inc. | Takeover of a failed node of a cluster storage system on a per aggregate basis |
US8069366B1 (en) * | 2009-04-29 | 2011-11-29 | Netapp, Inc. | Global write-log device for managing write logs of nodes of a cluster storage system |
CN102081611B (zh) * | 2009-11-26 | 2012-12-19 | 中兴通讯股份有限公司 | 一种主、备网管***数据库同步的实现方法及装置 |
US9805108B2 (en) * | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
CN102708150A (zh) * | 2012-04-12 | 2012-10-03 | 华为技术有限公司 | 异步复制数据的方法、装置和*** |
US10747746B2 (en) * | 2013-04-30 | 2020-08-18 | Amazon Technologies, Inc. | Efficient read replicas |
US9785510B1 (en) * | 2014-05-09 | 2017-10-10 | Amazon Technologies, Inc. | Variable data replication for storage implementing data backup |
CN105045877B (zh) * | 2015-07-20 | 2018-10-12 | 深信服科技股份有限公司 | 数据库数据分片存储方法和装置、数据查询方法和装置 |
US11347774B2 (en) * | 2017-08-01 | 2022-05-31 | Salesforce.Com, Inc. | High availability database through distributed store |
-
2017
- 2017-01-26 CN CN201710057471.XA patent/CN108363641B/zh active Active
- 2017-08-01 WO PCT/CN2017/095477 patent/WO2018137327A1/zh active Application Filing
-
2019
- 2019-07-25 US US16/522,073 patent/US10831612B2/en active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555404A (en) * | 1992-03-17 | 1996-09-10 | Telenor As | Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas |
CN101460930B (zh) * | 2005-05-06 | 2012-02-15 | 微软公司 | 维护数据库与文件***之间的链接级一致性 |
CN101446972A (zh) * | 2008-12-12 | 2009-06-03 | 中兴通讯股份有限公司 | 一种动态数据同步的方法和*** |
US8145838B1 (en) * | 2009-03-10 | 2012-03-27 | Netapp, Inc. | Processing and distributing write logs of nodes of a cluster storage system |
US8108343B2 (en) * | 2009-04-23 | 2012-01-31 | Microsoft Corporation | De-duplication and completeness in multi-log based replication |
CN103019875B (zh) * | 2012-12-19 | 2015-12-09 | 北京世纪家天下科技发展有限公司 | 一种实现数据库双主改造的方法及装置 |
US20150347237A1 (en) * | 2013-06-24 | 2015-12-03 | Sap Se | N to m host system copy |
CN103365746A (zh) * | 2013-07-03 | 2013-10-23 | 华为技术有限公司 | 一种同步方法、设备及*** |
CN104346373A (zh) * | 2013-07-31 | 2015-02-11 | 华为技术有限公司 | 分区日志队列同步管理方法及设备 |
CN104021132A (zh) * | 2013-12-08 | 2014-09-03 | 郑州正信科技发展股份有限公司 | 主备数据库数据一致性核查备份方法及其*** |
EP2913768A1 (en) * | 2013-12-30 | 2015-09-02 | Huawei Technologies Co., Ltd. | Method and database engine for recording transaction log |
CN105354046A (zh) * | 2015-09-15 | 2016-02-24 | 深圳市深信服电子科技有限公司 | 基于共享磁盘的数据库更新处理方法及*** |
CN105930500A (zh) * | 2016-05-06 | 2016-09-07 | 华为技术有限公司 | 数据库***中事务恢复的方法与数据库管理*** |
CN106354865A (zh) * | 2016-09-09 | 2017-01-25 | 北京奇虎科技有限公司 | 一种同步主从数据库的方法、装置和*** |
Non-Patent Citations (1)
Title |
---|
王伟: "MCS_51单片机主从式多机***实时通讯的实现", 《兵工自动化》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400100A (zh) * | 2020-03-16 | 2020-07-10 | 北京伟杰东博信息科技有限公司 | 一种分布式软件备份的管理方法及其*** |
CN111651526A (zh) * | 2020-08-04 | 2020-09-11 | 北京和利时***工程有限公司 | 冗余前端处理器的数据同步方法、前端处理器和处理*** |
CN113434476A (zh) * | 2021-08-26 | 2021-09-24 | 阿里云计算有限公司 | 数据同步方法、装置、设备、***、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN108363641B (zh) | 2022-01-14 |
WO2018137327A1 (zh) | 2018-08-02 |
US10831612B2 (en) | 2020-11-10 |
US20190347167A1 (en) | 2019-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108363641A (zh) | 一种主备机数据传递方法、控制节点以及数据库*** | |
JP5498594B2 (ja) | フェデレーションインフラストラクチャ内の一貫性 | |
CN109547512B (zh) | 一种基于NoSQL的分布式Session管理的方法及装置 | |
CN109802985A (zh) | 数据传输方法、装置、设备及可读取存储介质 | |
CN106844399A (zh) | 分布式数据库***及其自适应方法 | |
EP3238096B1 (en) | System and method for discovering a lan synchronization candidate for a synchronized content management system | |
JPH09244940A (ja) | 分散計算機資源の管理方法 | |
US11818209B2 (en) | State management and object storage in a distributed cloud computing network | |
CN106911524A (zh) | 一种ha实现方法及装置 | |
KR102092660B1 (ko) | Cpu 및 다중 cpu 시스템 관리 방법 | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
CN105635310B (zh) | 一种存储资源的访问方法及装置 | |
CN103297490B (zh) | 信息处理装置、分布式处理***和分布式处理方法 | |
CN110083307A (zh) | 数据存储方法、存储器和服务器 | |
US20170357682A1 (en) | Method and apparatus for information management | |
JP2000207370A (ja) | 分散ファイル管理装置及び分散ファイル管理システム | |
CN111585887A (zh) | 基于多个网络的通信方法、装置、电子设备及存储介质 | |
CN114513530B (zh) | 一种跨域存储空间双向供给方法和*** | |
WO2012085974A1 (en) | Information system having computer and storage apparatus coupled to network | |
US9544371B1 (en) | Method to discover multiple paths to disk devices cluster wide | |
CN109788075B (zh) | 专网网络***、数据的获取方法及边缘服务器 | |
US20040022199A1 (en) | Fibre channel switch having a push/pull method for caching remote switch information | |
CN107547605A (zh) | 一种基于节点队列的消息读写方法及节点设备 | |
US20170359416A1 (en) | Method and apparatus for information management | |
CN109947704A (zh) | 一种锁类型切换方法、装置及集群文件*** |
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 |