CN113297322A - 数据同步方法、系统以及装置 - Google Patents
数据同步方法、系统以及装置 Download PDFInfo
- Publication number
- CN113297322A CN113297322A CN202011193865.6A CN202011193865A CN113297322A CN 113297322 A CN113297322 A CN 113297322A CN 202011193865 A CN202011193865 A CN 202011193865A CN 113297322 A CN113297322 A CN 113297322A
- Authority
- CN
- China
- Prior art keywords
- log
- data
- target
- service node
- sequence number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/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
-
- 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
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
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)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供数据同步方法、系统以及装置,其中所述数据同步方法包括:向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
Description
技术领域
本说明书实施例涉及数据处理技术领域,特别涉及数据同步方法、系统以及装置。
背景技术
随着互联网的发展,各种项目线上的数据量越来越大。当数据量较大,且存储数据的存储服务节点出现故障需要切换时,需要在存储服务节点之间传输全量数据。
但是,全量数据的传输可能出现网络延时导致服务不可用的情况。因此,需要提供更可靠的方案。
发明内容
有鉴于此,本说明书实施例提供了两种数据同步方法。本说明书一个或者多个实施例同时涉及两种数据同步装置,一种数据同步系统,两种计算设备,以及两种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
本说明书实施例的第一方面,提供了一种数据同步方法,包括:
向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
可选的,在所述目标日志记录为多条的情况下,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,包括:
根据所述日志序号从小到大的顺序,确定所述目标日志记录的执行顺序;
基于所述执行顺序,执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新。
可选的,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,包括:
对于所述目标日志记录中的第一日志记录,执行所述第一日志记录,以更新所述数据存储空间存储的数据并基于所述第一日志记录的日志序号,更新所述数据存储空间的版本序号。
可选的,所述数据同步方法,还包括:
接收用户提交的数据变更请求;
将所述数据变更请求发送至所述日志服务节点,以使所述日志服务节点基于所述数据变更请求,生成对应的第二日志记录。
可选的,所述数据同步方法,还包括:
向日志服务节点发送第一日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的第一版本序号;
接收所述日志服务节点基于所述第一日志拉取请求返回的第一目标日志记录,其中,所述第一目标日志记录的日志序号大于所述第一版本序号对应的日志序号,所述第一目标日志记录包括所述第二日志记录;
通过执行所述第一目标日志记录,对所述数据存储空间存储的数据以及所述第一版本序号进行更新,以使更新后的版本序号与所述第一目标日志记录的最新日志序号对应;
将执行所述第二日志记录获得的更新结果以及所述数据存储空间的目标版本序号作为所述数据变更请求的执行结果返回至所述用户。
可选的,所述数据同步方法,还包括:
接收用户提交的数据查询请求,其中,所述数据查询请求中携带查询条件以及目标版本序号;
判断所述目标版本序号是否大于所述数据存储空间的版本序号对应的日志序号;
若是,执行所述向日志服务节点发送日志拉取请求步骤;
相应的,所述对所述数据存储空间存储的数据以及所述版数据存储空间的本序号进行更新之后,还包括:
在更新后的数据存储空间中查询与所述查询条件对应的第一目标数据;
将所述第一目标数据返回至所述用户。
可选的,所述判断所述目标版本序号是否大于所述数据存储空间的版本序号对应的日志序号的判断结果为否,执行如下操作:
判断是否存在所述目标版本序号对应的数据快照;
若存在,则在所述数据快照中查询与所述查询条件对应的第二目标数据;
将所述第二目标数据返回至所述用户。
可选的,所述向日志服务节点发送日志拉取请求,包括:
在接收到用户提交的数据查询请求的情况下,向日志服务节点发送日志拉取请求;
相应的,所述对所述数据存储空间存储的数据以及所述版本序号进行更新之后,还包括:
根据所述数据查询请求中携带的查询条件,在所述数据存储空间查询所述查询条件对应的第三目标数据;
将所述第三目标数据返回至所述用户。
可选的,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新之前,还包括:
获取所述数据存储空间的当前版本序号;
在所述当前版本序号大于所述版本序号的情况下,在所述目标日志记录中筛选出日志序号大于所述当前版本序号对应的日志序号的第二目标日志记录,将所述第二目标记录作为所述目标日志记录,将所述当前版本序号作为所述版本序号。
可选的,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新之前,还包括:
在所述目标日志记录中,筛选出目标日志记录不为空的日志记录,作为所述目标日志记录。
可选的,所述数据同步方法,还包括:
按照预设的快照生成策略,生成所述数据存储空间的目标数据快照;
向所述日志服务节点发送日志删除指令,所述日志删除指令中携带所述目标数据快照对应的第二版本序号,以使所述日志服务节点基于所述日志删除指令,删除日志序号小于所述第二版本序号对应的日志序号的历史日志记录。
可选的,所述数据同步方法,还包括:
在新增目标存储服务节点的情况下,接收针对所述目标存储服务节点的数据同步请求;
基于所述数据同步请求,向所述目标存储服务节点发送所述目标数据快照,以使所述目标存储服务节点作为所述存储服务节点,所述目标数据快照对应的第二版本序号作为所述版本序号,执行所述向日志服务节点发送日志拉取请求步骤。本说明书实施例的第二方面,提供了另一种数据同步方法,包括:
接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
可选的,所述数据同步方法,还包括:
接收所述存储服务节点提交的数据变更请求,所述数据变更请求中携带数据更新操作信息;
基于所述数据变更操作信息,生成所述数据变更操作信息对应的第一日志记录。
可选的,所述数据同步方法,还包括:
接收所述存储服务节点发送的日志删除指令;
基于所述日志删除指令中携带的目标时间点,删除记录时间小于所述目标时间点的历史日志记录。
本说明书实施例的第三方面,提供了一种数据同步系统,包括:
存储服务节点以及日志服务节点;
其中,所述存储服务节点,被配置为向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
所述日志服务节点,被配置为接收所述日志拉取请求,并基于所述日志拉取请求,拉取日志序号大于所述版本序号对应的日志序号的目标日志记录,并将所述目标日志记录返回至所述存储服务节点;
所述存储服务节点,被配置为接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
本说明书实施例的第四方面,提供了一种数据同步装置,包括:
发送请求模块,被配置为向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收记录模块,被配置为接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
更新模块,被配置为通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
本说明书实施例的第五方面,提供了另一种数据同步装置,包括:
接收请求模块,被配置为接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
获取记录模块,被配置为基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
返回模块,被配置为将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
本说明书实施例的第六方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
本说明书实施例的第七方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
本说明书实施例的第八方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现一种所述数据同步方法的步骤。
本说明书实施例的第九方面,提供了另一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现另一种所述数据同步方法的步骤。
本说明书提供一种数据同步方法,执行主体为存储服务节点,通过与日志服务节点相配合,向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应,实现了在数据存储服务(如由存储服务节点组成的集群提供)与日志服务(如由日志服务节点组成的集群)分离的状态下,通过版本序号与日志序号进行一致性对应控制,拉取增量日志记录,并通过执行增量日志记录对数据存储空间存储的数据以及版本序号进行更新。
附图说明
图1是本说明书一个实施例提供的一种数据同步方法的处理流程图;
图2是本说明书一个实施例提供的一种数据同步方法的架构示意图;
图3是本说明书一个实施例提供的另一种数据同步方法的处理流程图;
图4是本说明书一个实施例提供的一种数据同步方法的交互处理流程图;
图5是本说明书一个实施例提供的一种基于数据变更请求的数据同步方法的交互处理流程图;
图6是本说明书一个实施例提供的一种数据同步系统的结构示意图;
图7是本说明书一个实施例提供的一种数据同步装置的示意图;
图8是本说明书一个实施例提供的另一种数据同步装置的示意图;
图9是本说明书一个实施例提供的一种计算设备的结构框图;
图10是本说明书一个实施例提供的另一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本说明书中,提供了两种数据同步方法,本说明书一个或者多个实施例同时涉及两种数据同步装置,一种数据同步系统,两种计算设备,以及两种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
本说明书提供的一种数据同步方法实施例如下:
图1示出了根据本说明书一个实施例提供的一种数据同步方法的处理流程图,具体包括以下步骤:
步骤102,向日志服务节点发送日志拉取请求。
其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号。
本说明书方法实施例的执行主体是存储服务节点,本说明书另一个方法实施例的执行主体是日志服务节点,本说明书通过存储服务节点和日志服务节点相配合实现在数据存储服务(由存储服务节点提供)与日志服务(由日志服务节点提供)分离的状态下,通过执行新增的日志记录,对数据存储装置中存储的数据进行更新。
其中,所述存储服务节点,是指包含数据存储空间的计算设备,实际应用中,存储服务节点的数量可以是一个或多个,在数据存储量大并且数据更新频率高的情况下,为了保障数据存取效率,可以采用由多个存储服务节点组成的多个存储服务集群存储数据,并将各个存储服务集群部署在至少两个地理区域,而地理区域可以是以城市、省、或国家等为单位的区域,而每个存储服务集群中可以包含一个前端服务节点,和至少一个后端存储服务节点,其中前端服务节点,用于对外交互(例如与用户交互或与日志服务节点交互),而后端存储服务节点,用于对数据进行存储和更新。
而所述数据存储空间可以理解为非关系型数据库,或分布式数据库等数据库,用以提供数据存储,且数据存储空间存在对应的版本序号,版本序号用于标记一个版本的数据存储空间,实际应用中,每一次对数据存储空间存储的数据进行数据变更操作,都会对数据存储空间的版本序号进行更新,具体的,数据变更操作包括但不限于:数据创建操作、数据删除操作和数据修改操作。
所述日志服务节点,是指用于存储日志记录的计算设备,实际应用中,日志服务节点的数量可以是一个或多个,日志服务节点的部署与上述存储服务节点的部署类似,在此不做赘述,在日志服务节点为多个日志服务节点组成的日志服务集群的情况下,该日志服务集群中的日志服务节点包括一个主日志服务节点,和至少一个从日志服务节点,多个日志服务节点之间通过运行分布式一致性协议实现日志一致性,具体的,分布式一致性协议,包括但不限于:Paxos协议、Zookeeper Atomic Broadcast协议、Raft协议和ChainReplication协议。
所述日志拉取请求,是指请求从日志服务节点中拉取新增的日志记录的拉取请求,具体的,所述日志记录,用于记录对数据存储空间存储的数据进行变更的数据变更操作,且每一条日记录都存在对应的日志序号,日志序号用于唯一标记一条日志记录,而日志拉取请求中携带数据存储空间的版本序号,是由于每个版本序号与在日志服务节点中都具有对应的日志序号,而版本序号和日志序号中都包含一串可递增的数值,在基于日志拉取请求拉取日志记录时,需要将版本序号对应的日志序号与日志序号进行比对,拉取新增的日志记录,比如数据存储空间的版本序号为“0023”,该版本序号在日志服务节点对应的日志序号为“0023”,则表明在进行日志拉取时,需要拉取的日志记录为日志序号大于“0023”的日志记录(即新增的目标日志记录)。
需要说明的是,本说明书实施例,由于数据存储服务(由存储服务节点提供)与日志服务(由日志服务节点提供)是分离状态,为了保障数据存储空间中存储的数据与日志服务节点中存储的日志记录之间的一致性,需要不断地从日志服务节点拉取新增的日志记录,并通过执行新增的日志记录,将数据更新操作同步至数据存储空间。
进一步的,可以根据实际场景需要,可以预先设置发送日志拉取请求的触发条件,在满足预设触发条件的情况下,则触发向日志服务节点发送日志拉取请求,实际应用中,预设的触发条件可以是多种多样的,比如,将接收针对数据存储空间中数据的数据变更请求作为触发条件,和/或将预设时间周期(每分钟、每小时、每天等)作为触发条件等,在此不做限制。
具体实施时,为了保障用户所查询的数据并非是过期的数据,本说明书实施例提供的一种可选实施方式中,所述向日志服务节点发送日志拉取请求,具体采用如下方式实现:
在接收到用户提交的数据查询请求的情况下,向日志服务节点发送日志拉取请求。
本说明书实施例将数据查询请求作为触发向日志服务节点发送日志拉取请求的触发条件,在接收到用户提交的数据查询请求的情况下,向日志服务节点发送日志拉取请求。
具体的,所述数据查询请求,是指针对数据存储空间所存储的数据的查询请求,而每次接收到用户的数据查询请求的情况下,向日志服务节点发送日志拉取请求,以便后续根据拉取的日志记录,更新数据存储空间存储的数据,再对更新后的数据进行数据查询,保障了用户所查询的数据是更新后的数据。
以存储服务节点以及日志服务节点的数量皆为多个,且节点部署在不同城市的情况下,具体如图2所示,存储服务节点中包含3个后端存储服务节点,每个分别部署在北京、上海、杭州,且每个地区部署一个前端服务节点,而日志服务节点的数量为3,分别部署在北京、上海、深圳,其中,部署在上海的日志服务节点为主日志服务节点,部署在北京和深圳的日志服务节点为从日志服务节点,这些日志服务节点之间的同步采用分布式一致性协议实现日志一致性,存储服务节点中部署在各个地区的前端服务节点皆可接收用户请求,并在接收到用户请求的情况下,向部署在上海的主日志服务节点发送日志拉取请求,主日志服务节点基于日志拉取请求,拉取目标日志记录,并将拉取的目标日志记录返回至前端服务节点,前端服务节点将接收的目标日志记录发送至后端存储服务节点,后端存储服务节点通过执行目标日志记录,对数据存储空间存储的数据进行更新。
步骤104,接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录。
其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号。
具体的,在向日志服务节点发送日志拉取请求之后,日志服务节点基于日志拉取请求,拉取目标日志记录,实际应用中,有可能在两次日志拉取之间,已经新增了多条目标日志记录,因此可以基于日志拉取请求进行对日志记录进行批量拉取,所拉取的目标日志记录的日志序号需大于日志拉取请求中的版本序号对应的日志序号,这是由于数据存储空间的版本序号对应的日志序号,表明已经针对数据存储空间执行完哪一条日志记录,则拉取上一次执行完成之后新增的日志记录(目标日志记录)即可,并将拉取的目标日志记录返回至存储服务节点,存储服务节点接收日志服务节点返回的目标日志记录。
沿用上例,假设日志拉取请求中携带的数据存储空间的版本序号为“0023”,该版本序号对应的日志序号为“0023”,日志服务节点基于此日志拉取请求拉取日志序号大于“0023”的目标日志记录,并将目标日志记录返回至存储服务节点,存储服务节点接收返回的目标日志记录,其中,目标日志记录中包含2条日志记录,这2条日志记录对应的日志序号分别为:“0024”,“0025”。
实际应用中,考虑到可能存在由于网络延时等原因,导致日志拉取请求所拉取的日志中包含已执行的日志记录(即已经通过执行其他日志拉取请求拉取的日志记录,对应数据存储空间中的数据进行了更新),则为了避免重复执行旧的日志记录,需要过滤掉所拉取日志记录中的已执行的日志记录,筛选出未执行的日志记录,对数据存储空间中的数据进行更新,本说明书实施例提供的一种可选实施方式中,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新之前,还包括:
获取所述数据存储空间的当前版本序号;
在所述当前版本序号大于所述版本序号的情况下,在所述目标日志记录中筛选出日志序号大于所述当前版本序号对应的日志序号的第二目标日志记录,将所述第二目标记录作为所述目标日志记录,将所述当前版本序号作为所述版本序号。
具体实施时,在所述当前版本序号大于所述版本序号的情况下,表明数据存储空间在上述数据拉取请求拉取日志记录的过程中进行了更新,因此,为了避免对数据存储空间存储的数据进行重复更新,需要对拉取的目标日志记录进行筛选,筛选出日志序号大于所述当前版本序号对应的日志序号的第二目标日志记录(即相较于数据存储空间当前存储的数据,新增的日志记录),并将第二目标日志记录作为所述目标日志记录,并将当前版本序号作为所述版本序号,以便执行下述步骤106。
沿用上例,在上述版本序号为“0023”,且接收到的目标日志记录中包含2条日志记录,这2条日志记录对应的日志序号分别为:“0024”,“0025”的基础上,获取数据存储空间的当前版本序号为“0024”,当前版本序号大于上述版本序号,且当前版本序号对应的日志序号为“0024”,则在目标日志记录中筛选出日志序号大于“0024”的日志记录为日志序号为“0025”的日志记录,将日志序号为“0025”的日志记录作为目标日志记录,并将当前版本序号“0024”作为版本序号。
此外,还有可能由于日志服务节点宕机,生成无效的日志记录的情况,在这种情况下,需要将拉取的目标日志记录中包含的无效的日志记录过滤掉,筛选出有效的日志记录,以提高执行日志记录的效率,本说明书实施例提供的一种可选实施方式中,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新之前,还包括:
在所述目标日志记录中,筛选出目标日志记录不为空的日志记录,作为所述目标日志记录。
实际应用中,目标日志记录为空的日志记录,即为无效的日志记录,通过筛选出目标日志记录中不为空的日志记录,即有效的日志记录,作为目标日志记录,以便执行下述步骤106。
步骤106,通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
具体的,所述最新日志序号,是指目标日志记录中日志序号最大的日志记录。
实际应用中,执行目标日志记录,是指执行目标日志记录中记录的数据更新操作,通过执行数据更新操作,对数据存储空间存储的数据以及版本序号进行更新,在全部目标日志记录执行完成的情况下,更新后的版本序号与所述目标日志记录的最新日志序号对应。
具体实施时,在日志序号为递增序列的情况下,日志序号的大小表明日志记录生成的顺序,即日志序号越小的日志记录,是越早记录的数据更新操作,因而需要被先执行,以保障更新数据存款空间存储的数据的正确性,本说明书实施例提供的一种可选实施方式中,在所述目标日志记录为多条的情况下,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,具体采用如下方式实现:
根据所述日志序号从小到大的顺序,确定所述目标日志记录的执行顺序;
基于所述执行顺序,执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新。
本说明书实施例,根据日志序号从小到大的顺序,确定目标日志记录的执行顺序,是指将日志序号越小目标日志记录,越先执行,即从版本序号对应的日志序号的下一条日志记录开始依次执行目标日志记录,以更新数据存储空间存储的数据以及版本序号,保障了数据变更操作按照提交时间的先后顺序被有序执行。
沿用上例,在目标日志记录中包含2条日志记录,且这2条日志记录对应的日志序号分别为:“0024”,“0025”的情况下,根据日志序号从小到大的顺序,确定这2条日志记录的执行顺序先执行日志序号为“0024”的日志记录,再执行日志序号为“0025”的日志记录,并按照确定的执行顺序,对数据存储空间存储的数据以及版本序号进行更新。
在上述步骤102中接收用户的数据查询请求的情况下,向日志服务节点发送日志拉取请求的基础上,通过执行拉取的日志记录更新数据存储空间的数据之后,基于用户的查询请求,查询更新后的数据,并返回查询结果至用户,以使用户查询到的数据为最新数据,增加了查询的有效性,并增加了用户的查询体验,本说明书实施例提供的一种可选实施方式中,所述对所述数据存储空间存储的数据以及所述版本序号进行更新之后,还包括:
根据所述数据查询请求中携带的查询条件,在所述数据存储空间查询所述查询条件对应的第三目标数据;
将所述第三目标数据返回至所述用户。
具体的,所述查询条件,是指查询所述数据存储空间存储的数据的查询条件,比如,查询条件为查询手机型号为t1的销售量,或查询用户U1的用户信息等,在此不做限制。
本说明书实施例,在接收数据查询请求之后,先拉取最新的日志记录,通过执行日志记录对应数据存储空间存储的数据进行更新,并将基于查询条件查询更新后的数据,获得查询结果并返回查询结果,即第三目标数据返回至用户,以避免用户查询到的是过期的数据。
进一步的,本说明书实施例提供的一种可选实施方式中,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,具体采用如下方式实现:
对于所述目标日志记录中的第一日志记录,执行所述第一日志记录,以更新所述数据存储空间存储的数据并基于所述第一日志记录的日志序号,更新所述数据存储空间的版本序号。
所述第一日志记录,是指目标日志记录中任意一条日志记录,具体实施时,只有对数据的更新以及版本序号的更新,都被执行成功,才可以表明成功执行了日志记录,因此,对数据的更新以及版本序号的更新,可以通过事务实现或通过批量写操作实现,即若只有数据更新成功或只有版本更新成功的情况下,需要对更新操作进行回退,并表明该日志记录未被成功执行,则需要重新执行该日志记录。
实际应用中,由于存储服务与日志服务相分离,是通过执行日志记录的方式,对数据存储空间存储的数据进行更新,因此,在接收到用户提交的数据变更请求的情况下,需要先跟根据日志变更请求,生成新增的日志记录,再执行新增的日志记录,对数据存储空间存储的数据进行更新,以实现在接收数据变更请求的情况下,日志和数据之间的同步,本说明书实施例提供的一种可选实施方式中,所述数据同步方法,还包括:
接收用户提交的数据变更请求;
将所述数据变更请求发送至所述日志服务节点,以使所述日志服务节点基于所述数据变更请求,生成对应的第二日志记录。
具体的,所述数据变更请求,是指携带数据更新操作的变更请求,实际应用中,将在存储服务节点接收数据变更请求之后,将数据变更请求发送至日志服务节点,以使日志服务节点通过记录数据变更请求中携带的数据变更操作信息,生成第二日志记录,即该数据变更操作对应的日志记录。
进一步的,在上述生成第二日志记录的基础上,本说明书实施例提供的一种可选实施方式中,所述数据同步方法,还包括:
向日志服务节点发送第一日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的第一版本序号;
接收所述日志服务节点基于所述第一日志拉取请求返回的第一目标日志记录,其中,所述第一目标日志记录的日志序号大于所述第一版本序号对应的日志序号,所述第一目标日志记录包括所述第二日志记录;
通过执行所述第一目标日志记录,对所述数据存储空间存储的数据以及所述第一版本序号进行更新,以使更新后的版本序号与所述第一目标日志记录的最新日志序号对应;
将执行所述第二日志记录获得的更新结果以及所述数据存储空间的目标版本序号作为所述数据变更请求的执行结果返回至所述用户。
具体的,所述第一日志拉起请求,与日志拉起请求类似,用以获取日志服务节点中新增的日志记录;所述第一目标日志记录是包含上述第二日志记录的日志记录,实际应用中,在接收数据变更请求之后,再拉取新增的日志记录,则新增的日志记录中包含第二日志记录;所述第一版本序号与上述版本序号类似,参考上述版本序号即可,在此不再赘述。
此外,上述向日志服务节点发送第一日志拉取请求步骤,至执行通过执行所述第一目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新步骤的具体实现,与上述步骤102-步骤106类似,参考上述步骤102-步骤106的具体实现即可,在此不做赘述。
在对所述数据存储空间存储的数据以及所述第一版本序号进行更新之后,需要将数据变更请求的执行结果返回至用户,而由于第一目标日志记录中包含数据变更请求中携带的数据变更操作信息对应的第二日志记录,因此在执行第一目标日志记录的过程中,会执行第二日志记录,即会执行数据变更请求中携带的数据变更操作信息,对数据存储空间存储的数据进行变更,获得对应的更新结果,并将数据存储空间的版本序号(即第一版本序号)进行更新,获得目标版本序号(此目标版本序号与第二日志记录的日志序号对应),并将更新结果以及目标版本序号,作为数据变更请求的执行结果返回至用户。
需要说明的是,将目标版本序号返回至用户,是以便用户根据目标版本序号,查看该目标版本序号对应的数据,或者避免用户查看到相对目标版本序号对应的数据过期的数据。
在用户获得目标版本序号的情况下,使用户可以携带目标版本序号进行查询,以避免用户查询到过期的数据,提高了查询的准确性,本说明书实施例提供的一种可选实施方式中,所述数据同步方法,还包括:
接收用户提交的数据查询请求,其中,所述数据查询请求中携带查询条件以及目标版本序号;
判断所述目标版本序号是否大于所述数据存储空间的版本序号对应的日志序号;
若是,表明数据存储空间当前存储的数据是过期的数据,执行所述向日志服务节点发送日志拉取请求步骤;
相应的,所述对所述数据存储空间存储的数据以及所述版数据存储空间的本序号进行更新之后,还包括:
在更新后的数据存储空间中查询与所述查询条件对应的第一目标数据;
将所述第一目标数据返回至所述用户。
具体实施时,判断目标版本序号是否大于所述数据存储空间的版本序号,是为了判断数据存储空间当前存储的数据是否为过期的数据,若是,表明数据存储空间当前存储的数据是过期的数据,则执行上述步骤102-步骤106,从日志服务节点中拉取最新的日志记录,以更新数据存储空间存储的数据,并在更新之后,查询更新后的数据存储空间,将与查询条件对应的第一目标数据,即查询结果返回至用户。
进一步的,在用户获得目标版本序号,且存在目标版本序号对应的数据快照的情况下,使用户可以针对目标版本序号对应的数据快照进行查询,提高了查询的准确性,本说明书实施例提供的一种可选实施方式中,所述判断所述目标版本序号是否大于所述数据存储空间的版本序号对应的日志序号的判断结果为否,执行如下操作:
判断是否存在所述目标版本序号对应的数据快照;
若存在,表明针对目标版本序号对应的数据生成了数据快照,则在所述数据快照中查询与所述查询条件对应的第二目标数据;
将所述第二目标数据返回至所述用户;
若不存在,表明并未针对目标版本序号生成数据快照,则直接在所述数据存储空间中查询与所述查询条件对应的第四目标数据,将所述第四目标数据返回至所述用户。
具体的,所述数据快照,是指针对目标版本序号的数据存储空间存储的数据所生成的快照,在存在目标版本序号对应的数据快照的情况下,则查询数据快照,并将查询结果即第二目标数据返回至用户,在不存在目标版本序号对应的数据快照的情况下,则查询数据存储空间中存储的数据,并将查询结果即第四目标数据返回至所述用户。
实际应用中,生成数据快照的生成策略是多种多样的,本说明书实施例提供的一种可选实施方式中,所述数据同步方法,还包括:
按照预设的快照生成策略,生成所述数据存储空间的目标数据快照;
向所述日志服务节点发送日志删除指令,所述日志删除指令中携带所述目标数据快照对应的第二版本序号,以使所述日志服务节点基于所述日志删除指令,删除日志序号小于所述第二版本序号对应的日志序号的历史日志记录。
具体的,所述快照生成策略,可以按照实际场景需要进行设置,比如周期性地生成数据快照(每月1号生成数据快照,或每周三生成数据快照等),基于用户提交的触发指令生成数据快照,还可以是数据存储空间的版本序号递增至预设版本序号的情况下,生成数据快照等,在此不做限制;所述记录时间,是指日志记录的生成时间。
具体实施时,生成所述数据存储空间的目标数据快照,是指将数据存储空间在某一时间点所存储的数据进行备份,以便通过目标数据快照进行数据恢复,或对目标数据快照进行查询等。
本说明书实施例,为了避免日志服务节点存储太多过期的日志记录,从而占用太多的设备资源,在生成目标数据快照之后,向日志服务节点发送日志删除指令,以使日志服务节点基于所述日志删除指令,删除日志序号小于所述第二版本序号对应的日志序号的历史日志记录,是由于在存储服务节点中已经备份了第二版本序号对应的数据(即目标数据快照),而日志序号小于所述第二版本序号对应的日志序号的历史日志记录,是用于更新第二版本序号之前的版本序号对应的数据,因此在已经备份了第二版本序号对应的数据的情况下,无需保留上述历史日志记录。
此外,还可以在日志删除指令中携带目标数据快照对应的目标时间点,以使日志服务节点基于日志删除指令,删除记录时间小于所述目标时间点的历史日志记录。
进一步的,在生成目标数据快照之后,且需要在存储服务节点中新增至少一个目标存储服务节点的情况下,由于目标存储服务节点的数据存储空间并无数据,因此需要从存储服务节点向目标存储服务节点进行数据同步,本说明书实施例提供的一种可选实施方式中,所述数据同步方法,还包括:
在新增目标存储服务节点的情况下,接收针对所述目标存储服务节点的数据同步请求;
基于所述数据同步请求,向所述目标存储服务节点发送所述目标数据快照,以使所述目标存储服务节点作为所述存储服务节点,所述目标数据快照对应的第二版本序号作为所述版本序号,执行所述向日志服务节点发送日志拉取请求步骤。
实际应用中,在新增目标存储服务节点,且存储服务节点中存在目标数据快照的情况下,先将存储服务节点中的目标数据快照同步至新增的目标存储服务节点,再使目标存储服务节点向日志服务节点拉取在目标数据快照后新增的日志记录,以便目标存储服务节点通过目标数据快照以及新增的日志记录,在数据存储空间生成全量数据,以完成数据同步,即无需在节点之间传输全量数据,也无需传输在线上提供存储服务的数据,增加了节点之间的同步效率,也降低了同步过程中对存储服务节点提供存储服务的不利影响。
具体实施时,在存储服务节点中存在多个数据快照的情况下,若没有在数据同步请求中指定同步某一特定的数据快照,通常将最近一次生成的数据快照(即版本序号最大的数据快照)作为目标数据快照,同步至目标存储服务节点。
综上所述,本说明书提供一种数据同步方法,执行主体为存储服务节点,通过与日志服务节点相配合,向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应,实现了在数据存储服务(如由存储服务节点组成的集群提供)与日志服务(如由日志服务节点组成的集群)分离的状态下,通过版本序号与日志序号进行一致性对应控制,拉取增量日志记录,并通过执行增量日志记录对数据存储空间存储的数据以及版本序号进行更新。
本说明书提供的另一种数据同步方法实施例如下:
本说明书提供的另一种方法实施例与上述方法实施例相对应,本实施例的执行主体为日志服务节点,而上述方法实施例的执行主体是存储服务节点,两个实施例相互配合实现在数据存储服务(由存储服务节点提供)与日志服务(由日志服务节点提供)分离的状态下,通过执行新增的日志记录,对数据存储装置中存储的数据进行更新,阅读本实施例时,可与上述方法实施例相对应。图3示出了根据本说明书一个实施例提供的另一种数据同步方法的处理流程图,具体包括以下步骤:
步骤302,接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号。
步骤304,基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录。
步骤306,将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
本说明书实施例提供的一种可选实施方式中,所述数据同步方法,还包括:
接收所述存储服务节点提交的数据变更请求,所述数据变更请求中携带数据变更操作信息;
基于所述数据变更操作信息,生成所述数据变更操作信息对应的第一日志记录。
具体的,所述数据变更操作信息,是指针对数据进行变更操作的数据变更操作信息,本说明书实施例,日志服务节点通过接收用户提交的数据变更请求,生成数据变更请求对应的第一日志记录,对数据变更请求中携带的数据变更操作信息进行记录,以便通过执行第一日志记录,更新存储服务节点中数据存储空间存储的数据。
实际应用中,为了避免日志服务节点存储太多过期的日志记录,从而占用太多的设备资源,需要对日志服务节点中的历史日志记录进行清理,本说明书实施例提供的一种可选实施方式中,所述数据同步方法,还包括:
接收所述存储服务节点发送的日志删除指令;
基于所述日志删除指令中携带的第二版本序号,删除日志序号小于所述第二版本序号对应的日志序号的历史日志记录。
具体的,在存储服务节点生成第二版本序号对应的目标数据快照(即在存储服务节点备份了第二版本序号对应的数据)之后,由于存在备份数据,则无需通过执行日志序号小于第二版本序号对应的日志序号的日志记录对数据进行更新,因此,将日志序号小于第二版本序号对应的日志序号的日志记录作为历史日志记录进行删除。
此外,还可以按照预设时间间隔,删除记录时间小于预设时间的历史日志记录,而预设时间间隔,可以按照实际场景需要,设置为每隔一个月,或每隔一个周等间隔,在此不做限制;所述记录时间,是指日志记录的生成时间;所述预设时间,可以以系统时间(当前时间)为参照,比如系统时间向前三个月,或系统时间向前一个月等,在此不做限制。
例如,在预设时间间隔为一个月,预设时间为系统时间向前三个月,系统时间为2020/6/1日的情况下,每隔一个月,删除生成时间小于2020/3/1日的历史日志记录。
综上所述,本说明书提供另一种数据同步方法,执行主体为日志服务节点,通过与存储服务节点相配合,接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;将所述目标日志记录返回至所述存储服务节点,以使存储服务节点执行目标日志记录,对数据存储空间存储的数据以及版本序号进行更新,实现了在数据存储服务(如由存储服务节点组成的集群提供)与日志服务(如由日志服务节点组成的集群)分离的状态下,通过版本序号与日志序号进行一致性对应控制,拉取增量日志记录,并通过执行增量日志记录对数据存储空间存储的数据以及版本序号进行更新。
下述结合附图4,以本说明书提供的数据同步方法在交互场景中的应用为例,对所述数据同步方法进行进一步说明。其中,图4示出了本说明书一个实施例提供的一种数据同步方法的交互处理流程图,具体包括以下步骤:
步骤402,在满足预设触发条件的情况下,存储服务节点中的前端服务节点向后端存储服务节点发送针对数据存储空间的版本序号的获取请求。
具体的,所述存储服务节点为多个的情况下,所述存储服务节点中包括一个前端服务节点和至少一个后端存储服务节点,所述后端存储服务节点接收所述前端服务节点发送的获取请求。
步骤404,所述后端存储服务节点基于所述获取请求,获取所述数据存储空间的版本序号。
步骤406,所述后端存储服务节点将获取的版本序号返回至所述前端服务节点。
具体的,所述前端服务节点接收所述后端存储服务节点发送的所述版本序号,所述版本序号在日志服务节点中具有对应的日志序号。
步骤408,所述前端服务节点向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号。
具体的,所述日志服务节点接收所述前端服务节点提交的日志拉取请求。
步骤410,所述日志服务节点基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录。
步骤412,所述日志服务节点将所述目标日志记录返回至所述前端服务节点。
具体的,所述前端服务节点接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号。
步骤414,所述前端服务节点将所述目标日志记录发送至所述后端存储服务节点。
具体的,所述后端存储服务节点接收所述目标日志记录。
步骤416,所述后端存储服务节点通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,获得更新结果。
具体的,更新后的版本序号与所述目标日志记录的最新日志序号对应。
步骤418,所述后端存储服务节点将所述更新结果返回至所述前端服务节点。
具体的,所述前端服务节点接收所述更新结果。
综上所述,本说明书提供一种数据同步方法,在存储服务节点为多个的情况下,将存储服务节点分为前端服务节点以及后端存储服务节点,通过前端服务节点、后端存储服务节点与日志服务节点相配合,向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应,实现了在数据存储服务(如由存储服务节点组成的集群提供)与日志服务(如由日志服务节点组成的集群)分离的状态下,通过版本序号与日志序号进行一致性对应控制,拉取增量日志记录,并通过执行增量日志记录对数据存储空间存储的数据以及版本序号进行更新。
下述结合附图5,以本说明书提供的数据同步方法在交互场景中的应用为例,对所述数据同步方法进行进一步说明。其中,图5示出了本说明书一个实施例提供的一种基于数据变更请求的数据同步方法的交互处理流程图,具体包括以下步骤:
步骤502,存储服务节点中的前端服务节点接收用户提交的数据变更请求。
步骤504,所述前端服务节点将所述数据变更请求进行封装,生成一致性提议,将所述一致性提议发送至日志服务节点。
具体的,所述日志服务节点接收所述前端服务节点提交的一致性提议。
步骤506,所述日志服务节点向所述前端服务节点返回接受所述一致性提议。
具体的,所述日志服务节点接受所述一致性提议,是指所述日志服务节点中包含的大多数日志服务节点接受所述一致性提议。
所述日志服务节点接受所述一致性协议,则基于所述一致性提议中携带的数据变更操作信息,生成所述数据变更操作信息对应的第一日志记录。
步骤508,所述前端服务节点向日志服务节点发送第一日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的第一版本序号;
具体的,所述日志服务节点接收所述前端服务节点发送的所述第一日志拉取请求。
步骤510,所述日志服务节点基于所述第一日志拉取请求,获取日志序号大于所述版本序号的第一目标日志记录。
步骤512,所述日志服务节点将所述第一目标日志记录返回至所述前端服务节点。
具体的,所述前端服务节点接收所述日志服务节点发送的所述第一目标日志记录。
步骤514,所述前端服务节点将所述第一目标日志记录发送至存储服务节点中的后端存储服务节点。
具体的,所述后端存储服务节点接收所述前端服务节点发送的所述第一目标日志记录。
步骤516,所述后端存储服务节点通过执行所述第一目标日志记录,对数据存储空间存储的数据以及所述数据存储空间存储的第一版本序号进行更新,获得更新结果。
具体的,更新后的版本序号与所述第一目标日志记录的最新日志序号对应。
步骤518,所述后端存储服务节点将所述更新结果返回至所述前端服务节点。
具体的,所述前端服务节点接收所述后端存储服务节点发送的所述更新结果。
步骤520,所述前端服务节点将所述更新结果返回至所述用户。
综上所述,本说明书提供一种数据同步方法,在存储服务节点为多个的情况下,将存储服务节点分为前端服务节点以及后端存储服务节点,通过前端服务节点、后端存储服务节点与日志服务节点相配合,向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应,实现了在数据存储服务(如由存储服务节点组成的集群提供)与日志服务(如由日志服务节点组成的集群)分离的状态下,通过版本序号与日志序号进行一致性对应控制,拉取增量日志记录,并通过执行增量日志记录对数据存储空间存储的数据以及版本序号进行更新。
本说明书提供的一种数据同步系统实施例如下:
本说明书提供的一种系统实施例与上述方法实施例相对应,阅读本实施例时,可与上述方法实施例相对应。图6示出了根据本说明书一个实施例提供的一种数据同步系统的结构示意图。
所述数据同步系统,包括:
存储服务节点602以及日志服务节点604;
其中,所述存储服务节点602,被配置为向日志服务节点604发送日志拉取请求,所述日志拉取请求中携带数据存储空间的版本序号;
所述日志服务节点604,被配置为接收所述日志拉取请求,基于所述日志拉取请求,拉取日志序号大于所述版本序号的目标日志记录,并将所述目标日志记录返回至所述存储服务节点602;
所述存储服务节点602,被配置为接收所述日志服务节点604基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号;通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
可选的,在所述存储服务节点602为多个的情况下,所述存储服务节点602,包括前端服务节点以及至少一个后端存储服务节点。
相应的,所述前端服务节点,被配置为接收用户提交的数据变更请求;将所述数据变更请求进行封装,生成一致性提议,并将所述一致性提议发送至所述日志服务节点604;
所述日志服务节点604,还被配置为接收所述一致性提议,在所述日志服务节点604中大于节点数量阈值的节点接受所述一致性提议的情况下,向所述前端服务节点发送接受所述一致性提议。
具体的,日志服务节点604包括至少一个日志服务节点,在所述日志服务节点604包含多个日志服务节点的情况下,所述日志服务节点为分布式日志服务节点,相应的,所述一致性提议为分布式一致性协议的提议,在分布式日志服务节点中大多数节点同意此提议的情况下,表明接受该提议。
可选的,所述前端服务节点,还被配置为向所述后端存储服务节点发送针对数据存储空间的版本序号的获取请求;
所述后端存储服务节点,被配置为接收所述获取请求;并基于所述获取请求,获取所述数据存储空间的版本序号,将所述版本序号返回至所述前端服务节点;
所述前端服务节点,还被配置为接受所述版本序号,向所述日志服务节点604发送所述日志拉取请求。
可选的,所述前端服务节点,还被配置接收所述日志服务节点604基于所述日志拉取请求返回的目标日志记录;将所述目标日志记录发送至所述后端存储服务节点;
所述后端存储服务节点,还被配置为接受所述目标日志记录,通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
可选的,所述日志服务节点604,还被配置为基于分布式一致性协议实现所述日志服务节点的节点之间的日志一致性,其中,所述分布式一致性协议,包括:Paxos协议、Zookeeper Atomic Broadcast协议、Raft协议和Chain Replication协议。
实际应用中,日志服务节点604包含多个日志服务节点的情况下,一般包括奇数个日志服务节点,此外,日志服务节点604中包括:一个主日志服务节点和至少一个从日志服务节点,所述日志服务节点604,部署在至少一个地理区域。
综上所述,本说明书提供一种数据同步系统,通过存储服务节点与日志服务节点相配合,向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应,实现了在数据存储服务(如由存储服务节点组成的集群提供)与日志服务(如由日志服务节点组成的集群)分离的状态下,通过版本序号与日志序号进行一致性对应控制,拉取增量日志记录,并通过执行增量日志记录对数据存储空间存储的数据以及版本序号进行更新。
上述为本实施例的一种数据同步系统的示意性方案。需要说明的是,该数据同步系统的技术方案与上述的数据同步方法的技术方案属于同一构思,数据同步装置的技术方案未详细描述的细节内容,均可以参见上述数据同步方法的技术方案的描述。
说明书提供的一种数据同步装置实施例如下:
与上述方法实施例相对应,本说明书还提供了数据同步装置实施例,图7示出了本说明书一个实施例提供的一种数据同步装置的示意图。如图7所示,该装置包括:
发送请求模块702,被配置为向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收记录模块704,被配置为接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
更新模块706,被配置为通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
可选的,在所述目标日志记录为多条的情况下,所述更新模块706,包括:
确定顺序子模块,被配置为根据所述日志序号从小到大的顺序,确定所述目标日志记录的执行顺序;
更新数据子模块,被配置为基于所述执行顺序,执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新。
可选的,所述更新模块706,还被配置为:
对于所述目标日志记录中的第一日志记录,执行所述第一日志记录,以更新所述数据存储空间存储的数据并基于所述第一日志记录的日志序号,更新所述数据存储空间的版本序号。
可选的,所述数据同步装置,还包括:
第一接收请求模块,被配置为接收用户提交的数据变更请求;
第二发送请求模块,被配置为将所述数据变更请求发送至所述日志服务节点,以使所述日志服务节点基于所述数据变更请求,生成对应的第二日志记录。
可选的,所述数据同步装置,还包括:
第三发送请求模块,被配置为向日志服务节点发送第一日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的第一版本序号;
第二接收记录模块,被配置为接收所述日志服务节点基于所述第一日志拉取请求返回的第一目标日志记录,其中,所述第一目标日志记录的日志序号大于所述第一版本序号对应的日志序号,所述第一目标日志记录包括所述第二日志记录;
第二更新模块,被配置为通过执行所述第一目标日志记录,对所述数据存储空间存储的数据以及所述第一版本序号进行更新,以使更新后的版本序号与所述第一目标日志记录的最新日志序号对应;
第一返回模块,被配置为将执行所述第二日志记录获得的更新结果以及所述数据存储空间的目标版本序号作为所述数据变更请求的执行结果返回至所述用户。
可选的,所述数据同步装置,还包括:
第二接收请求模块,被配置为接收用户提交的数据查询请求,其中,所述数据查询请求中携带查询条件以及目标版本序号;
第一判断模块,被配置为判断所述目标版本序号是否大于所述数据存储空间的版本序号对应的日志序号;
若是,运行所述发送请求模块702;
所述数据同步装置,还包括:
第一查询模块,被配置为在更新后的数据存储空间中查询与所述查询条件对应的第一目标数据;
第二返回模块,被配置为将所述第一目标数据返回至所述用户。
可选的,所述第一判断模块的判断结果为否,执行如下模块:
第二判断模块,被配置为判断是否存在所述目标版本序号对应的数据快照;
若存在,运行第二查询模块,所述第二查询模块,被配置为则在所述数据快照中查询与所述查询条件对应的第二目标数据;
第三返回模块,被配置为将所述第二目标数据返回至所述用户。
可选的,所述发送请求模块702,还被配置为:
在接收到用户提交的数据查询请求的情况下,向日志服务节点发送日志拉取请求;
相应的,所述数据同步装置,还包括:
第三查询模块,被配置为根据所述数据查询请求中携带的查询条件,在所述数据存储空间查询所述查询条件对应的第三目标数据;
第四返回模块,被配置为将所述第三目标数据返回至所述用户。
可选的,所述数据同步装置,还包括:
获取序号模块,被配置为获取所述数据存储空间的当前版本序号;
第一筛选模块,被配置为在所述当前版本序号大于所述版本序号的情况下,在所述目标日志记录中筛选出日志序号大于所述当前版本序号对应的日志序号的第二目标日志记录,将所述第二目标记录作为所述目标日志记录,将所述当前版本序号作为所述版本序号。
可选的,所述数据同步装置,还包括:
第二筛选模块,被配置为在所述目标日志记录中,筛选出目标日志记录不为空的日志记录,作为所述目标日志记录。
可选的,所述数据同步装置,还包括:
生成快照模块,被配置为按照预设的快照生成策略,生成所述数据存储空间的目标数据快照;
发送指令模块,被配置为向所述日志服务节点发送日志删除指令,所述日志删除指令中携带所述目标数据快照对应的第二版本序号,以使所述日志服务节点基于所述日志删除指令,删除日志序号小于所述第二版本序号对应的日志序号的历史日志记录。
可选的,所述数据同步装置,还包括:
第三接收请求模块,被配置为在新增目标存储服务节点的情况下,接收针对所述目标存储服务节点的数据同步请求;
发送快照模块,被配置为基于所述数据同步请求,向所述目标存储服务节点发送所述目标数据快照,以使所述目标存储服务节点作为所述存储服务节点,所述目标数据快照对应的第二版本序号作为所述版本序号,执行所述向日志服务节点发送日志拉取请求步骤。
综上所述,本说明书提供一种数据同步装置,通过与日志服务节点相配合,向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应,实现了在数据存储服务(如由存储服务节点组成的集群提供)与日志服务(如由日志服务节点组成的集群)分离的状态下,通过版本序号与日志序号进行一致性对应控制,拉取增量日志记录,并通过执行增量日志记录对数据存储空间存储的数据以及版本序号进行更新。
上述为本实施例的一种数据同步装置的示意性方案。需要说明的是,该数据同步装置的技术方案与上述的数据同步方法的技术方案属于同一构思,数据同步装置的技术方案未详细描述的细节内容,均可以参见上述数据同步方法的技术方案的描述。
本说明书提供的另一种数据同步装置实施例如下:
与上述方法实施例相对应,本说明书还提供了数据同步装置实施例,图8示出了本说明书一个实施例提供的另一种数据同步装置的示意图。如图8所示,该装置包括:
接收请求模块802,被配置为接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
获取记录模块804,被配置为基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
返回模块806,被配置为将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
可选的,所述数据同步装置,还包括:
接收请求模块,被配置为接收所述存储服务节点提交的数据变更请求,所述数据变更请求中携带数据更新操作信息;
生成记录模块,被配置为基于所述数据变更操作信息,生成所述数据变更操作信息对应的第一日志记录。
可选的,所述数据同步装置,还包括:
接收指令模块,被配置为接收所述存储服务节点发送的日志删除指令;
删除记录模块,被配置为基于所述日志删除指令中携带的第二版本序号,删除日志序号小于所述第二版本序号对应的日志序号的历史日志记录。综上所述,本说明书提供另一种数据同步装置,通过与存储服务节点相配合,接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;将所述目标日志记录返回至所述存储服务节点,以使存储服务节点执行目标日志记录,对数据存储空间存储的数据以及版本序号进行更新,实现了在数据存储服务(如由存储服务节点组成的集群提供)与日志服务(如由日志服务节点组成的集群)分离的状态下,通过版本序号与日志序号进行一致性对应控制,拉取增量日志记录,并通过执行增量日志记录对数据存储空间存储的数据以及版本序号进行更新。
上述为本实施例的另一种数据同步装置的示意性方案。需要说明的是,该数据同步装置的技术方案与上述的另一种数据同步方法的技术方案属于同一构思,另一种数据同步装置的技术方案未详细描述的细节内容,均可以参见上述另一种数据同步方法的技术方案的描述。
本说明书提供的一种计算设备实施例如下:
图9示出了根据本说明书一个实施例提供的一种计算设备900的结构框图。该计算设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库950用于保存数据。
计算设备900还包括接入设备940,接入设备940使得计算设备900能够经由一个或多个网络960通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备940可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备900的上述部件以及图9中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图9所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备900可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备900还可以是移动式或静止式的服务器。
本说明书提供一种计算设备,包括存储器910、处理器920及存储在存储器上并可在处理器上运行的计算机指令,所述处理器920用于执行如下计算机可执行指令:
向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据同步方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据同步方法的技术方案的描述。
本说明书提供的另一种计算设备实施例如下:
图10示出了根据本说明书一个实施例提供的另一种计算设备1000的结构框图。该计算设备1000的部件包括但不限于存储器1010和处理器1020。处理器1020与存储器1010通过总线1030相连接,数据库1050用于保存数据。
计算设备1000还包括接入设备1040,接入设备1040使得计算设备1100能够经由一个或多个网络1060通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1040可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备1000的上述部件以及图10中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图10所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1000可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1000还可以是移动式或静止式的服务器。
本说明书提供另一种计算设备,包括存储器1010、处理器1020及存储在存储器上并可在处理器上运行的计算机指令,所述处理器1020用于执行如下计算机可执行指令:
接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
上述为本实施例的另一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的另一种数据同步方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述另一种数据同步方法的技术方案的描述。
本说明书提供的一种计算机可读存储介质实施例如下:
本说明书提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据同步方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据同步方法的技术方案的描述。
本说明书提供的另一种计算机可读存储介质实施例如下:
本说明书提供另一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
上述为本实施例的另一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的另一种数据同步方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述另一种数据同步方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (22)
1.一种数据同步方法,包括:
向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
2.根据权利要求1所述的数据同步方法,在所述目标日志记录为多条的情况下,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,包括:
根据所述日志序号从小到大的顺序,确定所述目标日志记录的执行顺序;
基于所述执行顺序,执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新。
3.根据权利要求1所述的数据同步方法,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,包括:
对于所述目标日志记录中的第一日志记录,执行所述第一日志记录,以更新所述数据存储空间存储的数据并基于所述第一日志记录的日志序号,更新所述数据存储空间的版本序号。
4.根据权利要求1所述的数据同步方法,还包括:
接收用户提交的数据变更请求;
将所述数据变更请求发送至所述日志服务节点,以使所述日志服务节点基于所述数据变更请求,生成对应的第二日志记录。
5.根据权利要求4所述的数据同步方法,还包括:
向日志服务节点发送第一日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的第一版本序号;
接收所述日志服务节点基于所述第一日志拉取请求返回的第一目标日志记录,其中,所述第一目标日志记录的日志序号大于所述第一版本序号对应的日志序号,所述第一目标日志记录包括所述第二日志记录;
通过执行所述第一目标日志记录,对所述数据存储空间存储的数据以及所述第一版本序号进行更新,以使更新后的版本序号与所述第一目标日志记录的最新日志序号对应;
将执行所述第二日志记录获得的更新结果以及所述数据存储空间的目标版本序号作为所述数据变更请求的执行结果返回至所述用户。
6.根据权利要求1所述的数据同步方法,还包括:
接收用户提交的数据查询请求,其中,所述数据查询请求中携带查询条件以及目标版本序号;
判断所述目标版本序号是否大于所述数据存储空间的版本序号对应的日志序号;
若是,执行所述向日志服务节点发送日志拉取请求步骤;
相应的,所述对所述数据存储空间存储的数据以及所述版数据存储空间的本序号进行更新之后,还包括:
在更新后的数据存储空间中查询与所述查询条件对应的第一目标数据;
将所述第一目标数据返回至所述用户。
7.根据权利要求6所述的数据同步方法,所述判断所述目标版本序号是否大于所述数据存储空间的版本序号对应的日志序号的判断结果为否,执行如下操作:
判断是否存在所述目标版本序号对应的数据快照;
若存在,则在所述数据快照中查询与所述查询条件对应的第二目标数据;
将所述第二目标数据返回至所述用户。
8.根据权利要求1所述的数据同步方法,所述向日志服务节点发送日志拉取请求,包括:
在接收到用户提交的数据查询请求的情况下,向日志服务节点发送日志拉取请求;
相应的,所述对所述数据存储空间存储的数据以及所述版本序号进行更新之后,还包括:
根据所述数据查询请求中携带的查询条件,在所述数据存储空间查询所述查询条件对应的第三目标数据;
将所述第三目标数据返回至所述用户。
9.根据权利要求1所述的数据同步方法,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新之前,还包括:
获取所述数据存储空间的当前版本序号;
在所述当前版本序号大于所述版本序号的情况下,在所述目标日志记录中筛选出日志序号大于所述当前版本序号对应的日志序号的第二目标日志记录,将所述第二目标记录作为所述目标日志记录,将所述当前版本序号作为所述版本序号。
10.根据权利要求1所述的数据同步方法,所述通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新之前,还包括:
在所述目标日志记录中,筛选出目标日志记录不为空的日志记录,作为所述目标日志记录。
11.根据权利要求1所述的数据同步方法,还包括:
按照预设的快照生成策略,生成所述数据存储空间的目标数据快照;
向所述日志服务节点发送日志删除指令,所述日志删除指令中携带所述目标数据快照对应的第二版本序号,以使所述日志服务节点基于所述日志删除指令,删除日志序号小于所述第二版本序号对应的日志序号的历史日志记录。
12.根据权利要求11所述的数据同步方法,还包括:
在新增目标存储服务节点的情况下,接收针对所述目标存储服务节点的数据同步请求;
基于所述数据同步请求,向所述目标存储服务节点发送所述目标数据快照,以使所述目标存储服务节点作为所述存储服务节点,所述目标数据快照对应的第二版本序号作为所述版本序号,执行所述向日志服务节点发送日志拉取请求步骤。
13.一种数据同步方法,包括:
接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
14.根据权利要求13所述的数据同步方法,还包括:
接收所述存储服务节点提交的数据变更请求,所述数据变更请求中携带数据更新操作信息;
基于所述数据变更操作信息,生成所述数据变更操作信息对应的第一日志记录。
15.根据权利要求13所述的数据同步方法,还包括:
接收所述存储服务节点发送的日志删除指令;
基于所述日志删除指令中携带的第二版本序号,删除日志序号小于所述第二版本序号对应的日志序号的历史日志记录。
16.一种数据同步系统,包括:
存储服务节点以及日志服务节点;
其中,所述存储服务节点,被配置为向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
所述日志服务节点,被配置为接收所述日志拉取请求,并基于所述日志拉取请求,拉取日志序号大于所述版本序号对应的日志序号的目标日志记录,并将所述目标日志记录返回至所述存储服务节点;
所述存储服务节点,被配置为接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
17.一种数据同步装置,包括:
发送请求模块,被配置为向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收记录模块,被配置为接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
更新模块,被配置为通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
18.一种数据同步装置,包括:
接收请求模块,被配置为接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
获取记录模块,被配置为基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
返回模块,被配置为将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
19.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
向日志服务节点发送日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号,所述版本序号在日志服务节点中具有对应的日志序号;
接收所述日志服务节点基于所述日志拉取请求返回的目标日志记录,其中,所述目标日志记录的日志序号大于所述版本序号在所述日志服务节点中对应的日志序号;
通过执行所述目标日志记录,对所述数据存储空间存储的数据以及所述版本序号进行更新,以使更新后的版本序号与所述目标日志记录的最新日志序号对应。
20.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
接收存储服务节点提交的日志拉取请求,其中,所述日志拉取请求中携带数据存储空间的版本序号;
基于所述日志拉取请求,获取日志序号大于所述版本序号对应的日志序号的目标日志记录;
将所述目标日志记录返回至所述存储服务节点,以使所述存储服务节点通过执行所述目标日志记录,对数据存储空间存储的数据以及版本序号进行更新。
21.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至12任意一项所述数据同步方法的步骤。
22.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求13至15任意一项所述数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011193865.6A CN113297322A (zh) | 2020-10-30 | 2020-10-30 | 数据同步方法、系统以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011193865.6A CN113297322A (zh) | 2020-10-30 | 2020-10-30 | 数据同步方法、系统以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297322A true CN113297322A (zh) | 2021-08-24 |
Family
ID=77318410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011193865.6A Pending CN113297322A (zh) | 2020-10-30 | 2020-10-30 | 数据同步方法、系统以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297322A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934547A (zh) * | 2021-08-30 | 2022-01-14 | 山东浪潮科学研究院有限公司 | 一种集群环境下告警日志的记录方法、装置、设备及产品 |
-
2020
- 2020-10-30 CN CN202011193865.6A patent/CN113297322A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934547A (zh) * | 2021-08-30 | 2022-01-14 | 山东浪潮科学研究院有限公司 | 一种集群环境下告警日志的记录方法、装置、设备及产品 |
CN113934547B (zh) * | 2021-08-30 | 2024-05-17 | 山东浪潮科学研究院有限公司 | 一种集群环境下告警日志的记录方法、装置、设备及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108280080B (zh) | 一种数据同步方法、装置以及电子设备 | |
EP2378718B1 (en) | Method, node and system for controlling version in distributed system | |
JP5823037B2 (ja) | インデックス構築方法、検索方法、検索デバイス、および検索システム | |
US20160142249A1 (en) | Method, medium, and system for configuring a new node in a distributed memory network | |
EP3084631A1 (en) | Data synchonization in a storage network | |
CN103875229A (zh) | 异步复制方法、装置与系统 | |
CN103902410A (zh) | 云存储系统的数据备份加速方法 | |
CN101594256A (zh) | 容灾方法、装置和系统 | |
CN105138691B (zh) | 分析用户业务量的方法和系统 | |
CN111221469A (zh) | 同步缓存数据的方法、装置和系统 | |
CN102026228B (zh) | 通信网络性能数据的统计方法和设备 | |
CN109976942A (zh) | 一种数据备份和恢复方法、备份服务器和源服务器 | |
CN111597197A (zh) | 数据库之间的数据对账方法和装置、存储介质及电子设备 | |
CN110830580B (zh) | 一种存储数据同步方法及装置 | |
CN115146002A (zh) | 跨数据中心的数据同步方法及装置 | |
CN105338107A (zh) | 一种据点运营同步管理系统及方法 | |
CN113297322A (zh) | 数据同步方法、系统以及装置 | |
CN114185991A (zh) | 基于分布式数据库实现数据同步的方法及相关装置 | |
WO2021257263A1 (en) | Techniques for generating a consistent view of an eventually consistent database | |
CN116701413A (zh) | 主数据处理方法及装置 | |
CN106598990B (zh) | 一种搜索方法及系统 | |
CN113297229A (zh) | 路由读请求、反馈报文的方法以及各自装置、数据库 | |
CN105095224A (zh) | 一种在移动通信网络中进行olap分析的方法、装置和系统 | |
CN111966650B (zh) | 一种运维大数据共享数据表的处理方法、装置及存储介质 | |
CN115422135A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059174 Country of ref document: HK |