全局序列生成方法、装置、电子设备及计算机存储介质制造方法及图纸

技术编号:27436799 阅读:11 留言:0更新日期:2021-02-25 03:28
本发明专利技术实施例公开了一种全局序列生成方法、装置、电子设备及计算机存储介质,所述方法包括:获取全局序列源数据;确定数据操作单元数量,并根据所述数据操作单元数量将所述全局序列源数据拆分为全局序列源数据段,建立所述数据操作单元与所述全局序列源数据段之间的映射关系;根据所述数据操作单元与所述全局序列源数据段之间的映射关系,生成与所述数据操作单元对应的全局序列。该技术方案能够生成无中心化、支持多单元环境的全局序列,使多单元间无须同步即可满足全局唯一性要求,同时还能够规避可用区之间的网络延迟和可能出现的设备单点故障,解决跨单元或跨可用区所带来的网络延迟问题,进而达到全局唯一性、高性能和高可用性的全面性目标。可用性的全面性目标。可用性的全面性目标。

【技术实现步骤摘要】
全局序列生成方法、装置、电子设备及计算机存储介质


[0001]本专利技术实施例涉及数据处理
,具体涉及一种全局序列生成方法、装置、电子设备及计算机存储介质。

技术介绍

[0002]随着数据技术的发展,数据的应用也越来越广泛。为了提供更丰富、更广泛的数据服务,很多数据系统中都存在多个数据库协同进行工作。在一些应用场景中,数据系统中的多个数据库可能会被部署在相同或者不同的数据库实例上,而多个数据库实例也有可能处于相同或者不同的可用区中,但在很多情况下,都需要在多个数据库之间确保某个标识值的全局唯一性,即在保证高可用的前提下,实现多单元环境的全局序列,其中,所述全局序列指的是在限定的全局范围内,由数据库系统自动生成、保证唯一性的一种正整数集合,所述数据库实例指的是一种用于运行数据库程序,能够操作数据,由机器节点、进程和内存等组件组成的逻辑实体。
[0003]在传统的单机数据库系统中,全局序列或者不被支持,只能在单表内部实现自增列;或者虽然提供全局序列功能,但却被限制只能在单个数据库中使用,无法真正满足全局序列在多单元环境下的全局唯一性和高可用性需求。在新型的分布式数据库系统中,对于全局序列的支持,或者像单机数据库系统一样,被限制只能在单个数据库中使用,不支持多单元环境;或者只能由分布式数据库系统本身基于Paxos/Raft等分布式一致性协议来提供多单元环境的部署,虽然该方案能够确保高可用性,但却由于分布式一致性协议本身带来的性能损耗和跨可用区之间的网络延迟等因素损失了数据性能,增加请求响应的时间,增加网络通信量;再或者完全依赖独立或内嵌的第三方外部系统来进行全局序列的生成,该方案也由于外部系统的稳定性、可用性保证和跨可用区的网络延迟等因素之间的矛盾,无法在稳定性、高可用性和高性能之间取得平衡。

技术实现思路

[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本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种全局序列生成方法,其特征在于,包括:获取全局序列源数据;确定数据操作单元数量,并根据所述数据操作单元数量将所述全局序列源数据拆分为全局序列源数据段,建立所述数据操作单元与所述全局序列源数据段之间的映射关系;根据所述数据操作单元与所述全局序列源数据段之间的映射关系,生成与所述数据操作单元对应的全局序列。2.根据权利要求1所述的方法,其特征在于,所述确定数据操作单元数量,并根据所述数据操作单元数量将所述全局序列源数据拆分为全局序列源数据段,建立所述数据操作单元与所述全局序列源数据段之间的映射关系,包括:确定数据操作单元数量,并为所述数据操作单元设置索引值;获取数据拆分步长;根据所述数据操作单元的数量、索引值及所述数据拆分步长,顺次将所述全局序列源数据拆分为与所述数据操作单元对应的多个子全局序列源数据段,得到所述数据操作单元与所述全局序列源数据段之间的映射关系,其中,与所述数据操作单元对应的多个子全局序列源数据段的组合为与所述数据操作单元对应的全局序列源数据段。3.根据权利要求2所述的方法,其特征在于,所述根据所述数据操作单元与所述全局序列源数据段之间的映射关系,生成与所述数据操作单元对应的全局序列,包括:根据所述数据操作单元与所述全局序列源数据段之间的映射关系,获取与所述数据操作单元对应的全局序列源数据段;将所述全局序列源数据段拆分为两个或多个全局序列源数据组;根据所述全局序列源数据组生成与所述数据操作单元对应的全局序列。4.根据权利要求3所述的方法,其特征在于,所述根据所述数据操作单元与所述全局序列源数据段之间的映射关系,获取与所述数据操作单元对应的全局序列源数据段,包括:根据所述数据操作单元的索引值确定与所述数据操作单元对应的多个子全局序列源数据段;将与所述数据操作单元对应的多个子全局序列源数据段组合起来,得到与所述数据操作单元对应的全局序列源数据段。5.根据权利要求3所述的方法,其特征在于,所述根据所述全局序列源数据组生成与所述数据操作单元对应的全局序列,被实施为:响应于接收到全局序列生成请求,确定与所述数据操作单元对应的全局序列源数据缓存的工作状态;当与所述数据操作单元对应的全局序列源数据缓存处于有效工作状态时,从所述全局序列源数据缓存中读取预设数量的全局序列源数据生成与所述数据操作单元对应的全局序列;当与所述数据操作单元对应的全局序列源数据缓存处于无效工作状态时,根据所述全局序列源数据组创建与所述数据操作单元对应的全局序列源数据缓存,并从所述全局序列源数据缓存中读取预设数量的全局序列源数据生成与所述数据操作单元对应的全局序列。6.根据权利要求5所述的方法,其特征在于,所述根据所述全局序列源数据组创建与所述数据操作单元对应的全局序列源数据缓存,被实施为:
确定全局序列源数据缓存容量;根据所述全局序列源数据缓存容量从所述全局序列源数据组中选择与所述全局序列源数据缓存容量相应的全局序列源数据创建与所述数据操作单元对应的全局序列源数据缓存。7.根据权利要求6所述的方法,其特征在于,所述根据所述全局序列源数据缓存容量从所述全局序列源数据组中选择与所述全局序列源数据缓存容量相应的全局序列源数据创建与所述数据操作单元对应的全局序列源数据缓存,被实施为:从所述全局序列源数据组中选择其中一个全局序列源数据组作为目标全局序列源数据组;确定所述目标全局序列源数据组的工作状态;当所述目标全局序列源数据组处于有效工作状态时,根据所述全局序列源数据缓存容量从所述全局序列源数据组中选择与所述全局序列源数据缓存容量相应的全局序列源数据创建与所述数据操作单元对应的全局序列源数据缓存;当所述目标全局序列源数据组处于无效工作状态时,从所述全局序列源数据组中选择另外一个全局序列源数据组作为所述目标全局序列源数据组,直至所述目标全局序列源数据组处于有效工作状态。8.根据权利要求6所述的方法,其特征在于,所述根据所述全局序列源数据缓存容量从所述全局序列源数据组中选择与所述全局序列源数据缓存容量相应的全局序列源数据创建与所述数据操作单元对应的全局序列源数据缓存之后,还包括:根据所述全局序列源数据缓存容量、全局序列源数据组的数量和已选择数据所在全局序列源数据组的标识信息,对于每一全局序列源数据组的可选择数据进行标记。9.一种全局序列生成装置,其特征在于,包括:获取模块,被...

【专利技术属性】
技术研发人员:陈诗然
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1