[发明专利]修改根结点的方法和修改装置有效
申请号: | 201380023564.0 | 申请日: | 2013-12-31 |
公开(公告)号: | CN104285223B | 公开(公告)日: | 2018-03-13 |
发明(设计)人: | 梁远胜;姚理;王寄萱 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 修改 结点 方法 装置 | ||
技术领域
本发明实施例涉及数据库技术,尤其涉及一种修改根结点的方法和修改装置。
背景技术
在现有技术中,一般都是通过索引技术来提高内存数据库的数据访问速度。索引类型有多种,比如多路搜索树(B*tree)索引和哈希(Hash)索引等。在B*tree中,每个结点包含了本结点所含关键字的个数、指向父结点的指针、关键字和关键字所指向孩子结点的指针,如果该结点没有父结点,即该结点为根结点时,则该结点不包含指向父结点的指针,如果该结点没有孩子结点,即该结点为叶子结点,叶子结点指向了该叶子关键字所指向的实际数据,孩子结点的所有关键字均不大于该孩子结点的指针所指向的父结点的关键字。
如图1所示,是一个典型的B*tree的范例,最上面一层的结点就是根结点,它是查询的入口,INF为无穷大值。例如:我们要在查询B*tree上查找key为28的值,首先在根结点上查找大于等于28中最小的关键字,该关键字是56,然后根据关键字为56的指向孩子结点的指针找到它的孩子结点,然后在这个孩子结点查找大于等于28中最小的关键字,该关键字是35,继续根据这个关键字为35所指向孩子结点的指针找到了关键字为35的孩子结点,从而在该孩子结点中查找到关键字为28的叶子结点。
从上述B*tree查找数值的过程来看,查询时首先从根结点开始查找,如果满足条件就继续找对应的key的孩子结点,因此这将导致了根结点必然成为热点,在数据库中,通常采用多读单写的并发机制,也就是加共享锁进行读,排他锁进行写,这样不同事务可以通过加共享锁对根结点进行多读,一个事务通过加排他锁对根结点进行单写。
然而一个事务中对根结点进行单写时,其它事务的读操作都不能进行,并且由于根结点是所有查询请求的开始,因此导致并发处理的效率会很低。
发明内容
本发明实施例提供一种修改根结点的方法和修改装置,实现数据库在受理查询请求时,仍然能够处理修改请求。
第一方面,本发明实施例提供一种修改装置,其特征在于,用于修改数据库中的根结点,包括:
接收模块,用于接收根结点修改请求,所述根结点修改请求包含修改信息,其中,数据库包含了数据区域和通用区域,所述数据区域包含了根结点,所述通用区域包含了第一映射页、第一映射页标识、第二映射页和第二映射页标识,所述第一映射页和所述第二映射页均为所述根结点的映射页;
修改模块,用于根据所述修改信息,修改数据库的数据区域中的根结点;
复制模块,用于将修改后的根结点复制到数据库的通用区域中;
确定模块,用于在所述数据库的通用区域中,查询主映射页标识为第一映射页标识,确定第一映射页是主映射页;
替换模块,用于根据复制到通用区域中的所述修改后的根节点,将第二映射页替换为所述修改后的根结点,并修改所述主映射页标识为第二映射页标识。
结合第一方面,在第一方面的第一种可能的实现方式中,替换模块,还用于在修改所述主映射页标识为第二映射页的标识后,以及当所述第一映射页当前受理的数据查询业务完成后,将当前的第一映射页替换为所述修改后的根结点。
结合第一方面,在第一方面的第二种可能的实现方式中,上述修改装置还包括:查询模块,用于接收数据查询请求,查询主映射页标识为所述第二映射页标识,将所述数据查询请求发送给所述第二映射页,由所述第二映射页受理所述数据查询请求。
结合第一方面,在第一方面的第三种可能的实现方式中,上述修改装置还包括:锁处理模块,用于在接收根结点修改请求之后,在根结点上设置排他锁,在所述将当前的第二映射页替换为所述修改后的根结点之后,解除根结点的排他锁。
第二方面,本发明还提供了一种修改根结点的方法,包括:
接收根结点修改请求,所述根结点修改请求包含修改信息;
根据所述修改信息,修改数据库的数据区域中的根结点;所述数据库包含了数据区域和通用区域,所述数据区域包含根结点,所述通用区域包含了第一映射页、第一映射页标识、第二映射页和第二映射页标识,所述第一映射页和所述第二映射页均为所述根结点的映射页;
将修改后的根结点复制到数据库的通用区域中;
在所述数据库的通用区域中,查询主映射页标识为第一映射页标识,确定第一映射页是主映射页;
根据复制到所述通用区域中的所述修改后的根节点,将第二映射页替换为所述修改后的根结点,并修改所述主映射页标识为第二映射页标识。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380023564.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:转向柱控制模块
- 下一篇:一种甘蔗病虫害的防治方法