CN113297134A - 数据处理***及数据处理方法、装置、电子设备 - Google Patents
数据处理***及数据处理方法、装置、电子设备 Download PDFInfo
- Publication number
- CN113297134A CN113297134A CN202010611524.XA CN202010611524A CN113297134A CN 113297134 A CN113297134 A CN 113297134A CN 202010611524 A CN202010611524 A CN 202010611524A CN 113297134 A CN113297134 A CN 113297134A
- Authority
- CN
- China
- Prior art keywords
- storage node
- data
- slave
- log
- main
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 69
- 238000003672 processing method Methods 0.000 title abstract description 35
- 239000012634 fragment Substances 0.000 claims abstract description 180
- 230000002159 abnormal effect Effects 0.000 claims abstract description 58
- 238000011084 recovery Methods 0.000 claims description 71
- 238000000034 method Methods 0.000 claims description 38
- 230000004044 response Effects 0.000 claims description 31
- 238000013467 fragmentation Methods 0.000 claims description 24
- 238000006062 fragmentation reaction Methods 0.000 claims description 24
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 19
- 230000005856 abnormality Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开实施例公开了一种数据处理***及数据处理方法、装置、电子设备,该数据处理***包括至少一个日志存储节点和多个可用区,每个所述可用区包括用于存储分片数据的分片存储节点;所述分片数据包括主数据和从数据;所述主数据和从数据分别存储在不同的所述可用区;存储所述主数据的主分片存储节点用于响应数据更新请求而将所述数据更新请求对应的日志信息写入所述日志存储节点,以及将所述数据更新请求对应的更新数据备份至存储所述从数据的从分片存储节点;在所述主分片存储节点所在的所述可用区发生异常后,所述从分片存储节点从所述日志存储节点获取未备份的数据。该技术方案能够使得主分片存储节点和从分片存储节点中的数据保持强一致性。
Description
技术领域
本公开涉及计算机技术领域,具体涉及一种数据处理***及数据处理方法、装置、电子设备。
背景技术
传统的非关系型数据库通常通过放弃一致性,从而获得断网场景下的高可用能力。然而,在应用实际使用数据的过程中,存在部分场景对数据的一致性有要求。比如库存场景下,如果读到的库存信息不是最新的则可能出现超卖风险。传统解决分布式数据库强一致性的方法是使用PAXOS、RAFT等分布式一致性协议。但这些协议存在实现复杂,维护困难等特点,更为重要的是这些分布式一致性都要求至少3副本来使用强一致,成本开销较大。
另一个层面上,随着网络设备的不断迭代,存储计算分离的优势不断凸显。其高弹性,资源利用率高的特点,特别适用于电商大促场景。传统的PAXOS、RAFT等分布式协议设计之初没有考虑过分布式文件***的高可用能力,而是在一致性协议层处理所有可能发生的异常。这意味现存的一致性协议很难快入的融合入存储计算分离结构,或者说存在较大的性能和成本开销。
发明内容
本公开实施例提供一种数据处理***及数据处理方法、装置、电子设备,以解决数据处理***中主分片存储节点和从分片存储节点之间数据如何保持强一致性的技术问题。
第一方面,本公开实施例中提供了一种数据处理***,
包括至少一个日志存储节点和多个可用区,每个所述可用区包括用于存储分片数据的分片存储节点;
所述分片数据包括主数据和从数据;所述主数据和从数据分别存储在不同的所述可用区;
存储所述主数据的主分片存储节点用于响应数据更新请求而将所述数据更新请求对应的日志信息写入所述日志存储节点,以及将所述数据更新请求对应的更新数据备份至存储所述从数据的从分片存储节点;在所述主分片存储节点所在的所述可用区发生异常后,所述从分片存储节点从所述日志存储节点获取未备份的数据。
进一步地,还包括:
控制节点,用于记录所述从分片存储节点对应的点位数据,所述点位数据包括所述主数据中未备份至所述从分片存储节点中的数据在日志存储节点中的记录信息。
进一步地,所述控制节点在所述主分片存储节点所在的所述可用区发生异常后,用于向所述从分片存储节点发起数据恢复通知,以便所述从分片存储节点从所述日志存储节点复制未备份的数据;所述数据恢复通知包括所述从分片存储节点对应的所述点位数据。
进一步地,所述控制节点在主分片存储节点所在的所述可用区发生异常后,还用于向日志存储节点发送主分片存储节点禁写请求,以禁止所述主分片存储节点对所述日志存储节点进行写入操作。
进一步地,所述控制节点还用于将最先完成备份的所述从分片存储节点确定为主分片存储节点。
进一步地,所述主分片存储节点用于向所述控制节点上报对所述日志存储节点的写入操作信息;
所述从分片存储节点用于向所述控制节点上报从所述主分片存储节点获取的已备份数据;
所述控制节点用于根据所述写入操作信息以及所述已备份数据确定所述从分片存储节点对应的所述点位数据。控制节点,用于记录所述从分片存储节点的点位数据,所述点位数据包括从分片存储节点未完成备份的数据在日志存储节点中的记录信息。
第二方面,本公开实施例中提供了一种数据处理方法,包括:
响应于主分片存储节点所在的可用区发生异常的感知事件,向日志存储节点发送所述主分片存储节点禁写请求,以便禁止所述主分片存储节点对所述日志存储节点进行写入操作;所述日志存储节点用于存储所述主分片存储节点中的主数据的日志信息,所述日志信息由所述主分片存储节点响应对所述主数据的数据更新请求而产生;
向所述主分片存储节点对应的从分片存储节点发送所述主分片存储节点所在的可用区发生异常的数据恢复通知,以使所述从分片存储节点从所述日志存储节点中获取所述主数据中未备份至所述从分片存储节点中的数据;所述数据恢复通知包括所述从分片存储节点对应的点位数据,所述点位数据包括所述主数据中未备份至所述从分片存储节点中的数据在日志存储节点中的记录信息。
进一步地,还包括:
接收所述从分片存储节点发送的更新点位数据;所述更新点位数据包括所述从分片存储节点当前已完成备份的数据在所述日志存储节点中的日志信息;
根据所述更新点位数据将最先完成备份的目标从分片存储节点确定为主分片存储节点,以及向所述目标从分片存储节点发送切换为主分片存储节点的通知消息。
进一步地,还包括:
接收主分片存储节点所在可用区的心跳数据,以及在预定时间内未接收到主分片存储节点所在可用区的心跳数据后,触发主分片存储节点所在可用区发生异常的感知事件。
进一步地,还包括:
接收来自异常恢复后的所述从分片存储节点的异常恢复请求;
返回所述从分片存储节点对应的所述点位数据。
第三方面,本公开实施例中提供了一种数据处理方法,包括:
接收来自控制节点的数据恢复通知;所述数据恢复通知包括从分片存储节点对应的点位数据;所述点位数据包括存储在主分片存储节点中的主数据中未备份至所述从分片存储节点的数据在日志存储节点中的记录信息;所述日志存储节点用于存储所述主数据的日志信息,所述日志信息由所述主分片存储节点响应数据更新请求而产生;
根据所述点位数据从所述日志存储节点获取未备份至所述从分片存储节点的数据;
将未备份至所述从分片存储节点的数据存储至所述从分片存储节点。
进一步地,还包括:
将当前已完成备份的数据在所述日志存储节点中的记录信息反馈至所述控制节点。
进一步地,还包括:
接收来自从所述控制节点的切换为主分片存储节点的通知;
开启所述从分片存储节点中备份数据的操作权限,以便响应对从数据的操作。
第四方面,本公开实施例中提供了一种数据处理方法,包括:
向控制节点发送异常恢复请求;
接收所述控制节点返回的点位数据,所述点位数据包括存储在主分片存储节点中的主数据中未备份至从分片存储节点中的数据在日志存储节点中的记录信息;
根据所述点位数据从所述日志存储节点获取未备份至所述从分片存储节点的数据;
将未备份至所述从分片存储节点的数据存储至所述从分片存储节点。
第五方面,本公开实施例中提供了一种数据处理方法,包括:
接收对存储在主分片存储节点中的主数据的数据更新请求;
根据所述数据更新请求对所述主数据进行更新操作,以及将所述更新操作对应的日志信息写入日志存储节点中;所述日志存储节点用于存储所述主数据的日志信息,所述日志信息由所述主分片存储节点响应数据更新请求而产生。
第六方面,本公开实施例中提供了一种数据处理装置,包括:
第一响应模块,被配置为响应于主分片存储节点所在的可用区发生异常的感知事件,向日志存储节点发送所述主分片存储节点禁写请求,以便禁止所述主分片存储节点对所述日志存储节点进行写入操作;所述日志存储节点用于存储所述主分片存储节点中的主数据的日志信息,所述日志信息由所述主分片存储节点响应对所述主数据的数据更新请求而产生;
第一发送模块,被配置为向所述主分片存储节点对应的从分片存储节点发送所述主分片存储节点所在的可用区发生异常的数据恢复通知,以使所述从分片存储节点从所述日志存储节点中获取所述主数据中未备份至所述从分片存储节点中的数据;所述数据恢复通知包括所述从分片存储节点对应的点位数据,所述点位数据包括所述主数据中未备份至所述从分片存储节点中的数据在日志存储节点中的记录信息。
第七方面,本公开实施例中提供了一种数据处理装置,包括:
第四接收模块,被配置为接收来自控制节点的数据恢复通知;所述数据恢复通知包括从分片存储节点对应的点位数据;所述点位数据包括存储在主分片存储节点中的主数据中未备份至所述从分片存储节点的数据在日志存储节点中的记录信息;所述日志存储节点用于存储所述主数据的日志信息,所述日志信息由所述主分片存储节点响应数据更新请求而产生;
第一获取模块,被配置为根据所述点位数据从所述日志存储节点获取未备份至所述从分片存储节点的数据;
第一存储模块,被配置为将未备份至所述从分片存储节点的数据存储至所述从分片存储节点。
第八方面,本公开实施例中提供了一种数据处理装置,包括:
第二发送模块,被配置为向控制节点发送异常恢复请求;
第六接收模块,被配置为接收所述控制节点返回的点位数据,所述点位数据包括存储在主分片存储节点中的主数据中未备份至从分片存储节点中的数据在日志存储节点中的记录信息;
第二获取模块,被配置为根据所述点位数据从所述日志存储节点获取未备份至所述从分片存储节点的数据;
第二存储模块,被配置为将未备份至所述从分片存储节点的数据存储至所述从分片存储节点。
第九方面,本公开实施例中提供了一种数据处理装置,包括:
第七接收模块,被配置为接收对存储在主分片存储节点中的主数据的数据更新请求;
更新模块,被配置为根据所述数据更新请求对所述主数据进行更新操作,以及将所述更新操作对应的日志信息写入日志存储节点中;所述日志存储节点用于存储所述主数据的日志信息,所述日志信息由所述主分片存储节点响应数据更新请求而产生。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,上述装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持上述装置执行上述对应方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。上述装置还可以包括通信接口,用于上述装置与其他设备或通信网络通信。
第十方面,本公开实施例提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方面所述的方法。
第十一方面,本公开实施例提供了一种计算机可读存储介质,用于存储上述任一装置所用的计算机指令,其包含用于执行上述任一方面所述方法所涉及的计算机指令。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开实施例中主分片存储节点和从分片存储节点通过共用同一日志存储节点,并由主分片存储节点向日志存储节点写入日志信息的方式记录主数据的数据更新信息,使得主分片存储节点所在可用区发生异常之后,从分片存储节点能够从日志存储节点恢复未备份的数据,进而能够保证主分片存储节点和从分片存储节点的数据强一致性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的数据处理***的结构框图;
图2示出根据本公开一实施方式的数据处理***的实现架构示意图;
图3示出根据本公开一实施方式的数据处理方法的流程图;
图4示出根据本公开一实施方式主分片存储节点所在可用区异常后的恢复流程示意图;
图5示出根据本公开另一实施方式的数据处理方法的流程图;
图6示出根据本公开另一实施方式的数据处理方法的流程图;
图7示出根据本公开一实施方式从分片存储节点所在可用区异常后的自行恢复的流程示意图;
图8示出根据本公开另一实施方式的数据处理方法的流程图;
图9是适于用来实现根据本公开实施方式的数据处理方法的电子设备的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出根据本公开一实施方式的数据处理***的结构框图。如图1所示,该数据处理***100包括日志存储节点101和多个可用区102,每个可用区102包括一个或多个用于存储分片数据的分片存储节点;分片数据包括主数据和从数据;主数据和从数据分别存储在不同的可用区;
存储主数据的主分片存储节点1021用于响应数据更新请求而将数据更新请求对应的日志信息写入日志存储节点101,以及将数据更新请求对应的写数据备份至存储从数据的从分片存储节点1022;在主分片存储节点1021所在的可用区102发生异常后,从分片存储节点1022从日志存储节点101获取未备份的数据。
数据更新请求数据更新请求数据更新请求本实施例中,分布式文件***中的数据可以被划分成多个分片数据之后存储至多个可用区102中。一个可用区102可以包括多个分片存储节点,分别用于存储多个分片数据。可以理解的是,一个分片数据可以分布存储在一个或多个物理节点上,因此一个分片存储节点可以由一个或多个物理节点构成。一个分片数据可以包括主数据和从数据,从数据为主数据的备份数据,针对同一分片数据用于存储主数据的主分片存储节点1021和用于存储从数据的从分片存储节点1022可以具有完全相同的结构和功能,所不同的是在数据存储过程中所赋予的角色不同,也即一个是主角色,一个是从角色。主分片存储节点1021和从分片存储节点1022可以部署在不同的可用区102中。
客户端200通过主分片存储节点1021对主数据进行响应的数据操作,也即主分片存储节点1021用于响应客户端200对主数据的数据操作请求,而从分片存储节点1022不对客户端200进行响应,从分片存储节点1022用于对主分片存储节点1021上的主数据进行备份,并与主分片存储节点1021保持数据强一致性,也即在正常情况下从分片存储节点1022中存储有分片数据的所有数据,而主分片存储节点1021所在的可用区102发生异常(例如该可用区102断网)后,从分片存储节点1022中存储的数据加上日志存储节点中的数据能够完全覆盖主分片存储节点1021中存储的所有数据。在一些实施例中,可以设置有多个从分片存储节点1022,每个从分片存储节点1022均对主分片存储节点1021上的主数据进行备份,也即每个从分片存储节点1022均存储该主数据的一个从数据。
日志存储节点用于记录日志信息,该日志信息可以包括但不限于主分片存储节点1021响应数据更新请求而产生的日志信息,也即客户端200的数据更新操作均发生在主分片存储节点1021上,主分片存储节点1021响应客户端200的数据更新请求而将更新的数据写入主分片存储节点1021之后,将对应的日志信息存储至日志存储节点,同时还将更新的数据备份至从分片存储节点1022,日志信息例如可以包括但不限于数据更新操作对应的更新数据、该更新数据在主分片存储节点1021中的存储位置、更新时间等。数据更新操作包括但不限于数据写入操作、数据删除操作、数据修改操作等。
该数据处理***100中,由主分片存储节点1021对客户端200的请求进行响应,客户端200的请求包括数据更新操作请求、数据访问操作请求等。从分片存储节点1022不对客户端200的请求进行响应,从分片存储节点1022根据主分片存储节点1021对数据的更新而进行本地更新,也即从分片存储节点1022中的数据与主分片存储节点1021中的数据保持一致,在主分片存储节点1021发生异常后,从分片存储节点1022在备份完主分片存储节点1021中的所有数据之后可以被切换为主分片存储节点1021,进而对客户端200的请求进行响应。
主分片存储节点1021响应于客户端200的数据更新操作,在主分片存储节点1021中的分布式存储节点中执行相应的数据更新操作,并且将数据更新操作涉及的日志信息写入日志存储节点中,主分片存储节点1021还可以将数据更新操作异步复制到从分片存储节点1022,在主分片存储节点1021中的数据更新成功以及将日志信息成功写入日志存储节点后,无需等待从分片存储节点1022异步复制成功的反馈,即可向客户端200返回数据更新操作成功的响应。
本公开实施例中存储主数据的主分片存储节点和存储从数据的从分片存储节点通过共用同一日志存储节点,并由主分片存储节点向日志存储节点写入日志信息的方式记录主数据的数据更新信息,使得主分片存储节点所在的主可用区发生异常之后,从分片存储节点能够从日志存储节点恢复未备份的数据,进而能够保证主分片存储节点和从分片存储节点的数据强一致性。
在一些实施例中,如图1所示,数据处理***还可以包括控制节点。控制节点用于记录从分片存储节点的点位数据,点位数据包括主数据中未备份至从分片存储节点中的的数据在日志存储节点中的记录信息。
在一些实施例中,控制节点在主分片存储节点所在的可用区发生异常后,用于向从分片存储节点发起数据恢复通知,以便从分片存储节点从日志存储节点复制未备份的数据;数据恢复通知包括从分片存储节点的点位数据。控制节点在感知到主分片存储节点所在的可用区发生异常之后,可以向从分片存储节点发起数据恢复通知,以便从分片存储节点能够从日志存储节点复制未完成备份的数据。在主分片存储节点所在的可用区未发生异常时,主分片存储节点将主数据的更新数据异步复制到从分片存储节点,但是在主分片存储节点所在的可用区发生网络连接断开等异常时,从分片存储节点无法获得主分片存储节点中的更新数据,但是主分片存储节点始终会根据数据更新操作对日志存储节点进行更新,因此在主分片存储节点所在可用区发生异常之后,从分片存储节点可以根据当前的点位数据从日志存储节点复制未备份的数据。
在一些实施例中,控制节点在主分片存储节点所在可用区发生异常后,还用于向日志存储节点发送主分片存储节点禁写请求,以禁止主分片存储节点对日志存储节点进行写入操作。通过这种方式,在主分片存储节点所在主可用区发生断网等异常之后,可以防止主分片存储节点继续向日志存储节点写入日志信息,并且在从分片存储节点从日志存储节点复制完成未备份的数据之后切换成主分片存储节点,能够快速恢复对客户端的响应。
在一些实施例中,控制节点还用于将最先完成备份的从分片存储节点确定为主分片存储节点。从分片存储节点从日志存储节点完成未备份数据的备份之后,由于从分片存储节点中存储了主分片存储节点中的所有数据,也即从分片存储节点中存储了分片数据中的所有数据,因此控制节点可以将从分片存储节点确定为主分片存储节点,以便切换后的主分片存储节点能够响应客户端的请求,并根据客户端的请求对分片数据进行更新,进而根据数据更新操作在日志存储节点中写入日志信息。
在一些实施例中,主分片存储节点用于向控制节点上报对日志存储节点的写入操作;从分片存储节点用于向控制节点上报从主分片存储节点获取的已备份数据;控制节点用于根据写入操作以及已备份数据确定从分片存储节点的点位数据。
主分片存储节点可以周期性地向控制节点上报对日志存储节点的写入操作信息,例如最新写入日志存储节点的日志数据的位置、写入时间等。从分片存储节点可以周期性地向控制节点上报从主分片存储节点获取并在从分片存储节点已存储的已备份数据。控制节点可以根据主分片存储节点上报的写入操作信息以及从分片存储节点上报的已备份数据确定从分片存储节点的点位数据,也即从分片存储节点当前未备份的最老数据对应于日志存储节点中的哪条日志记录。通过这种方式,控制节点可以实时掌握从分片存储节点的数据备份情况,在主分片存储节点所在可用区发生异常时,可以将该点位数据发送给从分片存储节点,以便从分片存储节点可以根据该点位数据从日志存储节点获取未备份数据进行备份。
下面通过一个较为详细的应用实例介绍本公开实施例中的数据处理***。
图2示出根据本公开一实施方式的数据处理***的实现架构示意图。如图2所示,数据处理***架构可以分为三层:控制层、数据库层(DB层)和存储层。其中控制节点GlobalMaster位于控制层,用于与数据库层和存储层进行交互。数据库层包括至少两个可用区AZ1和AZ2,用于利用分片存储节点存储并管理一个或多个分片数据,其中一个可用区中可以包括针对目标分片数据的主分片存储节点,其他可用区可以包括针对目标分片数据的从分片存储节点。存储层包括至少一个日志存储节点Log store,用于存储主分片存储节点中针对目标分片数据的主数据的日志信息,且该日志存储节点仅允许该主分片存储节点写入。主分片存储节点用于响应客户端对目标分片数据的数据操作,包括数据更新操作和数据访问操作等,而从分片存储节点为主分片存储节点的备份,可以用于备份存储主分片存储节点中主数据的从数据,并在主分片存储节点所在的可用区发生异常时,可以将其中一个从分片存储节点切换为主分片存储节点,以便后续能够响应客户端的数据操作。当然可以理解的是,针对目标分片数据的主分片存储节点所在的可用区还可以包括其他分片存储节点,用于存储其他分片数据的主数据或者从数据;而针对目标分片数据的从分片存储节点所在的其他可用区中也可以包括其他分片存储节点,用于存储其他分片数据的主数据或从数据。
日志存储节点用于记录主分片存储节点响应数据更新操作而产生的日志信息,数据更新操作包括数据写入、删除、编辑等操作,日志信息可以包括但不限于被更新的数据的内容、在分布式存储节点中的位置、更新时间等。日志存储节点支持日志信息的顺序写入以及顺序读取。日志存储节点中的日志信息记录的是主分片存储节点中发生的数据更新操作,在主分片存储节点所在的可用区发生异常后,从分片存储节点可以通过读取日志存储节点中的日志信息补齐本地的备份数据,也即在主分片存储节点所在的可用区发生异常后,客户端对于主分片存储节点的数据更新操作可能没有同步至从分片存储节点,但是可能被写入了日志存储节点,因此从分片存储节点可以通过读取日志存储节点中的日志信息恢复未备份的数据,以便能够与主分片存储节点保持数据强一致性。
控制节点可以记录每个从分片存储节点对应的点位数据,该点位数据包括主数据中未备份至从分片存储节点的最老数据在日志存储节点中的记录位置(OFFSET)以及记录时间等记录信息。
控制节点还可以记录当前的主分片存储节点所在的位置,并在主分片存储节点所在的可用区发生异常时,向各个从分片存储节点发起数据恢复通知,以通知从分片存储节点从日志存储节点复制未备份的数据,并将最先完成备份的从分片存储节点确定为主分片存储节点。
数据操作过程中,在客户端的请求下,主分片存储节点通过响应客户端的数据更新操作,将该数据更新操作对应的日志信息(更新内容、在分布式存储节点中的存储位置、更新时间等)写入日志存储节点,以及在主分片存储节点中执行相应的数据更新操作(如修改数据、写入数据、删除数据等),主分片存储节点还可以将数据更新操作异步复制到从分片存储节点,并且无需等待从分片存储节点异步复制成功即可向客户端返回成功响应。
主分片存储节点可以周期性地向控制节点上报对日志存储节点的写入操作,也即可以将写入日志存储节点的最新日志记录上报给控制节点,从分片存储节点也可以周期性地向控制节点上报从主分片存储节点异步复制的最新备份数据的信息,例如备份数据的内容、存储位置以及异步复制的时间等。控制节点可以根据主分片存储节点和从分片存储节点上报的上述信息维护主分片存储节点和从分片存储节点之间异步复制的点位数据,该点位数据包括主数据未备份至从分片存储节点中的最老数据在日志存储节点中的记录位置、记录时间等记录信息,例如主分片存储节点最新写入日志存储节点的日志记录为第11条,而从分片存储节点A最新异步复制的日志记录为第3条,则控制节点可以存储主分片存储节点和从分片存储节点A之间异步复制的点位数据至少包括3这一记录。
主分片存储节点和从分片存储节点所在的可用区还可以周期性地向控制节点发送心跳数据,主控制节点可以根据心跳数据感知主分片存储节点和/或从分片存储节点所在的可用区是否发生了异常。控制节点在感知到主分片存储节点所在的可用区发生了异常后,可以向日志存储节点发送主分片存储节点禁写请求,以便禁止发生异常的主分片存储节点继续向日志存储节点写入日志信息。
控制节点还可以向从分片存储节点发送主分片存储节点发生异常的数据恢复通知,以通知从分片存储节点通过日志异步回放从日志存储节点中复制未备份的数据至从分片存储节点上,以便与主分片存储节点中的数据保持强一致性。控制节点可以将从分片存储节点的当前点位数据携带在数据恢复通知中发送给从分片存储节点,从分片存储节点在接收到该数据恢复通知后,根据点位数据从日志存储节点获取未备份数据并存储在从分片存储节点的分布式存储节点中。
从分片存储节点完成日志异步回放,也即从日志存储节点备份完成未备份的数据之后,控制节点可以将该从分片存储节点确定为主分片存储节点,并通知该从分片存储节点开放数据操作权限,包括数据更新操作和数据读取的权限,以便后续能够响应对客户端的数据操作请求。控制节点还可以通知日志存储节点,以便日志存储节点能够开放对新切换的主分片存储节点的操作权限。
下面通过具体实施例详细介绍本公开实施例的细节。
图3示出根据本公开一实施方式的数据处理方法的流程图。如图3所示,该数据处理方法包括以下步骤:
在步骤S301中,响应于主分片存储节点所在的可用区发生异常的感知事件,向日志存储节点发送主分片存储节点禁写请求,以便禁止主分片存储节点对日志存储节点进行写入操作;日志存储节点用于存储主分片存储节点中的主数据的日志信息,日志信息由主分片存储节点响应对主数据的数据更新请求而产生;
在步骤S302中,向主分片存储节点对应的从分片存储节点发送主分片存储节点所在的可用区发生异常的数据恢复通知,以使从分片存储节点从日志存储节点中获取主数据中未备份至从分片存储节点中的数据;数据恢复通知包括从分片存储节点对应的点位数据,点位数据包括主数据中未备份至从分片存储节点中的数据在日志存储节点中的记录信息。
本实施例中,该数据处理方法在图1和图2所示实施例中的数据处理***中的控制节点上执行。主分片存储节点用于存储分片数据的主数据,从分片存储节点用于对主分片存储节点中的数据进行备份,也即从分片存储节点用于存储分片数据的从数据。控制节点在感知到主分片存储节点所在的可用区发生异常之后,可以向从分片存储节点发送主分片存储节点发生异常的数据恢复通知,以通知从分片存储节点通过日志异步回放方式从日志存储节点中复制未完成备份的数据至从分片存储节点上,使得从分片存储节点与主分片存储节点中的数据保持强一致性。控制节点可以将从分片存储节点的当前点位数据携带在数据恢复通知中发送给从分片存储节点,从分片存储节点在接收到该数据恢复通知后,根据点位数据从日志存储节点获取未备份数据并存储在从分片存储节点的分布式存储节点中。该点位数据中可以包括存储在主分片存储节点中的主数据中未备份至从分片存储节点的数据在日志存储节点中的记录信息,例如未完成备份的最老一条数据在日志存储节点中的存储位置(Offset)以及记录时间等信息。
本实施例中的相关细节还可以参见上述对图1及图2实施例的描述,在此不再赘述。
本公开实施例中,通过在数据处理***中设置控制节点、日志存储节点,使得主分片存储节点以及从分片存储节点共用同一套日志存储节点,并且由控制节点记录从分片存储节点的点位数据,使得主分片存储节点所在的可用区在发生异常时,从分片存储节点能够根据控制节点发送的点位数据从日志存储节点获取未完成备份的数据,保持从分片存储节点与主分片存储节点的强一致性。
在本实施例的一个可选实现方式中,该方法进一步还包括以下步骤:
接收从分片存储节点发送的更新点位数据;更新点位数据包括从分片存储节点当前已完成备份的数据在日志存储节点中的日志信息;
根据更新点位数据将最先完成备份的目标从分片存储节点确定为主分片存储节点,以及向目标从分片存储节点发送切换为主分片存储节点的通知消息。
该可选的实现方式中,主分片存储节点所在的可用区发生异常后,从分片存储节点根据控制节点的数据恢复通知,从日志存储节点获取未完成备份的数据,该过程中从分片存储节点可以周期性地或者在完成备份之后向控制节点发送更新点位数据,该更新点位数据包括自主分片存储节点所在可用区发生异常之后,该从分片存储节点从日志存储节点获取数据,并在本地完成备份的数据在日志存储节点中的日志信息,例如日志的存储位置、更新时间等信息。在该已完成备份的数据的最后一条数据为日志存储节点中的最后一条数据时,可以确定该从分片存储节点已完成了主数据的备份,如果该从分片存储节点为多个从分片存储节点中最先完成备份的目标从分片存储节点,则控制节点可以将该目标从分片存储节点确定为主分片存储节点,为其赋予主分片存储节点的权限,并通知该目标从分片存储节点切换成主分片存储节点。控制节点还可以将当前主分片存储节点的信息更新为该目标从分片存储节点的信息例如位置、标识等。控制节点还可以向日志存储节点发送允许该目标从分片存储节点对日志存储节点进行写入操作的请求,以便日志存储节点能够开启对该目标从分片存储节点的写入权限。控制节点还可以向客户端发送主分片存储节点发生切换的通知消息,以使客户端向该目标从分片存储节点发送数据操作请求。
在本实施例的一个可选实现方式中,该方法进一步还包括以下步骤:
接收主分片存储节点所在可用区的心跳数据,以及在预定时间内未接收到主分片存储节点所在可用区的心跳数据后,触发主分片存储节点所在可用区发生异常的感知事件。
该可选的实现方式中,主分片存储节点所在可用区可以周期性地向控制节点发送心跳数据,如果控制节点在预定时间内未接收到主分片存储节点所在可用区的心跳数据,则可以认为主分片存储节点所在可用区发生了异常,因此控制节点可以触发主分片存储节点所在可用区发生异常的感知事件,以便控制节点能够通知各个从分片存储节点从日志存储节点恢复备份数据。
在本实施例的一个可选实现方式中,该方法进一步还包括以下步骤:
接收来自异常恢复后的从分片存储节点的异常恢复请求;
返回从分片存储节点的点位数据。
该可选的实现方式中,在从分片存储节点发生异常并恢复之后,从分片存储节点可以向控制节点发送异常恢复请求。从分片存储节点在发生异常之前,可以周期性地向控制节点上报从主分片存储节点复制并完成备份的数据,控制节点可以根据从分片存储节点上报的上述信息确定从分片存储节点的点位数据。因此,从分片存储节点在异常恢复之后,控制节点可以将从分片存储节点的点位数据发送给从分片存储节点,以便从分片存储节点可以从日志存储节点获取未完成备份的数据,在从分片存储节点完成备份之后,可以继续从主分片存储节点获取最新的数据进行备份。通过这种方式,从分片存储节点发生异常时,只需要等待从分片存储节点自行恢复即可,复杂度低,应用视角无硬伤。
图4示出根据本公开一实施方式主分片存储节点所在可用区异常后的恢复流程示意图。如图4所示,IDC1为主分片存储节点,IDC2、IDC3和IDC4为三个从分片存储节点,分别对IDC1中的数据进行备份,也即IDC1存储分片数据的主数据,而IDC2、IDC3和IDC4均存储同一分片数据的从数据。客户端client通过IDC1写入数据,在IDC1发生异常后,IDC1在日志存储节点Log Store中最后写入的日志信息为第11条记录,控制节点Global Master当前记录的各从分片存储节点的点位数据分别为idc1->idc2:3,idc1->idc3:9,idc1->idc4:Done;此时IDC4最先完成日志存储数据中数据的备份,因此可以将IDC4切换为主分片存储节点。
图5示出根据本公开另一实施方式的数据处理方法的流程图。如图5所示,该数据处理方法包括以下步骤:
在步骤S501中,接收来自控制节点的数据恢复通知;数据恢复通知包括从分片存储节点对应的点位数据;点位数据包括存储在主分片存储节点中的主数据中未备份至从分片存储节点的数据在日志存储节点中的记录信息;日志存储节点用于存储主数据的日志信息,日志信息由主分片存储节点响应数据更新请求而产生;
在步骤S502中,根据点位数据从日志存储节点获取未备份至从分片存储节点的数据;
在步骤S503中,将未备份至从分片存储节点的数据存储至从分片存储节点。
本实施例中,该数据处理方法在数据处理***中的从分片存储节点上执行。数据处理***的相关细节可以参见上述对图1及图2所示实施例的描述。
控制节点在感知到主分片存储节点所在可用区发生异常之后,可以向从分片存储节点发送主分片存储节点所在可用区发生异常的数据恢复通知,以通知从分片存储节点通过日志异步回放方式从日志存储节点中复制未完成备份的数据至从分片存储节点的分布式存储节点上,使得从分片存储节点与主分片存储节点中的数据保持强一致性。控制节点可以将从分片存储节点的当前点位数据携带在数据恢复通知中发送给从分片存储节点,从分片存储节点在接收到该数据恢复通知后,根据点位数据从日志存储节点获取未备份数据并存储在从分片存储节点的分布式存储节点中。该点位数据中可以包括存储在主分片存储节点中的主数据中未备份至从分片存储节点的数据在日志存储节点中的记录信息,例如未完成备份的最老一条数据在日志存储节点中的存储位置(Offset)以及记录时间等信息。
通过这种方式,在主分片存储节点所在可用区发生异常后,从分片存储节点能够快速从日志存储节点获取未完成备份的数据,完成数据的备份,使得从分片存储节点能够具有主分片存储节点所在可用区异常之前的所有数据,保持了数据的强一致性。
在本实施例的一个可选实现方式中,该方法进一步还包括以下步骤:
将当前已完成备份的数据在日志存储节点中的记录信息反馈至控制节点。
该可选的实现方式中,从分片存储节点根据控制节点的数据恢复通知,从日志存储节点获取未完成备份的数据并存储至从分片存储节点上。该过程中从分片存储节点可以周期性地或者在完成备份之后向控制节点发送当前已完成备份的数据在日志存储节点中的日志信息,例如位置、时间等信息。通过这种方式,控制节点可以实时掌握从分片存储节点的数据恢复状况,并且在从分片存储节点完成所有数据的备份后,将最先完成备份从分片存储节点确定为主分片存储节点。
在本实施例的一个可选实现方式中,该方法进一步还包括以下步骤:
接收来自从控制节点的切换为主分片存储节点的通知;
开启从分片存储节点中备份数据的操作权限,以便响应对从数据的操作。
该可选的实现方式中,控制节点根据从分片存储节点反馈的信息确定当前从分片存储节点已完成备份的数据的最后一条数据为日志存储节点中的最后一条数据时,可以确定该从分片存储节点已完成了数据的备份,如果该从分片存储节点为多个从分片存储节点中最先完成备份的目标从分片存储节点,则控制节点可以将该目标从分片存储节点确定为主分片存储节点,为其赋予主分片存储节点的权限,并通知该目标从分片存储节点切换成主分片存储节点。从分片存储节点接收到控制节点切换为主控制去的通知后,开启从分片存储节点中数据的操作权限,使得能够响应客户端对数据的操作请求。本公开实施例中,客户端对分片数据的读写操作只发生在主分片存储节点。由于对分片数据的数据读操作只发生在主分片存储节点,因此读请求资源开销相对于应用NWR协议的数据处理***低。
图6示出根据本公开另一实施方式的数据处理方法的流程图。如图5所示,该数据处理方法包括以下步骤:
在步骤S601中,向控制节点发送异常恢复请求;
在步骤S602中,接收控制节点返回的点位数据,点位数据包括存储在主分片存储节点中的主数据中未备份至从分片存储节点中的数据在日志存储节点中的记录信息;
在步骤S603中,根据点位数据从日志存储节点获取未备份至从分片存储节点的数据;
在步骤S604中,将未备份至从分片存储节点的数据存储至从分片存储节点。
本实施例中,该数据处理方法在数据处理***的从分片存储节点上执行。数据处理***的具体细节可以参见上述对图1及图2所示实施例的相关描述,在此不再赘述。
从上述对数据处理***的描述可知,由于客户端的数据请求由主分片存储节点响应,也即客户端对分片数据的读写等操作均发生在主分片存储节点,而从分片存储节点对于客户端的操作没有任何影响,因此从分片存储节点所在可用区发生异常之后,主分片存储节点仍然可以持续对客户端进行服务,并且能够根据客户端的数据更新操作对数据处理***进行数据更新,并且还根据数据更新操作向日志存储节点写入对应的日志信息。而从分片存储节点由于发生异常而无法将主分片存储节点对分片数据的数据更新备份到从分片存储节点,因此主分片存储节点和从分片存储节点之间暂时无法保持数据一致性,但是在从分片存储节点所在可用区的异常解决之后,从分片存储节点可以向控制节点发送异常恢复请求,以便从控制节点获取当前的点位数据,该点位数据包括从分片存储节点所在可用区发生异常之前从主分片存储节点获得的备份数据在日志存储节点中对应的记录信息,例如日志存储节点中的记录位置、时间等信息。从分片存储节点根据点位数据从日志存储节点获取异常之后未备份的数据,并存储在从分片存储节点上。在所有未备份数据均备份完成之后,从分片存储节点完成异常恢复,***恢复正常状态,从分片存储节点可以继续从主分片存储节点获取新的数据进行备份。通过这种方式,可以利用从分片存储节点的自恢复能力自行恢复即可,实现复杂度较低。
图7示出根据本公开一实施方式从分片存储节点所在可用区异常后的自行恢复的流程示意图。如图7所示,IDC1为数据处理***中的主分片存储节点,IDC2、IDC3和IDC4为三个从分片存储节点,分别对IDC1中的数据进行备份。客户端client通过IDC1写入数据,在IDC2发生异常后,控制节点存储的当前点位数据为:IDC1在日志存储节点Log Store中最新写入的日志信息为第11条记录,而从分片存储节点的点位数据分别为idc1->idc2:3,idc1->idc3:9,idc1->idc4:10;此时IDC2在异常问题解决之后,可以从日志存储节点的第3条记录开始进行日志回放,进而将第3条记录之后的数据备份至IDC2,并在将第3条至第11条之间的记录完成备份之后,从分片存储节点恢复正常。
图8示出根据本公开另一实施方式的数据处理方法的流程图。如图8所示,该数据处理方法包括以下步骤:
在步骤S801中,接收对存储在主分片存储节点中的主数据的数据更新请求;
在步骤S802中,根据数据更新请求对主数据进行更新操作,以及将更新操作对应的日志信息写入日志存储节点中;日志存储节点用于存储主数据的日志信息,日志信息由主分片存储节点响应数据更新请求而产生。
本实施例中,该数据处理方法在数据处理***的主分片存储节点上执行。数据处理***的具体细节可以参见上述对图1及图2所示实施例的描述,在此不再赘述。
在正常情况下,主分片存储节点向客户端提供服务,客户端对数据处理***中数据的操作均通过主分片存储节点进行,主分片存储节点在接收到客户端的数据更新请求之后,针对主分片存储节点的分布式存储节点上存储的数据进行数据更新操作,并将数据更新操作相关的日志信息写入日志存储节点。日志存储节点存储主数据的日志数据,支持顺序写入和顺序读取,并且日志存储节点存储仅允许主分片存储节点写入,因此针对数据处理***的一次数据更新操作,日志存储节点全局只支持一次写入,大幅降低了写入的开销。由于主数据的日志数据均存储在日志存储节点中,并且允许主分片存储节点一次写入,因此在主分片存储节点所在可用区发生异常之后,可以由从分片存储节点从日志存储节点获取未完成备份的数据,进而保持与主分片存储节点的数据强一致性。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
根据本公开一实施方式的数据处理装置,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。该数据处理装置包括:
第一响应模块,被配置为响应于主分片存储节点所在的可用区发生异常的感知事件,向日志存储节点发送主分片存储节点禁写请求,以便禁止主分片存储节点对日志存储节点进行写入操作;日志存储节点用于存储主分片存储节点中的主数据的日志信息,日志信息由主分片存储节点响应对主数据的数据更新请求而产生;
第一发送模块,被配置为向主分片存储节点对应的从分片存储节点发送主分片存储节点所在的可用区发生异常的数据恢复通知,以使从分片存储节点从日志存储节点中获取主数据中未备份至从分片存储节点中的数据;数据恢复通知包括从分片存储节点对应的点位数据,点位数据包括主数据中未备份至从分片存储节点中的数据在日志存储节点中的记录信息。
在本实施例的一个可选实现方式中,该装置还包括:
第一接收模块,被配置为接收从分片存储节点发送的更新点位数据;更新点位数据包括从分片存储节点当前已完成备份的数据在日志存储节点中的日志信息;
确定模块,被配置为根据更新点位数据将最先完成备份的目标从分片存储节点确定为主分片存储节点,以及向目标从分片存储节点发送切换为主分片存储节点的通知消息。
在本实施例的一个可选实现方式中,该装置还包括:
第二接收模块,被配置为接收主分片存储节点所在可用区的心跳数据,以及在预定时间内未接收到主分片存储节点所在可用区的心跳数据后,触发主分片存储节点所在可用区发生异常的感知事件。
在本实施例的一个可选实现方式中,该装置还包括:
第三接收模块,被配置为接收来自异常恢复后的从分片存储节点的异常恢复请求;
返回模块,被配置为返回从分片存储节点对应的点位数据。
本实施例中的数据处理装置与上述图3所示实施例及相关实施例中的数据处理方法对应一致,具体细节可以参见上述对图3所示实施例及相关实施例中的数据处理方法的描述,在此不再赘述。
根据本公开另一实施方式的数据处理装置,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。该数据处理装置包括:
第四接收模块,被配置为接收来自控制节点的数据恢复通知;数据恢复通知包括从分片存储节点对应的点位数据;点位数据包括存储在主分片存储节点中的主数据中未备份至从分片存储节点的数据在日志存储节点中的记录信息;日志存储节点用于存储主数据的日志信息,日志信息由主分片存储节点响应数据更新请求而产生;
第一获取模块,被配置为根据点位数据从日志存储节点获取未备份至从分片存储节点的数据;
第一存储模块,被配置为将未备份至从分片存储节点的数据存储至从分片存储节点。
在本实施例的一个可选实现方式中,该装置还包括:
反馈模块,被配置为将当前已完成备份的数据在日志存储节点中的记录信息反馈至控制节点。
在本实施例的一个可选实现方式中,该装置还包括:
第五接收模块,被配置为接收来自从控制节点的切换为主分片存储节点的通知;
开启模块,被配置为开启从分片存储节点中备份数据的操作权限,以便响应对从数据的操作。
本实施例中的数据处理装置与上述图5所示实施例及相关实施例中的数据处理方法对应一致,具体细节可以参见上述对图5所示实施例及相关实施例中的数据处理方法的描述,在此不再赘述。
根据本公开一实施方式的数据处理装置,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。该数据处理装置包括:
第二发送模块,被配置为向控制节点发送异常恢复请求;
第六接收模块,被配置为接收控制节点返回的点位数据,点位数据包括存储在主分片存储节点中的主数据中未备份至从分片存储节点中的数据在日志存储节点中的记录信息;
第二获取模块,被配置为根据点位数据从日志存储节点获取未备份至从分片存储节点的数据;
第二存储模块,被配置为将未备份至从分片存储节点的数据存储至从分片存储节点。
本实施例中的数据处理装置与上述图6所示实施例及相关实施例中的数据处理方法对应一致,具体细节可以参见上述对图6所示实施例及相关实施例中的数据处理方法的描述,在此不再赘述。
根据本公开一实施方式的数据处理装置,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。该数据处理装置包括:
第七接收模块,被配置为接收对存储在主分片存储节点中的主数据的数据更新请求;
更新模块,被配置为根据数据更新请求对主数据进行更新操作,以及将更新操作对应的日志信息写入日志存储节点中;日志存储节点用于存储主数据的日志信息,日志信息由主分片存储节点响应数据更新请求而产生。
本实施例中的数据处理装置与上述图8所示实施例及相关实施例中的数据处理方法对应一致,具体细节可以参见上述对图8所示实施例及相关实施例中的数据处理方法的描述,在此不再赘述。
图9是适于用来实现根据本公开实施方式的数据处理方法的电子设备的结构示意图。
如图9所示,电子设备900包括处理单元901,其可实现为CPU、GPU、FPGA、NPU等处理单元。处理单元901可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行本公开上述任一方法的实施方式中的各种处理。在RAM903中,还存储有电子设备900操作所需的各种程序和数据。处理单元901、ROM902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本公开的实施方式,上文参考本公开实施方式中的任一方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行本公开实施方式中任一方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (21)
1.一种数据处理***,包括至少一个日志存储节点和多个可用区,每个所述可用区包括用于存储分片数据的分片存储节点;
所述分片数据包括主数据和从数据;所述主数据和所述从数据分别存储在不同的所述可用区;
存储所述主数据的主分片存储节点用于响应数据更新请求而将所述数据更新请求对应的日志信息写入所述日志存储节点,以及将所述数据更新请求对应的更新数据备份至存储所述从数据的从分片存储节点;在所述主分片存储节点所在的所述可用区发生异常后,所述从分片存储节点从所述日志存储节点获取未备份的数据。
2.根据权利要求1所述的数据处理***,还包括:
控制节点,用于记录所述从分片存储节点对应的点位数据,所述点位数据包括所述主数据中未备份至所述从分片存储节点中的数据在日志存储节点中的记录信息。
3.根据权利要求2所述的数据处理***,其中,所述控制节点在所述主分片存储节点所在的所述可用区发生异常后,用于向所述从分片存储节点发起数据恢复通知,以便所述从分片存储节点从所述日志存储节点复制未备份的数据;所述数据恢复通知包括所述从分片存储节点对应的所述点位数据。
4.根据权利要求3所述的数据处理***,其中,所述控制节点在主分片存储节点所在的所述可用区发生异常后,还用于向日志存储节点发送主分片存储节点禁写请求,以禁止所述主分片存储节点对所述日志存储节点进行写入操作。
5.根据权利要求3或4所述的数据处理***,其中,所述控制节点还用于将最先完成备份的所述从分片存储节点确定为主分片存储节点。
6.根据权利要求2-4任一项所述的数据处理***,其中,所述主分片存储节点用于向所述控制节点上报对所述日志存储节点的写入操作信息;
所述从分片存储节点用于向所述控制节点上报从所述主分片存储节点获取的已备份数据;
所述控制节点用于根据所述写入操作信息以及所述已备份数据确定所述从分片存储节点对应的所述点位数据。
7.一种数据处理方法,包括:
响应于主分片存储节点所在的可用区发生异常的感知事件,向日志存储节点发送所述主分片存储节点禁写请求,以便禁止所述主分片存储节点对所述日志存储节点进行写入操作;所述日志存储节点用于存储所述主分片存储节点中的主数据的日志信息,所述日志信息由所述主分片存储节点响应对所述主数据的数据更新请求而产生;
向所述主分片存储节点对应的从分片存储节点发送所述主分片存储节点所在的可用区发生异常的数据恢复通知,以使所述从分片存储节点从所述日志存储节点中获取所述主数据中未备份至所述从分片存储节点中的数据;所述数据恢复通知包括所述从分片存储节点对应的点位数据,所述点位数据包括所述主数据中未备份至所述从分片存储节点中的数据在日志存储节点中的记录信息。
8.根据权利要求7所述的方法,其中,还包括:
接收所述从分片存储节点发送的更新点位数据;所述更新点位数据包括所述从分片存储节点当前已完成备份的数据在所述日志存储节点中的日志信息;
根据所述更新点位数据将最先完成备份的目标从分片存储节点确定为主分片存储节点,以及向所述目标从分片存储节点发送切换为主分片存储节点的通知消息。
9.根据权利要求7或8所述的方法,其中,还包括:
接收主分片存储节点所在可用区的心跳数据,以及在预定时间内未接收到主分片存储节点所在可用区的心跳数据后,触发主分片存储节点所在可用区发生异常的感知事件。
10.根据权利要求7或8所述的方法,其中,还包括:
接收来自异常恢复后的所述从分片存储节点的异常恢复请求;
返回所述从分片存储节点对应的所述点位数据。
11.一种数据处理方法,包括:
接收来自控制节点的数据恢复通知;所述数据恢复通知包括从分片存储节点对应的点位数据;所述点位数据包括存储在主分片存储节点中的主数据中未备份至所述从分片存储节点的数据在日志存储节点中的记录信息;所述日志存储节点用于存储所述主数据的日志信息,所述日志信息由所述主分片存储节点响应数据更新请求而产生;
根据所述点位数据从所述日志存储节点获取未备份至所述从分片存储节点的数据;
将未备份至所述从分片存储节点的数据存储至所述从分片存储节点。
12.根据权利要求11所述的方法,其中,还包括:
将当前已完成备份的数据在所述日志存储节点中的记录信息反馈至所述控制节点。
13.根据权利要求11或12所述的方法,其中,还包括:
接收来自从所述控制节点的切换为主分片存储节点的通知;
开启所述从分片存储节点中备份数据的操作权限,以便响应对从数据的操作。
14.一种数据处理方法,包括:
向控制节点发送异常恢复请求;
接收所述控制节点返回的点位数据,所述点位数据包括存储在主分片存储节点中的主数据中未备份至从分片存储节点中的数据在日志存储节点中的记录信息;
根据所述点位数据从所述日志存储节点获取未备份至所述从分片存储节点的数据;
将未备份至所述从分片存储节点的数据存储至所述从分片存储节点。
15.一种数据处理方法,包括:
接收对存储在主分片存储节点中的主数据的数据更新请求;
根据所述数据更新请求对所述主数据进行更新操作,以及将所述更新操作对应的日志信息写入日志存储节点中;所述日志存储节点用于存储所述主数据的日志信息,所述日志信息由所述主分片存储节点响应数据更新请求而产生。
16.一种数据处理装置,包括:
第一响应模块,被配置为响应于主分片存储节点所在的可用区发生异常的感知事件,向日志存储节点发送所述主分片存储节点禁写请求,以便禁止所述主分片存储节点对所述日志存储节点进行写入操作;所述日志存储节点用于存储所述主分片存储节点中的主数据的日志信息,所述日志信息由所述主分片存储节点响应对所述主数据的数据更新请求而产生;
第一发送模块,被配置为向所述主分片存储节点对应的从分片存储节点发送所述主分片存储节点所在的可用区发生异常的数据恢复通知,以使所述从分片存储节点从所述日志存储节点中获取所述主数据中未备份至所述从分片存储节点中的数据;所述数据恢复通知包括所述从分片存储节点对应的点位数据,所述点位数据包括所述主数据中未备份至所述从分片存储节点中的数据在日志存储节点中的记录信息。
17.一种数据处理装置,包括:
第四接收模块,被配置为接收来自控制节点的数据恢复通知;所述数据恢复通知包括从分片存储节点对应的点位数据;所述点位数据包括存储在主分片存储节点中的主数据中未备份至所述从分片存储节点的数据在日志存储节点中的记录信息;所述日志存储节点用于存储所述主数据的日志信息,所述日志信息由所述主分片存储节点响应数据更新请求而产生;
第一获取模块,被配置为根据所述点位数据从所述日志存储节点获取未备份至所述从分片存储节点的数据;
第一存储模块,被配置为将未备份至所述从分片存储节点的数据存储至所述从分片存储节点。
18.一种数据处理装置,包括:
第二发送模块,被配置为向控制节点发送异常恢复请求;
第六接收模块,被配置为接收所述控制节点返回的点位数据,所述点位数据包括存储在主分片存储节点中的主数据中未备份至从分片存储节点中的数据在日志存储节点中的记录信息;
第二获取模块,被配置为根据所述点位数据从所述日志存储节点获取未备份至所述从分片存储节点的数据;
第二存储模块,被配置为将未备份至所述从分片存储节点的数据存储至所述从分片存储节点。
19.一种数据处理装置,包括:
第七接收模块,被配置为接收对存储在主分片存储节点中的主数据的数据更新请求;
更新模块,被配置为根据所述数据更新请求对所述主数据进行更新操作,以及将所述更新操作对应的日志信息写入日志存储节点中;所述日志存储节点用于存储所述主数据的日志信息,所述日志信息由所述主分片存储节点响应数据更新请求而产生。
20.一种电子设备,其中,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求7-15任一项所述的方法。
21.一种计算机可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求7-15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010611524.XA CN113297134B (zh) | 2020-06-29 | 2020-06-29 | 数据处理***及数据处理方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010611524.XA CN113297134B (zh) | 2020-06-29 | 2020-06-29 | 数据处理***及数据处理方法、装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297134A true CN113297134A (zh) | 2021-08-24 |
CN113297134B CN113297134B (zh) | 2022-04-29 |
Family
ID=77318206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010611524.XA Active CN113297134B (zh) | 2020-06-29 | 2020-06-29 | 数据处理***及数据处理方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297134B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153389A (zh) * | 2021-11-22 | 2022-03-08 | 浙江大华技术股份有限公司 | 一种异常zone自动补齐方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291575A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种数据中心故障时的处理方法和设备 |
US20180004777A1 (en) * | 2016-04-15 | 2018-01-04 | Brian J. Bulkowski | Data distribution across nodes of a distributed database base system |
CN108073656A (zh) * | 2016-11-17 | 2018-05-25 | 杭州华为数字技术有限公司 | 一种数据同步方法及相关设备 |
CN109739935A (zh) * | 2019-01-09 | 2019-05-10 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN110691062A (zh) * | 2018-07-06 | 2020-01-14 | 浙江大学 | 一种数据写入方法、装置及其设备 |
CN111124301A (zh) * | 2019-12-18 | 2020-05-08 | 深圳供电局有限公司 | 一种对象存储设备的数据一致性存储方法及*** |
-
2020
- 2020-06-29 CN CN202010611524.XA patent/CN113297134B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291575A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种数据中心故障时的处理方法和设备 |
US20180004777A1 (en) * | 2016-04-15 | 2018-01-04 | Brian J. Bulkowski | Data distribution across nodes of a distributed database base system |
CN108073656A (zh) * | 2016-11-17 | 2018-05-25 | 杭州华为数字技术有限公司 | 一种数据同步方法及相关设备 |
CN110691062A (zh) * | 2018-07-06 | 2020-01-14 | 浙江大学 | 一种数据写入方法、装置及其设备 |
CN109739935A (zh) * | 2019-01-09 | 2019-05-10 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置、电子设备以及存储介质 |
CN111124301A (zh) * | 2019-12-18 | 2020-05-08 | 深圳供电局有限公司 | 一种对象存储设备的数据一致性存储方法及*** |
Non-Patent Citations (1)
Title |
---|
陈波等: "一种分布式持久性内存文件***的一致性机制", 《计算机研究与发展》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153389A (zh) * | 2021-11-22 | 2022-03-08 | 浙江大华技术股份有限公司 | 一种异常zone自动补齐方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113297134B (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4668763B2 (ja) | ストレージ装置のリストア方法及びストレージ装置 | |
WO2019085875A1 (zh) | 存储集群的配置修改方法、存储集群及计算机*** | |
US7882286B1 (en) | Synchronizing volumes for replication | |
US8464101B1 (en) | CAS command network replication | |
US8060714B1 (en) | Initializing volumes in a replication system | |
EP0988596B1 (en) | Method and system for recovery in a partitioned shared nothing database system using virtual shared disks | |
US8438135B1 (en) | Mirroring metadata in a continuous data protection environment | |
US8694700B1 (en) | Using I/O track information for continuous push with splitter for storage device | |
US10042579B1 (en) | Crash consistent snapshot | |
US7032089B1 (en) | Replica synchronization using copy-on-read technique | |
US10565071B2 (en) | Smart data replication recoverer | |
CN103226502B (zh) | 一种数据灾备控制***及数据恢复方法 | |
KR100983300B1 (ko) | 데이터 처리 시스템 내에서의 고장 복구 | |
US7594138B2 (en) | System and method of error recovery for backup applications | |
US10223007B1 (en) | Predicting IO | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
US20070220059A1 (en) | Data processing node | |
US10430290B2 (en) | Method and system for star replication using multiple replication technologies | |
CN110825562B (zh) | 数据备份方法、装置、***和存储介质 | |
CN113965578A (zh) | 一种集群中主节点的选举方法、装置、设备及存储介质 | |
US8689043B1 (en) | Fast failover with multiple secondary nodes | |
CN110825763B (zh) | 基于共享存储的MySQL数据库高可用***及其高可用方法 | |
CN112948484A (zh) | 分布式数据库***和数据灾备演练方法 | |
CN113297134B (zh) | 数据处理***及数据处理方法、装置、电子设备 | |
CN111984474B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059162 Country of ref document: HK |