[发明专利]数据处理方法、装置、电子设备和存储介质在审
申请号: | 202110605117.2 | 申请日: | 2021-05-31 |
公开(公告)号: | CN113342539A | 公开(公告)日: | 2021-09-03 |
发明(设计)人: | 王树贺 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F16/21 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 陈蕾 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 电子设备 存储 介质 | ||
本公开关于数据处理方法、装置、电子设备和存储介质。所述方法包括:接收针对第一数据的任一第一处理请求,所述第一数据的数据信息表明所述第一数据的逻辑层级低于第二数据的逻辑层级;在所述第二数据未被设置排它锁的情况下,按照所述任一第一处理请求对所述第二数据的计数器的当前值增加预设数值;响应于所述任一第一处理请求处理所述第一数据,并在处理完成后,为所述计数器的当前值减少所述预设数值,其中,在所述计数器的当前值等于预设的计数初始值的情况下,所述第二数据能够被处理。
技术领域
本公开涉及数据管理领域,尤其涉及一种数据处理方法、装置、电子设备和存储介质。
背景技术
对于数据库中存储的数据,通常可以进行增加、删除、修改等操作。以多种业务层级对应的多层级数据为例,不同层级对应的线程对相应层级的数据进行上述操作可能会产生脏数据,从而影响业务系统稳定性。例如,数据库可以按照项目-任务组-任务-子任务等从高到低的层级顺序存储业务数据,若高层级线程A(如项目线程)在删除某任务组数据(该任务组的相关数据,下同)时,低层级线程B(如该任务组的内部线程)正在该任务组中创建任务,则线程B创建任务成功后,可能查询不到新建任务所在的任务组,因为该任务组已被线程A删除,导致该新建任务的任务数据成为脏数据。
针对这一问题,相关技术中采用分布式锁加以解决,例如由低层级线程B对任务创建操作对应的项目数据添加排它锁,从而在低线程B创建任务的时间段内排除其他线程针对该项目数据的操作,以避免产生脏数据。然而,若同一实现还存在低线程C、低线程D等请求操作同一项目组内的多个项目数据,则因为上述排它锁的存在,其他低层级线程只能等待低线程B操作完成才能够依次进行操作,从而导致数据库的数据处理效率降低,极大影响了业务系统的吞吐量。
发明内容
本公开提供了数据处理方法、装置、电子设备和存储介质,以至少解决相关技术中的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提出一种数据处理方法,包括:
接收针对第一数据的任一第一处理请求,所述第一数据的数据信息表明所述第一数据的逻辑层级低于第二数据的逻辑层级;
在所述第二数据未被设置排它锁的情况下,按照所述任一第一处理请求对所述第二数据的计数器的当前值增加预设数值;
响应于所述任一第一处理请求处理所述第一数据,并在处理完成后,为所述计数器的当前值减少所述预设数值,其中,在所述计数器的当前值等于预设的计数初始值的情况下,所述第二数据能够被处理。
可选的,还包括:
在所述第二数据被设置有排它锁的情况下,终止针对所述任一第一处理请求的响应过程;或者,
在所述第二数据被设置有排它锁的情况下,等待第一时长后重新检查所述第二数据是否被设置有排它锁,若在针对所述排它锁的检查次数达到第一次数时,所述第二数据仍被设置有排它锁,则终止针对所述任一第一处理请求的响应过程。
可选的,还包括:
在接收到针对所述第二数据的第二处理请求的情况下,为所述第一数据和第二数据设置排它锁;
若所述计数器的当前值等于所述计数初始值,则响应于所述第二处理请求处理所述第二数据;
若所述计数器的当前值大于所述计数初始值,则终止响应所述第二处理请求,或者等待直至所述计数器的当前值等于所述计数初始值时,响应于所述第二处理请求处理所述第二数据;
在处理所述第二数据完成后释放为所述第一数据和第二数据设置的排它锁。
可选的,还包括:
在终止针对任一请求的响应过程后,向所述任一请求的发起方返回针对所述任一请求的响应失败消息。
可选的,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110605117.2/2.html,转载请声明来源钻瓜专利网。