CN117971846A - 一种数据处理方法、装置、设备及存储介质 - Google Patents
一种数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117971846A CN117971846A CN202410138033.6A CN202410138033A CN117971846A CN 117971846 A CN117971846 A CN 117971846A CN 202410138033 A CN202410138033 A CN 202410138033A CN 117971846 A CN117971846 A CN 117971846A
- Authority
- CN
- China
- Prior art keywords
- target data
- lock
- dictionary
- index tree
- physical page
- 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 23
- 230000004048 modification Effects 0.000 claims abstract description 68
- 238000012986 modification Methods 0.000 claims abstract description 68
- 230000000903 blocking effect Effects 0.000 claims abstract description 27
- 238000004140 cleaning Methods 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 230000005856 abnormality Effects 0.000 claims description 7
- 238000007689 inspection Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 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
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法、装置、设备及存储介质,包括:在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,所述设定类型锁至少包括字典锁和物理页锁;在接收到针对所述目标数据表的表修改请求时,以设定类型锁对所述目标数据信息中的表字典进行封锁,并执行相应的修改操作;完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。上述技术方案,解决了DDL和DQL因字典锁冲突而无法并发执行的问题,在数据库中,针对同一数据实现多种操作的并发执行。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
对于数据库系统,高并发和高可用是衡量数据库整体性能的重要因素,而DQL(Data Query Language,数据查询语言)与DDL(Data Definition Language,数据定义语言)的并发一直是一个难题,因为DDL可能修改表结构、删除索引、更新字典信息等。如果没有并发控制,在DQL查询的过程中表结构已经发生改变或者使用的索引已经被删除,继续执行查询将会有不可预期的后果。
目前主流数据库都使用字典锁机制来限制DQL和DDL不能并发执行,在DQL执行查询之前会对涉及到的表字典上IS锁,而执行DDL之前会对字典上X锁,这两种锁模式是互相冲突的。如果在DQL执行期间有并发的DDL请求,会因无法对字典上X锁而阻塞等待。同理,在DDL执行期间如果有并发的DQL请求,也会因无法上IS锁而阻塞等待。但MySQL等数据库提供了在线DDL的功能,DDL操作在初始化阶段和最后提交事务时对字典上X锁,中间过程不会上锁,因此在一定程度上实现了DQL和DDL的并发,但如果DQL操作执行时间较长,仍然会导致DDL因无法上锁而阻塞等待的问题,无法完全实现DQL和DDL的并发执行。
发明内容
本发明提供了一种数据处理方法、装置、设备及存储介质,解决了DDL和DQL因字典锁冲突而无法并发执行的问题,在数据库中,针对同一数据实现多种操作的并发执行。
第一方面,本公开实施例提供了一种数据处理方法,包括:
在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,所述设定类型锁至少包括字典锁和物理页锁;
在接收到针对所述目标数据表的表修改请求时,以设定类型锁对所述目标数据信息中的表字典进行封锁,并执行相应的修改操作;
完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。
第二方面,本公开实施例提供了一种数据处理装置,包括:
数据查询模块,用于在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,所述设定类型锁至少包括字典锁和物理页锁;
表修改模块,用于在接收到针对所述目标数据表的表修改请求时,以设定类型锁对所述目标数据信息中的表字典进行封锁,并执行相应的修改操作;
锁释放模块,用于完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。
第三方面,本公开实施例提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行上述第一方面实施例提供的数据处理方法。
第四方面,本公开实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现上述第一方面实施例提供的数据处理方法。
本发明实施例的一种数据处理方法、装置、设备及存储介质,在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,所述设定类型锁至少包括字典锁和物理页锁;在接收到针对所述目标数据表的表修改请求时,以设定类型锁对所述目标数据信息中的表字典进行封锁,并执行相应的修改操作;完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。上述技术方案,解决了DDL和DQL因字典锁冲突而无法并发执行的问题,在数据库中,针对同一数据实现多种操作的并发执行。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种数据处理方法的流程图;
图2是本发明实施例二提供的一种数据处理方法的流程图;
图3是本发明实施例二提供的一种数据处理方法中所涉及并发执行DQL与DDL的示例展示图;
图4是本发明实施例三提供的一种数据处理装置的结构示意图;
图5是本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是本发明实施例一提供的一种数据处理方法的流程图,本实施例可适用于并发执行数据查询操作与表修改操作的情形,该方法可以由数据处理装置来执行,该数据处理装置可以采用硬件和/或软件的形式实现。
如图1所示,该方法包括:
S101、在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,设定类型锁至少包括字典锁和物理页锁。
在本实施例中,数据查询请求可以理解为用户对目标数据表中数据的查询请求。设定类型锁可以理解为预先设定的在数据库中对数据信息进行封锁的锁,包括字典锁和物理页锁,其中,字典锁用于对表字典进行封锁,表字典包括数据库中对象的元数据,描述了对象的结构、约束、类型等必要信息。物理页锁用于对物理页进行封锁,物理页为目标数据表所对应索引B树的根节点物理页,索引B树为数据库系统中索引的物理结构,B树中的每个节点即为一个物理页,存储表的索引或数据。数据库中每个表都有唯一一个聚集索引B树。
物理页锁的锁对象是由表空间号、文件号、页号组成的8字节三元组,在数据库系统中唯一标识一个物理页地址。物理页锁与字典锁的锁模式相同,包括共享锁(ShareLock,简称S锁)、排他锁(Exclusive Lock,简称X锁)、意向共享锁(Intent Share Lock,简称IS锁)、意向排他锁(Intent Exclusive Lock,简称IX锁)和共享意向排他锁(Share AndIntent Exclusive Lock,简称SIX锁)五种。物理页锁也可以通过消息在不同节点中传递,便于支持共享存储集群、分布计算集群等集群环境。目标数据表可以理解为与数据查询请求相对应的数据表。目标数据信息可以理解为目标数据表的相关信息,至少包括目标数据表所对应的表字典,和目标数据表所对应索引树的根节点的物理页。
具体的,在接收到数据查询请求时,通过IS锁(字典锁)对目标数据表所对应的表字典进行封锁,通过物理页锁对目标数据表所对应索引树的根节点物理页进行封锁。针对目标数据表及其相关信息进行一系列初始化操作后,释放表字典的IS字典锁,保留物理页锁。此时,可以基于数据查询请求执行DQL操作,对数据库中目标数据表进行查询,可以理解的是,DQL操作不会修改数据和对象。
S102、在接收到针对目标数据表的表修改请求时,以设定类型锁对目标数据信息中的表字典进行封锁,并执行相应的修改操作。
在本实施例中,表修改请求可以理解为用户对目标数据表的修改请求。
具体的,在DQL操作执行过程中,目标数据表所对应的表字典未被封锁,仅物理页被封锁,因此,若在DQL操作执行过程中收到针对目标数据表的表修改请求,通过X锁(字典锁)对目标数据表所对应的表字典进行封锁,此时,可以基于表修改请求执行DDL操作,可以理解的是,DDL操作定义或修改数据库中的各种对象,如表、表空间、索引、视图、约束、函数、存储过程等,可能涉及到表结构的改变。
S103、完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。
在本实施例中,完成相应的查询操作,可以对应释放目标数据表所对应索引树上根节点物理页的物理页锁;完成相应的修改操作,可以对应释放目标数据表所对应表字典的X锁(字典锁)。
本发明实施例所提供的一种数据处理方法,在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,设定类型锁至少包括字典锁和物理页锁;在接收到针对目标数据表的表修改请求时,以设定类型锁对目标数据信息中的表字典进行封锁,并执行相应的修改操作;完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。上述技术方案,通过物理页锁和字典锁实现了DQL与DDL的并发,无论DDL和DQL的完成顺序如何,均可完成相应操作的实现,不存在因DQL操作未完成而阻塞DDL操作的问题,在数据库中,针对同一数据实现多种操作的并发执行。
作为实施例的第一可选实施例,在上述实施例基础上,本第一可选实施例还优化增加了:
a1)以设定时间间隔遍历预先设定的延迟清理数据表,判断延迟清理数据表中,是否存在物理页锁已被释放的原始索引树所对应的索引树信息。
在本实施例中,设定时间间隔可以理解为预先设定的用于遍历延迟清理数据表的时间段。延迟清理数据表可以理解为预先设定的用于存储索引树信息的表,所存储的索引树信息为在DDL结束、DQL仍未释放物理页锁时,所对应目标数据表的原始索引树的索引树信息。原始索引树可以理解为针对目标数据表已执行DQL操作,未执行DDL操作时的索引B树,此时的索引B树未经修改,为存储有原始数据的索引B树。索引树信息可以理解为,索引B树的相关信息,包括索引ID(Identity Document,身份标识号)、根页地址(根节点对应的物理页的地址)等信息。
具体的,延迟清理数据表中存储有DDL和DQL并发执行时,DDL操作执行完成,DQL操作未执行完成时,所对应的目标数据表的原始索引B树的索引树信息。因此,设立定时任务,以预先设定的时间间隔遍历延迟清理数据表,判断延迟清理数据表中是否存在物理页锁已被释放的原始索引树所对应的索引树信息,即,定期检查延迟清理数据表中记录的原始索引树(索引B树)是否存在物理页锁,用于判断各已完成DDL操作的目标数据表的DQL操作是否已完成。
b1)若是,将物理页锁已被释放的原始索引树确定为待清理索引树,从对应数据库中删除待清理索引树,并从延迟清理数据表中删除待清理索引树的索引树信息。
在本实施例中,待清理索引树可以理解为目标数据表的DQL和DDL操作均已完成时,所对应的原始索引树。
在本实施例中,若延迟清理数据表中存在物理页锁已被释放的原始索引树所对应的索引树信息,表征相应的目标数据表所对应的索引B树已没有正在执行的DQL操作,即目标数据表的DDL操作和DQL操作均已完成。因此,可以将物理页锁已被释放的原始索引树确定为待清理索引树,从对应数据库中删除待清理索引树,从延迟清理数据表中删除待清理索引树的索引树信息。
c1)若否,返回重新以设定时间间隔遍历预先设定的延迟清理数据表。
在本实施例中,若延迟清理数据表中不存在物理页锁已被释放的原始索引树所对应的索引树信息,表征相应的目标数据表仍处于DDL操作已完成,DQL操作未完成的状态,此时,不作任何操作,仍以设定时间间隔遍历预先设定的延迟清理数据表。
上述技术方案,提出一种新的DQL和DDL并发执行的方法,通过引入物理页锁和延迟清理数据表,使得DDL操作延迟清理老B树,在更大程度上实现了DQL和DDL的并发。
实施例二
图2是本发明实施例二提供的一种数据处理方法的流程图,本实施例是对上述任一实施例的进一步优化,可适用于并发执行数据查询操作与表修改操作的情形,该方法可以由数据处理装置来执行,该数据处理装置可以采用硬件和/或软件的形式实现。
如图2所示,该方法包括:
S201、在接收到数据查询请求时,确定与数据查询请求所对应的目标数据表、目标数据表的表字典,以及目标数据表所对应原始索引树根节点的物理页。
在本实施例中,在接收到数据查询请求时,确定与数据查询请求所对应的目标数据表,并进一步确定目标数据表对应的表字典和索引B树(原始索引树),进一步确定索引B树的根节点物理页。
S202、将物理页和表字典确定为目标数据信息。
具体的,将目标数据表的表字典,和目标数据表所对应原始索引树根节点的物理页确定为目标数据信息。
S203、以设定类型锁对目标数据信息进行封锁,并对目标数据信息进行索引检查与版本检查,根据检查结果释放目标数据信息中表字典所对应的设定类型锁。
在本实施例中,通过IS锁(字典锁)对目标数据表所对应的表字典进行封锁,通过物理页锁对目标数据表所对应原始索引树的根节点物理页进行封锁。针对目标数据表及其相关信息进行索引检查与版本检查等初始化操作,初始化成功后,释放表字典的IS字典锁,保留物理页锁。
可选的,以设定类型锁对目标数据信息进行封锁,并对目标数据信息进行索引检查与版本检查,根据检查结果释放目标数据信息中表字典所对应的设定类型锁,包括:
S2031、对目标数据信息中的表字典上第一表字典锁,对目标数据信息中的物理页上物理页锁,其中,第一表字典锁为IS锁。
在本实施例中,第一表字典锁可以理解为表字典在DQL操作时所对应的字典锁,为IS锁。
具体的,执行DQL操作时,首先需要对DQL操作涉及的目标数据表进行封锁,即通过IS锁对目标数据表所对应的表字典进行封锁,除了对表进行常规的字典封锁外,还需要对表的所有索引B树(包括聚集索引B树、二级索引B树)的根节点对应的物理页进行封锁,即通过物理页锁对目标数据表所对应原始索引树的根节点物理页进行封锁。
S2032、对目标数据信息进行索引检查与版本检查,获得检查结果。
在本实施例中,检查结果可以理解为对目标数据信息中的表字典和/或原始索引树进行索引检查与版本检查等常规检查操作后的结果,包括检查无异常和检查异常。
在本实施例中,对目标数据信息中的表字典和/或原始索引树进行索引检查与版本检查,分别获得针对原始索引树的索引检查结果和针对目标数据表表字典的版本检查结果。检查结果包括检查无异常和检查异常。当检查结果为检查无异常时,表征初始化正常,可以执行后续DQL操作。
S2033、当检查结果为无异常时,释放目标数据信息中表字典所对应的第一表字典锁。
在本实施例中,当检查结果为检查无异常时,表征初始化正常,可以执行后续DQL操作。此时,进入B树扫描阶段,释放字典锁(IS锁),仅保留物理页锁。在DQL操作后续执行过程中,全程不再进行字典封锁。DQL操作执行完成时,释放物理页锁。
可以理解的是,由于DQL操作在释放字典锁后全程不再进行字典封锁,因此DDL操作可以成功对字典进行X封锁并顺利执行后续操作,当DDL操作需要清理原始索引树时,若原始索引树上存在物理页锁,则延迟清理原始索引树,仅执行其余的事务清理操作,待其余事务清理操作执行完成后,该DDL操作执行结束。
S204、根据数据查询请求对目标数据表进行查询,获得查询结果。
在本实施例中,查询结果可以理解为对目标数据表进行查询操作所获取到的信息。
具体的,基于数据查询请求对目标数据表进行DQL查询操作,获得相应的查询结果并反馈至相应的数据查询请求发出端。
S205、在接收到针对目标数据表的表修改请求时,确定目标数据表所对应的表字典和原始索引树。
在本实施例中,在接收到表修改请求时,确定与表修改请求所对应的目标数据表,并进一步确定目标数据表对应的表字典和索引B树(原始索引树)。
S206、对表字典上第二表字典锁,其中,第二表字典锁为X锁。
在本实施例中,第二表字典锁可以理解为表字典在DDL操作时所对应的字典锁,为X锁。
具体的,执行DDL操作时,首先需要对DDL操作涉及的目标数据表进行封锁,即通过X锁对目标数据表所对应的表字典进行封锁。
S207、根据表修改请求对目标数据表进行修改,并根据修改结果将目标数据表所对应的原始索引树更新为目标索引树。
在本实施例中,目标索引树可以理解为根据修改后的目标数据表所生成的新的索引B树。
具体的,响应表修改请求对目标数据表进行修改,目标数据表修改后,所对应的表字典和原始索引树也会相应变化,但由于原始索引树可能正处于并发执行的DQL操作中被物理页锁封锁的状态,因此,基于对目标数据表修改后的修改结果生成新的索引B树,即目标索引树,目标索引树可以替代原始索引树。
S208、完成对目标数据表的查询后,释放目标数据信息中物理页所对应的物理页锁。
在本实施例中,完成对目标数据表的查询后,提交相关事务,并释放目标数据信息中原始索引树的根节点物理页的物理页锁。
S209、完成对目标数据表的修改后,释放目标数据信息中表字典所对应的第二表字典锁。
在本实施例中,完成对目标数据表的修改后,提交相关事务,并释放目标数据信息中表字典的X锁。
可以理解的是,步骤S208和S209之间不存在先后关系,完成步骤S204后(DQL操作执行完毕)即可执行步骤S208,完成步骤S207后(DDL操作执行完毕)即可执行S209。
本发明实施例所提供的一种数据处理方法,通过在接收到数据查询请求时,确定与数据查询请求所对应的目标数据表、目标数据表的表字典,以及目标数据表所对应原始索引树根节点的物理页;将物理页和表字典确定为目标数据信息;以设定类型锁对目标数据信息进行封锁,并对目标数据信息进行索引检查与版本检查,根据检查结果释放目标数据信息中表字典所对应的设定类型锁;根据数据查询请求对目标数据表进行查询,获得查询结果;在接收到针对目标数据表的表修改请求时,确定目标数据表所对应的表字典和原始索引树;对表字典上第二表字典锁,其中,第二表字典锁为X锁;根据表修改请求对目标数据表进行修改,并根据修改结果将目标数据表所对应的原始索引树更新为目标索引树;完成对目标数据表的查询后,释放目标数据信息中物理页所对应的物理页锁;和/或,完成对目标数据表的修改后,释放目标数据信息中表字典所对应的第二表字典锁。上述技术方案,通过物理页锁和字典锁实现了DQL与DDL的并发,无论DDL和DQL的完成顺序如何,均可完成相应操作的实现,不存在因DQL操作未完成而阻塞DDL操作的问题,在数据库中,针对同一数据实现多种操作的并发执行。
作为实施例的第一可选实施例,在上述实施例基础上,本第一可选实施例还优化增加了在完成相应的修改操作后,释放所对应目标数据信息的相应设定类型锁之后的步骤,还包括:
a2)判断目标数据表所对应原始索引树上的根节点物理页是否存在物理页锁。
在本实施例中,步骤S209执行完毕后,为减轻数据库存储负荷,需进行事务清理,将原始索引树删除,释放原始索引树所占用的存储空间。因此,在删除原始索引树之前,应检查该原始索引树的根节点对应的物理页上是否存在物理页锁。具体的,检测目标数据表所对应原始索引树上的根节点物理页是否存在物理页锁。
b2)若是,将原始索引树的索引树信息记录至预设的延迟清理数据表中。
在本实施例中,若存在,则说明原始索引树上有正在进行的DQL操作,此时不立即清理原始索引树,而是将原始索引树的索引ID、根页地址(根节点对应的物理页的地址)等信息记录到预先设定的延迟清理数据表中,照常执行其余的事务清理操作,待其余事务清理操作执行完成后,该DDL操作执行结束。
c2)若否,从对应数据库中删除原始索引树。
在本实施例中,若不存在,则可以立即清理原始索引树,待所有事务清理操作执行结束后,该DDL操作执行结束。
上述技术方案,若开始执行DDL操作时,正在执行DQL操作,并且DQL与DDL涉及相同的表,则DQL需要查询的是原始索引树中的数据,因此,引入物理页锁和延迟清理数据表,使得DDL操作延迟清理原始索引树,此时DDL操作不影响DQL的执行,在更大程度上实现DQL和DDL的并发。
可选的,图3是本发明实施例二提供的一种数据处理方法中所涉及并发执行DQL与DDL的示例展示图,如图3所示,DQL操作包括:
在接收到数据查询请求时,确定对应的目标数据表;
对所述目标数据表的表字典上IS锁,对目标数据表所对应的原始索引树的根节点物理页上物理页锁;
对所述目标数据表进行索引检查与版本检查,获得检查结果;
当检查结果无异常时,释放表字典IS锁,保留物理页锁;
根据所述数据查询请求对所述目标数据表执行查询操作,直至查询完成,事务提交,释放原始索引树的物理页锁。
如图3所示,DDL操作包括:
在对目标数据表执行查询操作的过程中,当接收到与目标数据表相对应的表修改请求时,对目标数据表的表字典上X锁;
根据表修改请求对目标数据表执行修改操作,构建相应的目标索引树,将表字典所对应目标数据表的原始索引树更新为目标索引树;
事务提交,释放表字典X锁;
判断目标数据表所对应的原始索引树根节点物理页上是否存在物理页锁,若是,暂不清理原始索引树,将原始索引树的索引树信息记录至预设的延迟清理数据表中;若否,清理原始索引树,释放内存。
本实施例所提供的一种数据处理方法,是一种DQL和DDL并发执行的方法,若开始执行DDL操作时,正在执行DQL操作,并且DQL与DDL涉及相同的表,则DQL需要查询的是原始索引树中的数据,因此,引入物理页锁和延迟清理数据表,使得DDL操作延迟清理原始索引树,此时DDL操作不影响DQL的执行,在更大程度上实现DQL和DDL的并发。
实施例三
图4是本发明实施例三提供的一种数据处理装置的结构示意图。如图4所示,该装置包括:
数据查询模块31,用于在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,所述设定类型锁至少包括字典锁和物理页锁;
表修改模块32,用于在接收到针对所述目标数据表的表修改请求时,以设定类型锁对所述目标数据信息中的表字典进行封锁,并执行相应的修改操作;
锁释放模块33,用于完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。
本技术方案采用的数据处理装置,解决了DDL和DQL因字典锁冲突而无法并发执行的问题,在数据库中,针对同一数据实现多种操作的并发执行。
可选的,数据查询模块31,包括:
相关信息确定单元,用于在接收到数据查询请求时,确定与所述数据查询请求所对应的目标数据表、所述目标数据表的表字典,以及所述目标数据表所对应原始索引树根节点的物理页;
数据信息确定单元,用于将所述物理页和所述表字典确定为目标数据信息;
字典锁释放单元,用于以设定类型锁对所述目标数据信息进行封锁,并对所述目标数据信息进行索引检查与版本检查,根据检查结果释放所述目标数据信息中表字典所对应的设定类型锁;
数据查询单元,用于根据所述数据查询请求对所述目标数据表进行查询,获得查询结果。
可选的,所述字典锁释放单元,具体用于:
对所述目标数据信息中的表字典上第一表字典锁,对所述目标数据信息中的物理页上物理页锁,其中,所述第一表字典锁为IS锁;
对所述目标数据信息进行索引检查与版本检查,获得检查结果;
当检查结果为无异常时,释放所述目标数据信息中表字典所对应的第一表字典锁。
可选的,表修改模块32,具体用于:
在接收到针对所述目标数据表的表修改请求时,确定所述目标数据表所对应的表字典和原始索引树;
对所述表字典上第二表字典锁,其中,所述第二表字典锁为X锁;
根据所述表修改请求对所述目标数据表进行修改,并根据修改结果将所述目标数据表所对应的原始索引树更新为目标索引树。
可选的,锁释放模块33,具体用于:
完成对所述目标数据表的查询后,释放所述目标数据信息中物理页所对应的物理页锁;和/或,
完成对所述目标数据表的修改后,释放所述目标数据信息中表字典所对应的第二表字典锁。
可选的,所述装置还包括,第一索引树删除模块,具体用于:
在完成相应的修改操作后,释放所对应目标数据信息的相应设定类型锁之后,判断所述目标数据表所对应原始索引树上的根节点物理页是否存在物理页锁;
若是,将所述原始索引树的索引树信息记录至预设的延迟清理数据表中;
若否,从对应数据库中删除所述原始索引树。
可选的,所述装置还包括,第二索引树删除模块,具体用于:
以设定时间间隔遍历预先设定的延迟清理数据表,判断所述延迟清理数据表中,是否存在物理页锁已被释放的原始索引树所对应的索引树信息;
若是,将物理页锁已被释放的原始索引树确定为待清理索引树,从对应数据库中删除所述待清理索引树,并从所述延迟清理数据表中删除所述待清理索引树的索引树信息;
若否,返回重新以设定时间间隔遍历预先设定的延迟清理数据表。
本发明实施例所提供的数据处理装置可执行本发明任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5示出了可以用来实施本发明的实施例的电子设备40的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(ROM)42、随机访问存储器(RAM)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(ROM)42中的计算机程序或者从存储单元48加载到随机访问存储器(RAM)43中的计算机程序,来执行各种适当的动作和处理。在RAM 43中,还可存储电子设备40操作所需的各种程序和数据。处理器41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。
电子设备40中的多个部件连接至I/O接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许电子设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如数据处理方法。
在一些实施例中,数据处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由ROM 42和/或通信单元49而被载入和/或安装到电子设备40上。当计算机程序加载到RAM 43并由处理器41执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,所述设定类型锁至少包括字典锁和物理页锁;
在接收到针对所述目标数据表的表修改请求时,以设定类型锁对所述目标数据信息中的表字典进行封锁,并执行相应的修改操作;
完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。
2.根据权利要求1所述的方法,其特征在于,所述在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,包括:
在接收到数据查询请求时,确定与所述数据查询请求所对应的目标数据表、所述目标数据表的表字典,以及所述目标数据表所对应原始索引树根节点的物理页;
将所述物理页和所述表字典确定为目标数据信息;
以设定类型锁对所述目标数据信息进行封锁,并对所述目标数据信息进行索引检查与版本检查,根据检查结果释放所述目标数据信息中表字典所对应的设定类型锁;
根据所述数据查询请求对所述目标数据表进行查询,获得查询结果。
3.根据权利要求2所述的方法,其特征在于,所述以设定类型锁对所述目标数据信息进行封锁,并对所述目标数据信息进行索引检查与版本检查,根据检查结果释放所述目标数据信息中表字典所对应的设定类型锁,包括:
对所述目标数据信息中的表字典上第一表字典锁,对所述目标数据信息中的物理页上物理页锁,其中,所述第一表字典锁为IS锁;
对所述目标数据信息进行索引检查与版本检查,获得检查结果;
当检查结果为无异常时,释放所述目标数据信息中表字典所对应的第一表字典锁。
4.根据权利要求1所述的方法,其特征在于,所述在接收到针对所述目标数据表的表修改请求时,以设定类型锁对所述目标数据信息中的表字典进行封锁,并执行相应的修改操作,包括:
在接收到针对所述目标数据表的表修改请求时,确定所述目标数据表所对应的表字典和原始索引树;
对所述表字典上第二表字典锁,其中,所述第二表字典锁为X锁;
根据所述表修改请求对所述目标数据表进行修改,并根据修改结果将所述目标数据表所对应的原始索引树更新为目标索引树。
5.根据权利要求1所述的方法,其特征在于,所述完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁,包括:
完成对所述目标数据表的查询后,释放所述目标数据信息中物理页所对应的物理页锁;和/或,
完成对所述目标数据表的修改后,释放所述目标数据信息中表字典所对应的第二表字典锁。
6.根据权利要求4所述的方法,其特征在于,在完成相应的修改操作后,释放所对应目标数据信息的相应设定类型锁之后,还包括:
判断所述目标数据表所对应原始索引树上的根节点物理页是否存在物理页锁;
若是,将所述原始索引树的索引树信息记录至预设的延迟清理数据表中;
若否,从对应数据库中删除所述原始索引树。
7.根据权利要求1所述的方法,其特征在于,还包括:
以设定时间间隔遍历预先设定的延迟清理数据表,判断所述延迟清理数据表中,是否存在物理页锁已被释放的原始索引树所对应的索引树信息;
若是,将物理页锁已被释放的原始索引树确定为待清理索引树,从对应数据库中删除所述待清理索引树,并从所述延迟清理数据表中删除所述待清理索引树的索引树信息;
若否,返回重新以设定时间间隔遍历预先设定的延迟清理数据表。
8.一种数据处理装置,其特征在于,包括:
数据查询模块,用于在接收到数据查询请求时,以设定类型锁对目标数据表的目标数据信息进行封锁与释放,并根据数据查询请求执行相应的查询操作,其中,所述设定类型锁至少包括字典锁和物理页锁;
表修改模块,用于在接收到针对所述目标数据表的表修改请求时,以设定类型锁对所述目标数据信息中的表字典进行封锁,并执行相应的修改操作;
锁释放模块,用于完成相应的查询操作和/或修改操作后,释放所对应目标数据信息的相应设定类型锁。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的一种数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的一种数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410138033.6A CN117971846A (zh) | 2024-01-31 | 2024-01-31 | 一种数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410138033.6A CN117971846A (zh) | 2024-01-31 | 2024-01-31 | 一种数据处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971846A true CN117971846A (zh) | 2024-05-03 |
Family
ID=90845530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410138033.6A Pending CN117971846A (zh) | 2024-01-31 | 2024-01-31 | 一种数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971846A (zh) |
-
2024
- 2024-01-31 CN CN202410138033.6A patent/CN117971846A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9501502B2 (en) | Locking protocol for partitioned and distributed tables | |
US8732143B2 (en) | Reducing locking during database transactions | |
US10489378B2 (en) | Detection and resolution of conflicts in data synchronization | |
US9747323B1 (en) | Method for reconstruction of a distributed lock state after a node addition or removal using a consistent hash | |
US7899785B2 (en) | Reconfiguring propagation streams in distributed information sharing | |
CN115495473A (zh) | 数据库查询方法、装置、电子设备和存储介质 | |
US11061889B2 (en) | Systems and methods of managing manifest refresh in a database | |
US10873504B1 (en) | Managing concurrently received configuration requests in a computing network | |
CN117971846A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115421880A (zh) | 事务处理方法、装置、设备及介质 | |
CN115469810A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN110377614B (zh) | 一种分布式环境下的订单处理锁系统 | |
CN115629910B (zh) | 一种事务恢复方法、装置、数据库节点及介质 | |
CN116301634A (zh) | 资源交互状态的检测方法、装置、设备及介质 | |
CN115757452A (zh) | 一种封锁方法、装置、设备及存储介质 | |
CN115237968A (zh) | 数据库系统中的节点管理方法、装置、设备及存储介质 | |
CN117827777A (zh) | 一种分布式数据库死锁处理方法、装置、设备及存储介质 | |
CN116955394A (zh) | 数据查询方法、装置、设备及介质 | |
CN115587119A (zh) | 一种数据库查询方法、装置、电子设备及存储介质 | |
CN117370354A (zh) | 元数据树的快照、查询方法、装置及电子设备 | |
JP2001134476A (ja) | データベース一括更新方法 | |
CN116361388A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115904639A (zh) | 一种事务提交项清理方法、装置、电子设备及存储介质 | |
CN117331944A (zh) | 一种数据库表生成方法、装置、设备及存储介质 | |
CN114661738A (zh) | 一种添加索引的方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |