数据更新方法及装置的制造方法

文档序号:10686860阅读:314来源:国知局
数据更新方法及装置的制造方法
【专利摘要】本公开是关于一种数据更新方法及装置。该方法包括:获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息;获取存储的最后版本的数据信息;将最后版本的数据信息和客户端修改版本的数据信息分别与基础版本的数据信息进行比较,得到比较结果;根据比较结果更新最后版本的数据信息。通过该技术方案,当有客户端修改数据时,根据客户端修改所基于的基础版本和存储的最后版本的数据信息以及修改后的数据信息对数据进行更新,可以有效地避免基础版本和最后版本不是一个版本时,所带来的数据更新发生冲突的问题,从而有效的解决数据更新冲突。
【专利说明】
数据更新方法及装置
技术领域
[0001 ]本公开涉及数据处理技术领域,尤其涉及一种数据更新方法及装置。
【背景技术】
[0002]目前,随着社会发展和通信技术的进步,人们可以使用多种工具工作、交流和娱乐,如电脑,智能移动设备等。也出现了很多种在多种设备间同步文件、联系人或其他数据的技术和工具。
[0003]在多个设备间同步时,由于一些多客户端修改的情况,可能会出现数据冲突。现在的一些同步方法不能很好的解决数据冲突的情况。

【发明内容】

