CN117725115A - 一种数据库序列处理方法、装置、设备以及存储介质 - Google Patents
一种数据库序列处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN117725115A CN117725115A CN202311758034.2A CN202311758034A CN117725115A CN 117725115 A CN117725115 A CN 117725115A CN 202311758034 A CN202311758034 A CN 202311758034A CN 117725115 A CN117725115 A CN 117725115A
- Authority
- CN
- China
- Prior art keywords
- sequence
- target
- request
- transaction management
- global transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 12
- 230000002045 lasting effect Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 18
- 230000002688 persistence Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000533950 Leucojum Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种数据库序列处理方法、装置、设备以及存储介质。该方法包括:监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。本发明的技术方案,可以提高计算节点和全局事务管理节点之间数据库序列分配的效率和准确性,达到较小的序列存储占用,较少的序列缓存浪费,以及更高的序列生成性能。
Description
技术领域
本发明涉及大数据领域,尤其涉及一种数据库序列处理方法、装置、设备以及存储介质。
背景技术
随着分布式数据库的发展,在分布式系统的运行过程中,计算节点请求全局事务管理节点分配分布式序列是常见的应用场景。分布式序列主要包含以下2个必要特征:全局唯一性,趋势递增。另外,分布式序列还包括以下3个特性:序列数据类型越小越好,序列缓存浪费越小越好,序列生成性能越高越好。
因此,如何提高计算节点和全局事务管理节点之间数据库序列分配的效率和准确性,达到序列存储占用最小,序列缓存浪费少,序列生成性能高,是目前亟待解决的问题。
发明内容
本发明提供了一种数据库序列处理方法、装置、设备以及存储介质,以提高计算节点和全局事务管理节点之间数据库序列分配的效率和准确性,达到序列存储占用最小,序列缓存浪费少,序列生成性能高。
根据本发明的一方面,提供了一种数据库序列处理方法,由计算节点执行,包括:
监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;
根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;
将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。
根据本发明的另一方面,提供了一种数据库序列处理方法,由全局事务管理节点执行,包括:
响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量、数据库序列分配的当前值,以及上一次持久化落盘的历史序列值;
确定当前值与历史序列值的关系是否满足预设下发条件,若是,则根据请求数量和数据库序列分配的当前值,生成第一目标序列;
根据第一目标序列,对计算节点发送的第一目标请求进行响应。
根据本发明的另一方面,提供了一种数据库序列处理装置,所述装置配置于计算节点中,包括:
第一确定模块,用于监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;
第一生成模块,用于根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;
第一响应模块,用于将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。
根据本发明的另一方面,提供了一种数据库序列处理装置,所述装置配置于全局事务管理节点中,包括:
第二确定模块,用于响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量、数据库序列分配的当前值,以及上一次持久化落盘的历史序列值;
第二生成模块,用于确定当前值与历史序列值的关系是否满足预设下发条件,若是,则根据请求数量和数据库序列分配的当前值,生成第一目标序列;
第二响应模块,用于根据第一目标序列,对计算节点发送的第一目标请求进行响应。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据库序列处理方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据库序列处理方法。
本发明实施例的技术方案,计算节点监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。通过这样的方式,可以提高计算节点和全局事务管理节点之间数据库序列分配的效率和准确性,达到较小的序列存储占用,较少的序列缓存浪费,以及更高的序列生成性能。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明实施例一提供的一种数据库序列处理方法的流程图;
图1B是本发明实施例一提供的计算节点合并申请序列技术原理图;
图1C是本发明实施例一提供的计算节点进行本地缓存的技术原理图;
图1D是本发明实施例一提供的分布式数据库系统的总体架构图;
图2A是本发明实施例二提供的一种数据库序列处理方法的流程图;
图2B是本发明实施例二提供的全局事务管理节点序列分段持久化技术原理图;
图2C是本发明实施例二提供的分布式数据库序列生成示意图;
图3是本发明实施例三提供的一种数据库序列处理装置的结构框图;
图4是本发明实施例四提供的一种数据库序列处理装置的结构框图;
图5是本发明实施例五提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”、“候选”、“备选”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在相关技术中,实现数据库序列生成的方案有以下几种:1)UUID方案:该方案可以由分布式数据库的各个CN节点独立生成。主要问题在于序列不是趋势递增,序列类型非整形,存储空间过大;2)雪花算法方案:该方案需要由全局管理节点提供时间戳,各个CN节点独立生成本地部分。主要问题在于对于序列缓存浪费较多,与数据库序列标准用法有一定差异,以及在大规模组网下存在性能瓶颈;3)自增列方案:利用数据库自增列的特性实现。主要问题在于数据库自增列性能较低。针对上述问题,本申请提出了一种新的分布式数据库的序列生成方案,可以在满足全局唯一性和趋势递增性这2个必要特征的基础上,达到序列存储占用最小、序列缓存浪费少,以及提高分布式数据库的序列生成性能。具体的实施方式将在后续实施例详细介绍。
实施例一
图1A是本发明实施例一提供的一种数据库序列处理方法的流程图;图1B是本发明实施例一提供的计算节点合并申请序列技术原理图;图1C是本发明实施例一提供的计算节点进行本地缓存的技术原理图;图1D是本发明实施例一提供的分布式数据库系统的总体架构图;本实施例适用于分布式系统中的计算节点根据业务端发送的申请数据库序列的请求与全局事务管理节点进行反馈的情况,该方法可以由数据库序列处理装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于具有数据库序列处理功能的电子设备中,如分布式数据库系统的计算节点中。如图1A所示,该数据库序列处理方法包括:
S101、监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量。
其中,第一候选请求是指业务端发送的申请数据库序列的请求,第一候选请求可以是业务端发送至本机计算节点的请求,也可以是业务端发送至计算节点集群中除本机计算节点之外的其他计算节点的请求。请求数量是指预设时间段内本机计算节点接收到的第一候选请求的数量,也可以是指预设时间段内计算节点集群接收到的第一候选请求的数量。计算节点集群由多个中间件DBProxy组成,通过SQL语句在计算节点中完成基本的处理和分发。
可选的,本机计算节点可以直接统计预设时间段内业务端发送至本地的第一候选请求,以确定第一候选请求的请求数量。
可选的,在预设时间段内,本机计算节点可以与计算节点集群中除本机计算节点之外的其他计算节点交互,统计业务端发送至其他计算节点的第一候选请求,进一步结合业务端发送至本机计算节点的第一候选请求,确定第一候选请求的请求数量。
S102、根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求。
其中,本地序列库是指存储于计算节点本地的二级缓存库,本地序列库存储有预先从全局事务管理节点申请的数据库序列,即缓存序列。第一目标请求是指本机计算节点确定的最终需要发送至全局事务管理节点的数据库序列申请请求。
示例性的,计算节点收到2个申请序列的第一候选请求,则可以合并2个第一候选请求向全局事务管理节点申请2个序列,也就是说,如果请求数量为2,则第一目标请求就是请求2个序列。
可选的,根据请求数量,确定本地序列库的缓存序列是否满足条件之后,还包括:确定本地序列库的缓存序列数量;若缓存序列数量大于请求数量,则确定本地序列库的缓存序列满足条件;根据请求数量,以及本地序列库的缓存序列的编号顺序,从缓存序列中筛选出对应请求数量的反馈序列,以根据反馈序列对业务端进行响应。
示例性的,若本地的缓存序列为序列1、序列2以及序列3,请求数量为2,则根据缓存序列的编号顺序,可以将序列1和序列2确定为反馈序列,向业务端反馈。
S103、将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。
其中,全局事务管理(Global transaction manager,GTM)节点是指分布式数据库系统用于生成和维护分布式序列的节点,还可以用于生成和维护分布式事务的全局事务ID。第一目标序列是指第一目标请求对应的数据库序列,第一目标序列的数量与第一目标请求相同。
可选的,将第一目标请求发送至全局事务管理节点之后,还包括:在等待全局事务管理节点反馈第一目标序列的过程中,若检测到业务端发送的新申请序列请求,则生成第二目标请求;在接收到全局事务管理节点反馈的第一目标序列时,向全局事务管理节点发送第二目标请求,以获取第二目标序列,并根据第二目标序列,对业务端进行响应。
其中,第二目标请求是指计算节点在等待全局事务管理节点反馈第一目标序列的过程中接收到的申请序列请求。
可选的,计算节点可以在等待全局事务管理节点反馈第一目标序列的过程中,若检测到业务端发送的第二候选请求,则将第二候选请求进行合并处理,以生成第二目标请求。
示例性的,参见图1B,计算节点可以在T1时刻,接收业务端向计算节点发送申请序列的请求,需要申请序列1,以及在T2时刻,业务端向计算节点发送的申请序列的请求,需要申请序列2,若T1时刻和T2时刻都位于预设时间段内,则此时计算节点可以确定预设时间段内收到了2个申请序列的请求,在本地序列库的缓存序列不满足条件的情况下,合并2个请求向全局事务管理节点申请2个序列(即发送第一目标请求),进一步的,在等待全局事务管理节点反馈第一目标序列的过程中,于T3时刻,业务端向计算节点发送申请序列的请求,需要申请序列3,于T4时刻,业务端向计算节点发送申请序列的请求,需要申请序列4,于T5时刻,业务端向计算节点发送申请序列的请求,需要申请序列5,然后计算节点收到全局事务管理节点发送的申请序列的结果,此时可以给业务端返回所申请的序列1和序列2(即第一目标序列),由于在2次申请周期内,积压了3个序列申请请求,因此向全局事务管理节点合并申请3个序列,计算节点继续向全局事务管理节点发送申请序列的请求(即第二目标请求),并收到全局事务管理节点发送的申请序列的结果(即第二目标序列),最后向业务端返回所申请的序列3,序列4和序列5。
可选的,可以基于计算节点序列本地二级缓存技术,预先在本地存储预设数量的缓存序列,以避免计算节点频繁向全局事务管理节点申请序列,提高二者的交互效率,相应的,具体实现方式包括:若检测到数据库序列缓存事件,则根据预设的批量请求数量,生成缓存序列申请请求;将缓存序列申请请求向全局事务管理节点发送,以指示全局事务管理节点反馈缓存序列;获取全局事务管理节点反馈的缓存序列,并存储于计算节点的本地序列库。
其中,数据库序列缓存事件可以是检测到业务端发送的序列申请请求时,也可以是由相关人员基于预设周期主动触发。批量请求数量例如可以是100个。缓存序列的数量为批量请求数量。
示例性的,参见图1C,本地缓存足够时利用本地缓存快速返回序列结果,本地缓存序列不足时继续向全局事务管理节点申请一批新的序列,具体的,计算节点开启进行本地缓存的过程可以包括:
1)T1时刻,业务端向计算节点发送申请序列的请求,申请序列1;
2)T2时刻,业务端向计算节点发送申请序列的请求,申请序列2;
3)计算节点收到2个申请序列的请求,由于开启了本地二级缓存功能,缓存100个序列,因此向全局事务管理节点申请100个序列;
4)T3时刻,业务端向计算节点发送申请序列的请求,申请序列3;
5)T4时刻,业务端向计算节点发送申请序列的请求,申请序列4;
6)T5时刻,业务端向计算节点发送申请序列的请求,申请序列5;
7)计算节点收到全局事务管理节点发送的申请序列的结果;
8)计算节点给业务端返回所申请的序列1,序列2,序列3,序列4,序列5。剩余的序列放在计算节点本地二级缓存中,给后续序列申请分配。其中,计算节点本地二级缓存中的缓存序列,在计算节点重启后将废弃,不会被使用。
示例性的,本发明可以应用于GoldenDB分布式数据库系统中,分布式数据库系统可以包括:业务端、计算节点组成的计算节点集群、全局事务管理中心以及数据节点集群。
具体的,参见图1D,业务端也就是客户接入层,由多个(如N个)应用APP组成,支持通用的ODBC和JDBC接口,用户通过客户接入层使用分布式数据库;计算节点集群由多个(如n个)中间件DBProxy组成,SQL语句在计算节点中完成基本的处理和分发;管理节点由多个组件组成,包括OMM Server,MDS,PM,CM等,用于管理和保障分布式数据库系统;全局事务管理GTM主要用于生成和维护分布式事务的全局事务ID,分布式序列等;数据节点集群由多个DB-GROUP组成,每个DB-GROUP由1主多备的DB构成(即DB-M和DB-S),主要用于数据的读写、存储、同步等;后置中间件主要对数据节点进行监测和高可用管理等。
需要说明的是,本发明通过计算节点监控序列申请请求的数量,若数量达到预设数量阈值,则将至少两个监控计算节点的序列申请请求合并,生成打包序列申请请求,统一发送至全局事务管理中心,可以有效通过申请序列的效率。
本发明实施例的技术方案,计算节点可以监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。通过这样的方式,可以提高计算节点和全局事务管理节点之间数据库序列分配的效率和准确性,达到较小的序列存储占用,较少的序列缓存浪费,以及更高的序列生成性能。
实施例二
图2A是本发明实施例二提供的一种数据库序列处理方法的流程图;图2B是本发明实施例二提供的全局事务管理节点序列分段持久化技术原理图;图2C是本发明实施例二提供的分布式数据库序列生成示意图;本实施例适用于分布式系统中的全局事务管理节点响应于计算节点发送的数据库序列申请请求进行数据库序列分配和下发的情况,该方法可以由数据库序列处理装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于具有数据库序列处理功能的电子设备中,如分布式数据库系统的全局事务管理节点中,具体可以是全局事务管理主节点。如图2A所示,该数据库序列处理方法包括:
S201、响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量、数据库序列分配的当前值,以及上一次持久化落盘的历史序列值。
其中,数据库序列分配的当前值是指当前已经分配的数据库序列的编号值。历史序列值是指全局事务管理节点上一次持久化落盘的数据库序列的编号值,也就是上一次存储于磁盘空间的数据库序列值。
可选的,响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量之后,全局事务管理节点可以在磁盘空间进行查询,确定上一次持久化落盘的历史序列值。
S202、确定当前值与历史序列值的关系是否满足预设下发条件,若是,则根据请求数量和数据库序列分配的当前值,生成第一目标序列。
其中,预设下发条件是指评估是否可以直接将生成的第一目标序列下发至计算节点的条件。预设下发条件可以是评估当前值与历史序列值的差值与预设的偏差阈值的大小关系。
可选的,确定当前值与历史序列值的关系是否满足预设下发条件,包括:确定当前值与历史序列值的目标差值;判断目标差值是否小于预设的偏差阈值,若是,则确定当前值与历史序列值的关系满足预设下发条件。其中,偏差阈值例如可以是1000。
可选的,判断目标差值是否小于预设的偏差阈值之后,若否,也就是刚好达到偏差阈值,则需要将新分配的序列当前值进行持久化,且同步到全局事务管理节点的备节点,然后才能将该序列值(即第一目标序列)给计算节点。
可选的,如果全局事务管理节点发生主备切换或者主机异常重启,则序列将会从本地磁盘记录的当前值+1000阈值的位置开始分配新的序列值,避免发生序列重复的问题。其中,当主节点异常后会发生主备切换;如果主备切换了备用管理节点会从磁盘获取最新序列值,从最新序列值+1000阈值的位置开始分配新的序列值。
需要说明的是,主机异常包括很多,比如主节点所在服务器异常宕机,主节点程序异常停止等,主机异常重启后的角色如果仍然是主节点,那么继续由该主节点分配新的序列值,如果变为了备节点,那么由新的主节点分配新的序列值,序列值始终是由主节点进行分配。
S203、根据第一目标序列,对计算节点发送的第一目标请求进行响应。
其中,序列在全局事务管理节点上,是一个单调递增的UINT64大小的数值,顺序递增。
可选的,根据第一目标序列,全局事务管理节点可以直接将第一目标序列反馈至计算节点,实现对计算节点发送的第一目标请求的响应。
需要说明的是,如果每一个序列申请都需要进行磁盘落盘,那么序列申请的性能会比较差,本发明通过使得全局事务管理节点判断该当前值距离上一次持久化落盘的序列值的差值是否小于预设阈值(如配置为1000,当需要更高性能时,可以将分段持久化阙值调高),并在差值达到1000阈值时进行落盘持久化,实现了分段持久化,可以大大提高序列申请的性能。
示例性的,参见图2B,管理节点基于分段持久化技术进行序列分配的过程如下:第1步:全局事务管理节点(主节点)对当前值进行落盘持久化,且同步到全局事务管理节点备节点1和备节点2;第2步:全局事务管理节点响应于计算节点发送的申请数据库序列的请求,不断给请求序列的计算节点返回新的序列;第3步:全局事务管理节点序列的当前值和上一次落盘持久化的序列值相比,差值达到1000阈值时,再次进行序列当前值的落盘持久化,且同步到全局事务管理节点备节点1和备节点2。
需要说明的是,全局事务管理节点存储的序列值需要按照策略存储在磁盘上,避免重启导致内存中的序列丢失,同时,发送备节点是为了当主节点异常后,切换到备节点能够正常运行,使用正确的序列值。
本发明实施例的技术方案,全局事务管理节点可以响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量、数据库序列分配的当前值,以及上一次持久化落盘的历史序列值;确定当前值与历史序列值的关系是否满足预设下发条件,若是,则根据请求数量和数据库序列分配的当前值,生成第一目标序列;根据第一目标序列,对计算节点发送的第一目标请求进行响应。通过这样的方式,可以提高计算节点和全局事务管理节点之间数据库序列分配的效率和准确性,达到较小的序列存储占用,较少的序列缓存浪费,以及更高的序列生成性能。
优选的,参见图2C,在分布式数据库场景下,本发明的数据序列处理方案可以包含如下步骤:
(1)分布式数据库的业务端向计算节点发送一个序列申请的请求,申请序列;(2)分布式数据库的计算节点收到序列的申请;(3)分布式数据库的计算节点判断本地二级缓存是否存在缓存的序列;(4)如果存在缓存的序列,则从缓存的序列获取一个当前值,给业务端返回;(5)如果不存在缓存的序列,则合并请求,向全局事务管理节点发送以申请序列;(6)分布式数据库的全局事务管理节点收到计算节点序列申请的请求,进行分配序列,同时判断当前值与上一次持久化落盘的序列值的差值是否达到1000阈值,即判断是否达到持久化阈值;(7)如果刚好达到阈值,则需要将新分配的序列当前值进行落盘持久化,且同步到全局事务管理节点的备节点(即备机),然后才能将该序列值发送给计算节点;(8)如果没有达到阈值,则直接将该序列值发送给计算节点;(9)分布式数据库的计算节点收到全局事务管理节点返回的序列值,(10)计算节点给业务端返回申请的序列结果,然后将多余的序列进行本地二级缓存,以便后续收到业务序列请求进行快速分配。
本发明的技术方案,可以在满足全局唯一性和趋势递增性这2个必要特征的基础上,达到序列存储占用最小,序列缓存浪费少,序列生成性能高。尤其提高了分布式数据库高并发场景下序列申请的性能,根据实际测试结果,性能提升了180倍以上。因此本发明最终大大提高了分布式数据库系统的产品竞争力。
实施例三
图3是本发明实施例三提供的一种数据库序列处理装置的结构框图;本实施例可适用于分布式系统中的计算节点根据业务端发送的申请数据库序列的请求与全局事务管理节点进行反馈的情况,本发明实施例所提供的数据库序列处理装置可执行本发明任一实施例所提供的数据库序列处理方法,具备执行方法相应的功能模块和有益效果;该数据库序列处理装置可以采用硬件和/或软件的形式实现,并配置于具有数据库序列处理功能的设备中,如分布式数据库系统的计算节点中。如图3所示,该数据库序列处理装置具体包括:
第一确定模块301,用于监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;
第一生成模块302,用于根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;
第一响应模块303,用于将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。
本发明实施例的技术方案,计算节点监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。通过这样的方式,可以提高计算节点和全局事务管理节点之间数据库序列分配的效率和准确性,达到较小的序列存储占用,较少的序列缓存浪费,以及更高的序列生成性能。
进一步的,上述装置还用于:
确定本地序列库的缓存序列数量;
若缓存序列数量大于请求数量,则确定本地序列库的缓存序列满足条件;
根据请求数量,以及本地序列库的缓存序列的编号顺序,从缓存序列中筛选出对应请求数量的反馈序列,以根据反馈序列对业务端进行响应。
进一步的,上述装置还用于:
在等待全局事务管理节点反馈第一目标序列的过程中,若检测到业务端发送的新申请序列请求,则生成第二目标请求;
在接收到全局事务管理节点反馈的第一目标序列时,向全局事务管理节点发送第二目标请求,以获取第二目标序列,并根据第二目标序列,对业务端进行响应。
进一步的,上述装置还用于:
若检测到数据库序列缓存事件,则根据预设的批量请求数量,生成缓存序列申请请求;
将缓存序列申请请求向全局事务管理节点发送,以指示全局事务管理节点反馈缓存序列;
获取所述全局事务管理节点反馈的缓存序列,并存储于计算节点的本地序列库。
实施例四
图4是本发明实施例四提供的一种数据库序列处理装置的结构框图;本实施例可适用于分布式系统中的全局事务管理节点响应于计算节点发送的数据库序列申请请求进行数据库序列分配和下发的情况,本发明实施例所提供的数据库序列处理装置可执行本发明任一实施例所提供的数据库序列处理方法,具备执行方法相应的功能模块和有益效果;该数据库序列处理装置可以采用硬件和/或软件的形式实现,并配置于具有数据库序列处理功能的设备中,如分布式数据库系统的全局事务管理节点中。如图4所示,该数据库序列处理装置具体包括:
第二确定模块401,用于响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量、数据库序列分配的当前值,以及上一次持久化落盘的历史序列值;
第二生成模块402,用于确定当前值与历史序列值的关系是否满足预设下发条件,若是,则根据请求数量和数据库序列分配的当前值,生成第一目标序列;
第二响应模块403,用于根据第一目标序列,对计算节点发送的第一目标请求进行响应。
本发明实施例的技术方案,全局事务管理节点可以响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量、数据库序列分配的当前值,以及上一次持久化落盘的历史序列值;确定当前值与历史序列值的关系是否满足预设下发条件,若是,则根据请求数量和数据库序列分配的当前值,生成第一目标序列;根据第一目标序列,对计算节点发送的第一目标请求进行响应。通过这样的方式,可以提高计算节点和全局事务管理节点之间数据库序列分配的效率和准确性,达到较小的序列存储占用,较少的序列缓存浪费,以及更高的序列生成性能。
进一步的,第二生成模块402具体用于:
确定当前值与历史序列值的目标差值;
判断所述目标差值是否小于预设的偏差阈值,若是,则确定当前值与历史序列值的关系满足预设下发条件。
实施例五
图5是本发明实施例五提供的电子设备的结构示意图;图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据库序列处理方法。
在一些实施例中,数据库序列处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的数据库序列处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据库序列处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种数据库序列处理方法,其特征在于,由计算节点执行,包括:
监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;
根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;
将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。
2.根据权利要求1所述的方法,其特征在于,根据请求数量,确定本地序列库的缓存序列是否满足条件之后,还包括:
确定本地序列库的缓存序列数量;
若缓存序列数量大于请求数量,则确定本地序列库的缓存序列满足条件;
根据请求数量,以及本地序列库的缓存序列的编号顺序,从缓存序列中筛选出对应请求数量的反馈序列,以根据反馈序列对业务端进行响应。
3.根据权利要求1所述的方法,其特征在于,将第一目标请求发送至全局事务管理节点之后,还包括:
在等待全局事务管理节点反馈第一目标序列的过程中,若检测到业务端发送的新申请序列请求,则生成第二目标请求;
在接收到全局事务管理节点反馈的第一目标序列时,向全局事务管理节点发送第二目标请求,以获取第二目标序列,并根据第二目标序列,对业务端进行响应。
4.根据权利要求1所述的方法,其特征在于,还包括:
若检测到数据库序列缓存事件,则根据预设的批量请求数量,生成缓存序列申请请求;
将缓存序列申请请求向全局事务管理节点发送,以指示全局事务管理节点反馈缓存序列;
获取所述全局事务管理节点反馈的缓存序列,并存储于计算节点的本地序列库。
5.一种数据库序列处理方法,其特征在于,由全局事务管理节点执行,包括:
响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量、数据库序列分配的当前值,以及上一次持久化落盘的历史序列值;
确定当前值与历史序列值的关系是否满足预设下发条件,若是,则根据请求数量和数据库序列分配的当前值,生成第一目标序列;
根据第一目标序列,对计算节点发送的第一目标请求进行响应。
6.根据权利要求5所述的方法,其特征在于,确定当前值与历史序列值的关系是否满足预设下发条件,包括:
确定当前值与历史序列值的目标差值;
判断所述目标差值是否小于预设的偏差阈值,若是,则确定当前值与历史序列值的关系满足预设下发条件。
7.一种数据库序列处理装置,其特征在于,所述装置配置于计算节点中,包括:
第一确定模块,用于监控预设时间段内业务端发送的申请数据库序列的第一候选请求,并确定第一候选请求的请求数量;
第一生成模块,用于根据请求数量,确定本地序列库的缓存序列是否满足条件,若否,则根据请求数量,生成第一目标请求;
第一响应模块,用于将第一目标请求发送至全局事务管理节点,以获取全局事务管理节点反馈的第一目标序列,并根据第一目标序列,对业务端进行响应。
8.一种数据库序列处理装置,其特征在于,所述装置配置于全局事务管理节点中,包括:
第二确定模块,用于响应于计算节点发送的申请数据库序列的第一目标请求,确定请求数量、数据库序列分配的当前值,以及上一次持久化落盘的历史序列值;
第二生成模块,用于确定当前值与历史序列值的关系是否满足预设下发条件,若是,则根据请求数量和数据库序列分配的当前值,生成第一目标序列;
第二响应模块,用于根据第一目标序列,对计算节点发送的第一目标请求进行响应。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4,和/或5-6中任一项所述的数据库序列处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-4,和/或5-6中任一项所述的数据库序列处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311758034.2A CN117725115A (zh) | 2023-12-19 | 2023-12-19 | 一种数据库序列处理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311758034.2A CN117725115A (zh) | 2023-12-19 | 2023-12-19 | 一种数据库序列处理方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117725115A true CN117725115A (zh) | 2024-03-19 |
Family
ID=90203173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311758034.2A Pending CN117725115A (zh) | 2023-12-19 | 2023-12-19 | 一种数据库序列处理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117725115A (zh) |
-
2023
- 2023-12-19 CN CN202311758034.2A patent/CN117725115A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534776B2 (en) | Proximity grids for an in-memory data grid | |
CN113193947B (zh) | 实现分布式全局序的方法、设备、介质及程序产品 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111680015A (zh) | 文件资源处理方法、装置、设备和介质 | |
CN113364877A (zh) | 数据处理方法、装置、电子设备和介质 | |
CN112615795A (zh) | 流量控制方法、装置、电子设备、存储介质及产品 | |
CN114610719B (zh) | 跨集群数据处理方法、装置、电子设备以及存储介质 | |
CN117725115A (zh) | 一种数据库序列处理方法、装置、设备以及存储介质 | |
CN110909978A (zh) | 资源处理方法、装置、服务器及计算机可读存储介质 | |
CN115421880A (zh) | 事务处理方法、装置、设备及介质 | |
CN114691781A (zh) | 一种数据同步方法、系统、装置、设备及介质 | |
CN114579260A (zh) | 一种事务处理方法及系统 | |
CN113468140A (zh) | 数据迁移处理方法、电子设备及计算机可读存储介质 | |
CN108984431B (zh) | 用于清空过期缓存的方法和装置 | |
CN115665245A (zh) | 一种本地缓存刷新方法、装置、电子设备及存储介质 | |
CN115174447B (zh) | 一种网络通信方法、装置、系统、设备及存储介质 | |
CN114780022B (zh) | 追加写操作实现方法、装置、电子设备及存储介质 | |
CN114615273B (zh) | 基于负载均衡系统的数据发送方法、装置和设备 | |
CN115237968A (zh) | 数据库系统中的节点管理方法、装置、设备及存储介质 | |
CN114610575B (zh) | 应用于计算分支的更新峰值的方法、装置、设备和介质 | |
CN114896030A (zh) | 一种确定方法、装置、设备和存储介质 | |
CN116821046B (zh) | 异构单元间的数据自动同步方法、装置、设备及介质 | |
US10871971B2 (en) | Method, electronic device and computer program product for dual-processor storage system | |
CN116594764A (zh) | 一种应用程序的更新方法、装置、电子设备和存储介质 | |
CN115510036A (zh) | 数据迁移方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |