一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

序列号的生成方法、计算设备及存储介质与流程

2022-06-01 04:16:48 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种序列号的生成方法、计算设备及存储介质。


背景技术:

2.在多系统协调、分布式数据处理等场景下,为了保证数据处理的有序性和一致性,需要提供对应的序列号来协调数据处理操作。而当前用于提供序列号的服务都存在问题,对于分布式系统,特别是分布式事务的场景下,并发的序列号请求可以达到几十万,并且还需要保证数据的安全性和一致性,当前的服务无法满足要求。


技术实现要素:

3.本技术的多个方面提供一种序列号的生成方法、计算设备及存储介质,使得在生成序列号的过程中能够从功能、性能以及安全上满足需求。
4.本技术实施例提供一种序列号的生成方法,应用于数据库系统,在数据库系统中部署有序列号生成器,所述方法包括:通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,并将所述待分发序列号加载至缓存中;通过序列号生成器,接收数据节点发送的序列号获取请求,根据所述序列号获取请求,获取互斥锁;通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点;通过数据库系统,记录对应的执行操作日志。
5.本技术实施例还提供一种计算设备,包括:存储器、处理器;所述计算设备部署有数据库系统,在数据库系统中部署有序列号生成器;所述存储器,用于存储计算机程序;所述处理器,执行所述计算机程序,以用于:通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,并将所述待分发序列号加载至缓存中;通过序列号生成器,接收数据节点发送的序列号获取请求,根据所述序列号获取请求,获取互斥锁;通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点;通过数据库系统,记录对应的执行操作日志。
6.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。
7.本技术实施例还提供一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现权利要求上述方法中的步骤。
8.在本技术实施例中,本技术实施例应用于数据库系统,在数据库系统中部署有序列号生成器,通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,并将待分发序列号加载至缓存中;通过序列号生成器,接收数据节点发送的序列号获取请求,根据序列号获取请求,获取互斥锁;通过序列号生成器,根据互斥锁,从缓存中
读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点;通过数据库系统,记录对应的执行操作日志。
9.其中,通过根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,能够保证序列号的唯一性,且满足了对于时间信息的需求。此外,采用缓存和基表的模式,在缓存命中的场景下,序列号的获取过程完全是内存访问,不需要任何的磁盘读取操作,满足了高并发场景。同时通过数据库系统,记录对应的执行操作日志,可以在保证了序列号数据的安全。在对应的数据库系统崩溃后可以通过数据库系统内记录的执行操作日志进行恢复,保证了序列号信息不会丢失。
附图说明
10.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
11.图1为本技术一示例性实施例的序列号的生成方法的流程示意图;
12.图2为本技术一示例性实施例的序列号的生成器架构的示意图;
13.图3为本技术一示例性实施例的序列号的生成过程的示意图;
14.图4为本技术一示例性实施例的序列号的生成系统的结构示意图;
15.图5为本技术一示例性实施例提供的序列号的生成装置的结构示意图;
16.图6为本技术一示例性实施例提供的计算设备的结构示意图。
具体实施方式
17.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
18.根据前文可知,当前用于提供序列号的服务都存在问题,不能同时满足在功能上需要满足的唯一性,在性能上需要满足的支持高并发请求以及在安全性上需要满足的支持崩溃恢复,保证序列号信息不能丢失。
19.针对上述问题,本技术实施例提供了一种序列号的生成方法、计算设备及存储介质,使得在生成序列号的过程中能够从功能、性能以及安全上满足需求。
20.下面结合方法实施例,针对序列号的生成过程进行详细说明。
21.图1为本技术一示例性实施例的一种序列号的生成方法的流程示意图。本技术实施例提供的该方法100由数据库系统(即数据库)执行该方法100包括以下步骤:
22.101:通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,并将待分发序列号加载至缓存中。
23.102:通过序列号生成器,接收数据节点发送的序列号获取请求,根据序列号获取请求,获取互斥锁。
24.103:通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点。
25.104:通过数据库系统,记录对应的执行操作日志。
26.需要说明的是,数据库系统可以包括数据库引擎,其可以部署有序列号生成器。数据库系统可以部署在服务器上,如云服务器。且数据库系统还包括主备节点,对应节点上可以部署有主序列号生成器,以及备用序列号生成器。其中,数据库系统可以为mysql数据库系统。所以本方法100对应的物理执行设备也可以是服务器。
27.以下针对上述步骤进行详细地阐述:
28.101:通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,并将待分发序列号加载至缓存中。
29.其中,序列号的属性是指序列号的基本信息,或者也可以说是序列号的生成属性,用于生成对应的序列号。
30.序列号的属性包括序列号名称、序列号的初始化值、序列号的增长步长、序列号的缓存周期。
31.基表是指在数据库系统中的物理表格,即持久化存储的表格。
32.序列号生成器在基表中定义了上述属性,如序列号名称、序列号的初始化值、序列号的增长步长、序列号的缓存周期。
33.例如,序列号生成器定义了上述序列号名称、序列号的初始化值、序列号的增长步长、序列号的缓存周期后,根据这些属性,在基表中生成对应的待分发序列号,序列号生成器将基表中的这些数据加载缓存中,且这些序列号只在当前缓存周期内有效。
34.其中,如图2所示,示出了序列号的生成器架构200,主序列号生成器202将基表2021中的上述数据加载至缓存2022中。
35.需要说明的是,基表中可以只有一个序列号名称,也可以有多个序列号名称。当只具有一个序列号名称时可以不对该名称进行定义。
36.具体的,通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,包括:通过序列号生成器,根据序列号的初始化数值(即序列号的初始化值)以及增长步长,在基表中获取当前缓存周期内待分发序列号。
37.其中,缓存周期可以是指缓存时间,也可以是指待分发序列号的数量。对于待分发序列号的数量而言,当该序列号都被分发完后,即缓存的访问达到设置的阈值时,即10次。该缓存周期即到达。且用户可以设置缓存周期。
38.例如,根据前文所述,序列号生成器根据初始化数值,如1,增长步长为1,且缓存周期可以为10个序列号,则可以生成对应待分发序列号:1-10。或,
39.当缓存周期为时间,在预置时间内,根据初始化数值,如1,增长步长为1,可以生成对应待分发序列号:1-15。
40.需要说明的是,当基表中只有一个序列号名称,则可以根据上述方式直接确定该序列号名称对应的待分发序列号。当基表中具有多个序列号名称,则可以根据下述方式进行确定待分发序列号。
41.具体的,通过序列号生成器,根据序列号的初始化数值以及增长步长,在基表中获取当前缓存周期内待分发序列号,包括:通过序列号生成器,根据序列号的序列号名称,从基表中读取对应序列号的初始化数值、增长步长以及缓存周期,在基表中获取当前缓存周期内对应待分发序列号。
42.例如,根据前文所述,序列号生成器针对不同的序列号名称,可以根据上述方式,
确定不同的序列号名称,获取对应的缓存周期内的待分发序列号,就不再赘述了。仅说明:对于不同的序列号名称而言,其生成的待分发序列号可以相同也可以不同。
43.102:通过序列号生成器,接收数据节点发送的序列号获取请求,根据序列号获取请求,获取互斥锁。
44.例如,根据前文所述,用户可以通过电脑安装的数据库应用程序,访问服务器上部署的数据库系统,或者也可以直接通过web浏览器获取服务器的数据库系统登录界面进行服务器上部署的数据库系统的访问。用户由此可以发送读请求,该请求可以携带需要获取的序列号信息。如图2所示,数据库系统中的客户端2011,即服务器部署的数据库系统的上层应用程序,接收到该读请求。在该服务器上可以具有多个客户端2011组成的上层应用接口201,用于接收不同的读请求。接收到对应的请求后,客户端2011可以执行步骤211:发送获取请求,至主序列号生成器202,用于获取序列号。主序列号生成器202接收到获取请求后,需要先申请序列号对应的互斥锁,如果能拿到互斥锁,进入下一步,否则进行等待,等待拿到互斥锁。
45.其中,如图3所示,示出了序列号生成过程300,序列号生成器初始化开始后,如主序列号生成器202初始化后,执行步骤开始执行,即开始301。然后执行步骤302:获取锁,即根据上述方式获取互斥锁。
46.应理解,根据前文可知,对于只有一个序列号名称,则可以不用区分序列号名称。对于存在多个序列号名称,需要根据序列号名称,针对不同的序列号名称拿到对应的互斥锁。每次读取序列号,是针对一个序列号名称,通过对应的互斥锁来读取的,即该互斥锁是对于一个序列号名称而言。对于同一个序列号名称的所有读取请求来说,这个互斥锁也是全局锁,通过全局锁机制可以保证待分发序列号的唯一性。
47.103:通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点。
48.例如,根据前文所述,在一个序列号名称的情况下,序列号生成器通过互斥锁锁住缓存中的待分发序列号,即该序列号名称对应的待分发序列号。然后从待分发序列号中获取对应的待分发序列号。同时可以确定获取到该待分发序列号时的时间,作为时间信息,生成具有时间信息的待分发序列号,返回至对应的客户端。
49.需要说明的是,在读取待分发序列号的过程中,可以对已经分发出去的序列号进行记录,或者进行标识,以使后续分发的时候可以通过记录或标识来继续分发。由于在序列号中加入了时间戳信息,即时间信息,满足了请求侧对于时间信息的需求。
50.在存在多个序列号名称的情况下,需要通过获取请求来确定对应的序列号名称,并获取对应的序列号。
51.具体的,该方法100还包括:通过序列号生成器,根据获取请求,确定待分发序列号的名称;通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,包括:通过序列号生成器,根据互斥锁对缓存中的与名称对应的待分发序列号进行加锁;通过序列号生成器,根据序列号名称,从与名称对应的待分发序列号缓存中读取对应的待分发序列号。
52.例如,根据前文所述,序列号生成器在接收到获取请求后,可以根据获取请求中携带的序列号名称,来确定对应的序列号名称,即待分发序列号的名称。然后,序列号生成器根据确定的序列号名称,通过互斥锁对缓存中的与该名称对应的待分发序列号进行加锁。
加锁后,则可以从加锁的待分发序列号缓存中读取对应的待分发序列号,即对应着确定的序列号名称的待分发序列号。
53.由于序列号需要从基表加载到内存中,所以还需要对加载状态进行确定。
54.具体的,该方法100还包括:在获取到互斥锁后,通过序列号生成器,确定待分发序列号的加载状态;当加载状态为加载中,则等待序列号的加载,直至加载状态为加载完成的状态,然后执行根据互斥锁从缓存中读取对应的待分发序列号的步骤。
55.例如,根据前文所述,序列号生成器拿到对应的互斥锁后,需要判断当前待分发序列号的状态。如待分发序列号正处在待分发序列号对应的数据加载状态,即加载中状态。即对应的数据从基表加载到缓存中,需要进入条件等待,直至加载完成。序列号生成器可以通过读取加载状态位来确定当前的加载状态。如当加载状态位为:0,则可以为未加载。当加载状态位为:1,则可以为加载中,需要等待,直至加载状态位为:0。当加载状态位为:0,则可以根据前文所述的方式,进行待分发序列号的读取。
56.其中,如图3所示,序列号生成器执行步骤303:状态判断,即上述确定加载状态。然后根据判断条件304:数据加载中?,来执行不同的步骤,如是的情况,则序列号生成器执行步骤309:条件等待309。如否的情况,则序列号生成器执行步骤305:读取缓存305,即读取对应的待分发序列号。
57.需要说明的是,从基表加载序列号到缓存的方式不依赖于外部其它系统,在缓存命中的场景下,序列号的获取过程完全是内存访问,不需要任何的磁盘读取操作,满足了高并发场景。其中高并发场景(如sysbench(是一个开源的、模块化的、跨平台的多线程性能测试工具)128并发,server服务端96核)的测试结果显示,峰值qps(每秒查询率,queries-per-second)能够达到60万。
58.在缓存周期达到的时候,需要更新待分发序列号,在更新前需要确定当前缓存周期是否已经到达,或者处于无效的状态。
59.具体的,该方法100还包括:在读取对应的待分发序列号的情况下,通过序列号生成器,确定当前缓存周期是否有效;在当前缓存周期无效的情况下,通过序列号生成器,触发在基表中更新对应缓存周期内的待分发序列号,更新后的待分发序列号大于更新前的待分发序列号;更新完成后,通过序列号生成器,将基表中更新后的待分发序列号加载至缓存中,以进行更新后的待分发序列号的读取,并将更新后的待分发序列号存储至存储设备中。
60.例如,根据前文所述,序列号生成器在加锁后进行读取缓存的时候,先确定当前缓存周期是否有效,如缓存时间是否已到达,或者当前的待分发序列号是否已经被分发完成。如果是的话,则当前缓存周期已失效,序列号生成器需要触发在基表中更新,生成新的待分发序列号,可以根据前文所述的方式来更新,就不再赘述了,仅说明:当前初始化数值也可以随之更新,如上次的待分发序列号为1-10,那么本次的初始化数值为11。即可以根据上次待分发序列号来确定本次初始化数值。本次初始化数值要大于上次待分发序列号。更新完成后,根据前文所述的方式,进行加载到缓存中就不再赘述了。同时,当基表发生更新后,序列号生成器将基表中更新的数据持久化到磁盘(借助数据库系统的内部日志来实现,如mysql数据库中的redo日志和binlog日志),保证数据安全性。
61.如果当前缓存周期未到达,则直接读取缓存,获取对应的待分发序列号。
62.其中,如图3所示,在执行完步骤305后,根据判断条件306:读取成功?,来执行不同
server,即远程字典服务)的缓存方案,以及基于关系型数据库的自增值等。上述方式都存在各种问题,对于分布式系统,在分布式事务的场景下,并发的序列号请求可以达到几十万,并且需要保证数据的安全性和一致性,当前的方式都无法满足要求。
78.且redis本身是全内存的,系统崩溃后,原来的序列号信息会丢失。而也可以通过引入了多个序列号服务器来实现获取序列号,但需要多个服务器建进行协调调度,系统复杂度高,交互逻辑复杂。另,还可以从多个数据库的序列表获取序列号,本质上还是直接查表,性能无法满足高并发场景。
79.图4为本技术一示例性实施例提供的一种序列号的生成系统的结构示意图。如图4所示,该系统400可以包括:第一设备401以及第二设备402。
80.其中,第一设备401可以是有一定计算能力的设备,可以实现向第二设备402发送数据的功能,也可以接收第二设备402发送的数据。第一设备401的基本结构可以包括:至少一个处理器。处理器的数量可以取决于具有一定计算能力装置的配置和类型。具有一定计算能力装置也可以包括存储器,该存储器可以为易失性的,例如ram,也可以为非易失性的,例如只读存储器(read-only memory,rom)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(operating system,os)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,具有一定计算能力装置还包括一些基本配置,例如网卡芯片、io总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、输入笔等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,第一设备401可以为智能终端,例如,手机、台式电脑、笔记本、平板电脑等。
81.第二设备402是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行序列号的生成的设备。在物理实现上,第二设备402可以是任何能够提供计算服务,响应服务请求,并进行序列号的生成的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等,其上构架有数据库。第二设备402的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。
82.具体的,第二设备402,部署有数据库系统,在数据库系统中部署有序列号生成器。
83.第二设备402,通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,并将待分发序列号加载至缓存中;通过序列号生成器,接收数据节点发送的序列号获取请求,根据序列号获取请求,获取互斥锁;通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点;通过数据库系统,记录对应的执行操作日志。
84.其中,在数据库系统中部署有主备节点,在主节点上部署有主序列号生成器,在备节点上部署有备用序列号生成器,以使在主序列号生成器发生异常无法进行恢复的情况下,切换备用序列号生成器。
85.第一设备401,可以向第二设备402,发送读请求,以使第二设备402接收到基于读请求的序列号获取请求。
86.第二设备402,通过序列号生成器,根据序列号的初始化数值以及增长步长,在基表中获取当前缓存周期内待分发序列号。
87.第二设备402,通过序列号生成器,根据序列号的序列号名称以及缓存周期,通过对应序列号的初始化数值以及增长步长,在基表中获取当前缓存周期内对应待分发序列
号。
88.此外,第二设备402,在获取到互斥锁后,通过序列号生成器,确定待分发序列号的加载状态;当加载状态为加载中,则等待序列号的加载,直至加载状态为加载完成的状态,执行根据互斥锁,从缓存中读取对应的待分发序列号的步骤。
89.此外,第二设备402,在读取对应的待分发序列号的情况下,通过序列号生成器,确定当前缓存周期是否有效;在当前缓存周期无效的情况下,通过序列号生成器,触发在基表中更新对应缓存周期内的待分发序列号,更新的待分发序列号大于更新前的待分发序列号;更新完成后,通过序列号生成器,将基表中更新后的待分发序列号加载至缓存中,以进行更新后的待分发序列号的读取,并将更新后的待分发序列号存储至存储设备中。
90.此外,第二设备402,通过序列号生成器,根据获取请求,确定待分发序列号的名称;通过序列号生成器,根据互斥锁对缓存中的与名称对应的待分发序列号进行加锁;通过序列号生成器,根据名称,从与名称对应的待分发序列号中读取对应的待分发序列号。
91.此外,第二设备402,当数据库系统崩溃后,通过序列号生成器,根据记录的执行操作,在基表中恢复对应的待分发序列号,恢复的待分发序列号大于恢复前的待分发序列号。
92.当基表中更新当前缓存周期的待分发序列号时,第二设备402,通过主节点同步记录执行操作日志,并将执行操作日志发送至备节点,以使备节点通过执行操作日志在基表中获取当前缓存周期的待分发序列号;在主节点发生异常无法进行恢复的情况下,通过备节点根据基表中获取到的待分发序列号,恢复出新的待分发序列号。
93.未能详尽的内容请参考前文所述,就不再赘述了。
94.在待分发序列号的场景中,用户可以通过第一设备401,如电脑通过本地安装的数据库应用程序,来发送读请求。如执行步骤411:发送读请求,至第二设备402。如云服务器。云服务器上部署的数据库系统中的客户端,即服务器部署的数据库系统的上层应用程序,接收到该读请求,可以发送序列号获取请求,至序列号生成器。序列号生成器接收到获取请求后,需要先申请序列号对应的互斥锁,如果能拿到互斥锁,进入下一步,否则进行等待,等待拿到互斥锁。
95.序列号生成器在接收到获取请求后,可以根据获取请求中携带的序列号名称,来确定对应的序列号名称,即待分发序列号的名称。序列号生成器需要判断当前待分发序列号的状态。如待分发序列号正处在待分发序列号对应的数据加载状态,即加载中状态。即对应的数据从基表加载到缓存中,需要进入条件等待,直至加载完成。序列号生成器可以通过读取加载状态位来确定当前的加载状态。如当加载状态位为:0,则可以为未加载。当加载状态位为:1,则可以为加载中,需要等待,直至加载状态位为:0。当加载状态位为:0,则可以根据确定的序列号名称,通过互斥锁对缓存中的与该名称对应的待分发序列号进行加锁。加锁后,则可以从加锁的待分发序列号中读取对应的待分发序列号,即对应着确定的序列号名称的待分发序列号。
96.序列号生成器可以在加锁后,在进行读取缓存的时候,可以先确定当前缓存周期是否有效,如缓存时间是否已到达,或者当前的待分发序列号是否已经被分发完成。如果是的话,则当前缓存周期已失效,则序列号生成器需要触发在基表中更新新的待分发序列号。在获取到待分发序列号后可以确定对应的时间,作为时间信息,生成具有时间信息的待分发序列号,返回至对应的客户端,然后客户端可以根据该序列号来响应读请求,进行数据的
读取。然后由云服务器返回至电脑写入结果,即执行了步骤:412:返回读请求的结果。
97.此处未详细记载的内容可以参考前文所述的内容,就不再赘述。
98.在上述本实施例中,第一设备401、第二设备402进行网络连接。若第一设备401、第二设备402是通信连接,该移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td-scdma、cdma2000、utms)、4g(lte)、4g (lte )、wimax、5g等中的任意一种。
99.图5为本技术一示例性实施例提供的一种序列号的生成装置的结构框架示意图。该装置500可以应用于应数据库系统,在数据库系统中部署有序列号生成器。该装置500包括:生成模块501、获取模块502、读取模块503以及记录模块504;以下针对各个模块的功能进行详细的阐述:
100.生成模块501,用于通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,并将待分发序列号加载至缓存中。
101.获取模块502,用于通过序列号生成器,接收数据节点发送的序列号获取请求,根据序列号获取请求,获取互斥锁。
102.读取模块503,用于通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点。
103.记录模块504,用于通过数据库系统,记录对应的执行操作日志。
104.具体的,生成模块501,用于通过序列号生成器,根据序列号的序列号名称以及缓存周期,通过对应序列号的初始化数值以及增长步长,在基表中获取当前缓存周期内对应待分发序列号。
105.获取模块502,用于通过序列号生成器,接收数据节点发送的序列号获取请求,根据序列号获取请求,获取互斥锁。
106.获取模块502包括:加锁单元,用于通过序列号生成器,根据序列号获取请求中序列号名称,对所述缓存中相对应的待分发序列号进行加锁。
107.获取模块502还包括:第一等待单元,如果加锁单元未能拿到互斥锁,等待单元进行等待逻辑,等待拿到互斥锁。
108.读取模块503,用于通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点。
109.读取模块503包括:确定单元,用于在获取到互斥锁后,通过序列号生成器,确定待分发序列号的加载状态;第二等待单元,用于当加载状态为加载中,则等待序列号的加载,直至加载状态为加载完成的状态,执行根据互斥锁,从缓存中读取对应的待分发序列号的步骤。此外,确定单元,还用于在读取对应的待分发序列号的情况下,通过序列号生成器,确定当前缓存周期是否有效。
110.读取模块503还包括:更新单元,用于在当前缓存周期无效的情况下,通过序列号生成器,触发在基表中更新对应缓存周期内的待分发序列号,更新的待分发序列号大于更新前的待分发序列号。
111.读取模块503还包括:加载单元,用于更新完成后,通过序列号生成器,将基表中更新后的待分发序列号加载至缓存中,以进行更新后的待分发序列号的读取,并将更新后的
待分发序列号存储至存储设备中。
112.读取模块503还包括:生成单元,用于通过序列号生成器,根据名称,从缓存中读取待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点。
113.记录模块504,用于通过数据库系统,记录对应的执行操作日志。
114.记录模块504包括:日志单元,当基表中的序列号发生更新或者写入时,在数据库系统内同步记录对应的执行操作日志。
115.记录模块504还包括:发送单元,用于在基表中更新当前缓存周期的待分发序列号的情况下,通过主节点同步记录执行操作日志,并将执行操作日志发送至备节点,以使备节点通过执行操作日志在基表中获取当前缓存周期的待分发序列号。
116.记录模块504还包括:恢复单元,用于当数据库系统崩溃后,通过序列号生成器,根据数据库系统内记录的执行操作日志,在基表中恢复对应的待分发序列号,恢复的待分发序列号大于恢复前的待分发序列号。恢复单元,还用于在主节点发生异常无法进行恢复的情况下,通过备节点根据基表中获取到的待分发序列号,恢复出新的待分发序列号。
117.本装置500中未能详尽的内容请参考前文所述,就不再赘述。
118.以上描述了图5所示的装置500的内部功能和结构,在一个可能的设计中,图5所示的装置500的结构可实现为计算设备,如,服务器。如图6所示,该设备600可以包括:存储器601、处理器602;该设备600部署有数据库系统,在数据库系统中部署有序列号生成器。
119.存储器601,用于存储计算机程序。
120.处理器602,用于执行计算机程序,以用于:通过序列号生成器,根据序列号的属性,在基表中获取当前缓存周期内的待分发序列号,并将待分发序列号加载至缓存中;通过序列号生成器,接收数据节点发送的序列号获取请求,根据序列号获取请求,获取互斥锁;通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点;通过数据库系统,记录对应的执行操作日志。
121.具体的,处理器602,具体用于,通过序列号生成器,根据序列号的序列号名称以及缓存周期,通过对应序列号的初始化数值以及增长步长,在基表中获取当前缓存周期内对应待分发序列号。
122.此外,处理器602,还用于,通过序列号生成器,根据序列号获取请求,确定待分发序列号的名称。
123.此外,处理器602,还用于,通过序列号生成器,根据序列号获取请求中的序列号名称,对所述缓存中的与名称对应的待分发序列号进行加锁。通过序列号生成器,根据互斥锁,从缓存中读取对应的待分发序列号,并添加对应的时间信息,生成具有时间信息的待分发序列号,返回至对应的数据节点。
124.此外,处理器602,还用于,在获取到互斥锁后,通过序列号生成器,确定待分发序列号的加载状态;当加载状态为加载中,则等待序列号的加载,直至加载状态为加载完成的状态,执行根据互斥锁,从缓存中读取对应的待分发序列号的步骤。
125.此外,处理器602,还用于,在读取对应的待分发序列号的情况下,通过序列号生成器,确定当前缓存周期是否有效;在当前缓存周期无效的情况下,通过序列号生成器,触发
在基表中更新对应缓存周期内的待分发序列号,更新的待分发序列号大于更新前的待分发序列号;更新完成后,通过序列号生成器,将基表中更新后的待分发序列号加载至缓存中,以进行更新后的待分发序列号的读取,并将更新后的待分发序列号存储至存储设备中。
126.此外,处理器602,还用于,通过数据库系统,记录对应的执行操作日志。当数据库系统崩溃后,通过序列号生成器,根据数据库系统内记录的执行操作日志,在基表中恢复对应的待分发序列号,恢复的待分发序列号大于恢复前的待分发序列号。
127.此外,在数据库系统为高可用架构部署的情况下,处理器602,还用于,通过主节点同步记录执行操作日志,并将执行操作日志发送至备节点,以使备节点通过执行操作日志更新基表中的数据。在主节点发生异常无法进行恢复的情况下,通过备节点根据基表中获取到的待分发序列号,恢复出新的待分发序列号。
128.本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图1-图3方法实施例中一种序列号的生成方法的步骤。就不再过多赘述了。
129.本发明实施例提供了一种计算机程序产品,包括计算机程序或指令,其中,当计算机程序被处理器执行时,致使处理器实现图1-图3方法实施例中一种序列号的生成方法的步骤。
130.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102、103等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
131.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
132.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
133.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的
功能的装置。
134.这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
135.这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
136.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
137.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
138.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
139.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献