[发明专利]一种CockroachDB数据库快照的实现方法在审
| 申请号: | 202010616119.7 | 申请日: | 2020-07-01 |
| 公开(公告)号: | CN111752929A | 公开(公告)日: | 2020-10-09 |
| 发明(设计)人: | 贾德星;周恒;周正德 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
| 主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/23 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 郗艳荣 |
| 地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 cockroachdb 数据库 快照 实现 方法 | ||
本发明特别涉及一种CockroachDB数据库快照的实现方法。该CockroachDB数据库快照的实现方法,利用CockroachDB多版本管理和历史数据垃圾回收的机制,通过增加系统快照表管理及定义快照的DDL语句,并重新设计MVCC数据的垃圾回收策略,从而实现数据库的快照功能。该CockroachDB数据库快照的实现方法,不仅可以在某些时间点为数据表创建快照,保护快照时间点的数据不被修改,还可以根据需要快速恢复快照点数据,从而实现高效、可靠的数据备份恢复能力。
技术领域
本发明涉及分布式数据库技术领域,特别涉及一种CockroachDB数据库快照的实现方法。
背景技术
CockroachDB是一个基于Google Spanner思想构建的开源分布式数据库系统,具有NoSQL对海量数据的存储管理能力,又保持了传统数据库支持的ACID和SQL等特性,还支持跨地域、去中心、高并发、多副本强一致和高可用等特性。
CockroachDB底层存储是KV(Key-Value,分布式存储系统)数据库,并利用“KEY+混合逻辑时钟(HLC-Hybrid Logical Clock)”来实现数据的多版本并发控制(MVCC-Multiversion concurrency control),数据更新以Append(附加)方式增加到底层数据存储。在实际的操作中,为了快速读取到最新的数据,会把HLC取反encode(编码)到KEY(关键字)的尾部,读取的时候以KEY作为前缀启动一个迭代器,这样最新的数据最先被读取到。同时对于过期数据会启动垃圾回收(GC-Garbage collection)机制定期清理。
基于CockroachDB的分布式、多副本存储的架构,其系统稳定性、数据可靠能力相比单机数据库有很大提高,理论上来说可以通过增加副本数来保障数据的可靠性,而不需要单独的备份方案。但是依然无法应对用户误操作的场景,比如用户不小心清空数据表,则会导致所有副本数据全部清理,并且无法恢复。
CockroachDB采用MVCC来存储KV数据,使用HLC(混合逻辑时钟)时间戳作为数据的版本号,存储引擎中会存在Key的多个版本的数据,如图1所示。同一Key的多个版本按照时间戳倒序排序,时间戳=0的数据表示写数据的事务还未提交,数据在WriteIntent中,值是Metadata。对于多版本的历史数据会通过GC定时清理。
基于此,本发明提出了一种CockroachDB数据库快照的实现方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的CockroachDB数据库快照的实现方法。
本发明是通过如下技术方案实现的:
一种CockroachDB数据库快照的实现方法,其特征在于:利用CockroachDB多版本管理和历史数据垃圾回收的机制,通过增加系统快照表管理及定义快照的DDL(DataDefinition Language,数据定义语言)语句,并重新设计MVCC(Multi-VersionConcurrency Control,多版本并发控制)数据的垃圾回收策略,从而实现数据库的快照功能。
所述系统快照表用于记录快照对象的ID和快照时间点,所述快照对象为数据库或数据表;在系统快照表中增加一条快照对象的ID和快照时间点记录即可为数据库或数据表建立快照。
所述快照的DDL语句包括创建快照CREATE SNAPSHOT,查询快照及定义SHOWSNAPSHOT,删除快照DROP SNAPSHOT,恢复某个快照点的数据为当前数据REVERT SNAPSHOT以及查询某个快照点的数据SELECT...FROM...AS OF SNAPSHOTsnapshot_name。
查询快照点数据(SELECT),是根据快照名称查询系统快照表得到快照时间点,然后查询底层存储引擎中“时间点t=快照时间点”的MVCC数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010616119.7/2.html,转载请声明来源钻瓜专利网。





