数据处理方法、装置、电子设备和存储介质制造方法及图纸

技术编号:29930578 阅读:21 留言:0更新日期:2021-09-04 18:58
本公开关于数据处理方法、装置、电子设备和存储介质。所述方法包括:接收针对第一数据的任一第一处理请求,所述第一数据的数据信息表明所述第一数据的逻辑层级低于第二数据的逻辑层级;在所述第二数据未被设置排它锁的情况下,按照所述任一第一处理请求对所述第二数据的计数器的当前值增加预设数值;响应于所述任一第一处理请求处理所述第一数据,并在处理完成后,为所述计数器的当前值减少所述预设数值,其中,在所述计数器的当前值等于预设的计数初始值的情况下,所述第二数据能够被处理。所述第二数据能够被处理。所述第二数据能够被处理。

【技术实现步骤摘要】
数据处理方法、装置、电子设备和存储介质


[0001]本公开涉及数据管理领域,尤其涉及一种数据处理方法、装置、电子设备和存储介质。

技术介绍

[0002]对于数据库中存储的数据,通常可以进行增加、删除、修改等操作。以多种业务层级对应的多层级数据为例,不同层级对应的线程对相应层级的数据进行上述操作可能会产生脏数据,从而影响业务系统稳定性。例如,数据库可以按照项目

任务组

任务

子任务等从高到低的层级顺序存储业务数据,若高层级线程A(如项目线程)在删除某任务组数据(该任务组的相关数据,下同)时,低层级线程B(如该任务组的内部线程)正在该任务组中创建任务,则线程B创建任务成功后,可能查询不到新建任务所在的任务组,因为该任务组已被线程A删除,导致该新建任务的任务数据成为脏数据。
[0003]针对这一问题,相关技术中采用分布式锁加以解决,例如由低层级线程B对任务创建操作对应的项目数据添加排它锁,从而在低线程B创建任务的时间段内排除其他线程针对该项目数据的操作,以避免产生脏数据。然而,若同一实现还存在低线程C、低线程D等请求操作同一项目组内的多个项目数据,则因为上述排它锁的存在,其他低层级线程只能等待低线程B操作完成才能够依次进行操作,从而导致数据库的数据处理效率降低,极大影响了业务系统的吞吐量。

技术实现思路

