CN107844491A - 一种在分布式系统中实现强一致性读操作的方法与设备 - Google Patents
一种在分布式系统中实现强一致性读操作的方法与设备 Download PDFInfo
- Publication number
- CN107844491A CN107844491A CN201610831827.6A CN201610831827A CN107844491A CN 107844491 A CN107844491 A CN 107844491A CN 201610831827 A CN201610831827 A CN 201610831827A CN 107844491 A CN107844491 A CN 107844491A
- Authority
- CN
- China
- Prior art keywords
- operation log
- response results
- target data
- data object
- data objects
- 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/21—Design, administration or maintenance of databases
-
- 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
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)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的目的是提供一种在分布式系统中实现强一致性读操作的方法与设备。具体地,根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;若所述操作日志存在,获取所述操作日志;反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。与现有技术相比,本申请通过根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在:若所述操作日志存在,则读取操作日志中的目标数据对象响应读操作;若所述操作日志不存在,则读取对象快照响应读操作,从而实现在数据对象的操作日志与快照分布式存储架构中对数据对象强一致性读操作。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种在分布式系统中实现强一致性读操作的技术。
背景技术
随着大数据时代的来临,对数据存储的要求随之增高,各类分布式架构应运而生。在一种将数据对象的快照和操作日志分离的存储系统架构中,将操作日志进行存储并进行顺序标记,数据对象快照则对操作日志的更新值进行应用,从而依据操作日志顺序依次对数对象进行更新和存储,且在快照更新后对应的操作日志会被删除。在该架构中可直接从快照中读取数据,实现最终一致性读操作。在此,最终一致性是指系统中的某个数据被更新后,后续对该数据的读取操作可能得到更新后的值,也可能是更改前的值。存储系统保证在没有新的更新的条件下,最终所有的访问都是最后更新的值。因为快照最终会把更新的数据获取,从而满足最终一致性。
然而,现有的数据应用场景中往往对数据对象的读操作存在强一致性要求。在此,强一致性是指系统中的某个数据被成功更新后,后续任何对该数据的读取操作都将得到更新后的值。而将数据对象的快照和操作日志分离存储架构,会导致现有技术中对数据对象实现强一致读操作的方法无法使用。
发明内容
本申请的一个目的是提供一种在分布式系统中实现强一致性读操作的方法与设备,用以解决在数据对象的操作日志与快照分布式存储架构中实现强一致读操作的问题。
为实现上述目的,根据本申请的一个方面,本申请提供了一种在分布式系统中实现强一致性读操作的方法,该方法解决了在数据对象的操作日志与快照分布式存储架构中实现强一致读操作的问题,该方法包括:
根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
若所述操作日志存在,获取所述操作日志;
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。
根据本申请的另一个方面,本申请提供了一种在分布式系统中实现强一致性读操作的方法,该方法解决了在数据对象的操作日志与快照分布式存储架构中实现强一致读操作的问题,该方法包括:
根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照;
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
根据本申请的另一个方面,本申请提供了一种在分布式系统中实现强一致性读操作的设备,该设备解决了在数据对象的操作日志与快照分布式存储架构中实现强一致读操作的问题,该设备包括:
操作日志查询装置,用于根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
操作日志获取装置,用于若所述操作日志存在,获取所述操作日志;
响应结果反馈装置,用于反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。
根据本申请的另一个方面,本申请提供了一种在分布式系统中实现强一致性读操作的设备,该设备解决了在数据对象的操作日志与快照分布式存储架构中实现强一致读操作的问题,该设备包括:
操作日志查询装置,用于根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
获取装置,用于若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照;
响应结果反馈装置,用于反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
与现有技术相比,本申请通过根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在:若所述操作日志存在,则读取操作日志中的目标数据对象响应读操作;若所述操作日志不存在,则读取对象快照响应读操作,从而实现在数据对象的操作日志与快照分布式存储架构中,对数据对象读操作的强一致性。
进一步的,本申请通过根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在:若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照,根据所获取两者的时序关系确定所述数据对象的值响应读操作;若所述操作日志不存在,读取所述数据对象快照响应读操作,从而实现在数据对象的操作日志与快照分布式存储架构中,对数据对象读操作的强一致性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个优选实施例的一种在分布式系统中实现强一致性读操作的示意图;
图2示出根据本申请一个优选实施例的操作日志与历史操作日志重合情况示意图;
图3示出根据本申请一个优选实施例的所在分布式架构示意图;
图4示出根据本申请一个方面的一种在分布式系统中实现强一致性读操作的设备示意图;
图5示出根据本申请另一个方面的一种在分布式系统中实现强一致性读操作的设备示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
根据本申请一个方面的一种在分布式系统中实现强一致性读操作的方法。所述方法包括:步骤S11、步骤S12、步骤S13。
其中,在步骤S11中设备1根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;在步骤S12中设备1若所述操作日志存在,获取所述操作日志;在步骤S13中设备1反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。
具体地,在步骤S11中设备1根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在。
其中,所述目标数据对象是指存储于所述分布式系统中的数据对象,是读请求所要读取的对象。所述读请求是指包含了目标数据对象信息的读取请求。所述操作日志是指对于分布式系统中所存储的数据对象进行操作处理的日志,其中,操作处理包括但不限于:创建、修改、删除等。
例如,所述对目标数据对象的读请求发生在图3所示的架构中,其中,所述读请求Read由User用户设备发出,由主管理设备Frontend(Master)向操作日志存储设备Nuwalog发出查询,查询目标数据对象是否有操作日志存储在Nuwalog的现有日志队列中。又例如图1所示,用户设备Client发出强一致性读请求,管理设备Frontend向操作日志存储设备Nuwalog发出查询,查询目标数据对象是否有操作日志存储在Nuwalog的现有日志队列中。其中,查询消息中包含了用于对目标数据对象进行识别的key值。
优选地,所述目标数据对象有对应的识别信息以及数据值。在此,所述识别信息用于识别目标数据对象,例如设置主键(Key)作为识别信息,一般为字符串,例如学生的学号。所述数据值是指目标数据的值(Value),例如学号对应的学生的成绩。目标数据对象的数据值包括但不限于字符串,各种文档的类型,结构化的数据记录等。
对于关于目标数据对象的读请求,根据所述读请求中所包含的目标数据对象的识别信息,发出对操作日志的查询请求。其中,所查询的是对目标数据对象操作处理的操作日志。例如,根据目标数据对象的识别信息进行操作日志的查找。
因为在例如图3所示的数据对象的操作日志与快照分离存储的分布式架构中,数据对象快照中数据对象的值,是根据所存储操作日志进行更新,操作日志被存储的操作先于所述数据对象快照的更新操作。所以若存在关于目标数据的操作日志,则操作日志中所包括的目标数据对象的值为最新值,因此会首先发起对目标数据对象对应的操作日志的查询,从而保证后续查询到的目标数据对象值的强一致性。又因为数据对象快照中的数据对象的值在根据操作日志更新后,操作日志会在其对应的存储端被删除,因此在较长时间没有对数据对象进行操作处理时,在操作日志的存储端中会有不存在对应于目标数据对象的操作日志的可能性,从而需要对目标数据对象对应的操作日志的存在性进行查询。
优选地,所述操作日志与所述数据对象快照在分布式系统中被分离存储。
是指操作日志与数据对象快照采用在存储时,分属于不同的服务进程,从而跨越了服务应用编程接口API的边界,例如部署在不同的服务器上。
例如,图3所示的为数据对象的操作日志与快照分离存储的分布式架构。其中,NuwaLog为操作日志存储设备的代称,其中所存储的操作日志均对应于对某个数据对象的操作处理,并以操作日志队列的形式进行存储。Local Storage为本地数据对象快照存储设备的代称,通过将日志存储设备中的操作日志应用于其所存储的数据对象,从而对新数据对象快照进行更新。当数据对象更新完毕,反馈日志存储设备删除对应本次更新的操作日志。
优选地,在本文中的实施例均可基于操作日志与操作日志存储端的关系,以及数据对象快照与本地数据对象快照存储端的关系,获取对应的操作日志或数据对象快照。
本领域技术人员应能理解上述操作日志与快照分离存储的方式仅为举例,其他现有的或今后可能出现的操作日志与快照分离存储的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,若所述操作日志存在,在步骤S12中设备1获取所述操作日志。是指在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若存在所述操作日志,则对其进行获取。在此,获取的方式包括但不限于:直接读取目标数据对象对应的所有操作日志中,目标数据对象的最新值;获取目标对象对应的所有操作日志或时间最新的操作日志,再对于其中的目标数据对象的最新值进行读取。
获取当前存在的操作日志,可以基于此进一步对其中目标对象的最新值进行获取。因为被查询到的操作日志先被存储,而后被应用于对目标数据对象快照的更新,因此,所获取的操作日志中包括了对于目标对象数据最近时间操作处理的最新值。
本领域技术人员应能理解上述获取操作日志的方式仅为举例,其他现有的或今后可能出现的操作日志与快照分离存储的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,在步骤S13中设备1反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
在确定存在目标数据对象对应的操作日志后,若目标数据对象对应的操作日志不止一个,则根据操作日志中所记载的时间信息,或是操作日志的时序信息,确定最近一次操作所对应的操作日志。例如,选取操作日志中记载的操作时间与当前时间最接近的操作日志,或选取日志ID中编号最新的操作日志,其中,日志ID编号按照操作处理发生先后顺序进行时序编号。
根据所确定的最近一次操作所对应的操作日志,读取其中所记录的操作处理后的目标数据对象的值,将其作为读请求的响应结果进行反馈。例如图1所示,步骤4a所述:若有最新的操作日志,则反馈日志中对象的值。因为所反馈的是最近一次操作所对应的操作日志,因此所读取的目标数据对象的值是最新值,满足了强一致性读请求的要求。
本领域技术人员应能理解上述反馈响应结果的方式仅为举例,其他现有的或今后可能出现的反馈响应结果的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
优选地,所述方法还包括步骤S14。
具体地,若所述操作日志不存在,在步骤S14中设备1获取所述目标数据对象对应的数据对象快照。所述数据对象快照是指根据操作日志所更新的数据对象,包括了数据对象的最新值,以及数据对象的历史更新信息。
在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若不存在所述操作日志,则对数据对象快照所在端的所述目标对象对应的数据对象快照进行获取。例如,图1所示的步骤4b:若无则读取Local Storage。
在目标数据对象对应的操作日志不存在的情况下,因为目标数据对象对应数据快照所存储的目标数据对象的值,是根据历史操作日志进行更新的,因此最后一次更新对应的是最近一次的操作日志,也就是对应最近一次对于目标数据对象的操作。因而基于所获取数据对象快照,可获取最新的目标数据对象的值,从而保障强一致性读操作的实现。
本领域技术人员应能理解上述数据对象快照的方式仅为举例,其他现有的或今后可能出现的获取数据对象快照的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
更优选地,在步骤S13中设备1反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照确定。所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
在确定存在目标数据对象对应的数据对象快照后,读取其所对应的目标数据对象的值,将其作为读请求的响应结果进行反馈。例如图1所示,步骤5所示,将所读取的目标数据对象的值反馈至用户端Client。因为所反馈的是根据最近一次操作所对应的操作日志而进行更新的值,因此满足了强一致性读请求的要求。
优选地,所述操作日志包括:所述目标数据对象被操作处理后的更新值;所述操作日志的时序信息。
其中,所述目标数据对象被操作处理后的更新值,是指在操作日志中记录了所述目标数据对象在操作处理之后的完整赋值,即操作日志为记载了目标数据对象全量值的全量操作日志类型。例如,目标数据对象为变量X,在操作日志中记录了其操作处理之后的值为5。
因为所述操作日志包括了完整的目标数据对象更新值,因此在查询到操作日志存在后可根据操作日志获取目标数据对象的值,从而将这一值作为响应结果反馈。
所述操作日志的时序信息,是指用以辨别操作日志中对应的操作发生时间先后顺序关系的信息。例如,操作日志的日志ID号,依照对目标数据对象的操作处理发生的先后顺序编号;或直接记录了操作处理发生的系统时间。
通过时序信息可以在获取操作日志后对最近一次操作处理对应的操作日志进行确定,从而读取其中的目标数据对象的最新值,实现强一致性读操作。
更优选地,若所述操作日志存在,在步骤S12中设备1获取所述操作日志,其中,所述操作日志的所述时序信息最新。
是指在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若存在所述操作日志,则对其进行获取。在此,获取的方式包括但不限于:直接读取目标数据对象对应的所有操作日志中,目标数据对象的最新值;获取目标对象对应的所有操作日志或时间最新的操作日志,再对于其中的目标数据对象的最新值进行读取。
若获取的操作日志不止一个,则根据时序信息中对应的操作日志先后顺序确定操作处理发生时间最近的操作日志。例如,找到日志ID中时序最近的操作日志,从而进一步读取这一日志中目标数据对象的值。
因为被查询到的操作日志先被存储,而后会被应用于对目标数据对象快照的更新,因此,所获取的操作日志中包括了对于目标对象数据最近时间操作处理的最新值,从而保障读操作的强一致性。
更优选地,在步骤S13中设备1反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志中所述更新值确定。
所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
根据所确定的最近一次操作所对应的操作日志,读取其中所记录的操作处理后的目标数据对象的完整更新值,将其作为读请求的响应结果进行反馈。例如图1所示,步骤4a所述:若有最新的操作日志,则反馈日志中对象的值。因为所反馈的是最近一次操作所对应的操作日志,因此所读取的目标数据对象的值是最新值,满足了强一致性读请求的要求。
优选地,上文描述的一种在分布式系统中实现强一致性读操作的方法适用于读操作的目标数据对象对应的操作日志为全量操作日志类型。
根据本申请一个方面的一种在分布式系统中实现强一致性读操作的方法。所述方法包括:步骤S21、步骤S22、步骤S23。
其中,在步骤S21中设备1根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;在步骤S22中设备1若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照在步骤S23中设备1反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
具体地,在步骤S21中设备1根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在。
其中,所述目标数据对象是指存储于所述分布式系统中的数据对象,是读请求所要读取的对象。所述读请求是指包含了目标数据对象信息的读取请求。所述操作日志是指对于分布式系统中所存储的数据对象进行操作处理的日志,其中,操作处理包括但不限于:创建、修改、删除等。
例如,所述对目标数据对象的读请求发生在图3所示的架构中,其中,所述读请求Read由User用户设备发出,由主管理设备Frontend(Master)向操作日志存储设备Nuwalog发出查询,查询目标数据对象是否有操作日志存储在Nuwalog的现有日志队列中。又例如图1所示,用户设备Client发出强一致性读请求,管理设备Frontend向操作日志存储设备Nuwalog发出查询,查询目标数据对象是否有操作日志存储在Nuwalog的现有日志队列中。其中,查询消息中包含了用于对目标数据对象进行识别的key值。
优选地,所述目标数据对象有对应的识别信息以及数据变化值。在此,所述识别信息用于识别目标数据对象,例如设置主键(Key)作为识别信息,一般为字符串,例如学生的学号。所述数据值是指目标数据的值(Value),例如学号对应的学生的本次成绩与上次成绩的差值+5分。目标数据对象的数据值包括但不限于字符串,各种文档的类型,结构化的数据记录等。
对于关于目标数据对象的读请求,根据所述读请求中所包含的目标数据对象的识别信息,发出对操作日志的查询请求。其中,所查询的是对目标数据对象操作处理的操作日志。例如,根据目标数据对象的识别信息进行操作日志的查找。
因为在例如图3所示的数据对象的操作日志与快照分离存储的分布式架构中,数据对象快照中数据对象的值,是根据所存储操作日志进行更新,操作日志被存储的操作先于所述数据对象快照的更新操作。所以若存在关于目标数据的操作日志,则结合操作日志中所包括的目标数据对象的变化值与数据对象快照的原有值,则得到目标数据对象的最新值,因此会首先发起对目标数据对象对应的操作日志的查询,从而保证后续查询到的目标数据对象值的强一致性。又因为数据对象快照中的数据对象的值在根据操作日志更新后,操作日志会在其对应的存储端被删除,因此在较长时间没有对数据对象进行操作处理时,在操作日志的存储端中会有不存在对应于目标数据对象的操作日志的可能性,从而需要对目标数据对象对应的操作日志的存在性进行查询。
接着,若所述操作日志存在,在步骤S22中设备1获取所述操作日志和所述目标数据对象对应的数据对象快照。
是指在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若存在所述操作日志,则对目标数据对象对应的所有操作日志,以及存储了目标数据对象完整值的数据对象快照进行获取。因为操作日志中包括了目标数据对象在操作处理中所涉及的变化值,数据对象快照中包含了操作之前的完整值,因此将两者结合即可得出目标数据对象的操作处理之后的完整最新值。其中,所述数据对象快照中包含了历次根据操作日志更新值的记录,对应不同的更新值的版本以及对应的历史操作日志。
因为被查询到的操作日志先被存储,而后被应用于对目标数据对象快照的更新,因此,所获取的操作日志中包括了对于目标对象数据最近时间操作处理的变化值,从而结合数据对象快照中的完整数值获得最新值,保障读操作的强一致性。
接着,在步骤S23中设备1反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
根据所确定的最近一次操作所对应的操作日志,读取其中所记录的操作处理后的目标数据对象的变化值。并读取数据对象快照中的最新更新值,结合从操作日志中获取的变化值,则获取对应最近一次操作处理的目标数据对象的最新值。将这一最新值作为读请求的响应结果进行反馈。
若目标数据对象对应的操作日志不止一个,例如,图2中所示的Local Strorage中标示为last的点对应数据对象快照中所记录的目标数据的最新值,NuwaLog中标示为max的为最近一次操作处理对应的操作日志,从last到max之间均为尚未被用于对快照进行更新的操作日志。则根据操作日志中所记载的时间信息,或是操作日志的时序信息,根据操作日志所对应的操作处理发生的时间,从最早到最晚依次对数据对象快照中的值进行更新。例如,对应last的快照值为5,从last到max之间均为尚未被用于对快照进行更新的操作日志一共有六个,每个操作日志对应一次对5的加1操作,则结合快照和操作日志所得出的对应最近一次操作的目标数据对象的最新值为5+1+1+1+1+1+1=11。
本领域技术人员应能理解上述确定响应结果的方式仅为举例,其他现有的或今后可能出现的确定响应结果的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
优选地,在步骤S23中设备1反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照所对应历史操作日志的时序关系确定,所述历史操作日志与所述数据对象快照对应。其中,所述时序关系是指所述操作日志与所述历史操作日志所对应的操作处理发生的时间顺序关系。例如,将所有操作日志根据操作发生前后顺序关系进行编号,日志ID越小对应的操作发生的越早。因为操作日志中包括的是目标数据对象每次操作处理的变化值,因此需要根据时序顺序将数据对象快照中的值进行依次更新,才能保障最终所得的目标数据对象值的正确性。
优选地,所述方法还包括步骤S24。
具体地,若所述操作日志不存在,在步骤S24中设备1获取所述目标数据对象对应的数据对象快照。所述数据对象快照是指根据操作日志所更新的数据对象,包括了数据对象的最新值,以及数据对象的历史更新信息。
在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若不存在所述操作日志,则对数据对象快照所在端的所述目标对象对应的数据对象快照进行获取。
在目标数据对象对应的操作日志不存在的情况下,因为目标数据对象对应数据快照所存储的目标数据对象的值,是根据历史操作日志进行更新的,因此最后一次更新对应的是最近一次的操作日志,也就是对应最近一次对于目标数据对象的操作。因而基于所获取数据对象快照,可获取最新的目标数据对象的值,从而保障强一致性读操作的实现。
本领域技术人员应能理解上述数据对象快照的方式仅为举例,其他现有的或今后可能出现的获取数据对象快照的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
优选地,在步骤S23中设备1反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照确定。
所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
在确定存在目标数据对象对应的数据对象快照后,读取其所对应的目标数据对象的值,将其作为读请求的响应结果进行反馈。因为所反馈的是根据最近一次操作所对应的操作日志而进行更新的值,因此满足了强一致性读请求的要求。
优选地,所述操作日志包括:所述目标数据对象被操作处理前后的变化值;所述操作日志对所述目标数据对象操作处理的时序信息。
其中,所述目标数据对象被操作处理后的变化值,是指在操作日志中记录了所述目标数据对象在操作处理前后的差异值,即操作日志为记载了目标数据对象全量值的增量操作日志类型。例如,目标数据对象为变量X,在操作日志中记录了其操作处理之后的增加值为1,即目标对象在操作处理之后的完整值为X+1。
因为所述操作日志仅包括了目标数据对象变化值,因此在查询到操作日志存在后需要同时获取数据对象快照,根据数据对象快照中存储的完整的操作处理之前的值,获取目标数据对象的完整最新值,从而将这一值作为响应结果反馈。
所述操作日志的时序信息,是指用以辨别操作日志中对应的操作发生时间先后顺序关系的信息。例如,操作日志的日志ID号,依照对目标数据对象的操作处理发生的先后顺序编号;或直接记录了操作处理发生的系统时间。
通过时序信息可以在获取操作日志后,对未应用于数据对象快照更新的操作日志进行排序,从而更新数据对象快照中存储的目标数据对象以获得最新值,实现强一致性读操作。
优选地,在步骤S23中设备1据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;若所述操作日志与所述历史操作日志重合,则删除与所述历史操作日志重合部分的所述操作日志;反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照与所剩所述操作日志的所述变化值确定。在具体的实施过程中,因为系统的分布式架构,会因为种种因素导致目标对象对应的数据对象快照和操作日志不会如图2中(a)情况所示刚好衔接。刚好衔接是指数据对象快照最近一次更新所对应的历史操作日志的时序信息,与操作日志的时序信息刚好连接,例如,历史操作日志为第4次更新,操作日志为第5次、第6次、第7次更新。若不会刚好衔接,则是指数据对象快照最近一次更新所对应的历史操作日志与操作日志有重复,例如,数据对象快照当前值对应的第4次操作后的更新值,而所获取的操作日志中对应第2次、第3次、第4次、第5次、第6次、第7次操作。此时即发生了所述操作日志与所述历史操作日志重合的情况。
根据操作日志中的时序信息判断所述操作日志与所述历史操作日志是否发生重合,例如日志ID是否有相同的情况。若发生重合则将有重合情况的操作日志均删除,例如图2中(b)和(c)情况,将NuwaLog中从last到max两个时序点之间的所有操作日志删除,从而使得目标对象对应的数据对象快照和操作日志不会如图2中(a)情况所示刚好衔接。之后,依据上文所述的方法,根据操作日志中的时序信息,根据操作日志所对应的操作处理发生的先后顺序,读取操作日志中的变化值,对应操作发生的从最早到最晚依次对数据对象快照中的值进行更新,并将更新完成后的值作为响应结果进行反馈。
排除重合的操作日志,使得对数据对象快照更新时不会发生同一次操作的重复更新,避免得到的响应结果是错误的目标数据对象的值。
优选地,在步骤S23中设备1根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;若所述操作日志与所述历史操作日志重合,则确定起点数据对象快照,其中,所述起点数据对象快照对应重合部分任意一个所述历史操作日志;反馈所述读请求的响应结果,其中,所述响应结果由所述起点数据对象快照,以及按时序排列的所述起点数据对象快照后的,所述操作日志的所述变化值确定。在具体的实施过程中,因为系统的分布式架构,会因为种种因素导致目标对象对应的数据对象快照和操作日志不会如图2中(a)情况所示刚好衔接。刚好衔接是指数据对象快照最近一次更新所对应的历史操作日志的时序信息,与操作日志的时序信息刚好连接,例如,历史操作日志为第4次更新,操作日志为第5次、第6次、第7次更新。若不会刚好衔接,则是指数据对象快照最近一次更新所对应的历史操作日志与操作日志有重复,例如,数据对象快照当前值对应的第4次操作后的更新值,而所获取的操作日志中对应第2次、第3次、第4次、第5次、第6次、第7次操作。此时即发生了所述操作日志与所述历史操作日志重合的情况。
根据操作日志中的时序信息判断所述操作日志与所述历史操作日志是否发生重合,例如日志ID是否有相同的情况。若发生重合则提供重合部分的任意一个历史操作日志所对应的数据对象快照中数据值的版本,并根据这一数据值对应的历史操作日志的时序,保留在这一操作之后发生的操作日志,从而使得目标对象对应的数据对象快照和操作日志不会如图2中(a)情况所示刚好衔接。之后,依据上文所述的方法,根据操作日志中的时序信息,根据操作日志所对应的操作处理发生的先后顺序,读取操作日志中的变化值,对应操作发生的从最早到最晚依次对数据对象快照中的值进行更新,并将更新完成后的值作为响应结果进行反馈。使得对数据对象快照更新时不会发生同一次操作的重复更新,避免得到的响应结果是错误的目标数据对象的值。
本领域技术人员应能理解上述确定响应结果的方式仅为举例,其他现有的或今后可能出现的确定响应结果的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
优选地,在步骤S23中设备1根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;若所述操作日志与所述历史操作日志不重合,且对应所述时序信息按时序排列无缺失;反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照与所述操作日志的所述变化值确定。对应所述时序信息按时序排列无缺失,是指目标对象对应的数据对象快照和操作日志如图2中(a)情况所示刚好衔接。刚好衔接是指数据对象快照最近一次更新所对应的历史操作日志的时序信息,与操作日志的时序信息刚好连接,例如,历史操作日志为第4次更新,操作日志为第5次、第6次、第7次更新。之后,依据上文所述的方法,根据操作日志中的时序信息,依据操作日志所对应的操作处理发生的先后顺序,读取操作日志中的变化值,对应操作发生的从最早到最晚依次对数据对象快照中的值进行更新,并将更新完成后的值作为响应结果进行反馈。
优选地,上文描述的一种在分布式系统中实现强一致性读操作的方法适用于读操作的目标数据对象对应的操作日志为增量操作日志类型。
根据本申请一个方面的一种在分布式系统中实现强一致性读操作的设备。所述设备1包括:操作日志查询装置11、操作日志获取装置12、响应结果反馈装置13。
其中,操作日志查询装11根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;操作日志获取装置12若所述操作日志存在,获取所述操作日志;响应结果反馈装置13反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。
具体地,操作日志查询装11根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在。
其中,所述目标数据对象是指存储于所述分布式系统中的数据对象,是读请求所要读取的对象。所述读请求是指包含了目标数据对象信息的读取请求。所述操作日志是指对于分布式系统中所存储的数据对象进行操作处理的日志,其中,操作处理包括但不限于:创建、修改、删除等。
例如,所述对目标数据对象的读请求发生在图3所示的架构中,其中,所述读请求Read由User用户设备发出,由主管理设备Frontend(Master)向操作日志存储设备Nuwalog发出查询,查询目标数据对象是否有操作日志存储在Nuwalog的现有日志队列中。又例如图1所示,用户设备Client发出强一致性读请求,管理设备Frontend向操作日志存储设备Nuwalog发出查询,查询目标数据对象是否有操作日志存储在Nuwalog的现有日志队列中。其中,查询消息中包含了用于对目标数据对象进行识别的key值。
优选地,所述目标数据对象有对应的识别信息以及数据值。在此,所述识别信息用于识别目标数据对象,例如设置主键(Key)作为识别信息,一般为字符串,例如学生的学号。所述数据值是指目标数据的值(Value),例如学号对应的学生的成绩。目标数据对象的数据值包括但不限于字符串,各种文档的类型,结构化的数据记录等。
对于关于目标数据对象的读请求,根据所述读请求中所包含的目标数据对象的识别信息,发出对操作日志的查询请求。其中,所查询的是对目标数据对象操作处理的操作日志。例如,根据目标数据对象的识别信息进行操作日志的查找。
因为在例如图3所示的数据对象的操作日志与快照分离存储的分布式架构中,数据对象快照中数据对象的值,是根据所存储操作日志进行更新,操作日志被存储的操作先于所述数据对象快照的更新操作。所以若存在关于目标数据的操作日志,则操作日志中所包括的目标数据对象的值为最新值,因此会首先发起对目标数据对象对应的操作日志的查询,从而保证后续查询到的目标数据对象值的强一致性。又因为数据对象快照中的数据对象的值在根据操作日志更新后,操作日志会在其对应的存储端被删除,因此在较长时间没有对数据对象进行操作处理时,在操作日志的存储端中会有不存在对应于目标数据对象的操作日志的可能性,从而需要对目标数据对象对应的操作日志的存在性进行查询。
优选地,所述操作日志与所述数据对象快照在分布式系统中被分离存储。是指操作日志与数据对象快照采用在存储时,分属于不同的服务进程,从而跨越了服务应用编程接口API的边界,例如部署在不同的服务器上。
例如,图3所示的为数据对象的操作日志与快照分离存储的分布式架构。其中,NuwaLog为操作日志存储设备的代称,其中所存储的操作日志均对应于对某个数据对象的操作处理,并以操作日志队列的形式进行存储。Local Storage为本地数据对象快照存储设备的代称,通过将日志存储设备中的操作日志应用于其所存储的数据对象,从而对新数据对象快照进行更新。当数据对象更新完毕,反馈日志存储设备删除对应本次更新的操作日志。
优选地,在本文中的实施例均可基于操作日志与操作日志存储端的关系,以及数据对象快照与本地数据对象快照存储端的关系,获取对应的操作日志或数据对象快照。
本领域技术人员应能理解上述操作日志与快照分离存储的方式仅为举例,其他现有的或今后可能出现的操作日志与快照分离存储的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,操作日志获取装置12若所述操作日志存在,获取所述操作日志。是指在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若存在所述操作日志,则对其进行获取。在此,获取的方式包括但不限于:直接读取目标数据对象对应的所有操作日志中,目标数据对象的最新值,例如从图3所示的NuwaLog端读取操作日志中目标对象的值;获取目标对象对应的所有操作日志或时间最新的操作日志,再对于其中的目标数据对象的最新值进行读取。
获取当前存在的操作日志,可以基于此进一步对其中目标对象的最新值进行获取。因为被查询到的操作日志先被存储,而后被应用于对目标数据对象快照的更新,因此,所获取的操作日志中包括了对于目标对象数据最近时间操作处理的最新值。
本领域技术人员应能理解上述获取操作日志的方式仅为举例,其他现有的或今后可能出现的操作日志与快照分离存储的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,响应结果反馈装置13反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
在确定存在目标数据对象对应的操作日志后,若目标数据对象对应的操作日志不止一个,则根据操作日志中所记载的时间信息,或是操作日志的时序信息,确定最近一次操作所对应的操作日志。例如,选取操作日志中记载的操作时间与当前时间最接近的操作日志,或选取日志ID中编号最新的操作日志,其中,日志ID编号按照操作处理发生先后顺序进行时序编号。
根据所确定的最近一次操作所对应的操作日志,读取其中所记录的操作处理后的目标数据对象的值,将其作为读请求的响应结果进行反馈。例如图1所示,步骤4a所述:若有最新的操作日志,则反馈日志中对象的值。因为所反馈的是最近一次操作所对应的操作日志,因此所读取的目标数据对象的值是最新值,满足了强一致性读请求的要求。
本领域技术人员应能理解上述反馈响应结果的方式仅为举例,其他现有的或今后可能出现的反馈响应结果的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
优选地,图4展示了根据本申请一个方面的一种在分布式系统中实现强一致性读操作的设备示意图。相较于前文已提及的所述设备1所包括的操作日志查询装置11、操作日志获取装置12、响应结果反馈装置13。所述设备1还包括数据对象快照获取装置14。
具体地,数据对象快照获取装置14若所述操作日志不存在,获取所述目标数据对象对应的数据对象快照。所述数据对象快照是指根据操作日志所更新的数据对象,包括了数据对象的最新值,以及数据对象的历史更新信息。
在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若不存在所述操作日志,则对数据对象快照所在端的所述目标对象对应的数据对象快照进行获取。例如,图1所示的步骤4b:若无则读取Local Storage。
在目标数据对象对应的操作日志不存在的情况下,因为目标数据对象对应数据快照所存储的目标数据对象的值,是根据历史操作日志进行更新的,因此最后一次更新对应的是最近一次的操作日志,也就是对应最近一次对于目标数据对象的操作。因而基于所获取数据对象快照,可获取最新的目标数据对象的值,从而保障强一致性读操作的实现。
本领域技术人员应能理解上述数据对象快照的方式仅为举例,其他现有的或今后可能出现的获取数据对象快照的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
更优选地,所述响应结果反馈装置13反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照确定。所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
在确定存在目标数据对象对应的数据对象快照后,读取其所对应的目标数据对象的值,将其作为读请求的响应结果进行反馈。例如图1所示,步骤5所示,将所读取的目标数据对象的值反馈至用户端Client。因为所反馈的是根据最近一次操作所对应的操作日志而进行更新的值,因此满足了强一致性读请求的要求。
优选地,所述操作日志包括:所述目标数据对象被操作处理后的更新值;所述操作日志的时序信息。
其中,所述目标数据对象被操作处理后的更新值,是指在操作日志中记录了所述目标数据对象在操作处理之后的完整赋值,即操作日志为记载了目标数据对象全量值的全量操作日志类型。例如,目标数据对象为变量X,在操作日志中记录了其操作处理之后的值为5。
因为所述操作日志包括了完整的目标数据对象更新值,因此在查询到操作日志存在后可根据操作日志获取目标数据对象的值,从而将这一值作为响应结果反馈。
所述操作日志的时序信息,是指用以辨别操作日志中对应的操作发生时间先后顺序关系的信息。例如,操作日志的日志ID号,依照对目标数据对象的操作处理发生的先后顺序编号;或直接记录了操作处理发生的系统时间。
通过时序信息可以在获取操作日志后对最近一次操作处理对应的操作日志进行确定,从而读取其中的目标数据对象的最新值,实现强一致性读操作。
更优选地,所述操作日志获取装置12若所述操作日志存在,获取所述操作日志,其中,所述操作日志的所述时序信息最新。
是指在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若存在所述操作日志,则对其进行获取。在此,获取的方式包括但不限于:直接读取目标数据对象对应的所有操作日志中,目标数据对象的最新值;获取目标对象对应的所有操作日志或时间最新的操作日志,再对于其中的目标数据对象的最新值进行读取。
若获取的操作日志不止一个,则根据时序信息中对应的操作日志先后顺序确定操作处理发生时间最近的操作日志。例如,找到日志ID中时序最近的操作日志,从而进一步读取这一日志中目标数据对象的值。
因为被查询到的操作日志先被存储,而后会被应用于对目标数据对象快照的更新,因此,所获取的操作日志中包括了对于目标对象数据最近时间操作处理的最新值,从而保障读操作的强一致性。
更优选地,其中,所述响应结果反馈装置13反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志中所述更新值确定。
所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
根据所确定的最近一次操作所对应的操作日志,读取其中所记录的操作处理后的目标数据对象的完整更新值,将其作为读请求的响应结果进行反馈。例如图1所示,步骤4a所述:若有最新的操作日志,则反馈日志中对象的值。因为所反馈的是最近一次操作所对应的操作日志,因此所读取的目标数据对象的值是最新值,满足了强一致性读请求的要求。
上文描述的一种在分布式系统中实现强一致性读操作的设备适用于读操作的目标数据对象对应的操作日志为全量操作日志类型。
根据本申请一个方面的一种在分布式系统中实现强一致性读操作的设备。所述设备1包括:操作日志查询装置21、获取装置22、响应结果反馈装置23。
其中,操作日志查询装置21根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;获取装置22若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照;响应结果反馈装置23反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
具体地,操作日志查询装置21根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在。
其中,所述目标数据对象是指存储于所述分布式系统中的数据对象,是读请求所要读取的对象。所述读请求是指包含了目标数据对象信息的读取请求。所述操作日志是指对于分布式系统中所存储的数据对象进行操作处理的日志,其中,操作处理包括但不限于:创建、修改、删除等。
例如,所述对目标数据对象的读请求发生在图3所示的架构中,其中,所述读请求Read由User用户设备发出,由主管理设备Frontend(Master)向操作日志存储设备Nuwalog发出查询,查询目标数据对象是否有操作日志存储在Nuwalog的现有日志队列中。又例如图1所示,用户设备Client发出强一致性读请求,管理设备Frontend向操作日志存储设备Nuwalog发出查询,查询目标数据对象是否有操作日志存储在Nuwalog的现有日志队列中。其中,查询消息中包含了用于对目标数据对象进行识别的key值。
优选地,所述目标数据对象有对应的识别信息以及数据变化值。在此,所述识别信息用于识别目标数据对象,例如设置主键(Key)作为识别信息,一般为字符串,例如学生的学号。所述数据值是指目标数据的值(Value),例如学号对应的学生的本次成绩与上次成绩的差值+5分。目标数据对象的数据值包括但不限于字符串,各种文档的类型,结构化的数据记录等。
对于关于目标数据对象的读请求,根据所述读请求中所包含的目标数据对象的识别信息,发出对操作日志的查询请求。其中,所查询的是对目标数据对象操作处理的操作日志。例如,根据目标数据对象的识别信息进行操作日志的查找。
因为在例如图3所示的数据对象的操作日志与快照分离存储的分布式架构中,数据对象快照中数据对象的值,是根据所存储操作日志进行更新,操作日志被存储的操作先于所述数据对象快照的更新操作。所以若存在关于目标数据的操作日志,则结合操作日志中所包括的目标数据对象的变化值与数据对象快照的原有值,则得到目标数据对象的最新值,因此会首先发起对目标数据对象对应的操作日志的查询,从而保证后续查询到的目标数据对象值的强一致性。又因为数据对象快照中的数据对象的值在根据操作日志更新后,操作日志会在其对应的存储端被删除,因此在较长时间没有对数据对象进行操作处理时,在操作日志的存储端中会有不存在对应于目标数据对象的操作日志的可能性,从而需要对目标数据对象对应的操作日志的存在性进行查询。
接着,获取装置22若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照。
是指在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若存在所述操作日志,则对目标数据对象对应的所有操作日志,以及存储了目标数据对象完整值的数据对象快照进行获取。因为操作日志中包括了目标数据对象在操作处理中所涉及的变化值,数据对象快照中包含了操作之前的完整值,因此将两者结合即可得出目标数据对象的操作处理之后的完整最新值。其中,所述数据对象快照中包含了历次根据操作日志更新值的记录,对应不同的更新值的版本以及对应的历史操作日志。
因为被查询到的操作日志先被存储,而后被应用于对目标数据对象快照的更新,因此,所获取的操作日志中包括了对于目标对象数据最近时间操作处理的变化值,从而结合数据对象快照中的完整数值获得最新值,保障读操作的强一致性。
接着,响应结果反馈装置23反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
根据所确定的最近一次操作所对应的操作日志,读取其中所记录的操作处理后的目标数据对象的变化值。并读取数据对象快照中的最新更新值,结合从操作日志中获取的变化值,则获取对应最近一次操作处理的目标数据对象的最新值。将这一最新值作为读请求的响应结果进行反馈。
若目标数据对象对应的操作日志不止一个,例如,图2中所示的Local Strorage中标示为last的点对应数据对象快照中所记录的目标数据的最新值,NuwaLog中标示为max的为最近一次操作处理对应的操作日志,从last到max之间均为尚未被用于对快照进行更新的操作日志。则根据操作日志中所记载的时间信息,或是操作日志的时序信息,根据操作日志所对应的操作处理发生的时间,从最早到最晚依次对数据对象快照中的值进行更新。例如,对应last的快照值为5,从last到max之间均为尚未被用于对快照进行更新的操作日志一共有六个,每个操作日志对应一次对5的加1操作,则结合快照和操作日志所得出的对应最近一次操作的目标数据对象的最新值为5+1+1+1+1+1+1=11。
本领域技术人员应能理解上述确定响应结果的方式仅为举例,其他现有的或今后可能出现的确定响应结果的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
优选地,所述响应结果反馈装置23反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照所对应历史操作日志的时序关系确定,所述历史操作日志与所述数据对象快照对应。其中,所述时序关系是指所述操作日志与所述历史操作日志所对应的操作处理发生的时间顺序关系。例如,将所有操作日志根据操作发生前后顺序关系进行编号,日志ID越小对应的操作发生的越早。因为操作日志中包括的是目标数据对象每次操作处理的变化值,因此需要根据时序顺序将数据对象快照中的值进行依次更新,才能保障最终所得的目标数据对象值的正确性。
优选地,图5展示了根据本申请一个方面的一种在分布式系统中实现强一致性读操作的设备示意图。相较于前文已提及的所述设备1所包括的操作日志查询装置21、操作日志获取装置22、响应结果反馈装置23。所述设备1还包括数据对象快照获取装置24。
具体地,数据对象快照获取装置24若所述操作日志不存在,获取所述目标数据对象对应的数据对象快照。所述数据对象快照是指根据操作日志所更新的数据对象,包括了数据对象的最新值,以及数据对象的历史更新信息。
在发起对目标对象数据对应的操作日志的查询后,对操作日志所在的存储端进行查询,若不存在所述操作日志,则对数据对象快照所在端的所述目标对象对应的数据对象快照进行获取。
在目标数据对象对应的操作日志不存在的情况下,因为目标数据对象对应数据快照所存储的目标数据对象的值,是根据历史操作日志进行更新的,因此最后一次更新对应的是最近一次的操作日志,也就是对应最近一次对于目标数据对象的操作。因而基于所获取数据对象快照,可获取最新的目标数据对象的值,从而保障强一致性读操作的实现。
本领域技术人员应能理解上述数据对象快照的方式仅为举例,其他现有的或今后可能出现的获取数据对象快照的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
优选地,所述响应结果反馈装置23反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照确定。
所述响应结果是指对于读请求所确定的反馈结果,关于目标数据对象的读请求所对应的响应结果,即为目标数据对象的值。为保障实现强一致性读请求,响应结果须对应目标数据对象最近操作的最新值。
在确定存在目标数据对象对应的数据对象快照后,读取其所对应的目标数据对象的值,将其作为读请求的响应结果进行反馈。因为所反馈的是根据最近一次操作所对应的操作日志而进行更新的值,因此满足了强一致性读请求的要求。
优选地,所述操作日志包括:所述目标数据对象被操作处理前后的变化值;所述操作日志对所述目标数据对象操作处理的时序信息。
其中,所述目标数据对象被操作处理后的变化值,是指在操作日志中记录了所述目标数据对象在操作处理前后的差异值,即操作日志为记载了目标数据对象全量值的增量操作日志类型。例如,目标数据对象为变量X,在操作日志中记录了其操作处理之后的增加值为1,即目标对象在操作处理之后的完整值为X+1。
因为所述操作日志仅包括了目标数据对象变化值,因此在查询到操作日志存在后需要同时获取数据对象快照,根据数据对象快照中存储的完整的操作处理之前的值,获取目标数据对象的完整最新值,从而将这一值作为响应结果反馈。
所述操作日志的时序信息,是指用以辨别操作日志中对应的操作发生时间先后顺序关系的信息。例如,操作日志的日志ID号,依照对目标数据对象的操作处理发生的先后顺序编号;或直接记录了操作处理发生的系统时间。
通过时序信息可以在获取操作日志后,对未应用于数据对象快照更新的操作日志进行排序,从而更新数据对象快照中存储的目标数据对象以获得最新值,实现强一致性读操作。
优选地,所述响应结果反馈装置23据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;若所述操作日志与所述历史操作日志重合,则删除与所述历史操作日志重合部分的所述操作日志;反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照与所剩所述操作日志的所述变化值确定。在具体的实施过程中,因为系统的分布式架构,会因为种种因素导致目标对象对应的数据对象快照和操作日志不会如图2中(a)情况所示刚好衔接。刚好衔接是指数据对象快照最近一次更新所对应的历史操作日志的时序信息,与操作日志的时序信息刚好连接,例如,历史操作日志为第4次更新,操作日志为第5次、第6次、第7次更新。若不会刚好衔接,则是指数据对象快照最近一次更新所对应的历史操作日志与操作日志有重复,例如,数据对象快照当前值对应的第4次操作后的更新值,而所获取的操作日志中对应第2次、第3次、第4次、第5次、第6次、第7次操作。此时即发生了所述操作日志与所述历史操作日志重合的情况。
根据操作日志中的时序信息判断所述操作日志与所述历史操作日志是否发生重合,例如日志ID是否有相同的情况。若发生重合则将有重合情况的操作日志均删除,例如图2中(b)和(c)情况,将NuwaLog中从last到max两个时序点之间的所有操作日志删除,从而使得目标对象对应的数据对象快照和操作日志不会如图2中(a)情况所示刚好衔接。之后,依据上文所述的方法,根据操作日志中的时序信息,根据操作日志所对应的操作处理发生的先后顺序,读取操作日志中的变化值,对应操作发生的从最早到最晚依次对数据对象快照中的值进行更新,并将更新完成后的值作为响应结果进行反馈。
排除重合的操作日志,使得对数据对象快照更新时不会发生同一次操作的重复更新,避免得到的响应结果是错误的目标数据对象的值。
优选地,所述响应结果反馈装置23根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;若所述操作日志与所述历史操作日志重合,则确定起点数据对象快照,其中,所述起点数据对象快照对应重合部分任意一个所述历史操作日志;反馈所述读请求的响应结果,其中,所述响应结果由所述起点数据对象快照,以及按时序排列的所述起点数据对象快照后的,所述操作日志的所述变化值确定。在具体的实施过程中,因为系统的分布式架构,会因为种种因素导致目标对象对应的数据对象快照和操作日志不会如图2中(a)情况所示刚好衔接。刚好衔接是指数据对象快照最近一次更新所对应的历史操作日志的时序信息,与操作日志的时序信息刚好连接,例如,历史操作日志为第4次更新,操作日志为第5次、第6次、第7次更新。若不会刚好衔接,则是指数据对象快照最近一次更新所对应的历史操作日志与操作日志有重复,例如,数据对象快照当前值对应的第4次操作后的更新值,而所获取的操作日志中对应第2次、第3次、第4次、第5次、第6次、第7次操作。此时即发生了所述操作日志与所述历史操作日志重合的情况。
根据操作日志中的时序信息判断所述操作日志与所述历史操作日志是否发生重合,例如日志ID是否有相同的情况。若发生重合则提供重合部分的任意一个历史操作日志所对应的数据对象快照中数据值的版本,并根据这一数据值对应的历史操作日志的时序,保留在这一操作之后发生的操作日志,从而使得目标对象对应的数据对象快照和操作日志不会如图2中(a)情况所示刚好衔接。之后,依据上文所述的方法,根据操作日志中的时序信息,根据操作日志所对应的操作处理发生的先后顺序,读取操作日志中的变化值,对应操作发生的从最早到最晚依次对数据对象快照中的值进行更新,并将更新完成后的值作为响应结果进行反馈。使得对数据对象快照更新时不会发生同一次操作的重复更新,避免得到的响应结果是错误的目标数据对象的值。
本领域技术人员应能理解上述确定响应结果的方式仅为举例,其他现有的或今后可能出现的确定响应结果的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
优选地,所述响应结果反馈装置23根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;若所述操作日志与所述历史操作日志不重合,且对应所述时序信息按时序排列无缺失;反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照与所述操作日志的所述变化值确定。对应所述时序信息按时序排列无缺失,是指目标对象对应的数据对象快照和操作日志如图2中(a)情况所示刚好衔接。刚好衔接是指数据对象快照最近一次更新所对应的历史操作日志的时序信息,与操作日志的时序信息刚好连接,例如,历史操作日志为第4次更新,操作日志为第5次、第6次、第7次更新。之后,依据上文所述的方法,根据操作日志中的时序信息,依据操作日志所对应的操作处理发生的先后顺序,读取操作日志中的变化值,对应操作发生的从最早到最晚依次对数据对象快照中的值进行更新,并将更新完成后的值作为响应结果进行反馈。
上文描述的一种在分布式系统中实现强一致性读操作的设备适用于读操作的目标数据对象对应的操作日志为增量操作日志类型。
优选地,根据本方案的另一个方面,一种包括一个或多个计算机可读存储介质的计算机程序产品,所述计算机可读存储介质上具有计算机可执行指令,所述计算机可执行指令构造成在被中间计算系统的一个或多个处理器执行时,使所述中间计算系统执行一种在分布式系统中实现强一致性读操作的方法,所述方法包括:
根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
若所述操作日志存在,获取所述操作日志;
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。
优选地,根据本方案的另一个方面,一种包括一个或多个计算机可读存储介质的计算机程序产品,所述计算机可读存储介质上具有计算机可执行指令,所述计算机可执行指令构造成在被中间计算系统的一个或多个处理器执行时,使所述中间计算系统执行一种在分布式系统中实现强一致性读操作的方法,所述方法包括:
根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照;
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (26)
1.一种在分布式系统中实现强一致性读操作的方法,包括:
根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
若所述操作日志存在,获取所述操作日志;
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。
2.根据权利要求1所述的方法,所述方法还包括:
若所述操作日志不存在,获取所述目标数据对象对应的数据对象快照;
其中,所述反馈所述读请求的响应结果包括:
反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照确定。
3.根据权利要求2所述的方法,其中,所述操作日志与所述数据对象快照在分布式系统中被分离存储。
4.根据权利要求1所述的方法,其中,所述操作日志包括:
所述目标数据对象被操作处理后的更新值;
所述操作日志的时序信息。
5.根据权利要求4所述的方法,其中,所述若所述操作日志存在,获取所述操作日志包括:
若所述操作日志存在,获取所述操作日志,其中,所述操作日志的所述时序信息最新。
6.根据权利要求5所述的方法,其中,所述反馈所述读请求的响应结果包括:
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志中所述更新值确定。
7.一种在分布式系统中实现强一致性读操作的方法,包括:
根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照;
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
8.根据权利要求7所述的方法,其中,所述方法还包括:
若所述操作日志不存在,获取所述目标数据对象对应的数据对象快照;
其中,所述反馈所述读请求的响应结果包括:
反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照确定。
9.根据权利要求7所述的方法,其中,所述反馈所述读请求的响应结果包括:
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照所对应历史操作日志的时序关系确定,所述历史操作日志与所述数据对象快照对应。
10.根据权利要求9所述的方法,其中,所述操作日志包括:
所述目标数据对象被操作处理前后的变化值;
所述操作日志对所述目标数据对象操作处理的时序信息。
11.根据权利要求10所述的方法,其中,所述反馈所述读请求的响应结果包括:
根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;
若所述操作日志与所述历史操作日志重合,则删除与所述历史操作日志重合部分的所述操作日志;
反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照与所剩所述操作日志的所述变化值确定。
12.根据权利要求10所述的方法,其中,所述反馈所述读请求的响应结果包括:
根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;
若所述操作日志与所述历史操作日志重合,则确定起点数据对象快照,其中,所述起点数据对象快照对应重合部分任意一个所述历史操作日志;
反馈所述读请求的响应结果,其中,所述响应结果由所述起点数据对象快照,以及按时序排列的所述起点数据对象快照后的,所述操作日志的所述变化值确定。
13.根据权利要求10所述的方法,其中,所述反馈所述读请求的响应结果包括:
根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;
若所述操作日志与所述历史操作日志不重合,且对应所述时序信息按时序排列无缺失;
反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照与所述操作日志的所述变化值确定。
14.一种在分布式系统中实现强一致性读操作的设备,包括:
操作日志查询装置,用于根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
操作日志获取装置,用于若所述操作日志存在,获取所述操作日志;
响应结果反馈装置,用于反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志确定。
15.根据权利要求14所述的设备,所述设备还包括:
数据对象快照获取装置,用于若所述操作日志不存在,获取所述目标数据对象对应的数据对象快照;
其中,所述响应结果反馈装置用于:
反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照确定。
16.根据权利要求15所述的设备,其中,所述操作日志与所述数据对象快照在分布式系统中被分离存储。
17.根据权利要求14所述的设备,其中,所述操作日志包括:
所述目标数据对象被操作处理后的更新值;
所述操作日志的时序信息。
18.根据权利要求17所述的设备,其中,所述操作日志获取装置用于:
若所述操作日志存在,获取所述操作日志,其中,所述操作日志的所述时序信息最新。
19.根据权利要求18所述的设备,其中,所述响应结果反馈装置用于:
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志中所述更新值确定。
20.一种在分布式系统中实现强一致性读操作的设备,包括:
操作日志查询装置,用于根据关于目标数据对象的读请求,查询所述目标数据对象对应的操作日志是否存在;
获取装置,用于若所述操作日志存在,获取所述操作日志和所述目标数据对象对应的数据对象快照;
响应结果反馈装置,用于反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照确定。
21.根据权利要求20所述的设备,其中,所述设备还包括:
数据对象快照获取装置,用于若所述操作日志不存在,获取所述目标数据对象对应的数据对象快照;
其中,所述响应结果反馈装置用于:
反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照确定。
22.根据权利要求20所述的设备,其中,所述响应结果反馈装置用于:
反馈所述读请求的响应结果,其中,所述响应结果由所述操作日志与所述数据对象快照所对应历史操作日志的时序关系确定,所述历史操作日志与所述数据对象快照对应。
23.根据权利要求22所述的设备,其中,所述操作日志包括:
所述目标数据对象被操作处理前后的变化值;
所述操作日志对所述目标数据对象操作处理的时序信息。
24.根据权利要求23所述的设备,其中,所述响应结果反馈装置用于:
根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;
若所述操作日志与所述历史操作日志重合,则删除与所述历史操作日志重合部分的所述操作日志;
反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照与所剩所述操作日志的所述变化值确定。
25.根据权利要求23所述的设备,其中,所述响应结果反馈装置用于:
根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;
若所述操作日志与所述历史操作日志重合,则确定起点数据对象快照,其中,所述起点数据对象快照对应重合部分任意一个所述历史操作日志;
反馈所述读请求的响应结果,其中,所述响应结果由所述起点数据对象快照,以及按时序排列的所述起点数据对象快照后的,所述操作日志的所述变化值确定。
26.根据权利要求23所述的设备,其中,所述响应结果反馈装置用于:
根据所述时序信息,判断所述操作日志与所述历史操作日志是否重合;
若所述操作日志与所述历史操作日志不重合,且对应所述时序信息按时序排列无缺失;
反馈所述读请求的响应结果,其中,所述响应结果由所述数据对象快照与所述操作日志的所述变化值确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610831827.6A CN107844491B (zh) | 2016-09-19 | 2016-09-19 | 一种在分布式系统中实现强一致性读操作的方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610831827.6A CN107844491B (zh) | 2016-09-19 | 2016-09-19 | 一种在分布式系统中实现强一致性读操作的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107844491A true CN107844491A (zh) | 2018-03-27 |
CN107844491B CN107844491B (zh) | 2021-11-16 |
Family
ID=61656610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610831827.6A Active CN107844491B (zh) | 2016-09-19 | 2016-09-19 | 一种在分布式系统中实现强一致性读操作的方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107844491B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408330A (zh) * | 2018-10-15 | 2019-03-01 | 东软集团股份有限公司 | 日志分析方法、装置、终端设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100036894A1 (en) * | 2008-08-05 | 2010-02-11 | Senda Riro | Data synchronization method, data synchronization program, database server and database system |
CN102855239A (zh) * | 2011-06-28 | 2013-01-02 | 清华大学 | 一种分布式地理文件系统 |
CN103221925A (zh) * | 2012-11-23 | 2013-07-24 | 华为技术有限公司 | 数据处理方法和存储设备 |
CN104216802A (zh) * | 2014-09-25 | 2014-12-17 | 北京金山安全软件有限公司 | 一种内存数据库恢复方法和设备 |
CN104298760A (zh) * | 2014-10-23 | 2015-01-21 | 北京京东尚科信息技术有限公司 | 一种应用于数据仓库的数据处理方法和数据处理装置 |
-
2016
- 2016-09-19 CN CN201610831827.6A patent/CN107844491B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100036894A1 (en) * | 2008-08-05 | 2010-02-11 | Senda Riro | Data synchronization method, data synchronization program, database server and database system |
CN102855239A (zh) * | 2011-06-28 | 2013-01-02 | 清华大学 | 一种分布式地理文件系统 |
CN103221925A (zh) * | 2012-11-23 | 2013-07-24 | 华为技术有限公司 | 数据处理方法和存储设备 |
CN104216802A (zh) * | 2014-09-25 | 2014-12-17 | 北京金山安全软件有限公司 | 一种内存数据库恢复方法和设备 |
CN104298760A (zh) * | 2014-10-23 | 2015-01-21 | 北京京东尚科信息技术有限公司 | 一种应用于数据仓库的数据处理方法和数据处理装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408330A (zh) * | 2018-10-15 | 2019-03-01 | 东软集团股份有限公司 | 日志分析方法、装置、终端设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107844491B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10439937B2 (en) | Service addressing in distributed environment | |
US10579266B2 (en) | Capacity forecasting based on capacity policies and transactions | |
CN107426265A (zh) | 数据一致性同步的方法及设备 | |
CN105760378A (zh) | 一种事务状态监控方法与设备 | |
US20180089039A1 (en) | Recovery of an infected and quarantined file in a primary storage controller from a secondary storage controller | |
CN108920725A (zh) | 一种对象存储的方法及对象存储网关 | |
CN107766354A (zh) | 一种用于保证数据正确性的方法与设备 | |
CN106919620B (zh) | 单页面处理方法及装置 | |
CN112148350A (zh) | 作品远程版本管理方法、电子设备以及计算机存储介质 | |
CN109542920B (zh) | 一种数据传输方法、装置、介质和电子设备 | |
US20200293997A1 (en) | Maintenance staff scheduling method based on compound internet of things (iot) and iot system | |
CN107844491A (zh) | 一种在分布式系统中实现强一致性读操作的方法与设备 | |
CN111078588B (zh) | 垃圾回收方法、装置、设备及存储介质 | |
CN116881258A (zh) | 一种基于erp系统的业务数据存储方法、设备及介质 | |
CN107577433B (zh) | 一种存储介质和文件数据的迁移方法、装置及设备 | |
CN115455121A (zh) | 一种实时可靠的数据同步传输方法、设备及介质 | |
CN114757777A (zh) | 用于区块链的最优链路选择方法及装置和电子设备 | |
CN110866380A (zh) | 一种填写信息字段内容的方法、终端 | |
CN111125047B (zh) | 冷热数据目录识别方法及装置 | |
EP3859549A1 (en) | Database migration method, apparatus, and device, and computer readable medium | |
CN105592029B (zh) | 虚拟资源转移操作状态的同步方法及服务器 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 | |
CN111008862A (zh) | 一种基于区块链的调查问卷信息采集方法、设备及介质 | |
US20140379859A1 (en) | Data transfer method and apparatus | |
CN112242933A (zh) | 一种tcpcopy测试方法、装置、介质及设备 |
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 |