[0004]本公开实施例提供一种数据更新方法及装置,所述技术方案如下:
[0005]根据本公开实施例的第一方面,提供一种数据更新方法,所述方法包括:
[0006]获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息;
[0007]获取存储的最后版本的数据信息;
[0008]将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果;
[0009]根据比较结果更新所述最后版本的数据信息。
[0010]在一个实施例中,所述将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果,包括:
[0011]将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据;将所述客户端修改版本的数据信息与所述基础版本的数据信息进行比较,得到所述客户端修改版本相对于所述基础版本的第二替代数据和第二被替代数据;
[0012]所述根据比较结果更新所述最后版本的数据信息,包括:
[0013]在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据;
[0014]根据所述操作后数据更新所述最后版本的数据信息,使得更新后的最后版本的数据中不存在之前被替代的被替代数据。
[0015]在一个实施例中,所述数据信息包括数据本身、或者相比上一个版本的不同数据。
[0016]在一个实施例中,在所述数据信息包括所述数据本身时,所述将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据,包括:
[0017]将所述最后版本的数据与所述基础版本的数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。
[0018]在一个实施例中,在所述数据信息包括所述相比上一个版本的不同数据时,所述将所述基础版本之后的最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据,包括:
[0019]将所述基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与所述基础版本相对于所述基础版本的上一版本的不同数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。
[0020]在一个实施例中,所述方法还包括:
[0021 ]判断所述客户端修改版本对应的标识与所述最后版本对应的标识是否相同;
[0022]当所述客户端修改版本的标识与所述最后版本的标识相同时,确定未发生更新冲关;
[0023]当所述客户端修改版本的标识与所述最后版本的标识不相同时,确定发生了更新冲突;
[0024]在确定发生了更新冲突时,执行所述获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息的步骤。
[0025]在一个实施例中,当未发生更新冲突时,所述方法还包括:
[0026]根据所述客户端修改版本的数据信息更新所述最后版本的数据信息。
[0027]在一个实施例中,所述方法还包括:
[0028]确定所述更新后的最后版本对应的标识;
[0029]将所述更新后的最后版本的数据信息与所述更新后的最后版本对应的标识进行对应存储;
[0030]输出反馈信息至所述客户端;所述反馈信息包括所述更新后的最后版本的数据信息和所述更新后的最后版本对应的标识。
[0031 ]在一个实施例中,所述方法还包括:
[0032]根据所述每个版本的数据信息的接收时间生成每个版本对应的标识;或者
[0033]为所述每个版本的数据信息生成版本号,根据所述版本号生成每个版本对应的标识。
[0034]在一个实施例中,所述替代操作包括加操作,所述被替代操作包括减操作。
[0035]在一个实施例中,所述在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据,包括:
[0036]在所述基础版本的数据上,对所述第一替代数据和所述第二替代数据进行加操作,对所述第一被替代数据和所述第二被替代数据进行减操作,并去除重复出现的加操作和减操作,获得操作后数据。
[0037]根据本公开实施例的第二方面,提供一种数据更新装置,所述装置包括:
[0038]第一获取模块,用于获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息;
[0039]第二获取模块,用于获取存储的最后版本的数据信息;
[0040]比较模块,用于将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果;[0041 ]第一更新模块,用于根据比较结果更新所述最后版本的数据信息。
[0042]在一个实施例中,所述比较模块包括:
[0043]第一比较子模块,用于将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据;
[0044]第二比较子模块,用于将所述客户端修改版本的数据信息与所述基础版本的数据信息进行比较,得到所述客户端修改版本相对于所述基础版本的第二替代数据和第二被替代数据;
[0045]所述第一更新模块包括:
[0046]执行子模块,用于在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据;
[0047]更新子模块,用于根据所述操作后数据更新所述最后版本的数据信息,使得更新后的最后版本的数据中不存在之前被替代的被替代数据。
[0048]在一个实施例中,所述数据信息包括数据本身、或者相比上一个版本的不同数据。
[0049]在一个实施例中,在所述数据信息包括所述数据本身时,所述第一比较子模块用于:
[0050]将所述最后版本的数据与所述基础版本的数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。
[0051]在一个实施例中,在所述数据信息包括所述相比上一个版本的不同数据时,所述第一比较子模块用于:
[0052]将所述基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与所述基础版本相对于所述基础版本的上一版本的不同数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。
[0053]在一个实施例中,所述装置还包括:
[0054]判断模块,用于判断所述客户端修改版本对应的标识与所述最后版本对应的标识是否相同;
[0055]第一确定模块,用于当所述客户端修改版本的标识与所述最后版本的标识相同时,确定未发生更新冲突;
[0056]第二确定模块,用于当所述客户端修改版本的标识与所述最后版本的标识不相同时,确定发生了更新冲突;
[0057]执行模块,用于在确定发生了更新冲突时,触发第一获取模块获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息。
[0058]在一个实施例中,当未发生更新冲突时,所述装置还包括:
[0059]第二更新模块,用于根据所述客户端修改版本的数据信息更新所述最后版本的数据信息。
[0060]在一个实施例中,所述装置还包括:
[0061]第三确定模块,用于确定所述更新后的最后版本对应的标识;
[0062]存储模块,用于将所述更新后的最后版本的数据信息与所述更新后的最后版本对应的标识进行对应存储;
[0063]输出模块,用于输出反馈信息至所述客户端;所述反馈信息包括所述更新后的最后版本的数据信息和所述更新后的最后版本对应的标识。
[0064]在一个实施例中,所述装置还包括:
[0065]生成模块,用于根据所述每个版本的数据信息的接收时间生成每个版本对应的标识;或者为所述每个版本的数据信息生成版本号,根据所述版本号生成每个版本对应的标识。
[0066]在一个实施例中,所述替代操作包括加操作,所述被替代操作包括减操作。
[0067]在一个实施例中,所述执行子模块用于:
[0068]在所述基础版本的数据上,对所述第一替代数据和所述第二替代数据进行加操作,对所述第一被替代数据和所述第二被替代数据进行减操作,并去除重复出现的加操作和减操作,获得操作后数据。
[0069]根据本公开实施例的第三方面,提供一种数据更新装置,包括:
[0070]处理器;
[0071]用于存储处理器可执行指令的存储器;
[0072]其中,所述处理器被配置为:
[0073]获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息;
[0074]获取存储的最后版本的数据信息;
[0075]将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果;
[0076]根据比较结果更新所述最后版本的数据信息。
[0077]本公开的实施例提供的技术方案可以包括以下有益效果:
[0078](I)在一个实施例中,获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息;获取存储的最后版本的数据信息;将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果;根据比较结果更新所述最后版本的数据信息。本公开获取基础版本的数据信息、客户端修改基础版本的数据后得到的客户端修改版本的数据信息、以及存储的最后版本的数据信息,并将这三种数据信息进行比较,得到比较结果,进而根据比较结果更新最后版本的数据信息,这样,当有客户端修改数据时,根据客户端修改所基于的基础版本和存储的最后版本的数据信息以及修改后的数据信息对数据进行更新,可以有效地避免基础版本和最后版本不是一个版本时,所带来的数据更新发生冲突的问题,从而有效的解决数据更新冲突。
[0079](2)在另一个实施例中,所述将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果,包括:将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据;将所述客户端修改版本的数据信息与所述基础版本的数据信息进行比较,得到所述客户端修改版本相对于所述基础版本的第二替代数据和第二被替代数据;所述根据比较结果更新所述最后版本的数据信息,包括:在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据;根据所述操作后数据更新所述最后版本的数据信息,使得更新后的最后版本的数据中不存在之前被替代的被替代数据。本公开将最后版本的数据信息与基础版本的数据信息进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据,并将客户端修改版本的数据信息与基础版本的数据信息进行比较,得到客户端修改版本相对于基础版本的第二被替代数据和第二替代数据,并在基础版本的数据上,首先执行第一替代数据和第一被替代数据对应的替代操作,然后执行第二替代数据和第二被替代数据对应的替代操作,这样,可以保证更新后的数据信息可以包含所有的更新操作,从而有效的解决数据更新冲突的问题,同时,在更新后的最后版本的数据中不存在之前被替代的被替代数据,也就是说,之前已经被其它数据替代的数据不会出现在更新后的最后版本的数据中,这样,保证用户数据不会丢失并且没有用户舍弃的冗余数据残留。
[0080](3)在另一个实施例中,所述数据信息包括数据本身、或者相比上一个版本的不同数据。本公开中数据信息既可以是数据本身,即如联系人、通讯号码等。也可以是相比于上一个版本的不同数据,即更新的数据,如上一个版本的联系人为王二、通讯号码为135XXXXXXXXXX,那么数据信息可以是联系人为王鹏,即在上一个版本的基础上将王二修改为王鹏。这样,数据信息可以采用不用的形式,可以满足不同用户的不同存储需求。
[0081](4)在另一个实施例中,在所述数据信息包括所述数据本身时,所述将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据,包括:将所述最后版本的数据与所述基础版本的数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。本公开中当数据信息为数据本身时,可以直接将最后版本的数据与基础版本的数据进行比较,从而确定出替代数据和被替代数据,这样,数据与数据之间直接对比,更方便确定。
[0082](5)在另一个实施例中,在所述数据信息包括所述相比上一个版本的不同数据时,所述将所述基础版本之后的最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据,包括:将所述基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与所述基础版本相对于所述基础版本的上一版本的不同数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。本公开中,数据信息还可以是相比上一个版本的不同数据,这样,将基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与基础版本相对于基础版本的上一版本的不同数据进行比较,可以得到最后版本相对于基础版本的第一替代数据和第一被替代数据。
[0083](6)在另一个实施例中,判断所述客户端修改版本对应的标识与所述最后版本对应的标识是否相同;当所述客户端修改版本的标识与所述最后版本的标识相同时,确定未发生更新冲突;当所述客户端修改版本的标识与所述最后版本的标识不相同时,确定发生了更新冲突;在确定发生了更新冲突时,执行所述获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息的步骤。本公开中,在执行获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息的步骤之前,先判断客户端修改版本对应的标识与最后版本对应的标识是否相同,当两者相同时,则说明不存在更新冲突,当两者不相同时,则说明发生了更新冲突,此时可以执行获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息的步骤,即使用本公开的技术方案避免数据更新冲突的发生。这样,可以快速的判定数据更新冲突是否发生,从而准确的合并产生的冲突。
[0084](7)在另一个实施例中,当未发生更新冲突时,根据所述客户端修改版本的数据信息更新所述最后版本的数据信息。本公开中如果确定未发生更新冲突,直接根据客户端修改版本的数据信息更新最后版本的数据信息,从而保证数据更新的便利性。
[0085](8)在另一个实施例中,确定所述更新后的最后版本对应的标识;将所述更新后的最后版本的数据信息与所述更新后的最后版本对应的标识进行对应存储;输出反馈信息至所述客户端;所述反馈信息包括所述更新后的最后版本的数据信息和所述更新后的最后版本对应的标识。本公开中,当对最后版本的数据信息进行更新后,可以直接将更新后的最后版本的数据信息与更新后的最后版本对应的标识进行对应存储,进而将其反馈至终端,这样,终端可以直接获取更新后的最后版本的数据信息和对应的标识。
[0086](9)在另一个实施例中,根据所述每个版本的数据信息的接收时间生成每个版本对应的标识;或者为所述每个版本的数据信息生成版本号,根据所述版本号生成每个版本对应的标识。本公开中版本对应的标识可以是根据数据信息的接收时间生成的,也可以是为每个版本分配的版本号,即只要能表征版本的先后顺序即可,从而可以根据版本对应的标识确定哪个是最新版本的数据。
[0087](10)在另一个实施例中,所述替代操作包括加操作,所述被替代操作包括减操作。本公开中,对替代数据进行加操作,对被替代数据进行减操作,可以更准确的合并产生的数据冲突,在保证用户数据不会丢失的同时,不会产生已被舍弃的冗余数据的残留。
[0088](11)在另一个实施例中,所述在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据,包括:在所述基础版本的数据上,对所述第一替代数据和所述第二替代数据进行加操作,对所述第一被替代数据和所述第二被替代数据进行减操作,并去除重复出现的加操作和减操作,获得操作后数据。本公开中,对第一替代数据和第二替代数据进行加操作,对第一被替代数据和第二被替代数据进行减操作,并去除重复出现的加操作和减操作,从而在保证用户数据不会丢失的同时,不会产生已被舍弃的冗余数据的残留。
[0089]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
【附图说明】
[0090]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0091 ]图1是根据一示例性实施例示出的一种数据更新方法的流程图。
[0092]图2是根据一示例性实施例示出的数据更新方法中步骤S103的流程图。
[0093]图3是根据一示例性实施例示出的数据更新方法中步骤S104的流程图。
[0094]图4是根据一示例性实施例示出的另一种数据更新方法的流程图。
[0095]图5是根据一示例性实施例示出的又一种数据更新方法的流程图。
[0096]图6是根据一示例性实施例示出的再一种数据更新方法的流程图。
[0097]图7是根据一示例性实施例示出的再一种数据更新方法的流程图。
[0098]图8是根据一示例性实施例示出的再一种数据更新方法的流程图。
[0099]图9是根据一示例性实施例示出的再一种数据更新方法的流程图。
[0100]图10是根据一示例性实施例示出的再一种数据更新方法的流程图。
[0101]图11是根据一示例性实施例示出的一种数据更新装置的框图。
[0102]图12是根据一示例性实施例示出的一种数据更新装置中比较模块的框图。
[0103]图13是根据一示例性实施例示出的一种数据更新装置中第一更新模块的框图。
[0104]图14是根据一示例性实施例示出的又一种数据更新装置的框图。
[0105]图15是根据一示例性实施例示出的再一种数据更新装置的框图。
[0106]图16是根据一示例性实施例示出的再一种数据更新装置的框图。
[0107]图17是根据一示例性实施例示出的再一种数据更新装置的框图。
[0108]图18是根据一示例性实施例示出的适用于数据更新装置的框图。
【具体实施方式】
[0109]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0110]本公开实施例提供了一种数据更新方法,该方法可用于服务器中,如图1所示,该方法包括步骤SI O1-SI 04:
[0111]在步骤SlOl中,获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息;
[0112]基础版本的数据信息,即客户端修改所基于的数据信息。而客户端在基础版本的数据信息的基础上进行修改所得到的数据信息即客户端修改版本的数据信息。
[0113]在步骤S102中,获取存储的最后版本的数据信息;存储的最后版本的数据信息,可以是服务器中存储的最新版本的数据信息。
[0114]在步骤S103中,将最后版本的数据信息和客户端修改版本的数据信息分别与基础版本的数据信息进行比较,得到比较结果;
[0115]在步骤S104中,根据比较结果更新最后版本的数据信息。
[0116]本公开获取基础版本的数据信息、客户端修改基础版本的数据后得到的客户端修改版本的数据信息、以及存储的最后版本的数据信息,并将这三种数据信息进行比较,得到比较结果,进而根据比较结果更新最后版本的数据信息,这样,当有客户端修改数据时,根据客户端修改所基于的基础版本和存储的最后版本的数据信息以及修改后的数据信息对数据进行更新,可以有效地避免基础版本和最后版本不是一个版本时,所带来的数据更新发生冲突的问题,从而有效的解决数据更新冲突。
[0117]如图2所示,在一个实施例中,上述步骤S103包括步骤S201-S202:
[0118]在步骤S201中,将最后版本的数据信息与基础版本的数据信息进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据;
[0119]在步骤S202中,将客户端修改版本的数据信息与基础版本的数据信息进行比较,得到客户端修改版本相对于基础版本的第二替代数据和第二被替代数据。
[0120]例如,最后版本的数据信息为张三13910000000,而基础版本的数据信息为13810000000,则第一替代数据为139,第一被替代数据为138。
[0121]如图3所示,在一个实施例中,上述步骤S104包括步骤S301-S302:
[0122]在步骤S301中,在基础版本的数据上,执行第一替代数据和第二替代数据对应的替代操作,执行第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据;
[0123]在步骤S302中,根据操作后数据更新最后版本的数据信息,使得更新后的最后版本的数据中不存在之前被替代的被替代数据。
[0124]本公开将最后版本的数据信息与基础版本的数据信息进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据,并将客户端修改版本的数据信息与基础版本的数据信息进行比较,得到客户端修改版本相对于基础版本的第二被替代数据和第二替代数据,并在基础版本的数据上,首先执行第一替代数据和第一被替代数据对应的替代操作,然后执行第二替代数据和第二被替代数据对应的替代操作,这样,可以保证更新后的数据信息可以包含所有的更新操作,从而有效的解决数据更新冲突的问题,同时,在更新后的最后版本的数据中不存在之前被替代的被替代数据,也就是说,之前已经被其它数据替代的数据不会出现在更新后的最后版本的数据中,这样,保证用户数据不会丢失并且没有用户舍弃的冗余数据残留。
[0125]在一个实施例中,数据信息包括数据本身、或者相比上一个版本的不同数据。
[0126]本公开中数据信息既可以是数据本身,即如联系人、通讯号码等。也可以是相比于上一个版本的不同数据,即更新的数据,如上一个版本的联系人为王二、通讯号码为135XXXXXXXX,那么数据信息可以是联系人为王鹏,即在上一个版本的基础上将王二修改为王鹏。这样,数据信息可以采用不用的形式,可以满足不同用户的不同存储需求。
[0127]如图4所示,在一个实施例中,在数据信息包括数据本身时,上述步骤S201包括步骤S401:
[0128]在步骤S401中,将最后版本的数据与基础版本的数据进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据。
[0129]本公开中当数据信息为数据本身时,可以直接将最后版本的数据与基础版本的数据进行比较,从而确定出替代数据和被替代数据,这样,数据与数据之间直接对比,更方便确定。
[0130]例如,最后版本的数据信息为张三13910000000,而基础版本的数据信息为13810000000,则第一替代数据为139,第一被替代数据为138。
[0131]如图5所示,在一个实施例中,在数据信息包括相比上一个版本的不同数据时,上述步骤S201包括步骤S501:
[0132]在步骤S501中,将基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与基础版本相对于基础版本的上一版本的不同数据进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据。
[0133]本公开中,数据信息还可以是相比上一个版本的不同数据,这样,将基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与基础版本相对于基础版本的上一版本的不同数据进行比较,可以得到最后版本相对于基础版本的第一替代数据和第一被替代数据。这样,只记录相比上一个版本的不同数据,可以节省数据存储空间。
[0134]如图6所示,在一个实施例中,上述方法还包括步骤S601-S604:
[0135]在步骤S601中,判断客户端修改版本对应的标识与最后版本对应的标识是否相同;根据版本对应的标识是否相同即可确定是不是同一版本,如果版本对应的标识相同,则为同一版本,如果版本对应的标识不同,则为不同版本。
[0136]在步骤S602中,当客户端修改版本的标识与最后版本的标识相同时,确定未发生更新冲关;
[0137]在步骤S603中,当客户端修改版本的标识与最后版本的标识不相同时,确定发生了更新冲关;
[0138]在步骤S604中,在确定发生了更新冲突时,执行获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息的步骤。
[0139]本公开中,在执行获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息的步骤之前,先判断客户端修改版本对应的标识与最后版本对应的标识是否相同,当两者相同时,则说明不存在更新冲突,当两者不相同时,则说明发生了更新冲突,此时可以执行获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息的步骤,即使用本公开的技术方案避免数据更新冲突的发生。这样,可以快速的判定数据更新冲突是否发生,从而准确的合并产生的冲突。
[0140]例如,服务器中存储的联系人的最后版本对应的标识为6,而客户端修改的联系人的版本对应的标识为5 ’,其修改基于的基础版本对应的标识为5,此时,客户端修改版本对应的标识与最后版本对应的标识不同,说明发生了数据更新冲突。
[0141]如图7所示,在一个实施例中,当未发生更新冲突时,上述方法还包括步骤S701:
[0142]在步骤S701中,根据客户端修改版本的数据信息更新最后版本的数据信息。
[0143]本公开中如果确定未发生更新冲突,直接根据客户端修改版本的数据信息更新最后版本的数据信息,从而保证数据更新的便利性。
[0144]如图8所示,在一个实施例中,上述方法还包括步骤S801-S803:
[0145]在步骤S801中,确定更新后的最后版本对应的标识;
[0146]在步骤S802中,将更新后的最后版本的数据信息与更新后的最后版本对应的标识进行对应存储;
[0147]在步骤S803中,输出反馈信息至客户端;反馈信息包括更新后的最后版本的数据信息和更新后的最后版本对应的标识。
[0148]本公开中,当对最后版本的数据信息进行更新后,可以直接将更新后的最后版本的数据信息与更新后的最后版本对应的标识进行对应存储,进而将其反馈至终端,这样,终端可以直接获取更新后的最后版本的数据信息和对应的标识。
[0149]如图9所示,在一个实施例中,上述方法还包括步骤S901:
[0150]在步骤S901中,根据每个版本的数据信息的接收时间生成每个版本对应的标识;或者为每个版本的数据信息生成版本号,根据版本号生成每个版本对应的标识。
[0151]本公开中版本对应的标识可以是根据数据信息的接收时间生成的,也可以是为每个版本分配的版本号,即只要能表征版本的先后顺序即可,从而可以根据版本对应的标识确定哪个是最新版本的数据。
[0152]在一个实施例中,替代操作包括加操作,被替代操作包括减操作。
[0153]本公开中,对替代数据进行加操作,对被替代数据进行减操作,可以更准确的合并产生的数据冲突,在保证用户数据不会丢失的同时,不会产生已被舍弃的冗余数据的残留。
[0154]如图10所示,在一个实施例中,上述步骤S302包括步骤S1001:
[0155]在步骤S1001中,在基础版本的数据上,对第一替代数据和第二替代数据进行加操作,对第一被替代数据和第二被替代数据进行减操作,并去除重复出现的加操作和减操作,获得操作后数据。
[0156]本公开中,对第一替代数据和第二替代数据进行加操作,对第一被替代数据和第二被替代数据进行减操作,并去除重复出现的加操作和减操作,从而在保证用户数据不会丢失的同时,不会产生已被舍弃的冗余数据的残留。
[0157]下面以一个具体实施例详细说明本公开的技术方案。
[0158]同步过程中通过版本号或者修改时间,或者其他可以表明修改发生先后的标示来表明修改发生的次序,下文以版本号为例。其中,服务器需保存修改的每个版本。
[0159]冲突发现:
[0160]I)客户端上传修改时,要同时带上修改基于的版本号。比如:客户端从服务器取回数据时,版本号为5;则在用户修改后,上传修改时,要将版本号5同时发送给服务器。
[0161]2)服务器收到客户端修改请求时,比较客户端修改基于的版本和服务器当前最新版本的新旧。如果客户端修改基于的版本和服务器当前服务器最新版本相同,则没有冲突发生,使用客户端数据覆盖服务端最新数据;如果客户端修改基于的版本旧于服务器最新版本,则发生修改冲突(由于其他客户端提交修改,导致服务器端状态被更新),开始合并冲突逻辑。
[0162]冲突合并:
[0163]I)服务器找到客户端上传修改基于版本的历史记录,以下称为基础版本。
[0164]2)对于有多条记录数据,如电话,邮箱等:将修改抽象为对增加和删除,分别计算服务器最新版本和基础版本,客户端提交修改的版本和基础版本的差异,即将最后版本的数据信息与基础版本的数据信息进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据,将客户端修改版本的数据信息与基础版本的数据信息进行比较,得到客户端修改版本相对于基础版本的第二替代数据和第二被替代数据,并在基础版本的数据上,执行第一替代数据和第二替代数据对应的替代操作,执行第一被替代数据和第二被替代数据对应的被替代操作,即将两次差异在基础版本上重放。
[0165]而对于只有一条的记录数据,如姓名等:同上条计算两个记录之间的差异,若都没有修改,则保留原值;有一方修改的话,则在基础版本上重放修改一方的修改;若双方都做了修改,则重放客户端上传的修改,并将服务器当前最新记录的内容,增加到基础版本的备注中。
[0166]4)将上述重放操作后的数据,作为冲突合并的最终结果,保存在服务器上。
[0167]示例:
[0168]1、多条记录的情况:
[0169]版本为5的联系人(服务器保存的历史版本):
[0170]姓名:张三
[0171]手机号码:110,120。
[0172]版本为6的联系人(服务器最新记录):
[0173]姓名:张三
[0174]手机号码:119,120。
[0175]客户端提交基于版本号5的联系人修改5’:
[0176]姓名:张三
[0177]手机号码:110,122。
[0178]冲突处理结果,版本号为7的联系人:
[0179]姓名:张三
[0180]手机号码:119,122。
[0181]运算方式:
[0182]6 相对于 5:-110,+119
[0183]5,相对与 5:_120,+122
[0184]将这两个操作在版本5上重放,得到119,122。
[0185]2、姓名等单条数据记录的情况:
[0186]版本为5的联系人(服务器保存的历史版本):
[0187]姓名:张三
[0188]手机号码:110,120。
[0189]版本为6的联系人(服务器最新记录):
[0190]姓名:张三丰
[0191]手机号码:110,120。
[0192]客户端提交基于版本号5的联系人修改5’:
[0193]姓名:张君宝
[0194]手机号码:110,120。
[0195]冲突处理结果,版本号为7的联系人:
[0196]姓名:张君宝
[0197]手机号码:110,120。
[0198]备注:姓名张三丰
[0199]具体地,本冲突发现和处理方案还用于其他以清晰判断出差异的数据的同步,如便签,日历等。
[0200]通过上述技术方案,当有客户端修改数据时,根据客户端修改所基于的基础版本和存储的最后版本的数据信息以及修改后的数据信息对数据进行更新,可以有效地避免基础版本和最后版本不是一个版本时,所带来的数据更新发生冲突的问题,从而有效的解决数据更新冲突。
[0201]下述为本公开装置实施例,可以用于执行本公开方法实施例。
[0202]图11是根据一示例性实施例示出的一种数据更新装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为服务器的部分或者全部。如图11所示,该数据更新装置包括:
[0203]第一获取模块111,被配置为获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息;
[0204]第二获取模块112,被配置为获取存储的最后版本的数据信息;
[0205]比较模块113,被配置为将最后版本的数据信息和客户端修改版本的数据信息分别与基础版本的数据信息进行比较,得到比较结果;
[0206]第一更新模块114,被配置为根据比较结果更新最后版本的数据信息。
[0207]本公开获取基础版本的数据信息、客户端修改基础版本的数据后得到的客户端修改版本的数据信息、以及存储的最后版本的数据信息,并将这三种数据信息进行比较,得到比较结果,进而根据比较结果更新最后版本的数据信息,这样,当有客户端修改数据时,根据客户端修改所基于的基础版本和存储的最后版本的数据信息以及修改后的数据信息对数据进行更新,可以有效地避免基础版本和最后版本不是一个版本时,所带来的数据更新发生冲突的问题,从而有效的解决数据更新冲突。
[0208]如图12所示,在一个实施例中,比较模块113包括:
[0209]第一比较子模块121,被配置为将最后版本的数据信息与基础版本的数据信息进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据;
[0210]第二比较子模块122,被配置为将客户端修改版本的数据信息与基础版本的数据信息进行比较,得到客户端修改版本相对于基础版本的第二替代数据和第二被替代数据。
[0211]例如,最后版本的数据信息为张三13910000000,而基础版本的数据信息为13810000000,则第一替代数据为139,第一被替代数据为138。
[0212]如图13所示,在一个实施例中,第一更新模块114包括:
[0213]执行子模块131,被配置为在基础版本的数据上,执行第一替代数据和第二替代数据对应的替代操作,执行第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据;
[0214]更新子模块132,被配置为根据操作后数据更新最后版本的数据信息,使得更新后的最后版本的数据中不存在之前被替代的被替代数据。
[0215]本公开将最后版本的数据信息与基础版本的数据信息进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据,并将客户端修改版本的数据信息与基础版本的数据信息进行比较,得到客户端修改版本相对于基础版本的第二被替代数据和第二替代数据,并在基础版本的数据上,首先执行第一替代数据和第一被替代数据对应的替代操作,然后执行第二替代数据和第二被替代数据对应的替代操作,这样,可以保证更新后的数据信息可以包含所有的更新操作,从而有效的解决数据更新冲突的问题,同时,在更新后的最后版本的数据中不存在之前被替代的被替代数据,也就是说,之前已经被其它数据替代的数据不会出现在更新后的最后版本的数据中,这样,保证用户数据不会丢失并且没有用户舍弃的冗余数据残留。
[0216]在一个实施例中,数据信息包括数据本身、或者相比上一个版本的不同数据。
[0217]本公开中数据信息既可以是数据本身,即如联系人、通讯号码等。也可以是相比于上一个版本的不同数据,即更新的数据,如上一个版本的联系人为王二、通讯号码为135XXXXXXXX,那么数据信息可以是联系人为王鹏,即在上一个版本的基础上将王二修改为王鹏。这样,数据信息可以采用不用的形式,可以满足不同用户的不同存储需求。
[0218]在一个实施例中,在数据信息包括数据本身时,第一比较子模块用于:
[0219]将最后版本的数据与基础版本的数据进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据。
[0220]本公开中当数据信息为数据本身时,可以直接将最后版本的数据与基础版本的数据进行比较,从而确定出替代数据和被替代数据,这样,数据与数据之间直接对比,更方便确定。
[0221]例如,最后版本的数据信息为张三13910000000,而基础版本的数据信息为13810000000,则第一替代数据为139,第一被替代数据为138。
[0222]在一个实施例中,在数据信息包括相比上一个版本的不同数据时,第一比较子模块用于:
[0223]将基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与基础版本相对于基础版本的上一版本的不同数据进行比较,得到最后版本相对于基础版本的第一替代数据和第一被替代数据。
[0224]本公开中,数据信息还可以是相比上一个版本的不同数据,这样,将基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与基础版本相对于基础版本的上一版本的不同数据进行比较,可以得到最后版本相对于基础版本的第一替代数据和第一被替代数据。这样,只记录相比上一个版本的不同数据,可以节省数据存储空间。
[0225]如图14所示,在一个实施例中,上述装置还包括:
[0226]判断模块141,被配置为判断客户端修改版本对应的标识与最后版本对应的标识是否相同;
[0227]第一确定模块142,被配置为当客户端修改版本的标识与最后版本的标识相同时,确定未发生更新冲突;
[0228]第二确定模块143,被配置为当客户端修改版本的标识与最后版本的标识不相同时,确定发生了更新冲突;
[0229]执行模块144,被配置为在确定发生了更新冲突时,触发第一获取模块获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息。
[0230]本公开中,在执行获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息的步骤之前,先判断客户端修改版本对应的标识与最后版本对应的标识是否相同,当两者相同时,则说明不存在更新冲突,当两者不相同时,则说明发生了更新冲突,此时可以执行获取基础版本的数据信息和客户端修改基础版本的数据后得到的客户端修改版本的数据信息的步骤,即使用本公开的技术方案避免数据更新冲突的发生。这样,可以快速的判定数据更新冲突是否发生,从而准确的合并产生的冲突。
[0231]例如,服务器中存储的联系人的最后版本对应的标识为6,而客户端修改的联系人的版本对应的标识为5 ’,其修改基于的基础版本对应的标识为5,此时,客户端修改版本对应的标识与最后版本对应的标识不同,说明发生了数据更新冲突。
[0232]如图15所示,在一个实施例中,当未发生更新冲突时,上述装置还包括:
[0233]第二更新模块151,被配置为根据客户端修改版本的数据信息更新最后版本的数据信息。
[0234]本公开中如果确定未发生更新冲突,直接根据客户端修改版本的数据信息更新最后版本的数据信息,从而保证数据更新的便利性。
[0235]如图16所示,在一个实施例中,上述装置还包括:
[0236]第三确定模块161,被配置为确定更新后的最后版本对应的标识;
[0237]存储模块162,被配置为将更新后的最后版本的数据信息与更新后的最后版本对应的标识进行对应存储;
[0238]输出模块163,被配置为输出反馈信息至客户端;反馈信息包括更新后的最后版本的数据信息和更新后的最后版本对应的标识。
[0239]本公开中,当对最后版本的数据信息进行更新后,可以直接将更新后的最后版本的数据信息与更新后的最后版本对应的标识进行对应存储,进而将其反馈至终端,这样,终端可以直接获取更新后的最后版本的数据信息和对应的标识。
[0240]如图17所示,在一个实施例中,上述装置还包括:
[0241]生成模块171,被配置为根据所述每个版本的数据信息的接收时间生成每个版本对应的标识;或者为所述每个版本的数据信息生成版本号,根据所述版本号生成每个版本对应的标识。
[0242]本公开中版本对应的标识可以是根据数据信息的接收时间生成的,也可以是为每个版本分配的版本号,即只要能表征版本的先后顺序即可,从而可以根据版本对应的标识确定哪个是最新版本的数据。
[0243]在一个实施例中,所述替代操作包括加操作,所述被替代操作包括减操作。
[0244]本公开中,对替代数据进行加操作,对被替代数据进行减操作,可以更准确的合并产生的数据冲突,在保证用户数据不会丢失的同时,不会产生已被舍弃的冗余数据的残留。
[0245]在一个实施例中,所述执行子模块用于:
[0246]在所述基础版本的数据上,对所述第一替代数据和所述第二替代数据进行加操作,对所述第一被替代数据和所述第二被替代数据进行减操作,并去除重复出现的加操作和减操作,获得操作后数据。
[0247]本公开中,对第一替代数据和第二替代数据进行加操作,对第一被替代数据和第二被替代数据进行减操作,并去除重复出现的加操作和减操作,从而在保证用户数据不会丢失的同时,不会产生已被舍弃的冗余数据的残留。
[0248]关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0249]图18是根据一示例性实施例示出的一种用于数据更新装置的框图。例如,装置1800可以被提供为一服务器。装置1800包括处理组件1822,其进一步包括一个或多个处理器,以及由存储器1832所代表的存储器资源,用于存储可由处理组件1822的执行的指令,例如应用程序。存储器1832中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1822被配置为执行指令,以执行上述方法。
[0250]装置1800还可以包括一个电源组件1826被配置为执行装置1800的电源管理,一个有线或无线网络接口 1850被配置为将装置1800连接到网络,和一个输入输出(I/O)接口1858。装置1800可以操作基于存储在存储器1832的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
[0251]一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置1800的处理器执行时,使得装置1800能够执行上述数据更新方法,所述方法包括:
[0252]获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息;
[0253]获取存储的最后版本的数据信息;
[0254]将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果;
[0255]根据比较结果更新所述最后版本的数据信息。
[0256]在一个实施例中,所述将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果,包括:
[0257]将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据;将所述客户端修改版本的数据信息与所述基础版本的数据信息进行比较,得到所述客户端修改版本相对于所述基础版本的第二替代数据和第二被替代数据;
[0258]所述根据比较结果更新所述最后版本的数据信息,包括:
[0259]在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据;
[0260]根据所述操作后数据更新所述最后版本的数据信息,使得更新后的最后版本的数据中不存在之前被替代的被替代数据。
[0261]在一个实施例中,所述数据信息包括数据本身、或者相比上一个版本的不同数据。
[0262]在一个实施例中,在所述数据信息包括所述数据本身时,所述将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据,包括:
[0263]将所述最后版本的数据与所述基础版本的数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。
[0264]在一个实施例中,在所述数据信息包括所述相比上一个版本的不同数据时,所述将所述基础版本之后的最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据,包括:
[0265]将所述基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与所述基础版本相对于所述基础版本的上一版本的不同数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。
[0266]在一个实施例中,所述方法还包括:
[0267]判断所述客户端修改版本对应的标识与所述最后版本对应的标识是否相同;
[0268]当所述客户端修改版本的标识与所述最后版本的标识相同时,确定未发生更新冲关;
[0269]当所述客户端修改版本的标识与所述最后版本的标识不相同时,确定发生了更新冲突;
[0270]在确定发生了更新冲突时,执行所述获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息的步骤。
[0271]在一个实施例中,当未发生更新冲突时,所述方法还包括:
[0272]根据所述客户端修改版本的数据信息更新所述最后版本的数据信息。
[0273]在一个实施例中,所述方法还包括:
[0274]确定所述更新后的最后版本对应的标识;
[0275]将所述更新后的最后版本的数据信息与所述更新后的最后版本对应的标识进行对应存储;
[0276]输出反馈信息至所述客户端;所述反馈信息包括所述更新后的最后版本的数据信息和所述更新后的最后版本对应的标识。
[0277]在一个实施例中,所述方法还包括:
[0278]根据所述每个版本的数据信息的接收时间生成每个版本对应的标识;或者
[0279]为所述每个版本的数据信息生成版本号,根据所述版本号生成每个版本对应的标识。
[0280]在一个实施例中,所述替代操作包括加操作,所述被替代操作包括减操作。
[0281]在一个实施例中,所述在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据,包括:
[0282]在所述基础版本的数据上,对所述第一替代数据和所述第二替代数据进行加操作,对所述第一被替代数据和所述第二被替代数据进行减操作,并去除重复出现的加操作和减操作,获得操作后数据。
[0283]本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0284]应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
【主权项】
1.一种数据更新方法,其特征在于,所述方法包括: 获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息; 获取存储的最后版本的数据信息; 将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果; 根据比较结果更新所述最后版本的数据信息。2.如权利要求1所述的方法,其特征在于,所述将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果,包括: 将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据;将所述客户端修改版本的数据信息与所述基础版本的数据信息进行比较,得到所述客户端修改版本相对于所述基础版本的第二替代数据和第二被替代数据; 所述根据比较结果更新所述最后版本的数据信息,包括: 在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据; 根据所述操作后数据更新所述最后版本的数据信息,使得更新后的最后版本的数据中不存在之前被替代的被替代数据。3.如权利要求2所述的方法,其特征在于, 所述数据信息包括数据本身、或者相比上一个版本的不同数据。4.如权利要求3所述的方法,其特征在于,在所述数据信息包括所述数据本身时,所述将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据,包括: 将所述最后版本的数据与所述基础版本的数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。5.如权利要求3所述的方法,其特征在于,在所述数据信息包括所述相比上一个版本的不同数据时,所述将所述基础版本之后的最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据,包括: 将所述基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与所述基础版本相对于所述基础版本的上一版本的不同数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。6.如权利要求1所述的方法,其特征在于,所述方法还包括: 判断所述客户端修改版本对应的标识与所述最后版本对应的标识是否相同; 当所述客户端修改版本的标识与所述最后版本的标识相同时,确定未发生更新冲突; 当所述客户端修改版本的标识与所述最后版本的标识不相同时,确定发生了更新冲关; 在确定发生了更新冲突时,执行所述获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息的步骤。7.如权利要求6所述的方法,其特征在于,当未发生更新冲突时,所述方法还包括: 根据所述客户端修改版本的数据信息更新所述最后版本的数据信息。8.如权利要求3所述的方法,其特征在于,所述方法还包括: 确定所述更新后的最后版本对应的标识; 将所述更新后的最后版本的数据信息与所述更新后的最后版本对应的标识进行对应存储; 输出反馈信息至所述客户端;所述反馈信息包括所述更新后的最后版本的数据信息和所述更新后的最后版本对应的标识。9.如权利要求6所述的方法,其特征在于,所述方法还包括: 根据所述每个版本的数据信息的接收时间生成每个版本对应的标识;或者 为所述每个版本的数据信息生成版本号,根据所述版本号生成每个版本对应的标识。10.如权利要求2所述的方法,其特征在于,所述替代操作包括加操作,所述被替代操作包括减操作。11.如权利要求10所述的方法,其特征在于,所述在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据,包括: 在所述基础版本的数据上,对所述第一替代数据和所述第二替代数据进行加操作,对所述第一被替代数据和所述第二被替代数据进行减操作,并去除重复出现的加操作和减操作,获得操作后数据。12.一种数据更新装置,其特征在于,所述装置包括: 第一获取模块,用于获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息; 第二获取模块,用于获取存储的最后版本的数据信息; 比较模块,用于将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果; 第一更新模块,用于根据比较结果更新所述最后版本的数据信息。13.如权利要求12所述的装置,其特征在于,所述比较模块包括: 第一比较子模块,用于将所述最后版本的数据信息与所述基础版本的数据信息进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据; 第二比较子模块,用于将所述客户端修改版本的数据信息与所述基础版本的数据信息进行比较,得到所述客户端修改版本相对于所述基础版本的第二替代数据和第二被替代数据; 所述第一更新模块包括: 执行子模块,用于在所述基础版本的数据上,执行所述第一替代数据和第二替代数据对应的替代操作,执行所述第一被替代数据和第二被替代数据对应的被替代操作,获得操作后数据; 更新子模块,用于根据所述操作后数据更新所述最后版本的数据信息,使得更新后的最后版本的数据中不存在之前被替代的被替代数据。14.如权利要求13所述的装置,其特征在于, 所述数据信息包括数据本身、或者相比上一个版本的不同数据。15.如权利要求14所述的装置,其特征在于,在所述数据信息包括所述数据本身时,所述第一比较子模块用于: 将所述最后版本的数据与所述基础版本的数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。16.如权利要求14所述的装置,其特征在于,在所述数据信息包括所述相比上一个版本的不同数据时,所述第一比较子模块用于: 将所述基础版本之后的所有版本中每个版本相对于上一版本的不同数据、与所述基础版本相对于所述基础版本的上一版本的不同数据进行比较,得到所述最后版本相对于所述基础版本的第一替代数据和第一被替代数据。17.如权利要求12所述的装置,其特征在于,所述装置还包括: 判断模块,用于判断所述客户端修改版本对应的标识与所述最后版本对应的标识是否相同; 第一确定模块,用于当所述客户端修改版本的标识与所述最后版本的标识相同时,确定未发生更新冲突; 第二确定模块,用于当所述客户端修改版本的标识与所述最后版本的标识不相同时,确定发生了更新冲突; 执行模块,用于在确定发生了更新冲突时,触发第一获取模块获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息。18.如权利要求17所述的装置,其特征在于,当未发生更新冲突时,所述装置还包括: 第二更新模块,用于根据所述客户端修改版本的数据信息更新所述最后版本的数据信息。19.如权利要求14所述的装置,其特征在于,所述装置还包括: 第三确定模块,用于确定所述更新后的最后版本对应的标识; 存储模块,用于将所述更新后的最后版本的数据信息与所述更新后的最后版本对应的标识进行对应存储; 输出模块,用于输出反馈信息至所述客户端;所述反馈信息包括所述更新后的最后版本的数据信息和所述更新后的最后版本对应的标识。20.如权利要求17所述的装置,其特征在于,所述装置还包括: 生成模块,用于根据所述每个版本的数据信息的接收时间生成每个版本对应的标识;或者为所述每个版本的数据信息生成版本号,根据所述版本号生成每个版本对应的标识。21.如权利要求13所述的装置,其特征在于,所述替代操作包括加操作,所述被替代操作包括减操作。22.如权利要求21所述的装置,其特征在于,所述执行子模块用于: 在所述基础版本的数据上,对所述第一替代数据和所述第二替代数据进行加操作,对所述第一被替代数据和所述第二被替代数据进行减操作,并去除重复出现的加操作和减操作,获得操作后数据。23.一种数据更新装置,其特征在于,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为: 获取基础版本的数据信息和客户端修改所述基础版本的数据后得到的客户端修改版本的数据信息; 获取存储的最后版本的数据信息; 将所述最后版本的数据信息和所述客户端修改版本的数据信息分别与所述基础版本的数据信息进行比较,得到比较结果; 根据比较结果更新所述最后版本的数据信息。
【文档编号】G06F9/445GK106055353SQ201610346495
【公开日】2016年10月26日
【申请日】2016年5月23日
【发明人】张宇鹏, 方圆, 朱佩宏
【申请人】北京小米移动软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1