[0004]本公开提供了数据处理方法、装置、电子设备和存储介质,以至少解决相关技术中的技术问题。本公开的技术方案如下:
[0005]根据本公开实施例的第一方面,提出一种数据处理方法,包括:
[0006]接收针对第一数据的任一第一处理请求,所述第一数据的数据信息表明所述第一数据的逻辑层级低于第二数据的逻辑层级;
[0007]在所述第二数据未被设置排它锁的情况下,按照所述任一第一处理请求对所述第二数据的计数器的当前值增加预设数值;
[0008]响应于所述任一第一处理请求处理所述第一数据,并在处理完成后,为所述计数器的当前值减少所述预设数值,其中,在所述计数器的当前值等于预设的计数初始值的情况下,所述第二数据能够被处理。
[0009]可选的,还包括:
[0010]在所述第二数据被设置有排它锁的情况下,终止针对所述任一第一处理请求的响应过程;或者,
[0011]在所述第二数据被设置有排它锁的情况下,等待第一时长后重新检查所述第二数据是否被设置有排它锁,若在针对所述排它锁的检查次数达到第一次数时,所述第二数据仍被设置有排它锁,则终止针对所述任一第一处理请求的响应过程。
[0012]可选的,还包括:
[0013]在接收到针对所述第二数据的第二处理请求的情况下,为所述第一数据和第二数据设置排它锁;
[0014]若所述计数器的当前值等于所述计数初始值,则响应于所述第二处理请求处理所述第二数据;
[0015]若所述计数器的当前值大于所述计数初始值,则终止响应所述第二处理请求,或者等待直至所述计数器的当前值等于所述计数初始值时,响应于所述第二处理请求处理所述第二数据;
[0016]在处理所述第二数据完成后释放为所述第一数据和第二数据设置的排它锁。
[0017]可选的,还包括:
[0018]在终止针对任一请求的响应过程后,向所述任一请求的发起方返回针对所述任一请求的响应失败消息。
[0019]可选的,还包括:
[0020]在所述计数器的当前值大于所述计数初始值的情况下,若所述当前值对应的多个第一处理请求分别用于请求处理多个第一数据,则响应于所述多个第一处理请求分别处理所述多个第一数据;
[0021]若所述当前值对应的多个第一处理请求用于请求处理同一第一数据,则按照所述多个第一处理请求的接收顺序依次响应于所述多个第一处理请求处理该第一数据。
[0022]可选的,所述计数初始值为0,所述预设数值为1。
[0023]可选的,针对任一数据的处理包括下述至少之一:
[0024]插入新增数据、删除已有数据、更改已有数据。
[0025]根据本公开实施例的第二方面,提出一种数据处理装置,包括:
[0026]请求接收模块,被配置为接收针对第一数据的任一第一处理请求,所述第一数据的数据信息表明所述第一数据的逻辑层级低于第二数据的逻辑层级;
[0027]数值增加模块,被配置为在所述第二数据未被设置排它锁的情况下,按照所述任一第一处理请求对所述第二数据的计数器的当前值增加预设数值;
[0028]数值减少模块,被配置为响应于所述任一第一处理请求处理所述第一数据,并在处理完成后,为所述计数器的当前值减少所述预设数值,其中,在所述计数器的当前值等于预设的计数初始值的情况下,所述第二数据能够被处理。
[0029]可选的,还包括:
[0030]第一终止模块,被配置为在所述第二数据被设置有排它锁的情况下,终止针对所述任一第一处理请求的响应过程;或者,
[0031]第二终止模块,被配置为在所述第二数据被设置有排它锁的情况下,等待第一时长后重新检查所述第二数据是否被设置有排它锁,若在针对所述排它锁的检查次数达到第一次数时,所述第二数据仍被设置有排它锁,则终止针对所述任一第一处理请求的响应过程。
[0032]可选的,还包括:
[0033]排它锁设置模块,被配置为在接收到针对所述第二数据的第二处理请求的情况下,为所述第一数据和第二数据设置排它锁;
[0034]第一处理模块,被配置为若所述计数器的当前值等于所述计数初始值,则响应于所述第二处理请求处理所述第二数据;
[0035]第二处理模块,被配置为若所述计数器的当前值大于所述计数初始值,则终止响应所述第二处理请求,或者等待直至所述计数器的当前值等于所述计数初始值时,响应于所述第二处理请求处理所述第二数据;
[0036]排它锁释放模块,被配置在处理所述第二数据完成后释放为所述第一数据和第二数据设置的排它锁。
[0037]可选的,还包括:
[0038]消息返回模块,被配置为在终止针对任一请求的响应过程后,向所述任一请求的发起方返回针对所述任一请求的响应失败消息。
[0039]可选的,还包括:
[0040]分别处理模块,被配置为在所述计数器的当前值大于所述计数初始值的情况下,若所述当前值对应的多个第一处理请求分别用于请求处理多个第一数据,则响应于所述多个第一处理请求分别处理所述多个第一数据;
[0041]顺序处理模块,被配置为若所述当前值对应的多个第一处理请求用于请求处理同一第一数据,则按照所述多个第一处理请求的接收顺序依次响应于所述多个第一处理请求处理该第一数据。
[0042]可选的,所述计数初始值为0,所述预设数值为1。
[0043]可选的,针对任一数据的处理包括下述至少之一:
[0044]插入新增数据、删除已有数据、更改已有数据。
[0045]根据本公开实施例的第三本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:接收针对第一数据的任一第一处理请求,所述第一数据的数据信息表明所述第一数据的逻辑层级低于第二数据的逻辑层级;在所述第二数据未被设置排它锁的情况下,按照所述任一第一处理请求对所述第二数据的计数器的当前值增加预设数值;响应于所述任一第一处理请求处理所述第一数据,并在处理完成后,为所述计数器的当前值减少所述预设数值,其中,在所述计数器的当前值等于预设的计数初始值的情况下,所述第二数据能够被处理。2.根据权利要求1所述的方法,其特征在于,还包括:在所述第二数据被设置有排它锁的情况下,终止针对所述任一第一处理请求的响应过程;或者,在所述第二数据被设置有排它锁的情况下,等待第一时长后重新检查所述第二数据是否被设置有排它锁,若在针对所述排它锁的检查次数达到第一次数时,所述第二数据仍被设置有排它锁,则终止针对所述任一第一处理请求的响应过程。3.根据权利要求1所述的方法,其特征在于,还包括:在接收到针对所述第二数据的第二处理请求的情况下,为所述第一数据和第二数据设置排它锁;若所述计数器的当前值等于所述计数初始值,则响应于所述第二处理请求处理所述第二数据;若所述计数器的当前值大于所述计数初始值,则终止响应所述第二处理请求,或者等待直至所述计数器的当前值等于所述计数初始值时,响应于所述第二处理请求处理所述第二数据;在处理所述第二数据完成后释放为所述第一数据和第二数据设置的排它锁。4.根据权利要求2或3所述的方法,其特征在于,还包括:在终止针对任一请求的响应过程后,向所述任一请求的发起方返回针对所述任一请求的响应失败消息。5.根据权利要求1所述的方法,其特征在...

【专利技术属性】
技术研发人员:王树贺
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:

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

1