一种基于冲突锁的数据处理方法、系统及电子设备技术方案

技术编号:37770427 阅读:12 留言:0更新日期:2023-06-06 13:34
本说明书公开了一种于基于冲突锁的数据处理方法、系统及电子设备,能够简化阻塞处理逻辑,降低程序复杂度,提高处理效率。所述方法包括:在所述数据卷生成快照后,所述数据卷中的目标数据块接收写请求;确定所述写请求是否需要执行写时重定向操作;若需要执行写时重定向操作,针对所述写请求设置第一范围锁,并将所述第一范围锁的加锁范围设置为所述目标数据块;若不需要执行写时重定向操作,针对所述写请求设置第二范围锁。所述系统包括请求接收模块、重定向判定模块与范围锁设置模块。所述电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述数据处理方法。器执行所述程序时实现所述数据处理方法。器执行所述程序时实现所述数据处理方法。

【技术实现步骤摘要】
一种基于冲突锁的数据处理方法、系统及电子设备


[0001]本说明书涉及数据存储
,具体涉及一种基于冲突锁的数据处理方法、系统及电子设备。

技术介绍

[0002]在计算机领域中,对于并发的请求,使用锁进行冲突处理是一种常见的方法。在计算机数据存储技术中,往往需要考虑两种阻塞性条件进行冲突处理,一种针对数据卷中读写请求范围冲突需要设置冲突锁,另一种是数据卷生成快照后,针对执行写时重定向(Redirect

On

Write,ROW)操作与后续写请求冲突需要设置冲突锁。数据存储技术中,考虑两种不同类型的阻塞条件设置冲突锁,这样的方式计算机处理程序逻辑繁琐,程序复杂度高,处理效率较低。

技术实现思路

[0003]有鉴于此,本说明书实施例提供了一种基于冲突锁的数据处理方法、系统及电子设备,能够简化阻塞处理逻辑,降低程序复杂度,提高处理效率。
[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]所述基于冲突锁的数据处理方法中,首先确定所述目标数据块所接收请求所述写请求是否需要执行写时重定向(ROW)操作。对于需要执行ROW操作的写请求,为其设置第一范围锁,所述第一范围锁的加锁范围设置为所述目标数据块的全部数据范围,从而使其他写请求的范围锁与所述第一范围锁都冲突,可以实现对需要执行ROW操作的写请求与其他写请求之间的阻塞处理。所述数据处理方法中,采用这样的方式只利用范围冲突锁这一种机制,同时实现读写请求范围冲突以及写时重定向与写请求冲突这两种不同阻塞条件的处理,大大地简化了阻塞处理逻辑,降低程序复杂度,提高处理效率。
附图说明
[0034]通过参考附图会更加清楚的理解本专利技术的特征和优点,附图是示意性的而不应理解为对本专利技术进行任何限制,在附图中:
[0035]图1示出了本说明书一个或多个可选实施例所提供的一种基于冲突锁的数据处理方法示意图;
[0036]图2示出了本说明书一个或多个可选实施例所提供的一种基于冲突锁的数据处理方法中确定所述写请求是否需要执行写时重定向操作的方法示意图;
[0037]图3示出了本说明书一个或多个可选实施例所提供的一种基于冲突锁的数据处理方法中对所述写请求进行处理的方法示意图;
[0038]图4示出了本说明书一个或多个可选实施例所提供的一种基于冲突锁的数据处理系统结构示意图;
[0039]图5示出了本说明书一个或多个可选实施例所提供的一种基于冲突锁的数据处理电子设备结构示意图。
具体实施方式
[0040]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0041]在计算机领域中,对于并发的请求,使用锁进行冲突处理是一种常见的方法。在计算机数据存储技术中,往往需要考虑两种阻塞性条件进行冲突处理。
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于冲突锁的数据处理方法,其特征在于,应用于数据卷,所述方法包括:在所述数据卷生成快照后,所述数据卷中的目标数据块接收写请求;确定所述写请求是否需要执行写时重定向操作;响应于所述写请求需要执行写时重定向操作,针对所述写请求设置第一范围锁,并将所述第一范围锁的加锁范围设置为所述目标数据块;响应于所述写请求不需要执行写时重定向操作,针对所述写请求设置第二范围锁,所述第二范围锁的加锁范围根据所述写请求在所述目标数据块中对应的数据范围确定。2.根据权利要求1所述的方法,其特征在于,确定所述写请求是否需要执行写时重定向操作,包括:确定所述写请求是否为快照生成后所述目标数据块所接收到的第一个写请求;响应于所述写请求是快照生成后所述目标数据块所接收到的第一个写请求,将所述写请求对应的所述数据范围与所述目标数据块的整体数据范围进行对比;响应于所述写请求对应的所述数据范围是所述目标数据块整体数据范围的一部分,确定所述写请求需要执行写时重定向操作。3.根据权利要求1所述的方法,其特征在于,在针对所述写请求设置第一范围锁后,还包括:为所述目标数据块添加重定向标记。4.根据权利要求3所述的方法,其特征在于,在确定所述写请求是否需要执行写时重定向操作前,还包括:确定所述目标数据块是否存在所述重定向标记;响应于存在所述重定向标记,则确定所述写请求不需要执行写时重定向操作。5.根据权利要求3所述的方法,其特征在于,在所述数据卷再次生成快照后,清除所述目标数据块对应的所述重定向标记。6.根据权利要求1所述的方法,其特征在于,在针对所述写请求设置第一范围锁后,还包括...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:安超云软件有限公司
类型:发明
国别省市:

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

1