无效索引的无锁标记方法、存储介质和计算机设备技术

技术编号:38280106 阅读:13 留言:0更新日期:2023-07-27 10:29
本发明专利技术提供了一种无效索引的无锁标记方法、存储介质和计算机设备。方法包括禁止对索引页面的访问和物理修改;查找索引页面上的无效索引项,并记录索引页面的第一修改序号;当完成对索引页面上无效索引项的查找时,允许对索引页面的访问和物理修改;记录索引页面上查找到的无效索引项;禁止对索引页面的访问和物理修改;记录索引页面的第二修改序号;根据第一修改序号和第二修改序号确定记录的索引页面的无效索引项是否为最终无效索引项;若是,将最终无效索引项标记为无效;允许对所述索引页面的访问和物理修改。在禁止对索引页面的访问和物理修改和允许对索引页面的访问和物理修改期间,从而可以保证无效索引项的标记的准确性。确性。确性。

【技术实现步骤摘要】
无效索引的无锁标记方法、存储介质和计算机设备


[0001]本专利技术涉及数据库技术,特别是涉及一种无效索引的无锁标记方法、存储介质和计算机设备。

技术介绍

[0002]目前,关系数据库中的数据组织方式可以为:表数据以堆表形式存储;索引数据单独存储,在索引叶子节点的索引项中存储表数据行的物理位置来关联索引与对应数据。为了提高查询等效率,当通过索引项获取到的表数据无效时,可以记录无效的索引项并对索引项做标记,这样后续的扫描就会跳过标记的索引项避免再去通过无效的索引项获取表数据。但是,上述过程中如果有其他操作影响到索引页面的物理组织,会导致标记的无效索引项的位置发生改变,导致无效索引项的标记不够准确,若使上述整个过程禁止对索引页面的访问和物理修改,又会阻塞了需要改变索引页面物理组织的操作,降低了并发度,影响了数据库系统的吞吐量。

技术实现思路

[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]图1是根据本专利技术一个实施例的无效索引的无锁标记方法的示意流程图;
[0031]图2是根据本专利技术另一个实施例的标记无效索引项的示意图;
[0032]图3是根据本专利技术另一个实施例的无效索引的无锁标记方法的示意流程图;
[0033]图4是根据本专利技术一个实施例的机器可读存储介质的示意图;
[0034]图5是根据本专利技术一个实施例的计算机设备的示意图。
具体实施方式
[0035]图1是根据本专利技术一个实施例的无效索引的无锁标记方法的示意流程图。无效索
引的无锁标记方法一般性地可包括:
[0036]步骤S102:禁止对索引页面的访问和物理修改,其中索引页面上有多个索引项。本步骤也可以理解为控制索引页面的物理修改。
[0037]步骤S104:查找索引页面上的无效索引项,并记录索引页面的第一修改序号。涉及索引页面物理组织变化的修改会产生全数据库系统唯一的标识,一般通过修改在日志中的位置或修改所属的数据库系统变更序号标识,这个标识会在索引页面发生修改时同时记录在索引页面上,这里的标识也就是序号。第一修改序号也就是禁止对索引页面的访问和物理修改后,索引页面未发生物理组织变化的序号。
[0038]步骤S106:当完成对索引页面上无效索引项的查找时,允许对索引页面的访问和物理修改。
[0039]步骤S108:记录索引页面上查找到的无效索引项。本步骤可能涉及随机I/O,因此耗时很久。
[0040]步骤S110:禁止对索引页面的访问和物理修改。
[0041]步骤S112:记录索引页面的第二修改序号。
[0042]步骤S114:根据第一修改序号和第二修改序号确定记录的索引页面的无效索引项是否为最终无效索引项。
[0043]若是,执行步骤S116:将最终无效索引项标记为无效。
[0044]步骤S118:允许对索引页面的访问和物理修改。
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种无效索引的无锁标记方法,包括:禁止对索引页面的访问和物理修改,其中所述索引页面上有多个索引项;查找所述索引页面上的无效索引项,并记录所述索引页面的第一修改序号;当完成对所述索引页面上无效索引项的查找时,允许对所述索引页面的访问和物理修改;记录所述索引页面上查找到的无效索引项;禁止对索引页面的访问和物理修改;记录所述索引页面的第二修改序号;根据所述第一修改序号和所述第二修改序号确定记录的所述索引页面的无效索引项是否为最终无效索引项;若是,将所述最终无效索引项标记为无效;允许对所述索引页面的访问和物理修改。2.根据权利要求1所述的无效索引的无锁标记方法,其中,所述根据所述第一修改序号和所述第二修改序号确定记录的所述索引页面的无效索引项是否为最终无效索引项包括:判断所述第一修改序号与所述第二修改序号是否相同。3.根据权利要求1所述的无效索引的无锁标记方法,其中,在所述将所述最终无效索引项标记为无效之后,还包括:清理标记为无效的最终无效索引项。4.根据权利要求1所述的无效索引的无锁标记方法,其中,在所述将所述最终无效索引项标记为无效之后,还包括:对所述索引页面的第二修改序号进行修改。5.根据权利...

【专利技术属性】
技术研发人员:冷建全杨尚
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1