[发明专利]创建数据库子集快照的系统及方法有效
申请号: | 201780053667.X | 申请日: | 2017-06-02 |
公开(公告)号: | CN109643276B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 谢伊·高克曼;安东尼·利奥普洛斯;埃利泽·利维 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 创建 数据库 子集 快照 系统 方法 | ||
创建作为多个分段存储在地址空间中的数据库子集快照的系统,所述系统包括:确定单元,用于从所述多个分段确定所述快照的一个或多个源段;及虚拟内存创建单元,用于向所述快照分配所述地址空间内的一个或多个快照分段,其中所述快照分段作为所述源段被映射到相同的物理内存地址,并且所述源段和/或所述快照分段设置为写时复制。
技术领域
本发明涉及创建快照的系统及创建快照的方法。本发明也涉及存储程序代码的计算机可读存储介质,所述程序代码包括执行此种方法的指令。
背景技术
例如,创建数据库的备份或者数据库的一致状态待查询时,需要创建数据库快照。在多种情况下,希望快照只包括数据库数据的子集。
例如,混合OLTP-OLAP数据库能够通过fork()系统调用从在持续进行查询的时段内作为OLAP部分一致性快照的父进程中创建子进程。通过写时复制(copy-on-write,CoW)优化,能够对所述快照进行动态维护:所述fork()系统调用将父进程和子进程两进程中的分享页帧映射为只读,并且只有当页面被父进程修改时,内核才分配新页帧,将页面数据复制到新帧并修改新帧中的数据。
相同机制能够用于混合和其它数据存储的检查点设置。所述检查点设置将子进程中的一致性数据库快照持久化到永久性存储器。子进程也可以为长时间运行,因为其依赖于快照大小和I/O速度。
以上现有技术的方法中,创建快照的计算工作量很大。
发明内容
本发明的目的是提供创建快照的系统及创建快照的方法,其中创建快照的系统及创建快照的方法克服了上述现有技术提及的一个或多个问题。
本发明第一方面提供创建作为多个分段存储在地址空间中的数据库子集快照的系统,所述系统包括:
-确定单元,用于从所述多个分段确定所述快照的一个或多个源段;及
-虚拟内存创建单元,用于向所述快照分配所述地址空间内的一个或多个快照分段,其中所述快照分段作为所述源段被映射到相同的物理内存地址,并且所述源段和/或所述快照分段设置为写时复制。
第一方面所述的系统背离与分叉机制传统上相关联的传统语义,因为引入了在单个地址空间内运作的写时复制机制,而非创建单独的地址空间。此法使应用具有内存区域的精细化、轻量级和即兴式遮蔽(版本控制),而没有设置与单独地址空间相关的任何额外系统/应用功能的关联开销。
快照的源段是为之拍摄所述快照的数据库中的那些分段,即重复的分段。据理解,在不同的应用背景中,可以有不同的确定快照源段的途径。例如,可从所述地址空间中的连续分段中选择快照源段。在这点上,根据第一方面所述的系统不限于某种确定所述快照分段的具体途径。
在所述创建快照的系统的第一种实现方式中,根据第一方面,所述虚拟内存创建单元在所述系统的操作系统的所述内核中实现。
这代表了实现所述分配所述快照分段的特别有效的途径。例如,所述内核可为Linux内核。
在所述创建快照的系统的第二种实现方式中,根据第一方面或根据第一方面的第一种实现方式,所述系统用于,在访问映射到永久性存储器的分段时:
-分配一个或多个页帧;
-将所述分段从所述永久性存储器读取到所述页帧;及
-将所述分段和对应快照分段映射到所述页帧。
这使所述系统也可能应用于永久性存储器中存储的分段。所述永久性存储器可在所述系统之内或之外。例如,所述永久性存储器可为硬盘和/或固态磁盘(solid statedrive,SSD)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780053667.X/2.html,转载请声明来源钻瓜专利网。