System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于数据更新特征动态分组和垃圾回收的方法、装置和设备制造方法及图纸_技高网

基于数据更新特征动态分组和垃圾回收的方法、装置和设备制造方法及图纸

技术编号:43681235 阅读:7 留言:0更新日期:2024-12-18 21:02
本发明专利技术提供一种基于数据更新特征动态分组和垃圾回收的方法、装置和设备,用于解决存储系统写入放大因子WAF较大的技术问题。本发明专利技术基于逻辑数据块的更新频率和周期性特征动态对逻辑数据块进行分组,为不同类型的分组分配与该分组特征匹配的段数量和垃圾回收策略,从而优化存储系统整体的写入放大因子WAF,通过优化WAF达到提升硬盘使用寿命,提升写入性能,提升系统稳定性等技术效果。

【技术实现步骤摘要】

本专利技术涉及存储,尤其涉及一种基于数据更新特征动态分组和垃圾回收的方法、装置和设备


技术介绍

1、日志结构系统(log-structured systems),是一种数据管理和存储系统的设计方法,主要特点是将所有的修改操作以追加日志的形式记录。在这种系统中,所有数据的写入操作都被顺序地追加到日志文件的末尾,而不是直接修改磁盘上的原始数据位置。这种设计方法在写频繁的场景中可以大幅优化性能。

2、日志结构系统(log-structured systems)广泛应用于各种场景,典型应用如键值kv存储(例如lsm树)系统、文件存储系统(例如f2fs)、存储固件(例如flash translationlayer,ftl)系统等。日志结构系统能大幅提升写入吞吐量,非常适合支持追加写入的新兴存储介质,例如nand ssd盘,zns盘,smr hdd盘等类型的硬盘。

3、尽管有这些好处,但日志结构系统较高的垃圾回收(gc,garbage collection)成本是其主要不足。日志结构系统将存储空间划分为固定大小的段(segment),每个段的大小通常为几个mb,而段本身包含若干4kb的数据块(block)。段是空间分配和gc的单位,4kb块是读写数据的单位。日志结构系统将更新的数据块追加到当前的segment中,留下旧版本的数据块作为垃圾,必须稍后通过gc进行清理和回收。

4、在垃圾回收gc期间,首先要找出要回收的带有垃圾块的受害段(victimsegment),然后将有效(valid)块复制到另一个段,最后释放整个受害段以供将来写入。由此不难看出,gc会导致大量额外的读写操作。

5、写入放大因子(write amplification factor,waf)是衡量gc期间额外写入影响的一个常用指标。存储系统的写放大是指在进行写入操作时,实际写入存储设备的数据量大于用户期望写入的数据量的现象。写放大可能导致存储系统的性能下降和存储设备寿命缩短,存储系统的稳定性下降。

6、写入放大因子(waf)是写入存储的块总数与用户写入的块数量之比:

7、

8、目前对减轻gc带来的开销的研究主要集中在两个方面:如何根据数据的生命周期进行分类放置(把具有相同或近似生命周期的数据放到相同的segment中),以及如何选择受害者区段(victim segment,被选中的区段会进行gc)。这两个问题中,第一个问题是关键;第二个问题的方案和第一个问题紧密相关。

9、在理想情况下,把具有相同生命周期的数据块放到一个segment中,那么,这个segment中的数据会几乎同时失效,此时就不需要额外的数据拷贝,waf达到最优值1。

10、在实际的全闪存储系统中,为了管理和实现的方便,往往对作为存储介质的ssd的使用空间进行进一步的分组。一种常见的方法是将若干个连续固定数目的数据块block分组成一个数据段(称为段或segment)。这样,一块ssd盘就会包含若干个segment。为充分发挥存储系统性能,数据的写入规则满足如下要求:

11、·存储系统基于log-write的方式实现。

12、·存储系统可以并发写入多个段。

13、·对于某个特定的段,数据以顺序方式写入,写满后再写其余的空闲段。

14、·垃圾回收也是以段为单位进行的。

15、基于上述要求可知,刚开始时,系统充满空闲段,随着数据的写入,空闲段逐步减少。同时,数据更新将导致段中的垃圾数据逐步增多。在某一时刻,系统需要进行垃圾回收获取空闲段。此时,为了获得最小的写放大,必须回答两个问题:

16、1)用户的写入数据在段中如何做数据布局(因为数据可以并发写入多个数据段中)?

