1.一种数据同步方法,其特征在于,该方法应用于分布式系统,所述分布式系统包括至少两个服务器;其中,各个服务器中分别设置有表征服务器数据更新的更新标识;所述方法包括:
所述分布式系统中任意一个服务器在预设的时间周期内,按预设顺序将其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;其中,当所述分布式系统中任意一个服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性值进行更新;所述更新标识的当前属性值中包含与所述更新标识相对应的更新数据的存储地址;
当满足时,判定目标服务器中含有未同步至本服务器中的更新数据,并将该更新数据同步至本服务器。
2.根据权利要求1所述的方法,其特征在于,所述更新标识依据其所对应更新数据的类型划分为:
增加标识、删除标识和修改标识。
3.根据权利要求1所述的方法,其特征在于,当所述分布式系统中任意一个服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性值进行更新包括:
判断所述发生更新的数据的更新类型;
依据所述更新类型选择与所述发生更新的数据相对应的更新标识;
对所述选择的更新标识的当前属性值依据所述发生更新的数据的数量值,按预设更新规则进行更新。
4.根据权利要求1所述的方法,其特征在于,所述将更新数据同步至本服务器包括:
查找所述目标服务器中满足第二预设条件的更新标识,并将满足第二预设条件的更新标识作为条件更新标识;所述第二预设条件为:目标服务器中更新标识的属性值大于本服务器中更新标识的当前属性值;
解析所述条件更新标识的属性值中包含的与所述条件更新标识相对应的更新数据的存储地址;
依据所述存储地址获取与所述条件更新标识相对应的更新数据;将所述更新数据同步至本服务器。
5.一种数据同步服务器,其特征在于,该服务器应用于分布式系统,与所述分布式系统中的其它服务器进行数据交互;所述服务器包括:
设置单元,用于在所述服务器中设置表征服务器数据更新的更新标识;
判断单元,用于在预设的时间周期内,按预设顺序将分布式系统中的其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;其中,当所述分布式系统中任意一个服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性值进行更新;所述更新标识的当前属性值中包含与所述更新标识相对应的更新数据的存储地址;
同步单元,用于在所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值满足第一预设条件时,判定目标服务器中含有未同步至本服务器中的更新数据,并将该更新数据同步至本服务器。
6.根据权利要求5所述的服务器,其特征在于,所述标识更新单元包括:
判断子单元,用于判断所述发生更新的数据的更新类型;
选择子单元,用于依据所述更新类型选择与所述发生更新的数据相对应的更新标识。
7.根据权利要求5所述的服务器,其特征在于,所述同步单元包括:
查找子单元,用于查找所述目标服务器中满足第二预设条件的更新标识,并将满足第二预设条件的更新标识作为条件更新标识;所述第二预设条件为:目标服务器中更新标识的属性值大于本服务器中更新标识的当前属性值;
解析子单元,用于解析所述条件更新标识的属性值中包含的与所述条件更新标识相对应的更新数据的存储地址;
同步子单元,用于依据所述存储地址获取与所述条件更新标识相对应的更新数据;将所述更新数据同步至本服务器。
8.一种分布式系统,其特征在于,包括如权利要求5~7任一项所述的数据同步服务器。
一种数据同步方法、服务器及分布式系统\n技术领域\n[0001] 本申请涉及网络数据处理领域,特别涉及一种数据同步方法、服务器及分布式系统。\n背景技术\n[0002] 分布式系统是建立在网络之上的系统,是多个子系统的集合。在一个分布式系统中,一组独立的子系统展现给用户的是一个统一的整体。\n[0003] 在分布式系统中,为了保证系统的统一运行,各个子系统之间需要进行数据同步。\n如邮件系统是一个典型的分布式系统,其中包括邮件存储子系统和邮件搜索子系统;当邮件系统接收到一封新的邮件时,将其存储至所述邮件存储子系统的服务器中;此时,邮件搜索子系统的服务器应与所述邮件子系统的服务器达到数据同步,立即搜索出所述邮件存储子系统的服务器中增加的新邮件;提示用户收到了新的邮件,使用户及时对邮件进行查看。\n[0004] 目前,分布式系统中各个子系统之间通过消息广播的方式进行数据同步;即某一子系统发生数据更新操作时,所述发生数据更新操作的子系统发送数据更新消息至其它子系统,使其它子系统依据所述数据更新消息从所述发生数据更新操作的子系统中获取经过更新的数据,达到数据同步。如邮件系统中,当邮件存储子系统的服务器中存入一封新的邮件时,所述邮件存储子系统的服务器发送邮件增加消息至邮件搜索子系统的服务器中,告知所述邮件搜索子系统的服务器在所述邮件存储子系统的服务器中增加了一封新的邮件;\n使得邮件搜索子系统的服务器对所述邮件存储子系统的服务器中增加的新邮件进行索引,从而达到数据同步。\n[0005] 发明人经过研究发现,上述通过消息广播方式进行数据同步的过程中,当发生数据更新操作的子系统的服务器向需要进行数据同步的子系统的服务器发送更新消息,而由于网络故障造成所述更新消息丢失时,则在网络恢复后,所述需要进行数据同步的子系统的服务器由于不能接收到所述更新消息,而不能及时进行数据同步,导致分布式系统的整体运行效率降低。\n发明内容\n[0006] 本申请所要解决的技术问题是提供一种数据同步方法,用以解决现有技术中由于网络故障造成更新消息丢失时,在网络恢复后,由于未能接收到更新消息,不能及时进行数据同步的问题,更进一步的,提高了分布式系统的整体运行效率。\n[0007] 本申请还提供了一种数据同步服务器及分布式系统,用以保证上述方法在实际中的实现及应用。\n[0008] 为了解决上述问题,本申请公开了一种数据同步方法,该方法应用于分布式系统,所述分布式系统包括至少两个服务器;其中,各个服务器中分别设置有表征服务器数据更新的更新标识;所述方法包括:\n[0009] 所述分布式系统中任意一个服务器在预设的时间周期内,按预设顺序将其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;\n[0010] 当满足时,判定目标服务器中含有未同步至本服务器中的更新数据,并将该更新数据同步至本服务器。\n[0011] 上述的方法,优选的,所述更新标识依据其所对应更新数据的类型划分为:\n[0012] 增加标识、删除标识和修改标识。\n[0013] 上述的方法,优选的,还包括:\n[0014] 当所述分布式系统中任意一个服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性值进行更新;并对所述经过更新的当前属性值进行保存。\n[0015] 上述的方法,优选的,所述更新标识的当前属性值中包含与所述更新标识相对应的更新数据的存储地址。\n[0016] 上述的方法,优选的,当所述分布式系统中任意一个服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性值进行更新包括:\n[0017] 判断所述发生更新的数据的更新类型;\n[0018] 依据所述更新类型选择与所述发生更新的数据相对应的更新标识;\n[0019] 对所述选择的更新标识的当前属性值依据所述发生更新的数据的数量值,按预设更新规则进行更新。\n[0020] 上述的方法,优选的,所述将更新数据同步至本服务器包括:\n[0021] 查找所述目标服务器中满足第二预设条件的更新标识,并将满足第二预设条件的更新标识作为条件更新标识;所述第二预设条件为:目标服务器中更新标识的属性值大于本服务器中更新标识的当前属性值;\n[0022] 解析所述条件更新标识的属性值中包含的与所述条件更新标识相对应的更新数据的存储地址;\n[0023] 依据所述存储地址获取与所述条件更新标识相对应的更新数据;将所述更新数据同步至本服务器。\n[0024] 本申请公开了一种服务器,该服务器应用于分布式系统,与所述分布式系统中的其它服务器进行数据交互;所述服务器包括:\n[0025] 设置单元,用于在所述服务器中设置表征服务器数据更新的更新标识;\n[0026] 判断单元,用于在预设的时间周期内,按预设顺序将分布式系统中的其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;\n[0027] 同步单元,用于在所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值满足第一预设条件时,判定目标服务器中含有未同步至本服务器中的更新数据,并将该更新数据同步至本服务器。\n[0028] 上述的服务器,优选的,还包括:\n[0029] 标识更新单元,用于当所述服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性值进行更新。\n[0030] 上述的服务器,优选的,所述标识更新单元包括:\n[0031] 判断子单元,用于判断所述发生更新的数据的更新类型;\n[0032] 选择子单元,用于依据所述更新类型选择与所述发生更新的数据相对应的更新标识。\n[0033] 上述的服务器,优选的,所述同步单元包括:\n[0034] 查找子单元,用于查找所述目标服务器中满足第二预设条件的更新标识,并将满足第二预设条件的更新标识作为条件更新标识;所述第二预设条件为:目标服务器中更新标识的属性值大于本服务器中更新标识的当前属性值;\n[0035] 解析子单元,用于解析所述条件更新标识的属性值中包含的与所述条件更新标识相对应的更新数据的存储地址;\n[0036] 同步子单元,用于依据所述存储地址获取与所述条件更新标识相对应的更新数据;将所述更新数据同步至本服务器。\n[0037] 本申请还提供了一种分布式系统:\n[0038] 所述分布式系统中包含有至少一个数据同步服务器与所述分布式系统中的其它服务器进行数据交互。\n[0039] 与现有技术相比,本申请包括以下优点:\n[0040] 在本申请中提供一种数据同步方法,该方法在分布式系统中的各个服务器中分别设置表征服务器数据更新的更新标识;该方法应用过程中,分布式系统中任意一个服务器在预设的时间周期内,按预设的顺序将其它服务器逐一作为目标服务器,判断目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;\n所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;当满足时,判定目标服务器中含有未同步至本服务器中的更新标识。\n[0041] 可见,本申请中提供的一种数据同步方法,相对于现有的服务器之间的数据同步方法,对于需要进行数据同步的服务器与接收同步数据的服务器,增加了接收同步数据的服务器主动询问是否有数据需要被同步的过程,采用设置更新标识的方式,通过比较目标服务器中数据标识与本服务器中数据标识的大小,来判定目标服务器中是否存在需要同步至本服务器中的数据,当存在时,获取该数据以完成数据同步。同时,本申请提供的数据同步方法中,接收同步的服务器在预设的时间周期内,一直发送询问请求,以对本服务器与目标服务器进行更新标识大小的比较;即使网络中断,也不会影响询问请求的发送,在网络恢复后,能够即使进行数据同步,提升了分布式系统中各个服务器之间的整体运行效率。\n[0042] 优选的,本申请中,对各个服务器中设置的更新标识的种类进行细化,不同数据的更新类型对应不同类型的更新标识;在进行数据同步时,使同步数据的归类更加准确,提升了数据同步的有效性及准确性。\n[0043] 当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。\n附图说明\n[0044] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。\n[0045] 图1是本申请的一种数据同步方法实施例1的流程图;\n[0046] 图2是本申请的一种数据同步方法实施例1中的一具体流程图;\n[0047] 图3是本申请的一种数据同步方法实施例2中的一具体流程图;\n[0048] 图4是本申请的一种数据同步服务器实施例1的结构框图;\n[0049] 图5是本申请的一种数据同步服务器实施例2的结构框图;\n[0050] 图6是本申请的一种数据同步服务器实施例3的结构框图;\n[0051] 图7是本申请的一种分布式系统的结构框图。\n具体实施方式\n[0052] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。\n[0053] 本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。\n[0054] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。\n[0055] 本申请的主要思想之一可以包括,在分布式系统中各个服务器之间进行数据同步的过程中,首先,在分布式系统的各个服务器中设置表征服务器数据更新的更新标识;分布式系统中任意一个服务器在预设的时间周期内,按预设顺序将其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性与本服务器中更新标识的当前属性值是否满足第一预设条件,所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;当满足时,判定目标服务器中含有未同步至本服务器的更新数据,并将该更新数据同步至本服务器。\n[0056] 通过在预设时间周期内,逐一与分布式系统中其它服务器进行更新标识属性比较的方式,判断其它服务器中是否存在需要进行同步的数据;即使在网络中断的情况下,该过程也不停止进行,当网络恢复时,可在第一时间及时对需要同步的数据进行同步,提升分布式系统中各个服务器之间的整体运行效率。\n[0057] 参考图1,示出了本申请一种服务器性能测试方法实施例1的流程图,该方法应用于分布式系统,所述分布式系统中包括至少两个服务器,其中,各个服务器中分别设置有表征服务器数据更新的更新标识;分布式系统中各个服务器之间进行数据同步时,可以包括以下步骤:\n[0058] 步骤101:所述分布式系统中任意一个服务器在预设的时间周期内,按预设顺序将其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;\n[0059] 本申请方法实施例的执行主体可以为分布式系统中的任意一个服务器,则本步骤就可以由分布式系统中的任意一个服务器在预设的时间周期内发送询问请求至分布式系统中的其它服务器;查询其它服务器中是否存在更新标识的当前属性值大于该服务器中更新标识当前属性值;\n[0060] 本申请方法实施例中在分布式系统各个服务器中设置表征服务器数据更新的更新标识的过程包括:\n[0061] 在所述分布式系统各个服务器中预设表征服务器数据更新的更新标识;即在所述分布式系统中各个服务器之间进行数据同步之前,在各个服务器中预先设置所述更新标识。\n[0062] 或,对于分布式系统中任意一个服务器,当该服务器中首次发生数据更新过程时,生成表征服务器数据更新的更新标识。\n[0063] 本申请方法实施例中更新标识依据其所对应更新数据的类型划分为:\n[0064] 增加标识、删除标识和修改标识;\n[0065] 其中:\n[0066] 增加标识表征服务器中增加了新的数据;\n[0067] 删除标识表征服务器中存在数据被删除;\n[0068] 修改标识表征服务器中存在数据被修改。\n[0069] 以上每一个分量都有唯一的递增ID,且被持久化至分布式系统的数据库系统中。\n[0070] 本申请实施例中,当分布式系统中任意一个服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性值进行更新;并对所述经过更新的当前属性值进行保存。\n[0071] 服务器中每有一个数据发生更新,则对其内部的更新标识的当前属性值进行一次更新,并对当前经过更新的当前属性值进行保存,所述经过更新的当前属性值包含与本次数据更新过程相对应的更新数据的存储地址。所述更新标识的当前属性值的更新过程包括:\n[0072] 如更新标识的当前属性值为数字6,所述服务器内部发生数据更新的数据的个数为3,则对所述更新标识的当前属性值进行更新为:依据发生更新的数据的数量值,逐一对所述当前属性值6,进行更新,将其更新为7、8,直至更新至9,结束更新过程。每一次更新过程中都保存记录该次更新所对应更新数据的存储地址。\n[0073] 也可将所述当前属性值6直接更新至9,所述更新的9中直接包含3个更新数据的存储地址。\n[0074] 参考图2,示出了本申请中,当所述分布式系统中任意一个服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性进行更新的过程,包括:\n[0075] 步骤S201:判断所述发生更新的数据的更新类型;\n[0076] 步骤S202:依据所述更新类型选择与所述发生更新的数据相对应的更新标识;\n[0077] 步骤S203:对所述选择的更新标识的当前属性值依据所述发生更新的数据的数量值,按预设更新规则进行更新。\n[0078] 本申请中服务器中更新标识的种类分为:增加标识、删除标识和修改标识;\n[0079] 假设当前服务器中三种更新标识的当前属性值分别为:增加标识的当前属性值为\n2、删除标识的当前属性值为3、修改标识的当前属性值为1;所述服务器内部发生数据更新的数据的个数为3,引用本申请示出的方法,首先确定发生更新的3个数据的更新类型,如发生更新的3个数据中,有1个数据是新增加至该服务器中的数据,有2个数据是被删除的数据;则对所述增加标识的当前属性值进行更新,将其更新为3;并保存所述增加至该服务器中的数据在该服务器中的存储地址。对所述删除标识的当前属性值进行更新,将其逐一更新至5或直接更新至5,并保存所述删除数据在该服务器中存储位置。\n[0080] 以下以邮箱系统为具体实施例对步骤S101的执行过程进行详尽描述:\n[0081] 邮箱系统包括邮件存储子系统和邮件搜索子系统,其中邮件存储子系统的服务器A与邮件搜索子系统的服务器B之间存在数据同步关系;服务器A中的数据发生更新时,需将更新的数据及时同步至服务器B中。本实施例中更新标识的设置包括两种,第一种:服务器A和服务器B中分别提前预设有表征有服务器数据更新的更新标识;服务器A中更新标识为AID,AID包括增加标识Add ID1、删除标识Del ID1和修改标识Xg ID1;同样的,服务器B中更新为BID,BID包括增加标识Add ID2、删除标识Del ID1和修改标识Xg ID2。\n[0082] 第二种:本实施例中,服务器A和服务器B中的更新标识也可根据实际的数据更新过程进行生成;\n[0083] 当服务器A中首次新增一封邮件时,在服务器中生成一增加标识Add ID1,以后每增加一封新的邮件,在所述当前Add ID1的基础上生成一增加类型的记录增量,对当前的Add ID1进行更新。同理对服务器A中的删除标识Del ID1和修改标识Xg ID1进行更新。\n[0084] 以下以第二种更新标识的设置方法对服务器A与服务器B之间数据同步进行详尽描述:\n[0085] 服务器A中的数据发生数据更新时,如服务器A中新增一封邮件,则对服务器A中增加标识Add ID1的当前属性进行更新,如Add ID1的当前属性为Add ID1=3,则将其更新为Add ID1=4,并在更新后的Add ID1中保存当前新增邮件在服务器A中的存储地址;在服务器A中增加标识当前属性的更新过程中,服务器A向服务器B发送增量修改通知,通知服务器B在服务器A中有新的数据更新,服务器B将其内部的增加标识Add ID2的当前属性值与服务器A中增加标识Add ID1的当前属性值进行比较,当前Add ID2=3<Add ID1=4,表明服务器A中有一封新增加的邮件需要同步至服务器B中。\n[0086] 同时,在服务器A发送增量修改通知至服务器B的过程中,服务器B在预设的时间周期内发送询问请求至服务器A,查询服务器B中更新标识的当前属性值是否小于服务器A中更新标识的当前属性值;如果小于,则表明服务器A中存在需要同步至服务器B中的数据。\n[0087] 当网络中断时,服务器A发送的增量修改通知被丢失时,服务器B仍按预设的时间周期发送询问请求至服务器A,以保证当网络恢复时,服务器A能及时接收服务器B发送的询问请求;假设网络恢复后,服务器A接收到服务器B的询问请求时,服务器A中的增加标识Add ID1=6、删除标识Del ID1=7、修改标识Xg ID1=3;服务器B中的增加标识AddID2=5、删除标识Del ID2=7和修改标识Xg ID2=1;服务器B将其内部的更新标识按更新标识的种类逐一与服务器A中的更新标识进行比较;\n[0088] Add ID2=5<Add ID1=6,表明服务器A中在网络中断的过程中新增一封新的邮件,即有一封新的邮件未同步至服务器B中,在所述Add ID1的属性值中查找记录的所述新邮件的存储地址,依据所述存储地址,将所述A服务器中新增的一封邮件同步至服务器B中;\n同时对服务器B中Add ID2的当前属性值进行更新,更新为Add ID2=6,并在当前更新的当前属性值中将同步至服务器B的新增邮件在服务器B中的存储地址进行保存。\n[0089] Del ID2=Del ID1=7,表明在网络中断过程中,服务器A中的数据未被删除。\n[0090] Xg ID2=1<Xg ID1=3,表明服务器A中在网络中断过程中,用户对服务器A中的2个数据进行了修改,将Xg ID1=2及Xg ID1=3中含有的其对应的修改数据在服务器A中的存储地址及其数据属性,获取所述更新的数据;将其同步至服务器B中,依据所述修改数据的数据属性查找其在服务器B中的存储位置,对服务器B中的数据做相应更新;并更新XgID2的当前属性值。\n[0091] 可逐一更新,先更新为Xg ID2=2,在Xg ID2=2中存储修改数据在服务器B中的存储地址及修改数据的修改属性;再更新为Xg ID2=3,在Xg ID2=3中存储修改数据在服务器B中的存储地址及修改数据的修改属性;也可直接将Xg ID2的当前属性值更新为Xg ID2=3,在Xg ID2=3中存储两个修改数据的存储地址及其修改属性。\n[0092] 本实施例中,数据的修改属性包括被修改的数据在服务器A中与在服务器B中的相对位置、修改数据的固有属性及对所述数据进行修改的操作属性。所述操作属性如对数据的已读操作或对数据所在文件夹的移动等。如当服务器A中的邮件被用户阅读时,表明用户对该邮件的当前属性进行了修改,由未读变为已读;或用户对某一邮件从一文件夹移动至另一文件夹,该移动属性均记录在服务器A中的修改标识对应的数据属性中。\n[0093] 步骤102:当满足时,判定目标服务器中含有未同步至本服务器中的更新数据,并将该更新数据同步至服务器;\n[0094] 参考图3,示出了本申请中将更新数据同步至本服务器的过程,包括:\n[0095] 步骤S301:查找所述目标服务器中满足第二预设条件的更新标识,并将满足第二预设条件的更新标识作为条件更新标识;所述第二预设条件为:目标服务器中更新标识的属性值大于本服务器中更新标识的当前属性值;\n[0096] 当目标服务器中更新标识的当前属性值大于该服务器中更新标识的当前属性值时,如上述实例中服务器A中Xg ID1=3>服务器B中Xg ID2=1时,将服务器A中保存的所有属性值大于本服务器中更新标识的当前属性值的更新标识做为条件更新标识;即将服务器A中Xg ID1=2与Xg ID1=3作为条件更新标识。\n[0097] 步骤S302:解析所述条件更新标识的属性值包含的与所述条件更新标识相对应的更新数据的存储地址;\n[0098] 解析条件更新标识Xg ID1=2及Xg ID1=3中包含的与其对应的更新数据的存储地址。\n[0099] 步骤S303:依据所述存储地址获取与所述条件更新标识相对应的更新数据;将所述更新数据同步至本服务器。\n[0100] 依据Xg ID1=2中包含的Xg ID1=2对应的更新数据的在服务器A中的存储地址;\n在服务器A中获取Xg ID1=2对应的更新数据,并将其同步至服务器B中;依据Xg ID1=3中包含的Xg ID1=3对应的更新数据的在服务器A中的存储地址;在服务器B中获取Xg ID1=3对应的更新数据,并将其同步至服务器B中。\n[0101] 同时,本申请实施例提供的数据同步方法,分布式系统中各个服务器中设置的更新标识可不进行分类,在服务器中数据发生更新时,对更新标识的当前属性值进行更新时,在所述更新标识的当前属性值中保存更新数据的更新类型、更新数据在服务器中的存储地址以及该服务器中更新数据与分布式系统中其它更新的对应类型。\n[0102] 相对于现有技术中,分布式系统中的任意一个服务器在预设的时间周期内,按预设的顺序将其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:\n目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;满足时,判定目标服务器中含有未同步至本服务器中的更新数据,并将该更新数据同步至本服务器。\n[0103] 本申请提供的同步方法中,需要进行数据同步的服务器在预设的时间周期内,向与其相关联的目标服务器发送询问请求,查询其内部更新标识的属性值与目标服务器中更新标识当前属性值的关联关系;即使在网络中断的情况下仍发送询问请求,从而保证了在网络恢复时,目标服务器能够立刻收到询问请求;进而及时进行服务器之间的数据同步;提升了分布式系统中各个服务器之间的整体运行效率。\n[0104] 本申请提供的同步方法,为了保证分布式系统中各个服务器之间在网络恢复时,能够及时进行数据同步。采用在分布式系统的各个服务器中设置表征数据更新的更新标识。所述更新标识的属性值随服务器中数据的更新产生增量值,每更新一次数据所述更新标识的属性值相应的进行一次更新,并在经过更新的属性值中存储当前更新数据的存储地址及该更新数据与其它服务器中数据的对应关系;从而时分布式系统中各个服务器之间的数据同步更加准确、高效。\n[0105] 对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。\n[0106] 与上述本申请一种数据同步方法实施例1所提供的方法相对应,参见图4,本申请还提供了一种数据同步服务器实施例1,该服务器应用于分布式系统,与所述分布式系统中的其它服务器进行数据交互;在本实施例中,该服务器可以包括:\n[0107] 设置单元401,用于在所述服务器中设置表征服务器数据更新的更新标识;\n[0108] 判断单元402,用于在预设的时间周期内,按预设顺序将分布式系统中的其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;\n[0109] 同步单元403,用于在所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值满足第一预设条件时,判定目标服务器中含有未同步至本服务器中的更新数据,并将该更新数据同步至本服务器。\n[0110] 本实施例所述的服务器可以集成到分布式系统中,与分布式系统中其它服务器之间进行数据通信。另外,需要说明的是,当本申请所述的方法采用软件实现时,可以作为分布式系统中的服务器新增的一个功能,也可以单独编写相应的程序,本申请不限定所述方法或装置的实现方式。\n[0111] 本实施例中,在分布式系统中,在分布式系统中各个服务器之间进行数据同步前,通过设置单元401在所述分布式系统中各个服务器内设置表征服务器数据更新的更新标识;在分布式系统中各个服务器之间进行数据同步的过程中,判断单元402在预设的时间周期内,按预设的顺序将分布式系统中的其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;同步单元403在所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值满足第一预设条件时,判定目标服务器中含有未同步至本服务器中的更新标识,并将该更新数据同步至本服务器。\n[0112] 本实施例提供的同步服务器中,判断单元402在预设的时间周期内与分布式系统中的其它服务器进行属性值的逐一比较,即使网络中断,该比较过程仍不间断进行,从而保证了网络恢复时,能够将需要同步至本服务器中的更新数据及时同步至该服务器中,保证了分布式系统中各个服务器之间的数据同步,提升了分布式系统各个服务器之间的整体数据处理效率。\n[0113] 同时,本申请实施例示出的方法,也可应用在需要进行数据同步的服务器出现故障,不能正常进行数据同步,在服务器恢复正常运行时,立即发送询问请求,将其中的更新标识的当前属性值与其它服务器中的更新标识的属性值进行比较,进而及时将未同步至该服务器中的数据同步至该服务器中。\n[0114] 参见图5,本申请还提供了一种数据同步服务器的优选实施例2,在本实施例中,除了图4所示的模块之外,该服务器还包括:\n[0115] 标识更新单元404,用于当所述服务器中发生数据更新时,依据发生更新的数据的数量值,按预设更新规则对该服务器中更新标识的当前属性值进行更新。\n[0116] 本申请提供的数据同步服务器,在每一个服务器中发生数据更新时,无论该数据更新是数据的增加、修改或删除,均及时对该更新数据对应的更新标识进行增量属性更新;\n从而保证在每一次数据更新过程中,该更新标识均能对应最新的更新数据;保证分布式系统中各个服务器之间数据同步的准确性。\n[0117] 参见图6,本申请实施例提供了一种数据同步服务器的优选实施例3,在本实施例中,除图5所示的模块外,该服务器中:\n[0118] 标识更新单元404包括:\n[0119] 判断子单元405,用于判断所述发生更新的数据的更新类型;\n[0120] 选择子单元406,用于依据所述更新类型选择与所述发生更新的数据相对应的更新标识。\n[0121] 同步单元403包括:\n[0122] 查找子单元407,用于查找所述目标服务器中满足第二预设条件的更新标识,并将满足第二预设条件的更新标识作为条件更新标识;所述第二预设条件为:目标服务器中更新标识的属性值大于本服务器中更新标识的当前属性值;\n[0123] 解析子单元408,用于解析所述条件更新标识的属性值中包含的与所述条件更新标识相对应的更新数据的存储地址;\n[0124] 同步子单元409,用于依据所述存储地址获取与所述条件更新标识相对应的更新数据;将所述更新数据同步至本服务器。\n[0125] 参见图7,与上述本申请一种数据同步方法和服务器实施例相对应,本申请还提供了一种分布式系统的实施例,在本实施例中,所述分布式系统包括一种数据同步服务器。\n[0126] 在本申请示出的分布式系统中,至少包括一个数据数据同步服务器,该服务器与分布式系统中的其它服务器之间进行数据交互;包括:\n[0127] 设置单元,用于在所述服务器中设置表征服务器数据更新的更新标识;\n[0128] 判断单元,用于在预设的时间周期内,按预设顺序将分布式系统中的其它服务器逐一作为目标服务器,判断所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值是否满足第一预设条件;所述第一预设条件为:目标服务器中更新标识的当前属性值大于本服务器中更新标识的当前属性值;\n[0129] 同步单元,用于在所述目标服务器中的更新标识的当前属性值与本服务器中更新标识的当前属性值满足第一预设条件时,判定目标服务器中含有未同步至本服务器中的更新数据,并将该更新数据同步至本服务器。\n[0130] 本申请提供的分布式系统,系统内部的各个服务器之间能够及时有效的进行数据同步,从而提升了分布式系统整体的数据处理效率。\n[0131] 需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。\n对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。\n[0132] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。\n[0133] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。\n[0134] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。\n[0135] 以上对本申请所提供的一种检索方法、装置及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
法律信息
- 2016-12-14
- 2013-11-27
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201210107408.X
申请日: 2012.04.12
- 2013-10-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-12-21
|
2011-08-02
| | |
2
| |
2006-11-08
|
2006-03-23
| | |
3
| |
2008-12-03
|
2007-05-28
| | |
4
| |
2005-11-23
|
2005-04-22
| | |
5
| |
2012-04-04
|
2010-09-10
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |