数据库序列处理方法、系统及基于同步锁的节点服务器技术方案

技术编号:21115782 阅读:36 留言:0更新日期:2019-05-16 09:00
本发明专利技术公开了一种数据库序列处理方法、系统及基于同步锁的节点服务器,该数据库序列处理方法包括将当前步长序列的使用次数初始化为零,在每次接收到序列请求后将当前步长序列的使用次数加一,直至当前步长序列的使用次数等于序列步长,获取节点服务器的序列仓库中步长序列的数量,在序列仓库中步长序列的数量大于零时,从序列仓库中的步长序列中获取新的步长序列作为当前步长序列,重新执行前述步骤。本发明专利技术在节点服务器的序列仓库中缓存的步长序列的数量大于零时,从序列仓库中获取新的步长序列作为当前步长序列,完全为节点服务器内存操作,避免了和数据库序列的交互,可以降低数据库序列的资源成本,提高数据库序列的处理性能。

【技术实现步骤摘要】
数据库序列处理方法、系统及基于同步锁的节点服务器
本专利技术涉及计算机数据处理
,尤其涉及数据库序列处理方法、系统及基于同步锁的节点服务器。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。一些数据库将自动增长的字段单独提取成一个数据库方案对象,该种数据库称为数据库序列,数据库序列中的自动增长的字段称为序列。这种序列可以按照指定的模式自动产生顺序编号的整数。序列在实际应用中具有非常重要的作用。例如一些人事信息系统可以通过序列来生成员工编号,企业信息管理系统可以通过序列生成物料编号,订单交易系统可以通过序列生成交易订单编号,交易系统可以通过序列生成交易流水号等等。高并发处理系统(例如订单系统或交易系统等)广泛应用数据库序列。高并发处理系统,一般采用集群或者分布式部署方式,而类似于订单系统生成唯一订单、交易系统生成全局唯一的交易流水号这种场景,完全由节点服务器来实现成本会比较高。因为完全由节点服务器节点实现,就意味着每个节点服务器应用的部署环境配置或程序版本都不一致,维护成本、扩展成本等就会很高。采用数据库序列的方式实现这种业务场景是比较常用的方式。高并发处理系统如果使用数据库序列来保证订单号、交易流水号的全局唯一,不可避免的需要占用大量的数据库连接资源,高频的数据库交互访问,势必会造成数据库序列较高的资源成本;同时很大程度上增加数据库序列的处理时间,影响数据库序列处理性能。因此,现有的数据库序列存在资源成本高、处理性能较低的问题。
技术实现思路
本专利技术实施例提供一种数据库序列处理方法,应用于基于同步锁的节点服务器中,用以降低数据库序列的资源成本,提高数据库序列的处理性能,该方法包括:将当前步长序列的使用次数初始化为零;在每次接收到序列请求后将当前步长序列的使用次数加一,直至当前步长序列的使用次数等于序列步长,获取节点服务器的序列仓库中步长序列的数量;所述序列仓库用于缓存步长序列;在序列仓库中步长序列的数量大于零时,从序列仓库中的步长序列中获取新的步长序列作为当前步长序列,重新执行前述步骤。本专利技术实施例还提供一种基于同步锁的节点服务器,用以降低数据库序列的资源成本,提高数据库序列的处理性能,该基于同步锁的节点服务器包括:初始化模块,用于将当前步长序列的使用次数初始化为零;数量获取模块,用于在每次接收到序列请求后将当前步长序列的使用次数加一,直至当前步长序列的使用次数等于序列步长,获取节点服务器的序列仓库中步长序列的数量;所述序列仓库用于缓存步长序列;步长序列获取模块,用于在序列仓库中步长序列的数量大于零时,从序列仓库中的步长序列中获取新的步长序列作为当前步长序列。本专利技术实施例还提供一种数据库序列处理系统,包括多个上述实施例所述的基于同步锁的节点服务器,多个节点服务器采用集群或者分布式部署方式。本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库序列处理方法。本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库序列处理方法的计算机程序。本专利技术实施例中,数据库序列处理方法,应用于基于同步锁的节点服务器中,包括将当前步长序列的使用次数初始化为零,在每次接收到序列请求后将当前步长序列的使用次数加一,直至当前步长序列的使用次数等于序列步长,获取节点服务器的序列仓库中步长序列的数量;所述序列仓库用于缓存步长序列,在序列仓库中步长序列的数量大于零时,从序列仓库中的步长序列中获取新的步长序列作为当前步长序列,重新执行前述步骤。在本专利技术实施例中,在当前步长序列的使用次数等于序列步长、且节点服务器的序列仓库中缓存的步长序列的数量大于零时,从节点服务器的序列仓库中获取新的步长序列作为当前步长序列,完全为节点服务器内存操作,其避免了和数据库序列的交互,可以降低数据库序列的资源成本,提高数据库序列的处理性能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本专利技术第一实施例提供的数据库序列的处理方法的实现流程图;图2为本专利技术第二实施例提供的数据库序列的处理方法的实现流程图;图3为本专利技术第三实施例提供的数据库序列的处理方法的实现流程图;图4为本专利技术第四实施例提供的数据库序列的处理方法的实现流程图;图5为本专利技术第五实施例提供的数据库序列的处理方法的实现流程图;图6为本专利技术第六实施例提供的基于同步锁的节点服务器的功能模块图;图7为本专利技术第七实施例提供的基于同步锁的节点服务器的功能模块图;图8为本专利技术第八实施例提供的基于同步锁的节点服务器的功能模块图;图9为本专利技术第九实施例提供的基于同步锁的节点服务器的功能模块图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。虽然本专利技术提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本专利技术实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行。针对现有技术中数据库序列存在的资源成本高、处理性能较低的缺陷,本专利技术的专利技术人提出了一种数据库序列处理方法、系统及基于同步锁的节点服务器,通过在节点服务器的序列仓库中缓存步长序列,在序列仓库中的步长序列的数量大于零时,从节点服务器的序列仓库中获取新的步长序列作为当前步长序列,避免了和数据库序列的交互,达到了降低数据库序列的资源成本,提高数据库序列的处理性能的目的。图1示出了本专利技术第一实施例提供的数据库序列处理方法的实现流程,为便于描述,仅示出了与本专利技术实施例相关的部分,详述如下:如图1所示,数据库序列处理方法,应用于基于同步锁的节点服务器中,数据库序列处理方法包括:步骤101,将当前步长序列的使用次数初始化为零;步骤102,在每次接收到序列请求后将当前步长序列的使用次数加一,直至当前步长序列的使用次数等于序列步长,获取节点服务器的序列仓库中步长序列的数量;所述序列仓库用于缓存步长序列;步骤103,在序列仓库中步长序列的数量大于零时,从序列仓库中的步长序列中获取新的步长序列作为当前步长序列。一些数据库将自动增长的字段单独提取成一个数据库方案对象,该种数据库称为数据库序列,数据库序列中的自动增长的字段称为序列。这种序列可以按照指定的模式自动产生顺序编号的整数。支持独立序列的数据库包括ORACLE、DB2等主流数据库。数据库序列主要由以下几部分组成:数据库序列最大值,数据库序列最小值,步长、起始值、同步锁及处理性能等。其中,数据库序本文档来自技高网...

