[发明专利]一种利用位图对内存数据库空间进行管理的方法有效
申请号: | 200810216191.X | 申请日: | 2008-09-18 |
公开(公告)号: | CN101676906A | 公开(公告)日: | 2010-03-24 |
发明(设计)人: | 丁奇鹏;印和平;卢勤元;常二鹏 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/02 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 位图 内存 数据库 空间 进行 管理 方法 | ||
1.一种利用位图对内存数据库空间进行管理的方法,其特征在于, 内存空间按照页划分为多个数据页,包括在系统内存区内的以下操作步 骤:
A、建立一级位图区,其中,所述一级位图区位于所述系统内存区的特 定位图区,所述一级位图区为所述多个数据页中的每个数据页分配若干bit, 用于记录该数据页的状态;
B、建立一级位图区辅助链表,其中所述辅助链表的每一个节点对应所 述一级位图区的至少一个所述若干bit;
C、建立二级位图区,其中,所述二级位图区位于所述多个数据页中的 每个数据页的特定位图区,所述二级位图区为该页中的每个记录分配一定 bit,用于保存该记录的状态;
D、分配所述多个数据页中的一个数据页;
E、分配该页中的一个记录;
F、释放所述一个记录;
G、释放所述一个数据页。
2.如权利要求1所述的方法,其特征在于,所述的步骤A包括:
按照系统需要管理的总内存区大小开辟所述一级位图区并全部初始化 为未分配状态。
3.如权利要求2所述的方法,其特征在于,所述步骤A还包括以下步 骤:
A1、在数据库系统配置中设定将使用m MB的内存,其中,m为正整 数;并由主机支持分配此容量的内存;同时设定每页的大小为p KB,其中, p为正整数;
A2、数据库系统启动后通过开辟共享内存分配出m MB内存;假设该 内存首地址为g,其中,g为自然数;
A3、计算所需要的一级位图区大小为b1=(m*1024)/(p*8)字节;
A4、在总内存段的开头保留b1字节的空间,作为一级位图区,对一级 位图区初始化为全0。
4.如权利要求1的方法,其特征在于,所述的步骤B包括:
建立所述一级位图辅助链表并初始化,将所述一级位图区中所有空闲 bit域都记录进来。
5.如权利要求1所述的方法,其特征在于,所述的步骤C包括:
C1、根据数据页偏移地址对该页进行初始化,记录页头控制信息,并 按照该页需要存放的记录的长度信息估算所需要的二级位图区长度;
C2、初始化该页的二级位图区,将二级位图区中的所有bit域标记为未 使用。
6.如权利要求1所述的方法,其特征在于,所述的步骤D包括以下步 骤:
D1、访问所述一级位图辅助链表的首节点,从中获取第一个空闲的bit 域,并标记为已分配;
D2、检测步骤D1中找到的bit域所在的辅助链表的节点,如果该节点 对应的所有bit域都为已分配状态,则将该节点移出链表;
D3、根据步骤D1中找到的空闲bit域的位置,计算出相应数据页在整 个数据区中的位置偏移地址。
7.如权利要求6所述的方法,其特征在于,所述的步骤D1包括以下 步骤:
D11、上层业务发来请求,申请数据页,并指明该页中每条记录长度≤ r字节;其中,r为正整数;
D12:定位到辅助链表首节点,若发现链表为空,则向调用者返回无空 闲数据页错误,否则转下一步骤;
D13:搜索首节点的第一个空闲bit,搜索到则设该bit为1,表示已占 用;假设该bit是g开始的第n个bit,n为从1开始的计数自然数;检查此 节点对应的一级位图区是否已经为全1,是则从链表摘除此节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810216191.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实现移动终端开机时快速加载信息的方法
- 下一篇:病毒检测的方法及系统