一种序列值生成方法、装置及系统制造方法及图纸

技术编号:15727105 阅读:600 留言:0更新日期:2017-06-29 23:36
本申请公开一种序列值生成方法、装置及系统,用于在设备正常运行状态下,保证生成的序列值严格递增,并且当设备出现宕机时,也能保证生成的序列值严格递增。所述方法包括:当第一设备正常运行时,根据时间戳生成序列值,并将生成的序列值发送到备份记录中;当第一设备宕机,第二设备从所述备份记录中查找对应所述第一设备发送的最大序列值;根据所述最大序列值,确定第二设备序列下限值;在所述第二设备首次生成序列值,且当前时间戳大于所述第二设备序列下限值中包含的时间戳时,根据当前时间戳生成序列值。

【技术实现步骤摘要】
一种序列值生成方法、装置及系统
本申请涉及计算机
,尤其涉及一种序列值生成方法、装置及系统。
技术介绍
分布式系统(distributedsystem)是建立在网络之上的软件系统,该系统由一组(少至几台,多则成千上万台)独立的计算机(设备)以统一的整体提供服务。利用分布式系统,服务能力得到灵活扩展和有效提高。序列,是被排成一列的对象(或事件),这样每个对象不是在其他对象之前,就是在对象之后;单调递增序列就是序列中每个对象都大于等于之前的对象;若每个对象都严格大于之前的对象,这个序列就是严格(单调)递增的,具体地,可以通过序列值的大小进行表示序列。当前,很多业务场景都需要严格递增序列,比如数据同步业务,需要用一个序列值来标识一条数据,由于数据更新,所以更新后的数据对应的序列值一定要严格大于更新前的数据对应的序列值。分布式系统中包含多台独立设备,每台设备都可能出现不可用的情况(宕机、重启、被替换等,统称宕机),所以分布式系统下需要考虑对局部宕机进行容错,以保证序列值严格递增。现有技术中,是通过设备标识号保证生成的序列值严格递增。具体地,以设备标识号的大小作为严格递增序列的依据,当一台设备宕机后,通过比该设备标识号大的设备继续执行该设备的任务,由于设备标识号大,那么就可以实现严格递增。但是如果标识号最大的设备宕机,由于无法找到更大标识号的设备,所有就要由其他标识号较小的设备执行该设备的任务,就会导致由于标识号小,破坏原有序列值的有序性。所以现有技术无法保证在分布式系统下,生成的序列值严格递增。
技术实现思路
本申请实施例提供一种序列值生成方法,用于在设备正常运行状态下,保证生成的序列值严格递增,并且当设备出现宕机时,也能保证生成的序列值严格递增。本申请实施例提供一种序列值生成装置,用于在设备正常运行状态下,保证生成的序列值严格递增,并且当设备出现宕机时,也能保证生成的序列值严格递增。本申请实施例提供一种序列值生成系统,用于在设备正常运行状态下,保证生成的序列值严格递增,并且当设备出现宕机时,也能保证生成的序列值严格递增。本申请实施例采用下述技术方案:一种序列值生成方法,包括:当第一设备正常运行时,根据时间戳生成序列值,并将生成的序列值发送到备份记录中;当第一设备宕机,第二设备从所述备份记录中查找对应所述第一设备发送的最大序列值;根据所述最大序列值,确定第二设备序列下限值;在所述第二设备首次生成序列值,且当前时间戳大于所述第二设备序列下限值中包含的时间戳时,根据当前时间戳生成序列值。优选地,根据时间戳生成序列值,包括:根据时间戳以及自增序列生成序列值;则根据当前时间戳生成序列值,包括:根据当前时间戳以及自增序列生成序列值。优选地,根据所述最大序列值,确定第二设备序列下限值,包括:根据大于所述最大序列值中时间戳至少一个时间周期的时间戳,确定第二设备序列下限值。优选地,所述方法还包括:将首次生成的序列值发送到备份记录中。优选地,当第一设备在正常运行状态下,根据时间戳生成序列值,包括:当第一设备正常运行时,根据时间戳生成候选序列值;当所述候选序列值不大于第一设备序列上限值,将所述候选序列值确定为序列值。优选地,将生成的序列值发送到备份记录中,包括:按照预设时间周期,将生成的序列值发送到备份记录中,并更新第一设备序列上限值。优选地,更新第一设备序列上限值,包括:根据大于所述序列值中时间戳至少一个时间周期的时间戳,更新第一设备序列上限值。优选地,根据时间戳生成序列值,包括:根据时间戳生成候选序列值;当所述候选序列值大于第一设备序列下限值,将所述候选序列值确定为序列值,所述第一设备序列下限值为所述第一设备首次接收序列请求时确定的序列值。一种序列值生成装置,包括:第一设备中的第一生成单元以及第一备份单元,第二设备中的第二查找单元、第二确定单元以及第二生成单元,其中,所述第一生成单元,当第一设备正常运行时,根据时间戳生成序列值;所述第一备份单元,将生成的序列值发送到备份记录中;所述第二查找单元,当第一设备宕机,第二设备从所述备份记录中查找对应所述第一设备发送的最大序列值;所述第二确定单元,根据所述最大序列值,确定第二设备序列下限值;所述第二生成单元,在所述第二设备在首次生成序列值时,并确定出当前时间戳大于所述第二设备序列下限值中包含的时间戳时,根据当前时间戳生成序列值。优选地,所述第一生成单元,根据时间戳以及自增序列生成序列值;则所述第二生成单元,根据当前时间戳以及自增序列生成序列值。优选地,所述第二确定单元,根据大于所述最大序列值中时间戳至少一个时间周期的时间戳,确定第二设备序列下限值。优选地,所述装置还包括:第二备份单元,将首次生成的序列值发送到备份记录中。优选地,所述第一生成单元,当第一设备正常运行时,根据时间戳生成候选序列值;当所述候选序列值不大于第一设备序列上限值,将所述候选序列值确定为序列值。优选地,所述第一备份单元,按照预设时间周期,将生成的序列值发送到备份记录中;所述装置还包括第一更新单元,更新第一设备序列上限值。优选地,所述第一更新单元,根据大于所述序列值中时间戳至少一个时间周期的时间戳,更新第一设备序列上限值。优选地,所述第一生成单元,根据时间戳生成候选序列值;当所述候选序列值大于第一设备序列下限值,将所述候选序列值确定为序列值,所述第一设备序列下限值为所述第一设备首次接收序列请求时确定的序列值。一种序列值生成系统,包括:第一设备、第二设备以及备份记录,其中,所述第一设备,在正常运行时,根据时间戳生成序列值,并将生成的序列值发送到备份记录中;所述第二设备,当第一设备宕机,从所述备份记录中查找对应所述第一设备发送的最大序列值;根据所述最大序列值,确定第二设备序列下限值;在所述第二设备首次生成序列值,且当前时间戳大于所述第二设备序列下限值中包含的时间戳时,根据当前时间戳生成序列值;将首次生成的序列值发送到备份记录中;所述备份记录,接收第一设备发送的序列值;响应第二设备的查询请求。优选地,第一设备,可以根据时间戳以及自增序列生成序列值;则第二设备,可以根据当前时间戳以及自增序列生成序列值。优选地,第二设备,可以根据大于最大序列值中时间戳至少一个时间周期的时间戳,确定第二设备序列下限值。优选地,第一设备,可以当正常运行时,根据时间戳生成候选序列值;当候选序列值不大于第一设备序列上限值,且当候选序列值大于第一设备序列下限值,将候选序列值确定为序列值,第一设备序列下限值为第一设备首次接收序列请求时确定的序列值。优选地,第一设备,可以按照预设时间周期,将生成的序列值发送到备份记录中,并更新第一设备序列上限值。优选地,第一设备,可以根据大于序列值中时间戳至少一个时间周期的时间戳,更新第一设备序列上限值。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:在分布式系统中,当第一设备正常运行时,根据时间戳生成序列值,并进行备份。当第一设备出现宕机,其他设备从备份记录中找到第一设备最后一次备份的最大序列值,将该最大序列值设置为第二设备的下限值,并在首次生成序列值时,以该设备的下限值为准,生成大于该下限值的序列值,并完成接替。通过在正常运行时备份序列值,在其他设备接替时,保证了序列严格递增。此外,还可以通本文档来自技高网...
一种序列值生成方法、装置及系统

