分布式内存数据库并行redo的实现方法、计算机设备和存储介质技术

技术编号:34800498 阅读:50 留言:0更新日期:2022-09-03 20:06
本发明专利技术公开了一种分布式内存数据库并行redo的实现方法、计算机设备和存储介质,包括:客户端发起commit操作,业务线程完成内存数据修改的提交动作;业务线程申请获取redo令牌;令牌申请完成后,剩余业务线程再次进入令牌申请;得到令牌的线程将令牌对redo并行度N取模得到值K;得到令牌的线程以K值为对应的redo的通道号,完成写redo操作;业务线程给客户端返回提交成功。本发明专利技术解决了内存数据库高并发和串行写redo间的矛盾,提升了内存数据库写操作的并发能力,也提升了内存数据库对主机CPU/网络资源的利用率。络资源的利用率。络资源的利用率。

【技术实现步骤摘要】
分布式内存数据库并行redo的实现方法、计算机设备和存储介质


[0001]本专利技术涉及分布式内存数据库
,具体涉及一种分布式内存数据库并行redo的实现方法、计算机设备和存储介质。

技术介绍

[0002]分布式内存数据库为了保证事物的一致性,redo采用单线程串行生成的方式,即对分布式内存数据库中的并发事物以串行方式写入redo。
[0003]如图1所示,分布式内存数据库串行写入redo的方法,包括:
[0004]1.客户端发起commit操作,业务线程完成内存数据修改的提交动作;
[0005]2.业务线程请求获取redo锁信息;
[0006]3.得到锁的线程发起写redo操作;
[0007]4.写日志完毕给客户端返回提交成功。
[0008]上述串行写入redo的方式,会导致系统在高并发时,写Redo成为瓶颈。

技术实现思路

[0009]针对现有技术中存在的上述问题,本专利技术提供一种分布式内存数据库并行redo的实现方法、计算机设备和存储介质。
[0010]本专利技术第一目的在于提供一种分布式内存数据库并行redo的实现方法,包括:
[0011]客户端发起commit操作,业务线程完成内存数据修改的提交动作;
[0012]业务线程申请获取redo令牌;
[0013]令牌申请完成后,剩余业务线程再次进入令牌申请;
[0014]得到令牌的线程将令牌对redo并行度N取模得到值K;
[0015]得到令牌的线程以K值为对应的redo的通道号,完成写redo操作;
[0016]业务线程给客户端返回提交成功。
[0017]作为本专利技术的进一步改进,令牌为随循环次数而递增的序列值。
[0018]本专利技术的第二目的在于一种计算机设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述计算机程序时实现上述的实现方法。
[0019]本专利技术的第三目的在于提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的实现方法。
[0020]与现有技术相比,本专利技术的有益效果为:
[0021]本专利技术解决了内存数据库高并发和串行写redo间的矛盾,提升了内存数据库写操作的并发能力,也提升了内存数据库对主机CPU/网络资源的利用率。
附图说明
[0022]图1为现有分布式内存数据库串行写入redo的方法的流程图;
[0023]图2为本专利技术一种实施例公开的分布式内存数据库并行redo的实现方法的流程图。
具体实施方式
[0024]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]下面结合附图对本专利技术做进一步的详细描述:
[0026]如图2所示,本专利技术提供一种分布式内存数据库并行redo的实现方法,其将redo并行度设为N(称做N个通道),该实现方法包括:
[0027]步骤1、客户端发起commit操作,业务线程完成内存数据修改的提交动作;
[0028]步骤2、业务线程申请获取redo令牌;其中,该令牌为一个递增的序列值;
[0029]步骤3、令牌申请完成后,剩余业务线程再次进入令牌申请;
[0030]步骤4、得到令牌的线程将令牌对redo并行度N取模得到值K,K<N;
[0031]步骤5、得到令牌的线程以K值为对应的redo的通道号,完成写redo操作;
[0032]步骤6、业务线程给客户端返回提交成功。
[0033]进一步,如图2所示,步骤3与步骤4~6之间为并行执行。
[0034]本专利技术提供一种计算机设备,包括处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序处理器执行计算机程序时实现上述的实现方法。
[0035]本专利技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的实现方法。
[0036]实施例:
[0037]以N=6,令牌为A1、A2、A3、A4、A5、A6的递增的序列值,循环过程中,其对N(N=6)取模得到值K1、K2、K3、K4、K5、K6;其实现方法为:
[0038]步骤1、客户端发起commit操作,业务线程完成内存数据修改的提交动作;
[0039]步骤2、所有业务线程申请获取redo令牌A1;
[0040]步骤3、再线程1获取令牌A1后,剩余的线程返回步骤2进入令牌A2申请;
[0041]步骤4、线程1将令牌A1对N取模得到值K1;
[0042]步骤5、线程1以K1值为对应的redo的通道号,完成写redo操作,并给客户端返回提交成功;
[0043]步骤7、重复上述步骤,线程2~6以K2~K6值为对应的redo的通道号,完成写redo操作,并给客户端返回提交成功。
[0044]本专利技术的优点为:
[0045]本专利技术解决了内存数据库高并发和串行写redo间的矛盾,提升了内存数据库写操作的并发能力,也提升了内存数据库对主机CPU/网络资源的利用率。
[0046]以上仅为本专利技术的优选实施例而已,并不用于限制本专利技术,对于本领域的技术人
员来说,本专利技术可以有各种更改和变化。凡在本专利技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式内存数据库并行redo的实现方法,其特征在于,包括:客户端发起commit操作,业务线程完成内存数据修改的提交动作;业务线程申请获取redo令牌;令牌申请完成后,剩余业务线程再次进入令牌申请;得到令牌的线程将令牌对redo并行度N取模得到值K;得到令牌的线程以K值为对应的redo的通道号,完成写redo操作;业务线程给客户端返回提交成功。2.如权利要求1所述的...

【专利技术属性】
技术研发人员:张志永
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:

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

1