【技术保护点】
1.一种数据库序列处理方法,其特征在于,应用于基于同步锁的节点服务器中,包括:将当前步长序列的使用次数初始化为零;在每次接收到序列请求后将当前步长序列的使用次数加一,直至当前步长序列的使用次数等于序列步长,获取节点服务器的序列仓库中步长序列的数量;所述序列仓库用于缓存步长序列;在序列仓库中步长序列的数量大于零时,从序列仓库中的步长序列中获取新的步长序列作为当前步长序列,重新执行前述步骤。

【技术特征摘要】
1.一种数据库序列处理方法,其特征在于,应用于基于同步锁的节点服务器中,包括:将当前步长序列的使用次数初始化为零;在每次接收到序列请求后将当前步长序列的使用次数加一,直至当前步长序列的使用次数等于序列步长,获取节点服务器的序列仓库中步长序列的数量;所述序列仓库用于缓存步长序列;在序列仓库中步长序列的数量大于零时,从序列仓库中的步长序列中获取新的步长序列作为当前步长序列,重新执行前述步骤。2.如权利要求1所述的数据库序列处理方法,其特征在于,还包括:基于异步线程,按照预设时间间隔检测序列仓库中可用步长序列的数量;若序列仓库中可用步长序列的数量小于预设数量,从数据库序列中获取步长序列补充到序列仓库中,以使补充后序列仓库中步长序列的数量等于预设数量。3.如权利要求1所述的数据库序列处理方法,其特征在于,还包括:在序列仓库中步长序列的数量等于零时,从数据库序列中获取新的步长序列作为当前步长序列。4.如权利要求1所述的数据库序列处理方法,其特征在于,还包括:在当前步长序列的使用次数不大于序列步长时,在每次接收序列请求后,利用当前步长序列的当前序列值生成序列号;在当前步长序列的使用次数小于序列步长时,在每次接收序列请求后,将当前步长序列的当前序列值加一,直至当前步长序列的使用次数等于序列步长。5.如权利要求4所述的数据库序列处理方法,其特征在于,在将当前步长序列的当前序列值加一之后,还包括:获取当前序列值与数据...

【专利技术属性】
技术研发人员:苗海柱
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:北京,11

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

1