[发明专利]用于主存储器数据库的存储器紧缩机制有效
申请号: | 201380032838.2 | 申请日: | 2013-06-13 |
公开(公告)号: | CN104412241B | 公开(公告)日: | 2017-06-27 |
发明(设计)人: | D·兹罗继安尼斯;P-A·拉森 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F17/30;G06F12/08 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 陈斌 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 主存储器 数据库 存储器 紧缩 机制 | ||
背景
1.背景和相关技术
计算机系统及相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。现在,计算机系统通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排、帐目管理等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统及其他电子设备可在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境中。
许多计算机系统采用数据库来存储数据。一种类型的数据库(称为主存储器数据库或存储器内数据库)被存储在主存储器中。换言之,主存储器数据库的表被完整地存储在主存储器中,而不是存储在盘或其它类型的辅助存储上。由于存储器是计算机系统中有限且有价值的资源,以尽可能最高效的方式利用存储器是很重要的。
在实现主存储器数据库时产生的一个问题是存储器碎片。图1示出了存储器碎片能够如何在主存储器数据库中发生。图1示出了包含各个页101a-101d的存储器100。一般而言,页是存储器中已经被分配用于存储数据库记录的一部分。在图1的左侧,这些页被示为充满的,这意味着每一页包含最大数目的记录,并且这些记录是有效的。左侧相应地表示数据库对存储器的有效利用。
相反,在图1的右侧,页101a-101d被示为近乎是空的。具体来说,每一页被示为包含很少的有效记录。几乎为空的页未能高效地利用存储器,因为该页的所分配尺寸中仅一小部分被用来存储有效数据(并且因为该页存储至少一个有效记录,该页无法被回收以供后续使用)。页101a-101d可能通过各种方式变得几乎为空,诸如在删除页中的记录时。
当主存储器数据库的页未被高效利用时,主存储器数据库的性能遭受损失。例如,较差的存储器利用可能导致数据库占据超过必要限度的存储器,从而限制了能够被有效地实现为主存储器数据库的数据库的大小。
简要概述
本发明涉及用于实现主存储器数据库中的存储器紧缩的方法、系统和计算机程序产品。存储器紧缩指的是将来自具有较差空间利用的页的记录重新定位到另一页,从而将记录“紧缩”到较少的页中。以此方式,具有较差空间利用的页(即,包含相对较少有效记录的页)能够被清空以允许这些页被回收以供其它使用。
根据本发明的主存储器数据库能够使页内的记录结构化成以分区堆内的双向链表来组织。主存储器数据库可包括许多分区堆。可以通过将来自分区堆的一个页的记录移动到分区堆的活动页以藉此清空来自该页的所有有效记录来在分区堆上执行存储器紧缩。移动记录可包括对记录执行准更新。准更新指的是在活动页中创建记录的新版本但该新版本包含与旧版本相同的用户数据的事实。
根据本发明的一个实施例,存储器紧缩可以通过扫描存储器中页的双向链表来执行。页存储主存储器数据库的记录。扫描包括确定每一页的存储器利用。基于每一页的存储器利用,确定哪些页具有低于指定阈值的存储器利用。对于具有低于阈值的存储器利用的每一页,存储器紧缩过程通过以下操作来执行:(1)标识页中的每一有效记录;(2)对于每一有效记录,在活动页中创建该记录的新版本;(3)对于为其创建新版本的每一有效记录,将该有效记录标记为无效;以及(4)在页中的每一有效记录被标记为无效之后,通过垃圾收集器将该页从双向链表中移除。
根据另一实施例,存储器紧缩线程确定应当在主存储器数据库的分区堆中的至少一个分区堆上执行存储器紧缩。存储器紧缩线程创建工作项,该工作项包含用于在分区堆上执行存储器紧缩的指令。存储器紧缩线程将工作项推送到关于在分区堆上执行存储器紧缩的工作者线程的队列中。
工作者线程访问队列中的工作项以确定该工作项指令工作者线程在分区堆上执行存储器紧缩。工作者线程访问分区堆中双向链表页中每一页的头部中的存储器利用值。对于具有低于阈值的存储器利用值的每一页,工作者线程执行以下存储器紧缩过程:(1)用于创建页中的每一有效记录的新版本,该新版本被创建在分区堆的活动页中;以及(2)用于将页中为其创建新版本的每一有效记录标记为无效以藉此允许垃圾收集器随后清空该页的所有记录并且回收该页以供其它使用。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380032838.2/2.html,转载请声明来源钻瓜专利网。