CN108280080A - 一种数据同步方法、装置以及电子设备 - Google Patents
一种数据同步方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN108280080A CN108280080A CN201710009380.9A CN201710009380A CN108280080A CN 108280080 A CN108280080 A CN 108280080A CN 201710009380 A CN201710009380 A CN 201710009380A CN 108280080 A CN108280080 A CN 108280080A
- Authority
- CN
- China
- Prior art keywords
- data
- daily record
- node cluster
- node
- new
- 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
- 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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据同步方法,包括:利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。所述数据同步方法在进行数据同步时,将日志队列中新提交日志涉及的数据变更应用到节点集群的数据存储空间中,从而保持数据的一致性;同时实现了日志和快照数据文件的分离,克服了快照数据文件的存储容量受限于单机存储容量的缺陷。
Description
技术领域
本申请涉及数据同步技术领域,具体涉及一种数据同步方法。本申请同时涉及一种数据同步装置,以及一种电子设备。
背景技术
随着云计算的发展,越来越多的业务需求要求一种更强大的用于数据存储的数据中心,并且要求数据中心具有较强的高可用性,能够最大程度的减少甚至消除系统故障对正常业务的影响,因此,建立多个数据中心实现业务容灾成为必然选择,这些数据中心之间的数据同步成为实现业务高可用性至关重要的一环。
目前有许多方案着眼于实现分布式场景下的数据一致性,比如Google Chubby是最早引入Paxos一致性协议的一个项目,以及基于ZAB(Zookeeper Atomic Broadcast,Zookeeper原子消息广播协议)实现的Zookeeper项目,这两个项目设计之初就是只在单个数据中心内部部署运行的,无法实现在跨地域场景中运行,数据存储容量受限于单机存储,之所以受限于单机存储,是因为所采用架构决定的,在这种架构中,一般存在数目为奇数的节点,节点两两互连,通过一致性选举协议选举获得主节点,其余节点为从节点,每个节点上有一个数据库,数据库由log(日志)和snapshot(快照)组成,在这种架构中,数据库的log和snapshot是密不可分的两个组件,并且在一个节点中,有且仅有一个log和一个snapshot组件,使得snapshot的规模不能无限增长,始终受限于节点的单机存储容量。
发明内容
本申请提供一种数据同步方法,以解决现有技术存在的存储容量受限的缺陷。本申请另外提供一种数据同步装置,以及一种电子设备。
本申请提供一种数据同步方法,包括:
利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;
根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
可选的,所述节点集群包括由节点组成的节点集群集合当中的至少一个节点集群,所述节点集群集合当中的节点集群部署在至少一个地理区域中,且所述节点集群在所述地理区域中部署的数目大于或者等于1。
可选的,所述日志队列中日志根据所述节点集群中节点提交的数据变更操作创建,并在创建的日志中记录当前数据变更操作后加入所述日志队列。
可选的,所述节点集群中节点通过提供的数据存储模型向用户提供数据服务;其中,所述数据存储模型包括:基于Key/Value的数据存储模型。
可选的,所述数据存储模型提供的数据操作包括:所述数据变更操作和数据读取操作;其中,所述数据变更操作包括:数据创建操作、数据删除操作和数据修改操作。
可选的,所述日志在加入所述日志队列时按照预设排序顺序依次排序,所述排序顺序包括:加入所述日志队列的时间从先到后的顺序。
可选的,所述利用节点集群中节点从日志队列中读取新提交日志步骤执行前,执行下述步骤:
通过所述节点集群中节点接收包含数据变更操作的数据请求;
根据所述数据请求中包含的数据变更操作创建日志,并在创建的日志中记录当前数据变更操作后加入所述日志队列。
可选的,所述日志队列中每加入数目为预设日志数目阈值的日志,针对所述节点集群集合当中的至少一个节点集群,执行所述利用节点集群中节点从日志队列中读取新提交日志步骤,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤。
可选的,每隔一个预设同步周期,针对所述节点集群集合当中的至少一个节点集群,执行所述利用节点集群中节点从日志队列中读取新提交日志步骤,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤。
可选的,所述数据同步方法,包括:
通过所述节点集群中节点接收包含数据读取操作的数据请求;
在所述节点集群的数据存储空间中查找并读取所述数据读取操作涉及的数据。
可选的,所述日志队列由日志提交系统提供并进行维护,且所述日志提交系统基于分布式数据一致性协议实现。
可选的,所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤执行后,执行下述步骤:
通过所述节点集群中节点向所述日志提交系统发送所述新提交日志的确认消息。
可选的,所述日志提交系统提供下述至少一种日志接口:用于根据提交的数据请求中包含的数据变更操作创建日志以及记录当前数据变更操作后加入所述日志队列的日志创建记录接口,用于在所述日志队列中查询日志的日志查询接口,用于向所述日志提交系统发送过期日志信息的过期日志确认接口。
可选的,所述数据同步方法,包括:
通过调用所述过期日志确认接口向所述日志提交系统发送日志确认消息;
所述日志提交系统根据所述日志确认消息中包含的过期日志信息删除所述日志队列中的过期日志。
可选的,所述日志提交系统采用异地部署方式部署在至少一个地理区域当中。
可选的,所述分布式数据一致性协议包括:Paxos协议、Zookeeper AtomicBroadcast协议、Raft协议和Chain Replication协议。
可选的,所述节点集群中节点的数目大于或者等于1。
可选的,若所述节点集群中节点的数目大于或者等于2,所述节点集群的节点包含一个主节点和至少一个从节点。
可选的,所述主节点通过调用预先提供的分布式锁服务从所述节点集群的节点当中选举获得;或者,所述主节点基于内嵌的选举机制从所述节点集群的节点当中选举获得。
可选的,所述利用节点集群中节点从日志队列中读取新提交日志步骤,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤,基于所述节点集群中主节点和/或从节点执行。
可选的,所述利用节点集群中节点从日志队列中读取新提交日志步骤,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤,基于所述集群节点中所述主节点和所述从节点之外的任意一个或者多个节点执行。
可选的,所述数据存储空间采用下述任意一种实现方式提供快照数据文件存储:非关系型数据库和分布式数据库。
可选的,所述节点集群与所述地理区域具有一一对应关系;和/或,所述节点集群与所述数据存储空间具有一一对应关系。
可选的,所述数据同步方法,包括:
当有新的节点集群加入时,新加入节点集群从邻近节点集群的数据存储空间中拉取快照数据文件到自身数据存储空间中;
从所述日志队列中读取当前拉取快照数据文件执行过程中加入所述日志队列的日志,并将读取的日志所记录数据变更操作涉及的数据变更应用到所述新加入节点集群的数据存储空间中,执行完成后所述新加入节点集群中节点提供数据服务。
可选的,所述新加入节点集群的邻近节点集群包括:与所述新加入节点集群部署的地理区域距离最近的地理区域对应的节点集群。
本申请还提供一种数据同步装置,包括:
新提交日志读取单元,用于利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;
数据变更同步单元,用于根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
可选的,所述节点集群包括由节点组成的节点集群集合当中的至少一个节点集群,所述节点集群集合当中的节点集群部署在至少一个地理区域中,且所述节点集群在所述地理区域中部署的数目大于或者等于1。
本申请另外提供一种电子设备,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;
根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
本申请提供的所述数据同步方法,利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
本申请提供的所述数据同步方法,在进行数据同步时,利用节点集群中节点从日志队列中读取前一次数据同步操作之后提交至所述日志队列的新提交日志,并将所述新提交日志涉及的数据变更应用到节点集群的数据存储空间中,即:将前一次数据同步操作后发生的数据变更同步到节点集群的数据存储空间中,从而确保数据的一致性;同时,所述数据同步方法实现了日志和快照数据文件的分离,通过日志队列来维护节点集群提交的日志,并通过节点集群的数据存储空间来存储快照数据文件,克服了快照数据文件的存储容量受限于单机存储容量的缺陷。
附图说明
附图1是本申请提供的一种数据同步方法实施例的处理流程图;
附图2是本申请提供的一种数据同步部署架构的示意图;
附图3是本申请提供的一种日志提交系统部署方式示意图;
附图4是本申请提供的一种数据同步装置实施例的示意图;
附图5是本申请提供的一种电子设备实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种数据同步方法,本申请另外提供一种数据同步装置,以及一种电子设备。以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。
本申请提供的数据同步方法实施例如下:
参照附图1,其示出了本申请提供的一种数据同步方法实施例的处理流程图,参照附图2,其示出了本申请提供的一种数据同步部署架构的示意图,参照附图3,其示出了本申请提供的一种日志提交系统部署方式示意图。
步骤S101,利用节点集群中节点从日志队列中读取新提交日志。
本申请实施例所述节点是指用户可见的服务边界,通过所述节点向用户提供数据服务,所述节点集群由若干个节点组成,更进一步,若干个节点集群可以组成节点集群集合。所述节点集群集合当中的节点集群可以部署在同一地理区域内,本申请提供所述数据同步方法在进行数据同步时,可针对部署在同一地理区域内的节点集群之间进行数据同步;此外,所述节点集群集合当中的节点集群还可以部署在至少两个地理区域内,本申请提供所述数据同步方法在进行数据同步时,还可以针对部署在不同地理区域内的节点集群之间进行数据同步。具体的,每一个部署有节点集群的地理区域中部署的节点集群的数目大于或者等于1。所述地理区域可以是以城市为单位的地理区域范围,也可以是以城市区域、省市行政区域范围或者国家为单位地理区域范围,甚至可以是全球地理区域范围,在实际应用中,所述地理区域的范围可根据实际业务需求或者应用场景来确定。比如提供数据服务的服务范围内心增加了一个城市,可以将当前新增城市作为一个地理区域,并结合根据当前新增城市的实际业务情形,如果当前新增城市内访问节点集群提供的数据服务的用户较少,可在当前新增城市对应的地理区域部署一个节点集群;如果当前新增城市内访问节点集群提供的数据服务的用户较多,则可在当前新增城市对应的地理区域部署多个节点集群以满足需求。
针对用户在节点集群中节点的每一次事物操作(数据变更操作),都会被记录到日志中,同时也会将所述数据变更操作所带来的数据变更应用到节点集群的数据存储空间中。在此基础上,本申请提供全局唯一的日志队列,通过所述日志队列实现跨地理区域的若干个节点集群的数据同步,即实现跨地理区域的若干个节点集群的数据存储空间中存储的快照数据文件的一致性。
在具体实施时,所述节点集群中节点提供的数据服务可通过提供数据存储模型来对外提供数据服务,所述数据存储模型提供的数据操作包括:所述数据变更操作和数据读取操作;其中,所述数据变更操作包括:数据创建操作、数据删除操作和数据修改操作。需要说明的是,所述数据变更操作包括涉及数据变更的所有数据操作,并不限于上述提供的所述数据创建操作、数据删除操作和数据修改操作。比如所述节点集群中节点通过提供的基于Key/Value的数据存储模型向用户提供数据服务,在此基础上,用户可通过基于Key/Value的数据存储模型来创建、修改和删除Key。
具体的,在所述节点集群的数据存储空间中进行数据查询和读取的数据读取操作可采用如下方式实现:通过所述节点集群中节点接收包含数据读取操作的数据请求;在所述节点集群的数据存储空间中查找并读取所述数据读取操作涉及的数据。例如,如附图2所示,节点集群中的从节点1接收到包含数据读取操作(Read)的数据请求,在从节点1所属节点集群的数据存储空间中查找并读取当前数据读取操作(Read)涉及的数据。
需要说明的是,所述日志队列中日志根据所述节点集群中节点提交的数据变更操作创建,并在创建的日志中记录当前数据变更操作后加入所述日志队列。进一步,所述日志在加入所述日志队列时可以按照预设排序顺序依次排序,所述排序顺序包括:加入所述日志队列的时间从先到后的顺序。比如针对向日志队列中提交数据创建操作、数据删除操作或者数据修改操作的事务,将提交的事务转换成日志放在日志队列的尾部。
在具体实施时,所述日志队列可以由日志提交系统提供并进行维护,同时,由于节点集群之间的数据同步是在所述日志队列全局唯一的基础上实现的,因此,为保证日志队列的全局唯一性,所述日志提交系统可基于分布式数据一致性协议实现。在实际应用中,所述日志提交系统可对外提供日志队列抽象,反应在API上对外提供下述至少一种日志接口:用于根据提交的数据请求中包含的数据变更操作创建日志以及记录当前数据变更操作后加入所述日志队列的日志创建记录接口,用于在所述日志队列中查询日志的日志查询接口,用于向所述日志提交系统发送过期日志信息的过期日志确认接口。此处,需要指出的是,所述日志提交系统对外提供的日志接口并不限于上述提供的三种日志接口,还可以根据实际业务需求或者应用场景的变更适配相应的日志接口。
除此之外,由于所述日志提交系统提供的日志队列具有全局唯一性,全局所有的节点集群的接收到的包含数据变更操作的数据请求都被会提交到所述日志提交系统,并转换为日志加入所述日志队列中,因此,一旦节点集群提供的数据服务的用户比较多,则所述日志提交系统提供的日志队列的日志数目也会比较大,甚至会存在海量的日志,存储这些日志占用的存储空间也会比较大,为了循环利用所述日志提交系统提供的日志队列中日志的存储空间,节省存储资源,可以将所述日志队列中不再使用的日志删除,具体采用如下方式实现:通过调用所述过期日志确认接口向所述日志提交系统发送日志确认消息;所述日志提交系统根据所述日志确认消息中包含的过期日志信息删除所述日志队列中的过期日志。
本步骤中,针对提供数据服务的节点组成的节点集群集合当中的至少一个节点集群,利用所述节点集群中节点从日志队列中读取新提交日志,所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志。例如,如附图2所示,节点集群中主节点从日志提交系统提供的日志队列中读取新提交日志,即拉取新提交日志(Pulllogs)。
如上所述,所述节点集群可采用跨地理区域的方式进行部署,但在实际应用中,数据在跨地理区域进行传输时会存在一定的网络延时,相应的,部署在不同国家或者不同城市的节点集群与所述日志提交系统之间的数据传输也存在一定的网络延时,尤其体现在洲际之间数据传输的网络延时较为严重。在此,为降低数据在跨地理区域进行传输时产生的网络延时,可以将所述日志提交系统采用异地部署方式部署在至少一个地理区域当中,如附图3所示,所述日志提交系统部署在全球的5个城市,以缩短日志提交系统与节点集群之间的数据传输距离,以减少数据传输过程中产生的网络延时。比如某个数据服务提供方的业务范围涉及全球多数国家、某国家内多个地区或者某地区内多个城市,在每个国家、地区或者城市部署用于提供数据服务的节点集群,可以将业务范围对应的地理区域划分为多个大区,日志提交系统采用异地部署方式部署在每一个大区内,每个大区内所有的节点集群与其自身所属大区内部署的日志提交系统进行数据通信,在进行数据同步时,每一个大区内的所有节点集群均通过自身所属大区内部署的日志提交系统来访问全局唯一的日志队列,并在访问所述日志队列的基础上进行数据同步,从而降低了数据在跨地理区域的传输过程中产生的网络延时。
除此之外,所述日志提交系统采用异地部署方式部署在至少一个地理区域当中时,还可以采用与提供数据服务的节点集群一一对应的方式进行部署,在进行节点集群之间的数据同步时,节点集群通过访问自身所属地理区域当中部署的日志提交系统提供的日志队列,并进一步进行数据同步,从而进一步降低数据在跨地理区域的传输过程中产生的网络延时。
如上所述,所述日志提交系统可基于分布式数据一致性协议实现,所述分布式数据一致性协议包括:Paxos协议、Zookeeper Atomic Broadcast协议、Raft协议和ChainReplication协议。所述分布式数据一致性协议并不限于上述提供的四种协议,还包括上述四种协议之外的其他协议,相应的,所述日志提交系统并不限于上述提供的四种分布式数据一致性协议实现,还可以根据其他分布式数据一致性协议实现。
本申请实施例中,所述节点集群中节点的数目大于或者等于1。若所述节点集群中节点的数目大于或者等于2,所述节点集群的节点包含一个主节点和至少一个从节点。如附图2所示的节点集群中包含一个主节点和n-1(n>=2)个从节点。在具体实施时,所述主节点可通过调用预先提供的分布式锁服务从所述节点集群的节点当中选举获得。如附图2所示,主节点通过调用分布式锁服务在节点集群的节点中选举获得,节点集群中一个节点被选为主节点(Master),其余节点为从节点(Slave)。除此之外,所述节点集群中主节点的选举还可以基于内嵌的选举机制实现,从所述节点集群中选举出一个节点作为主节点(Master),其余节点作为从节点(Slave)。
在具体实施时,所述数据存储空间用于提供全量数据的存储,具体可采用下述任意一种实现方式提供快照数据文件存储:非关系型数据库和分布式数据库。比如采用Nosql数据库实现的数据存储空间。需要指出的是,所述数据存储空间的实现并不限于上述提供的非关系型数据库和分布式数据库,还可以采用其他类型的数据实现,或者采用数据库之外的其他方式来实现全量数据的存储。
本申请实施例中,所述节点集群与所述数据存储空间具有一一对应关系,每一个节点集群都有唯一对应的数据存储空间,用于存储快照数据文件。除此之外,还可以设置所述节点集群与所述地理区域之间的对应关系,比如在每一个地理区域设置一个唯一对应的节点集群,或者,在所述节点集群与所述数据存储空间具有一一对应关系的基础上,针对每一个地理区域设置一个唯一对应的节点集群。例如,每个城市设置一个对应的节点集群,并且在每一个城市的节点集群当中分别设置各自对应的用于存储所述快照数据文件的数据存储空间。
一般而言,数据服务提供方的业务范围随着时间变化也会不断发生变化,相应的,所述节点集群集合中节点集群的数目也会随之发生变化,针对所述节点集群集合中节点集群减少的情形,将需要减少的节点集群下线即可;针对所述节点集群集合中节点集群增加的情形,可采用如下方式实现:当有新的节点集群加入时,新加入节点集群从邻近节点集群的数据存储空间中拉取快照数据文件到自身数据存储空间中;从所述日志队列中读取当前拉取快照数据文件执行过程中加入所述日志队列的日志,并将读取的日志所记录数据变更操作涉及的数据变更应用到所述新加入节点集群的数据存储空间中,执行完成后所述新加入节点集群中节点提供数据服务。其中,所述新加入节点集群的邻近节点集群包括:与所述新加入节点集群部署的地理区域距离最近的地理区域对应的节点集群。上述提供的实现方式从邻近节点集群的数据存储空间中拉取快照数据文件到自身数据存储空间,避免了业务范围内新加入节点集群从主节点拉取快照数据文件导致主节点的性能瓶颈。
步骤S102,根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
上述步骤S101利用所述节点集群中节点从日志队列中读取所述新提交日志,本步骤根据上述步骤S101读取到的所述新提交日志,将所述新提交日志所记录数据变更操作涉及的数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。例如,如附图2所示,节点集群中主节点将所述新提交日志所记录数据变更操作涉及的数据变更应用到数据存储空间中,即应用新提交日志(Apply logs)。
在本步骤执行后,即将所述新提交日志所记录数据变更操作涉及的数据变更应用到所述节点集群的数据存储空间之后,针对当前完成数据同步的所述节点集群,可通过所述节点集群中节点向所述日志提交系统发送所述新提交日志的确认消息。例如,如附图2所示,节点集群中主节点向日志提交系统反馈新提交日志的确认消息(Ack信息)。
针对节点组成的节点集群集合当中的至少一个节点集群,在执行上述步骤S101和步骤S102后,将所述节点集群集合至少一个节点集群的新提交日志所记录数据变更操作涉及的数据变更应用到各节点集群的数据存储空间中,实现了各节点集群之间的数据同步,从而使各节点集群之间的数据保持一致。具体实施时,针对所述节点集群集合至少一个节点集群,在执行上述步骤S101和步骤S102所述的数据同步操作的过程中,可以采用多种方式实现,本实施例提供如下三种实现方式:
实现方式一:
此实现方式采用数据实时同步的方式,一旦所述日志队列中有日志加入,则立即针对所述节点集群集合至少一个节点集群执行数据同步操作,将当前加入所述日志队列的日志所记录数据变更操作涉及的数据变更应用到各节点集群的数据存储空间中,实现各节点集群之间的数据同步,具体实现方式如下:通过所述节点集群中节点接收包含数据变更操作的数据请求;根据所述数据请求中包含的数据变更操作创建日志,并在创建的日志中记录当前数据变更操作后加入所述日志队列;在此基础上,针对所述节点集群集合当中的至少一个节点集群,执行上述步骤S101和步骤S102所述的数据同步操作,利用所述节点集群中节点从日志队列中读取所述新提交日志,将所述新提交日志所记录数据变更操作涉及的数据变更应用到所述节点集群的数据存储空间中。
例如,如附图2所示,通过节点集群中的任意一个节点(主节点或者从节点)接收包含数据变更操作(Write)的数据请求,根据数据请求中包含的数据变更操作(Write)创建日志,并在创建的日志中记录当前数据变更操作后加入日志队列,在此基础上,针对节点集群集合当中的所有节点集群执行数据同步操作,将当前加入日志队列的日志所记录数据变更操作涉及的数据变更同步到节点集群集合当中的每一个节点集群。
实现方式二:
此实现方式通过对加入所述日志队列的日志进行计数,并设置一个日志数目阈值,每当日志队列中加入的日志数目累计达到所述日志数目阈值时,针对所述节点集群集合当中的至少一个节点集群,执行上述步骤S101和步骤S102所述的数据同步操作,利用所述节点集群中节点从日志队列中读取新提交日志,将所述新提交日志所记录数据变更操作涉及的数据变更应用到所述节点集群的数据存储空间中。
例如,设置的日志数目阈值为5,日志队列中每加入5个日志,针对节点集群集合当中的所有节点集群执行数据同步操作,将这5个日志中记录的数据变更操作涉及的数据变更同步到节点集群集合当中的每一个节点集群。
实现方式三:
此实现方式通过设置同步周期来进行数据同步操作,每隔一个同步周期执行一次上述步骤S101和步骤S102所述的数据同步操作,利用所述节点集群中节点从日志队列中读取所述新提交日志,将所述新提交日志所记录数据变更操作涉及的数据变更应用到所述节点集群的数据存储空间中。
例如,设置的同步周期为500ms,每隔500ms针对节点集群集合当中的所有节点集群执行数据同步操作,将过去500ms内加入日志队列的所有日志中记录的数据变更操作涉及的数据变更同步到节点集群集合当中的每一个节点集群。
如上所述,所述节点集群中包含有主节点和从节点,基于此,在执行上述步骤S101和步骤S102所述的数据同步操作时,即针对所述节点集群集合当中的至少一个节点集群执行上述步骤S101和步骤S102所述的数据同步操作时,所述数据同步操作可以指定由所述节点集群中的主节点执行,从而来保持数据的一致性。如附图2所示,由节点集群当中的主节点执行数据同步操作。
除此之外,在执行上述步骤S101和步骤S102所述的数据同步操作时,所述数据同步操作还可以由所述节点集群中指定的一个从节点来执行,或者,所述数据同步操作可以由所述节点集群中任意一个从节点来执行,或者,所述数据同步操作可以由所述节点集群中任意一个节点(可以是主节点,也可以是从节点)来执行,或者,所述数据同步操作可以由所述节点集群中所述主节点和所述从节点之外的任意一个或者多个节点来执行,比如,指定所述节点集群中一个或者多个节点专门用于执行数据同步操作,这些指定的节点不参加主节点的选举,只用于执行数据同步操作。
综上所述,本申请提供的所述数据同步方法,在进行数据同步时,利用节点集群中节点从日志队列中读取前一次数据同步操作之后提交至所述日志队列的新提交日志,并将所述新提交日志涉及的数据变更应用到节点集群的数据存储空间中,即:将前一次数据同步操作后发生的数据变更同步到节点集群的数据存储空间中,从而确保数据的一致性;同时,所述数据同步方法实现了日志和快照数据文件的分离,通过日志队列来维护节点集群提交的日志,并且通过节点集群的数据存储空间来存储快照数据文件,克服了快照数据文件的存储容量受限于单机存储容量的缺陷。
本申请提供的一种数据同步装置实施例如下:
在上述的实施例中,提供了一种数据同步方法,与之相对应的,本申请还提供了一种数据同步装置,下面结合附图进行说明。
参照附图4,其示出了本申请提供的一种数据同步装置实施例的示意图。
由于装置实施例与上述提供的方法实施例相互对应,阅读本实施例的内容请参照上述方法实施例的对应说明。下述描述的装置实施例仅仅是示意性的。
本申请提供一种数据同步装置,包括:
新提交日志读取单元401,用于利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;
数据变更同步单元402,用于根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
可选的,节点集群包括由节点组成的节点集群集合当中的至少一个节点集群,所述节点集群集合当中的节点集群部署在至少一个地理区域中,且所述节点集群在所述地理区域中部署的数目大于或者等于1。
可选的,所述日志队列中日志根据所述节点集群中节点提交的数据变更操作创建,并在创建的日志中记录当前数据变更操作后加入所述日志队列。
可选的,所述节点集群中节点通过提供的数据存储模型向用户提供数据服务;其中,所述数据存储模型包括:基于Key/Value的数据存储模型。
可选的,所述数据存储模型提供的数据操作包括:所述数据变更操作和数据读取操作;其中,所述数据变更操作包括:数据创建操作、数据删除操作和数据修改操作。
可选的,所述日志在加入所述日志队列时按照预设排序顺序依次排序,所述排序顺序包括:加入所述日志队列的时间从先到后的顺序。
可选的,所述数据同步装置,包括:
数据请求接收单元,用于通过所述节点集群中节点接收包含数据变更操作的数据请求;
日志创建提交单元,用于根据所述数据请求中包含的数据变更操作创建日志,并在创建的日志中记录当前数据变更操作后加入所述日志队列。
可选的,所述日志队列中每加入数目为预设日志数目阈值的日志,针对所述节点集群集合当中的至少一个节点集群,运行所述新提交日志读取单元401和所述数据变更同步单元402。
可选的,每隔一个预设同步周期,针对所述节点集群集合当中的至少一个节点集群,运行所述新提交日志读取单元401和所述数据变更同步单元402。
可选的,所述数据同步装置,包括:
数据读取请求单元,用于通过所述节点集群中节点接收包含数据读取操作的数据请求;
数据查找读取单元,用于在所述节点集群的数据存储空间中查找并读取所述数据读取操作涉及的数据。
可选的,所述日志队列由日志提交系统提供并进行维护,且所述日志提交系统基于分布式数据一致性协议实现。
可选的,所述数据同步装置,包括:
确认消息反馈单元,用于通过所述节点集群中节点向所述日志提交系统发送所述新提交日志的确认消息。
可选的,所述日志提交系统提供下述至少一种日志接口:用于根据提交的数据请求中包含的数据变更操作创建日志以及记录当前数据变更操作后加入所述日志队列的日志创建记录接口,用于在所述日志队列中查询日志的日志查询接口,用于向所述日志提交系统发送过期日志信息的过期日志确认接口。
可选的,所述数据同步装置,包括:
过期日志提交单元,用于通过调用所述过期日志确认接口向所述日志提交系统发送日志确认消息;
过期日志删除单元,用于所述日志提交系统根据所述日志确认消息中包含的过期日志信息删除所述日志队列中的过期日志。
可选的,所述日志提交系统采用异地部署方式部署在至少一个地理区域当中。
可选的,所述分布式数据一致性协议包括:Paxos协议、Zookeeper AtomicBroadcast协议、Raft协议和Chain Replication协议。
可选的,所述节点集群中节点的数目大于或者等于1。
可选的,若所述节点集群中节点的数目大于或者等于2,所述节点集群的节点包含一个主节点和至少一个从节点。
可选的,所述主节点通过调用预先提供的分布式锁服务从所述节点集群的节点当中选举获得;或者,所述主节点基于内嵌的选举机制从所述节点集群的节点当中选举获得。
可选的,所述新提交日志读取单元401和所述数据变更同步单元402,基于所述节点集群中主节点和/或从节点执行。
可选的,所述新提交日志读取单元401和所述数据变更同步单元402,基于所述集群节点中所述主节点和所述从节点之外的任意一个或者多个节点执行。
可选的,所述数据存储空间采用下述任意一种实现方式提供快照数据文件存储:非关系型数据库和分布式数据库。
可选的,所述节点集群与所述地理区域具有一一对应关系;和/或,所述节点集群与所述数据存储空间具有一一对应关系。
可选的,所述数据同步装置,包括:
快照数据文件拉取单元,用于通过新加入节点集群从邻近节点集群的数据存储空间中拉取快照数据文件到自身数据存储空间中;
日志读取同步单元,用于从所述日志队列中读取当前拉取快照数据文件执行过程中加入所述日志队列的日志,并将读取的日志所记录数据变更操作涉及的数据变更应用到所述新加入节点集群的数据存储空间中,执行完成后所述新加入节点集群中节点提供数据服务;
并且,当有新的节点集群加入时,运行所述快照数据文件拉取单元和所述日志读取同步单元。
可选的,所述新加入节点集群的邻近节点集群包括:与所述新加入节点集群部署的地理区域距离最近的地理区域对应的节点集群。
本申请提供的一种电子设备实施例如下:
在上述的实施例中,提供了一种数据同步方法,此外,本申请还提供了一种用于实现所述数据同步方法的电子设备,下面结合附图进行说明。
参照附图5,其示出了本实施例提供的一种电子设备的示意图。
本申请提供的所述电子设备用于实现本申请提供的所述数据同步方法,本实施例与上述提供的数据同步方法实施例相对应,阅读本实施例的内容请参照上述提供的数据同步方法实施例的对应说明。下述描述的实施例仅仅是示意性的。
本申请提供一种电子设备,包括:
存储器501,以及处理器502;
所述存储器501用于存储计算机可执行指令,所述处理器502用于执行所述计算机可执行指令:
利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;
根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
可选的,所述节点集群包括由节点组成的节点集群集合当中的至少一个节点集群,所述节点集群集合当中的节点集群部署在至少一个地理区域中,且所述节点集群在所述地理区域中部署的数目大于或者等于1。
可选的,所述日志队列中日志根据所述节点集群中节点提交的数据变更操作创建,并在创建的日志中记录当前数据变更操作后加入所述日志队列。
可选的,所述节点集群中节点通过提供的数据存储模型向用户提供数据服务;其中,所述数据存储模型包括:基于Key/Value的数据存储模型。
可选的,所述数据存储模型提供的数据操作包括:所述数据变更操作和数据读取操作;其中,所述数据变更操作包括:数据创建操作、数据删除操作和数据修改操作。
可选的,所述日志在加入所述日志队列时按照预设排序顺序依次排序,所述排序顺序包括:加入所述日志队列的时间从先到后的顺序。
可选的,所述利用节点集群中节点从日志队列中读取新提交日志指令执行前,所述处理器502还用于执行下述计算机可执行指令:
通过所述节点集群中节点接收包含数据变更操作的数据请求;
根据所述数据请求中包含的数据变更操作创建日志,并在创建的日志中记录当前数据变更操作后加入所述日志队列。
可选的,所述日志队列中每加入数目为预设日志数目阈值的日志,针对所述节点集群集合当中的至少一个节点集群,执行所述利用节点集群中节点从日志队列中读取新提交日志指令,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中指令。
可选的,每隔一个预设同步周期,针对所述节点集群集合当中的至少一个节点集群,执行所述利用节点集群中节点从日志队列中读取新提交日志指令,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中指令。
可选的,所述处理器502还用于执行下述计算机可执行指令:
通过所述节点集群中节点接收包含数据读取操作的数据请求;
在所述节点集群的数据存储空间中查找并读取所述数据读取操作涉及的数据。
可选的,所述日志队列由日志提交系统提供并进行维护,且所述日志提交系统基于分布式数据一致性协议实现。
可选的,所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中指令执行后,所述处理器502还用于执行下述计算机可执行指令:
通过所述节点集群中节点向所述日志提交系统发送所述新提交日志的确认消息。
可选的,所述日志提交系统提供下述至少一种日志接口:用于根据提交的数据请求中包含的数据变更操作创建日志以及记录当前数据变更操作后加入所述日志队列的日志创建记录接口,用于在所述日志队列中查询日志的日志查询接口,用于向所述日志提交系统发送过期日志信息的过期日志确认接口。
可选的,所述处理器502还用于执行下述计算机可执行指令:
通过调用所述过期日志确认接口向所述日志提交系统发送日志确认消息;
所述日志提交系统根据所述日志确认消息中包含的过期日志信息删除所述日志队列中的过期日志。
可选的,所述日志提交系统采用异地部署方式部署在至少一个地理区域当中。
可选的,所述分布式数据一致性协议包括:Paxos协议、Zookeeper AtomicBroadcast协议、Raft协议和Chain Replication协议。
可选的,所述节点集群中节点的数目大于或者等于1。
可选的,若所述节点集群中节点的数目大于或者等于2,所述节点集群的节点包含一个主节点和至少一个从节点。
可选的,所述主节点通过调用预先提供的分布式锁服务从所述节点集群的节点当中选举获得;或者,所述主节点基于内嵌的选举机制从所述节点集群的节点当中选举获得。
可选的,所述利用节点集群中节点从日志队列中读取新提交日志指令,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中指令,基于所述节点集群中主节点和/或从节点执行。
可选的,所述利用节点集群中节点从日志队列中读取新提交日志指令,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中指令,基于所述集群节点中所述主节点和所述从节点之外的任意一个或者多个节点执行。
可选的,所述数据存储空间采用下述任意一种实现方式提供快照数据文件存储:非关系型数据库和分布式数据库。
可选的,所述节点集群与所述地理区域具有一一对应关系;和/或,所述节点集群与所述数据存储空间具有一一对应关系。
可选的,所述处理器502还用于执行下述计算机可执行指令:
当有新的节点集群加入时,新加入节点集群从邻近节点集群的数据存储空间中拉取快照数据文件到自身数据存储空间中;
从所述日志队列中读取当前拉取快照数据文件执行过程中加入所述日志队列的日志,并将读取的日志所记录数据变更操作涉及的数据变更应用到所述新加入节点集群的数据存储空间中,执行完成后所述新加入节点集群中节点提供数据服务。
可选的,所述新加入节点集群的邻近节点集群包括:与所述新加入节点集群部署的地理区域距离最近的地理区域对应的节点集群。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (28)
1.一种数据同步方法,其特征在于,包括:
利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;
根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
2.根据权利要求1所述的数据同步方法,其特征在于,所述节点集群包括由节点组成的节点集群集合当中的至少一个节点集群,所述节点集群集合当中的节点集群部署在至少一个地理区域中,且所述节点集群在所述地理区域中部署的数目大于或者等于1。
3.根据权利要求2所述的数据同步方法,其特征在于,所述日志队列中日志根据所述节点集群中节点提交的数据变更操作创建,并在创建的日志中记录当前数据变更操作后加入所述日志队列。
4.根据权利要求1所述的数据同步方法,其特征在于,所述节点集群中节点通过提供的数据存储模型向用户提供数据服务;
其中,所述数据存储模型包括:基于Key/Value的数据存储模型。
5.根据权利要求4所述的数据同步方法,其特征在于,所述数据存储模型提供的数据操作包括:所述数据变更操作和数据读取操作;
其中,所述数据变更操作包括:数据创建操作、数据删除操作和数据修改操作。
6.根据权利要求3所述的数据同步方法,其特征在于,所述日志在加入所述日志队列时按照预设排序顺序依次排序,所述排序顺序包括:
加入所述日志队列的时间从先到后的顺序。
7.根据权利要求6所述的数据同步方法,其特征在于,所述利用节点集群中节点从日志队列中读取新提交日志步骤执行前,执行下述步骤:
通过所述节点集群中节点接收包含数据变更操作的数据请求;
根据所述数据请求中包含的数据变更操作创建日志,并在创建的日志中记录当前数据变更操作后加入所述日志队列。
8.根据权利要求2所述的数据同步方法,其特征在于,所述日志队列中每加入数目为预设日志数目阈值的日志,针对所述节点集群集合当中的至少一个节点集群,执行所述利用节点集群中节点从日志队列中读取新提交日志步骤,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤。
9.根据权利要求2所述的数据同步方法,其特征在于,每隔一个预设同步周期,针对所述节点集群集合当中的至少一个节点集群,执行所述利用节点集群中节点从日志队列中读取新提交日志步骤,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤。
10.根据权利要求1所述的数据同步方法,其特征在于,包括:
通过所述节点集群中节点接收包含数据读取操作的数据请求;
在所述节点集群的数据存储空间中查找并读取所述数据读取操作涉及的数据。
11.根据权利要求1所述的数据同步方法,其特征在于,所述日志队列由日志提交系统提供并进行维护,且所述日志提交系统基于分布式数据一致性协议实现。
12.根据权利要求11所述的数据同步方法,其特征在于,所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤执行后,执行下述步骤:
通过所述节点集群中节点向所述日志提交系统发送所述新提交日志的确认消息。
13.根据权利要求11所述的数据同步方法,其特征在于,所述日志提交系统提供下述至少一种日志接口:
用于根据提交的数据请求中包含的数据变更操作创建日志以及记录当前数据变更操作后加入所述日志队列的日志创建记录接口,用于在所述日志队列中查询日志的日志查询接口,用于向所述日志提交系统发送过期日志信息的过期日志确认接口。
14.根据权利要求13所述的数据同步方法,其特征在于,包括:
通过调用所述过期日志确认接口向所述日志提交系统发送日志确认消息;
所述日志提交系统根据所述日志确认消息中包含的过期日志信息删除所述日志队列中的过期日志。
15.根据权利要求11所述的数据同步方法,其特征在于,所述日志提交系统采用异地部署方式部署在至少一个地理区域当中。
16.根据权利要求11所述的数据同步方法,其特征在于,所述分布式数据一致性协议包括:
Paxos协议、Zookeeper Atomic Broadcast协议、Raft协议和Chain Replication协议。
17.根据权利要求1所述的数据同步方法,其特征在于,所述节点集群中节点的数目大于或者等于1。
18.根据权利要求17所述的数据同步方法,其特征在于,若所述节点集群中节点的数目大于或者等于2,所述节点集群的节点包含一个主节点和至少一个从节点。
19.根据权利要求18所述的数据同步方法,其特征在于,所述主节点通过调用预先提供的分布式锁服务从所述节点集群的节点当中选举获得;或者,所述主节点基于内嵌的选举机制从所述节点集群的节点当中选举获得。
20.根据权利要求18所述的数据同步方法,其特征在于,所述利用节点集群中节点从日志队列中读取新提交日志步骤,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤,基于所述节点集群中主节点和/或从节点执行。
21.根据权利要求18所述的数据同步方法,其特征在于,所述利用节点集群中节点从日志队列中读取新提交日志步骤,以及所述根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中步骤,基于所述集群节点中所述主节点和所述从节点之外的任意一个或者多个节点执行。
22.根据权利要求1所述的数据同步方法,其特征在于,所述数据存储空间采用下述任意一种实现方式提供快照数据文件存储:
非关系型数据库和分布式数据库。
23.根据权利要求2所述的数据同步方法,其特征在于,所述节点集群与所述地理区域具有一一对应关系;和/或,所述节点集群与所述数据存储空间具有一一对应关系。
24.根据权利要求23所述的数据同步方法,其特征在于,包括:
当有新的节点集群加入时,新加入节点集群从邻近节点集群的数据存储空间中拉取快照数据文件到自身数据存储空间中;
从所述日志队列中读取当前拉取快照数据文件执行过程中加入所述日志队列的日志,并将读取的日志所记录数据变更操作涉及的数据变更应用到所述新加入节点集群的数据存储空间中,执行完成后所述新加入节点集群中节点提供数据服务。
25.根据权利要求24所述的数据同步方法,其特征在于,所述新加入节点集群的邻近节点集群包括:
与所述新加入节点集群部署的地理区域距离最近的地理区域对应的节点集群。
26.一种数据同步装置,其特征在于,包括:
新提交日志读取单元,用于利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;
数据变更同步单元,用于根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
27.根据权利要求26所述的数据同步装置,其特征在于,所述节点集群包括由节点组成的节点集群集合当中的至少一个节点集群,所述节点集群集合当中的节点集群部署在至少一个地理区域中,且所述节点集群在所述地理区域中部署的数目大于或者等于1。
28.一种电子设备,其特征在于,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
利用节点集群中节点从日志队列中读取新提交日志;所述新提交日志是指所述节点集群前一次从所述日志队列中读取日志后提交的日志;
根据所述新提交日志所记录数据变更操作涉及的数据变更,将所述数据变更应用到所述节点集群存储快照数据文件的数据存储空间中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710009380.9A CN108280080B (zh) | 2017-01-06 | 2017-01-06 | 一种数据同步方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710009380.9A CN108280080B (zh) | 2017-01-06 | 2017-01-06 | 一种数据同步方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108280080A true CN108280080A (zh) | 2018-07-13 |
CN108280080B CN108280080B (zh) | 2022-02-22 |
Family
ID=62800788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710009380.9A Active CN108280080B (zh) | 2017-01-06 | 2017-01-06 | 一种数据同步方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108280080B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120445A (zh) * | 2018-08-22 | 2019-01-01 | 公安部第三研究所 | 一种网络日志数据同步系统及方法 |
CN109828979A (zh) * | 2019-01-31 | 2019-05-31 | 浙江小泰科技有限公司 | 一种数据一致性检测方法及系统 |
CN110196832A (zh) * | 2019-06-04 | 2019-09-03 | 北京百度网讯科技有限公司 | 用于获取快照信息的方法及装置 |
CN110287033A (zh) * | 2019-07-03 | 2019-09-27 | 网易(杭州)网络有限公司 | 批量任务处理方法、装置、系统、设备和可读存储介质 |
CN110502507A (zh) * | 2019-08-29 | 2019-11-26 | 上海达梦数据库有限公司 | 一种分布式数据库的管理系统、方法、设备和存储介质 |
CN111400065A (zh) * | 2020-03-13 | 2020-07-10 | 百融云创科技股份有限公司 | 一种分离全局zookeeper的pulsar消息异地多活方法及系统 |
CN111444207A (zh) * | 2020-03-24 | 2020-07-24 | 广州虎牙科技有限公司 | 节点数据的变更方法、装置、存储介质和服务器 |
CN112190924A (zh) * | 2020-12-04 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置及计算机可读介质 |
CN112417033A (zh) * | 2020-10-19 | 2021-02-26 | 中国科学院计算机网络信息中心 | 一种分布式图数据库多节点数据一致性实现方法和系统 |
CN113656384A (zh) * | 2021-10-18 | 2021-11-16 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
CN114095402A (zh) * | 2021-11-23 | 2022-02-25 | 广州南洋理工职业学院 | 考虑信道质量的raft分布式系统传输时延分析方法 |
CN114567646A (zh) * | 2022-03-08 | 2022-05-31 | 京东科技信息技术有限公司 | 数据处理方法、数据处理系统、电子设备及存储介质 |
CN115599747A (zh) * | 2022-04-22 | 2023-01-13 | 北京志凌海纳科技有限公司(Cn) | 一种分布式存储系统的元数据同步方法、系统及设备 |
CN116633946A (zh) * | 2023-05-29 | 2023-08-22 | 广州经传多赢投资咨询有限公司 | 一种基于分布式协议的集群状态同步处理方法及其系统 |
CN117176743A (zh) * | 2023-11-03 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030220935A1 (en) * | 2002-05-21 | 2003-11-27 | Vivian Stephen J. | Method of logical database snapshot for log-based replication |
CN1605989A (zh) * | 2003-10-09 | 2005-04-13 | 国际商业机器公司 | 备份操作期间确保有效日志文件系统元数据的方法和装置 |
CN102024005A (zh) * | 2009-09-22 | 2011-04-20 | 时文 | 信息项目集合目录的发布系统和方法 |
CN103401704A (zh) * | 2013-07-24 | 2013-11-20 | 佳都新太科技股份有限公司 | 一种分布式日志采集服务器的实现方案 |
CN103885854A (zh) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | 一种数据备份方法、装置及系统 |
CN105187464A (zh) * | 2014-06-19 | 2015-12-23 | 中兴通讯股份有限公司 | 一种分布式存储系统中的数据同步方法、装置及系统 |
-
2017
- 2017-01-06 CN CN201710009380.9A patent/CN108280080B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030220935A1 (en) * | 2002-05-21 | 2003-11-27 | Vivian Stephen J. | Method of logical database snapshot for log-based replication |
CN1605989A (zh) * | 2003-10-09 | 2005-04-13 | 国际商业机器公司 | 备份操作期间确保有效日志文件系统元数据的方法和装置 |
CN102024005A (zh) * | 2009-09-22 | 2011-04-20 | 时文 | 信息项目集合目录的发布系统和方法 |
CN103885854A (zh) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | 一种数据备份方法、装置及系统 |
CN103401704A (zh) * | 2013-07-24 | 2013-11-20 | 佳都新太科技股份有限公司 | 一种分布式日志采集服务器的实现方案 |
CN105187464A (zh) * | 2014-06-19 | 2015-12-23 | 中兴通讯股份有限公司 | 一种分布式存储系统中的数据同步方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
SUN ZHIZHUO 等: "Fine-grained and Multi-level Recovery Scheme for Windows Based on Duplication and Snapshot", 《2010 INTERNATIONAL SYMPOSIUM ON COMPUTER, COMMUNICATION, CONTROL AND AUTOMATION (3CA)》 * |
王东兴: "分布式块级别存储系统的设计与实现", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120445B (zh) * | 2018-08-22 | 2021-11-26 | 公安部第三研究所 | 一种网络日志数据同步系统及方法 |
CN109120445A (zh) * | 2018-08-22 | 2019-01-01 | 公安部第三研究所 | 一种网络日志数据同步系统及方法 |
CN109828979A (zh) * | 2019-01-31 | 2019-05-31 | 浙江小泰科技有限公司 | 一种数据一致性检测方法及系统 |
CN110196832A (zh) * | 2019-06-04 | 2019-09-03 | 北京百度网讯科技有限公司 | 用于获取快照信息的方法及装置 |
CN110287033A (zh) * | 2019-07-03 | 2019-09-27 | 网易(杭州)网络有限公司 | 批量任务处理方法、装置、系统、设备和可读存储介质 |
CN110502507A (zh) * | 2019-08-29 | 2019-11-26 | 上海达梦数据库有限公司 | 一种分布式数据库的管理系统、方法、设备和存储介质 |
CN111400065A (zh) * | 2020-03-13 | 2020-07-10 | 百融云创科技股份有限公司 | 一种分离全局zookeeper的pulsar消息异地多活方法及系统 |
CN111400065B (zh) * | 2020-03-13 | 2023-04-14 | 百融云创科技股份有限公司 | 一种分离全局zookeeper的pulsar消息异地多活方法及系统 |
CN111444207B (zh) * | 2020-03-24 | 2024-03-01 | 广州虎牙科技有限公司 | 节点数据的变更方法、装置、存储介质和服务器 |
CN111444207A (zh) * | 2020-03-24 | 2020-07-24 | 广州虎牙科技有限公司 | 节点数据的变更方法、装置、存储介质和服务器 |
CN112417033A (zh) * | 2020-10-19 | 2021-02-26 | 中国科学院计算机网络信息中心 | 一种分布式图数据库多节点数据一致性实现方法和系统 |
CN112190924A (zh) * | 2020-12-04 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置及计算机可读介质 |
CN113656384A (zh) * | 2021-10-18 | 2021-11-16 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
CN113656384B (zh) * | 2021-10-18 | 2022-04-08 | 阿里云计算有限公司 | 数据处理方法、分布式数据库系统、电子设备及存储介质 |
CN114095402A (zh) * | 2021-11-23 | 2022-02-25 | 广州南洋理工职业学院 | 考虑信道质量的raft分布式系统传输时延分析方法 |
CN114095402B (zh) * | 2021-11-23 | 2024-03-12 | 广州南洋理工职业学院 | 考虑信道质量的raft分布式系统传输时延分析方法 |
CN114567646A (zh) * | 2022-03-08 | 2022-05-31 | 京东科技信息技术有限公司 | 数据处理方法、数据处理系统、电子设备及存储介质 |
CN115599747A (zh) * | 2022-04-22 | 2023-01-13 | 北京志凌海纳科技有限公司(Cn) | 一种分布式存储系统的元数据同步方法、系统及设备 |
CN116633946B (zh) * | 2023-05-29 | 2023-11-21 | 广州经传多赢投资咨询有限公司 | 一种基于分布式协议的集群状态同步处理方法及其系统 |
CN116633946A (zh) * | 2023-05-29 | 2023-08-22 | 广州经传多赢投资咨询有限公司 | 一种基于分布式协议的集群状态同步处理方法及其系统 |
CN117176743A (zh) * | 2023-11-03 | 2023-12-05 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
CN117176743B (zh) * | 2023-11-03 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、可读存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN108280080B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108280080A (zh) | 一种数据同步方法、装置以及电子设备 | |
US10691716B2 (en) | Dynamic partitioning techniques for data streams | |
WO2020001108A1 (zh) | 基于区块链的数据处理方法和装置 | |
US11016944B2 (en) | Transferring objects between different storage devices based on timestamps | |
US10635644B2 (en) | Partition-based data stream processing framework | |
AU2014346369B2 (en) | Managed service for acquisition, storage and consumption of large-scale data streams | |
WO2023016090A1 (zh) | 区块链网络的数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
CN106936899B (zh) | 分布式统计分析系统的配置方法及分布式统计分析系统 | |
Terrace et al. | Object storage on CRAQ: High-throughput chain replication for read-mostly workloads | |
CN104205095B (zh) | 用于连续图更新和计算的平台 | |
US20150134795A1 (en) | Data stream ingestion and persistence techniques | |
US20150135255A1 (en) | Client-configurable security options for data streams | |
CN110888858B (zh) | 数据库的操作方法和装置、存储介质、电子装置 | |
US10715472B2 (en) | System and method for unit-of-order routing | |
WO2017041649A1 (zh) | 一种应用部署方法及设备 | |
US9983823B1 (en) | Pre-forking replicas for efficient scaling of a distribued data storage system | |
CN101631143A (zh) | 负载均衡环境中多服务器系统及其文件传输方法 | |
CN103399894A (zh) | 一种基于共享存储池的分布式事务处理方法 | |
CN107734017A (zh) | 数据服务方法及系统 | |
CN115185705A (zh) | 一种消息通知方法、装置、介质及设备 | |
CN110134503A (zh) | 一种集群环境下的定时任务处理方法、装置及存储介质 | |
Branco et al. | Managing very large distributed data sets on a data grid | |
CN104468722A (zh) | 一种航管训练系统中训练数据分类存储的方法 | |
CN112351106A (zh) | 一种含事件网格的服务网格平台及其通信方法 | |
CN111782618A (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 |