【技术保护点】
一种序列值生成方法,其特征在于,包括:当第一设备正常运行时,根据时间戳生成序列值,并将生成的序列值发送到备份记录中;当第一设备宕机,第二设备从所述备份记录中查找对应所述第一设备发送的最大序列值;根据所述最大序列值,确定第二设备序列下限值;在所述第二设备首次生成序列值,且当前时间戳大于所述第二设备序列下限值中包含的时间戳时,根据当前时间戳生成序列值。

【技术特征摘要】
1.一种序列值生成方法,其特征在于,包括:当第一设备正常运行时,根据时间戳生成序列值,并将生成的序列值发送到备份记录中;当第一设备宕机,第二设备从所述备份记录中查找对应所述第一设备发送的最大序列值;根据所述最大序列值,确定第二设备序列下限值;在所述第二设备首次生成序列值,且当前时间戳大于所述第二设备序列下限值中包含的时间戳时,根据当前时间戳生成序列值。2.如权利要求1所述的方法,其特征在于,根据时间戳生成序列值,包括:根据时间戳以及自增序列生成序列值;则根据当前时间戳生成序列值,包括:根据当前时间戳以及自增序列生成序列值。3.如权利要求1所述的方法,其特征在于,根据所述最大序列值,确定第二设备序列下限值,包括:根据大于所述最大序列值中时间戳至少一个时间周期的时间戳,确定第二设备序列下限值。4.如权利要求1所述的方法,其特征在于,所述方法还包括:将首次生成的序列值发送到备份记录中。5.如权利要求1所述的方法,其特征在于,当第一设备在正常运行状态下,根据时间戳生成序列值,包括:当第一设备正常运行时,根据时间戳生成候选序列值;当所述候选序列值不大于第一设备序列上限值,将所述候选序列值确定为序列值。6.如权利要求5所述的方法,其特征在于,将生成的序列值发送到备份记录中,包括:按照预设时间周期,将生成的序列值发送到备份记录中,并更新第一设备序列上限值。7.如权利要求6所述的方法,其特征在于,更新第一设备序列上限值,包括:根据大于所述序列值中时间戳至少一个时间周期的时间戳,更新第一设备序列上限值。8.如权利要求1所述的方法,其特征在于,根据时间戳生成序列值,包括:根据时间戳生成候选序列值;当所述候选序列值大于第一设备序列下限值,将所述候选序列值确定为序列值,所述第一设备序列下限值为所述第一设备首次接收序列请求时确定的序列值。9.一种序列值生成装置,其特征在于,包括:第一设备中的第一生成单元以及第一备份单元,第二设备中的第二查找单元、第二确定单元以及第二生成单元,其中,所述第一生成单元,当第一设备正常运行时,根据时间戳生成序列值;所述第一备份单元,将生成的序列值发送到备份记录中;所述第二查找单元,当第一设备宕机,第二设备从所述备份记录中查找对应所述第一设备发送的最大序列值;所述第二确定单元,根据所述最大序列值,确定第二设备序列下限值;所述第二生成单元,在所述第二设备在首次生成序列值时,并确定出当前时间戳大于所述第二设备序列下限值中包含的时间戳时,根据当前时间戳生成序列值。10.如权利要求9所述的装置,其特征在...

【专利技术属性】
技术研发人员:张臬靖刘唯实邓小峰王远秋
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1