17、2)在进行垃圾回收时,应该采取什么的策略?

18、数据生命周期是指数据在被更新(update)之前所存在的时间。数据在update后,之前写入的数据就成为了垃圾数据,所以一个数据被多次update,系统中除了最后一次写入的数据外,之前的数据都成了垃圾数据。

19、对于用户的写入数据在段中如何做数据布局的问题,如果从更高的视角看,在写入数据时,应该把相同生命周期或近似相同生命周期的数据放入相同的段中。这样,整个段的数据就会在几乎相同的时间内成为垃圾数据。此时,回收这个段不需要进行任何有效数据搬移,可以直接擦除整个段,写放大达到最优。实际情况下,系统无法对数据的生命周期做出精准的判断,所以只能根据一个数据以往的update频度对其未来的生命周期进行估计。比如,一个数据频繁进行update,则可认为未来一段时间该数据仍将有较大的几率会update,这个数据可称为热数据;相对而言,如果一个数据长期不更新,则这个数据可称为冷数据。需要说明的是,预测数据的生命周期除了考虑过去一段时间数据update的平均次数,还需要考虑数据更新的新近性(recency)信息。举例来说,a、b两个数据都在过去3分钟内更新了10次,但a的数据更新都发生在第一分钟内;而b的数据更新发生在第三分钟内,此时,数据a、b更新的频率是一样的,但数据b的recency更大,这意味着未来短时间内b更有可能继续更新,也就是b的热度更大。从而,在写入数据时,需要把冷热数据分开放置,放到不同的segment中,以便该段数据在近似相同时间内失效,减少写放大,为了实现该目的,进行冷热数据识别成为关键。

20、现有技术中,通常是对写入数据块进行简单分类,即区分热块和冷块。热块(频繁更新的块)寿命较短,而冷块(不频繁更新的块)寿命较长。因此,可以基于以往对io更新周期频率(也可以在频率的基础上和更新时间加权)的统计信息,判断io的热度。基于事先设定的冷热阈值,将热io以日志方式顺序写入到热区的segment;将冷io以日志方式顺序写入到冷区的segment。虽然热与冷的概念被广泛接受,但热与冷之间的界限是和工作负载相关的,并且通常会随着时间的推移而变化。现有方案可以较为有效地区分热数据,在热数据组中包含segment足够的情况下,waf可以接近理想值1。

21、但现有技术方案对于数据的冷热分类过于粗糙。对于被分类到冷区的数据块,因为它们可能具有不同更新周期,而将他们混在同一segment中,在gc期间需要从受害段拷贝出较多的有效块,故导致waf值较大。


技术实现思路

1、有鉴于此,本专利技术提供一种基于数据更新特征动态分组和垃圾回收的方法、装置和设备,用于解决存储系统写入放大因子waf较大的技术问题。

2、基于本专利技术实施例的一方面,本专利技术提供了一种基于数据更新特征动态分组和垃圾回收的方法,该方法应用于采用日志结构系统的存储系统中,该方法包括:

3、根据io写请求写入的逻辑数据块地址更新反映逻辑数据块更新频率特征的数据更新信息表;所述数据更新信息表中记录有每个逻辑数据块的最近n次的更新间隔值,所述更新间隔值为该逻辑数据块的当前io本文档来自技高网...

【技术保护点】

1.一种基于数据更新特征动态分组和垃圾回收的方法,其特征在于,该方法应用于采用日志结构系统的存储系统中,该方法包括:

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求1所述的方法,其特征在于,

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求3所述的方法,其特征在于,

6.一种基于数据更新特征动态分组和垃圾回收的装置,其特征在于,该装置应用于采用日志结构系统的存储系统中,该装置包括:

7.根据权利要求6所述的装置,其特征在于,

8.根据权利要求6所述的装置,其特征在于,所述动态分组模块包括:

9.根据权利要求8所述的装置,其特征在于,

10.一种电子设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;

【技术特征摘要】

1.一种基于数据更新特征动态分组和垃圾回收的方法,其特征在于,该方法应用于采用日志结构系统的存储系统中,该方法包括:

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求1所述的方法,其特征在于,

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求3所述的方法,其特征在于,

6.一种基于数据更新特征动态分组和垃圾回收的装置,其...

【专利技术属性】
技术研发人员:张天洁
申请(专利权)人:新华三信息技术有限公司
类型:发明
国别省市:

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

1