[发明专利]用于主存储器数据库的存储器紧缩机制有效
申请号: | 201380032838.2 | 申请日: | 2013-06-13 |
公开(公告)号: | CN104412241B | 公开(公告)日: | 2017-06-27 |
发明(设计)人: | D·兹罗继安尼斯;P-A·拉森 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F17/30;G06F12/08 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 陈斌 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 主存储器 数据库 存储器 紧缩 机制 | ||
1.一种由存储主存储器数据库的计算机系统执行的用于在所述主存储器数据库内执行存储器紧缩的方法,所述方法包括:
扫描存储器中的页的双向链表,所述页用于存储所述主存储器数据库的记录,扫描包括确定每一页的存储器利用(401);
基于每一页的存储器利用来确定哪些页具有低于指定阈值的存储器利用(402);
对于具有低于所述阈值的存储器利用的每一页,执行存储器紧缩过程,所述存储器紧缩过程包括(403):
标识所述页中的每一有效记录(403a);
对于每一有效记录,在活动页中创建所述记录的新版本(403b);
对于为其创建新版本的每一有效记录,将所述记录标记为无效(403c);以及
在将所述页中的每一有效记录标记为无效之后,将所述页清空并且从所述双向链表中移除(403d)。
2.如权利要求1所述的方法,其特征在于,所述存储器紧缩过程使用悲观事务来执行,所述悲观事务采用针对依赖性的等待以允许在所述悲观事务创建和提交所述记录的新版本的同时旧版本被其它事务读取。
3.如权利要求1所述的方法,其特征在于,扫描所述页的双向链表包括从所述页的头部读取每一页的存储器利用。
4.如权利要求1所述的方法,其特征在于,所述存储器紧缩过程进一步包括在要被处理的每一页的头部中设置一标志以指示所述页正被清空。
5.如权利要求4所述的方法,其特征在于,所述存储器紧缩过程进一步包括:
在活动页中创建每一记录的新版本之后,访问所述页中的存储器块的列表,其中在设置所述标志的同时接收到针对所述存储器块的释放存储器调用;以及
释放所述列表中的每一存储器块。
6.如权利要求1所述的方法,其特征在于,所述扫描由工作者线程响应于接收到工作项来执行。
7.如权利要求1所述的方法,其特征在于,所述双向链表包括分区堆中所有部分为空的页。
8.如权利要求7所述的方法,其特征在于,所述分区堆涉及表或数据库之一。
9.如权利要求1所述的方法,其特征在于,标识有效记录包括标识具有被设为无穷大的结束时间戳的记录,并且将记录标记为无效包括将所述记录的结束时间戳设为创建所述记录的新版本的事务的提交时间戳。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380032838.2/1.html,转载请声明来源钻瓜专利网。