System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于缓存优化的分布式数据库中的manifest实现的系统技术方案_技高网

一种基于缓存优化的分布式数据库中的manifest实现的系统技术方案

技术编号:41427809 阅读:3 留言:0更新日期:2024-05-28 20:25
本发明专利技术提供了一种基于缓存优化的分布式数据库中的manifest实现的系统,包括:manifest文件,manifest文件的格式以chunk为单位进行append only追加写,每个chunk是一系列version change的日志,每个日志均带有一个HLC时间戳;table range manager缓存,通过对分布式数据库应用中每个表的manifest文件使用lru cache进行管理,将热点表缓存在内存中;manifest管理件,若干manifest文件以及一个current文件构成manifest管理件;savepoint缓存,每次生成新的manifest文件时,都会将截至目前为止的最新版本信息,完整地保存在新的manifest文件头部;changelist缓存,在外存格式的基础上,通过lru cache将最新以及最近使用的数据快照缓存在内存中。

【技术实现步骤摘要】

本专利技术涉及分布式数据库领域,更具体的说是,涉及一种基于缓存优化的分布式数据库中的manifest实现的系统


技术介绍

1、manifest在数据库中,是一种元信息的存储技术,可以用来帮助数据库进行多版本管理,一致性恢复,以及带条件过滤的查询优化,甚至可以用来实现时间旅行功能;但是这是个单机事务,并且manifest中的信息过于简单,仅仅能够支持recovery,无法帮助查询语句的运行时带过滤条件的查询裁剪优化;

2、单机数据库版本中(例如rocksdb)manifest记录了所有变更的事务日志,在db恢复的时候,可以容易的将数据库恢复到一致性的状态;当最新的manifest写盘成功后,就会删除所有除最新版本之外的manifest文件;虽然能够在manifest中描述详细的信息,有助于查询优化,但是作为数据湖本身是难以具的事务功能,即使是元数据,也是一个单机事务模型,因而不能支持分布式事务模型下的这些功能;

3、在数据湖应用中(例如iceberg),同样适用manifest记录了数据的变更日志(但是不严格提供数据库的acid特性,元数据可以通过外部配置实现acid,但是用户数据本身没有关系型事务特性),并且在传统的变更日志之外,还额外记录了列的统计信息,以及schema变更信息,可以利用manifest实现找到过去某个时刻的snapshotid,从而实现timetravel;manifest设计过于复杂,会造成manifest文件数量爆炸,而且访问外存中的manifest存在性能损耗,对性能影响较大。


技术实现思路

1、本专利技术的目的是提供一种基于缓存优化的分布式数据库中的manifest实现的系统。

2、本专利技术要解决的是现有技术中存在的问题。

3、与现有技术相比,本专利技术技术方案及其有益效果如下:

4、一种基于缓存优化的分布式数据库中的manifest实现的系统,包括:manifest文件,manifest文件的格式以chunk为单位进行append only追加写,每个chunk是一系列version change的日志,每个日志均带有一个hlc时间戳;table range manager缓存,通过对分布式数据库应用中每个表的manifest文件使用lru cache进行管理,将热点表缓存在内存中;。manifest管理件,若干manifest文件以及一个current文件构成manifest管理件;savepoint缓存,每次生成新的manifest文件时,都会将截至目前为止的最新版本信息,完整地保存在新的manifest文件头部;changelist缓存,在外存格式的基础上,通过lrucache将最新以及最近使用的数据快照缓存在内存中;其中,所述table range manager缓存管理着不同的table range,包括但不限于增加table range,从文件系统中加载tablerange;每个table range唯一对应一个manifest管理件,manifest管理件由一个或多个manifest文件组成,每个manifest文件由一个savepoint缓存以及一组changelist缓存组成。

5、作为进一步改进的,所述manifest文件命名格式为seq.manifest,其中seq是递增的序列号。

6、作为进一步改进的,version change为一次文件的创建、一次追加写记录、一次schema变更记录的其中一种。

7、作为进一步改进的,将新的version change记录到内存,当change数目达到一定的条数或者超过一定的大小或者遇到checkpoint,将内存中的记录打包通过chunk的形式写入到manifest文件中;若manifest文件达到了指定大小,并且更新current文件指向最新的manifest文件。

8、作为进一步改进的,recovery会首先解析current文件,找到最新的manifest文件,找到最近一次的base版本,然后依次apply version change,迅速恢复到最近的一致性状态。

9、本专利技术的有益效果为:

10、本专利技术不仅在manifest中丰富了各种类型的信息(有助于查询性能优化等),而且设计了一套高效的lru cache机制,在分布式事务模型的分布式数据库存储引擎中实现了一种高效的manifest技术;本专利技术在基于缓存优化的基础上,突出模块化的分拆缓存优化,而不是整体的大缓存,不仅提高性能,也避免了大量内存的占用。

11、manifest结构设计具备完备的信息描述能力和扩展能力,manifest通过lrucache不仅将部分信息报错在内存中,保证了性能,也通过将部分信息进行cache,从而有效减小了manifest文件的大小;通过cache机制,不仅管控住了内存,而且避免了正常读写过程中读取manifest的io开销,提升了性能;并在内存管控中优化实现逻辑,在分布式数据库场景中设计了一套完整的cache机制,提升了manifest自身的性能以及内存管理效率。

本文档来自技高网...

【技术保护点】

1.一种基于缓存优化的分布式数据库中的manifest实现的系统,其特征在于,包括:

2.根据权利要求1所述的一种基于缓存优化的分布式数据库中的manifest实现的系统,其特征在于,所述manifest文件命名格式为seq.manifest,其中seq是递增的序列号。

3.根据权利要求1所述的一种基于缓存优化的分布式数据库中的manifest实现的系统,其特征在于,version change为一次文件的创建、一次追加写记录、一次schema变更记录的其中一种。

4.根据权利要求1所述的一种基于缓存优化的分布式数据库中的manifest实现的系统,其特征在于,将新的version change记录到内存,当change数目达到一定的条数或者超过一定的大小或者遇到checkpoint,将内存中的记录打包通过chunk的形式写入到manifest文件中;若manifest文件达到了指定大小,并且更新current文件指向最新的manifest文件。

5.根据权利要求1所述的一种基于缓存优化的分布式数据库中的manifest实现的系统,其特征在于,recovery会首先解析current文件,找到最新的manifest文件,找到最近一次的base版本,然后依次apply version change,迅速恢复到最近的一致性状态。

...

【技术特征摘要】

1.一种基于缓存优化的分布式数据库中的manifest实现的系统,其特征在于,包括:

2.根据权利要求1所述的一种基于缓存优化的分布式数据库中的manifest实现的系统,其特征在于,所述manifest文件命名格式为seq.manifest,其中seq是递增的序列号。

3.根据权利要求1所述的一种基于缓存优化的分布式数据库中的manifest实现的系统,其特征在于,version change为一次文件的创建、一次追加写记录、一次schema变更记录的其中一种。

4.根据权利要求1所述的一种基于缓存优化的分布式数据库中的manifest实现的系统,其特...

【专利技术属性】
技术研发人员:严俊峰陶征霖常雷姚佳丽霍瑞龙刘大伟宋宜旭
申请(专利权)人:北京偶数科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1