CN110413235A - 一种面向ssd去重的数据分配方法及系统 - Google Patents

一种面向ssd去重的数据分配方法及系统 Download PDF

Info

Publication number
CN110413235A
CN110413235A CN201910683628.9A CN201910683628A CN110413235A CN 110413235 A CN110413235 A CN 110413235A CN 201910683628 A CN201910683628 A CN 201910683628A CN 110413235 A CN110413235 A CN 110413235A
Authority
CN
China
Prior art keywords
ssd
parallel unit
duplicate removal
data
reading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910683628.9A
Other languages
English (en)
Other versions
CN110413235B (zh
Inventor
王芳
冯丹
胡燏翀
卢梦婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201910683628.9A priority Critical patent/CN110413235B/zh
Publication of CN110413235A publication Critical patent/CN110413235A/zh
Application granted granted Critical
Publication of CN110413235B publication Critical patent/CN110413235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种面向SSD去重的数据分配方法及系统,属于固态存储领域,包括:以有效的地址引用计数作为并行单元或SSD的读热度,预先建立一个读热度表,用于分别记录所述SSD以及其中各并行单元的读热度;按照如下步骤处理每一个写请求:若可以去重,则获得目标数据的重复数据所在物理页,从而得到得到写请求的逻辑地址lpn所映射到的物理地址ppn,若不可以去重,则在读热度小于平均读热度的并行单元中分配一个空闲的物理页并写入数据,从而得到得到写请求的逻辑地址lpn所映射到的物理地址ppn;根据所述写请求的类型和地址映射关系更新热度表以及映射表。本发明能够有效解决去重应用在SSD中带来的读性能下降的问题。

Description

一种面向SSD去重的数据分配方法及系统
技术领域
本发明属于固态存储领域,更具体地,涉及一种面向SSD去重的数据分配方法及系统。
背景技术
近年来,SSD(Solid State Disk,固态盘)由于其随机访问速度快,功耗低,健壮性强等特点逐步取代传统的HDD存储,并被广泛应用在当代各种存储系统中。尽管SSD有很多杰出的特性,但是由于底层的flash存储介质的擦写次数有限,SSD的使用寿命较短,这严重阻碍了SSD在可靠性敏感的产品系统中的大规模部署。
数据去重作为一种有效的空间节省技术,被广泛应用于备份系统和主存储系统。由于只保留一份重复数据的副本和对应的指纹,数据去重技术可以消除重复的写数据,从而减少写入flash存储设备的数据量,这些减少的数据写入量可以直接提升SSD的使用寿命。目前,面向SSD去重的研究大多数都是关注去重技术部署在SSD中所带来的地址映射和指纹管理等问题,而没有探究去重技术对flash存储数据物理布局和并行性的影响。
在去重的过程中,重复的写请求会被取消,其对应的逻辑地址会指向重复数据所在的物理单元,这会使得部分存储的数据有多个地址引用,从而产生高度去重的数据。由于当前的数据分配方式都是基于1-1映射(一个逻辑地址映射到唯一的物理地址)设计的,分配的并行单元某种程度上是随机分配的。这种分配的随机性使得高度去重的数据可能集中在小部分并行单元上,造成不均匀的读分布。在采用数据去重技术的SSD中,不均匀的读分布一方面会降低SSD的读并行性,从而直接降低SSD的读性能,另一方面会增加访问竞争,从而导致系统整体性能下降;在混合读写且访问密集的情况下,不均匀的读分布所带来的问题尤其突出。总的来说,去重应用在SSD中会使得读分布不均匀,导致读性能下降。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种面向SSD去重的数据分配方法及系统,旨在解决去重应用在SSD中带来的读性能下降的问题。
为实现上述目的,按照本发明的第一方面,提供了一种面向SSD去重的数据分配方法,包括:
以有效的地址引用计数作为并行单元或SSD的读热度,预先建立一个读热度表,用于分别记录SSD以及其中各并行单元的读热度;
按照如下步骤处理每一个写请求:
(1)判断写请求是否可以去重,若是,则转入步骤(2);若否,则根据SSD的读热度计算并行单元的平均读热度后,转入步骤(3);
(2)获得目标数据的重复数据所在的物理页,从而得到写请求的逻辑地址lpn所映射到的物理地址ppn,转入步骤(4);
(3)获得一个读热度小于平均读热度的并行单元作为分配单元,并在分配单元中为写请求分配一个空闲的物理页后写入目标数据,从而得到写请求的逻辑地址lpn所映射到的物理地址ppn;
(4)根据写请求的类型和地址映射关系更新热度表;
其中,目标数据为写请求的写入数据。
本发明所提供的面向SSD去重的数据分配方法,通过维护各并行单元的读热度,并筛选出其中读热度较低(低于平均读热度)的并行单元进行数据分配,由此能够保证各并行单元的读热度较为均衡,从而避免了高度去重的数据聚集在极小部分的并行单元上,使得读分布更均匀;由于本发明能够使得读分布更均匀,一方面可以降低请求之间的竞争,使得队列等待的时间缩短,提升了系统的整体性能,另一方面通过将高度去重的数据均匀分布在各个并行单元上,在对写请求分配空闲的物理页时,减少了逻辑上连续的写请求定向到相同的并行单元上的概率,提高了SSD内部的读并行性。总的来说,本发明能够有效解决去重应用在SSD中带来的读性能下降的问题。
进一步地,步骤(1)中,判断写请求是否可以去重,其方法包括:
对数写请求进行指纹计算,以得到目标数据的指纹f;
查找指纹表,若成功找到指纹f,则判定写请求可以去重;否则,判定写请求不能进行去重;
其中,SSD中的指纹表用于维护所有已写入flash存储的数据块的指纹以及对应的物理地址。
进一步地,步骤(3)还包括:
将目标数据写入新分配的物理页后,将目标数据的指纹f以及所分配的物理页的地址插入到指纹表中,以更新指纹表。
进一步地,进行指纹计算时,以4KB大小为计算单位,以获得尽可能大的去重率并降低复杂度。
进一步地,步骤(3)中,获得一个读热度小于平均读热度的并行单元作为分配单元,其方法包括:
(31)获得当前的轮询令牌T所对应的并行单元,并从读热度表中获得该并行单元的读热度,若小于平均读热度,则将该并行单元作为分配单元,并转入步骤(33);否则,转入步骤(32);
(32)设置轮询令牌为T=(T+1)mod N,以使得轮询令牌指向下一个被轮询的并行单元,转入步骤(31);
(33)设置轮询令牌为T=(T+1)mod N,以使得轮询令牌指向下一个被轮询的并行单元,操作结束;
其中,轮询令牌用于指示被轮询的并行单元,在系统启动的初始时刻,轮询令牌被初始化为0;N为SSD中的并行单元总数;mod表示取模运算。
本发明通过轮询的方式获取读热度较低(低于平均读热度)的并行单元,查询开销较小,并且有利于保证读分布的均匀性。
进一步地,步骤(4)包括:
根据写请求的逻辑地址lpn查找映射表,得到映射条目E;
从映射条目E中获得逻辑地址lpn的状态,若逻辑地址lpn是首次被写入,则获得物理地址ppn所在的并行单元c_new,将并行单元c_new和SSD的读热度均增加Δr;否则,获得写入目标数据前、后,逻辑地址lpn所映射到的物理地址所在的并行单元c_old和c_new,将并行单元c_old的读热度减少Δr,将并行单元c_new的读热度增加Δr;
其中,SSD中的映射表用于维护逻辑地址和物理地址的映射关系,以及逻辑地址的状态,Δr为读热度的更新步长。
进一步地,步骤(4)还包括:
将映射表中,逻辑地址lpn所在的映射条目的逻辑地址更新为物理地址ppn,并更新该条目中逻辑地址lpn的状态,以指示逻辑地址lpn已写入数据,从而实现对映射表的更新。
按照本发明的第二方面,提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中存储的可执行程序,执行本发明第一方面提供的面向SSD去重的数据分配方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的面向SSD去重的数据分配方法,通过维护各并行单元的读热度,并筛选出其中读热度较低的并行单元进行数据分配,由此能够保证各并行单元的读热度较为均衡,从而避免了高度去重的数据聚集在极小部分的并行单元上,使得读分布更均匀;由于本发明能够使得读分布更均匀,一方面可以降低请求之间的竞争,使得队列等待的时间缩短,提升了系统的整体性能,另一方面通过将高度去重的数据均匀分布在各个并行单元上,在对写请求分配空闲的物理页时,减少了逻辑上连续的写请求定向到相同的并行单元上的概率,提高了SSD内部的读并行性。总的来说,本发明能够有效解决去重应用在SSD中带来的读性能下降的问题。
(2)本发明所提供的面向SSD去重的数据分配方法,通过轮询的方式获取读热度较低的并行单元,查询开销较小,并且有利于保证读分布的均匀性。
附图说明
图1为现有的NAND型闪存芯片的结构示意图;
图2为本发明实施例提供的面向SSD去重的数据分配方法流程图;
图3为本发明实施例提供的系统架构及元数据示意图;
图4为本发明实施例提供的应用实例示意图;其中(a)为采用传统的动态分配方法进行数据分配的示意图;(b)为采用本发明所提供的面向SSD去重的数据分配方法进行数据分配的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对本发明所涉及的元数据信息进行简要介绍。在基于数据去重技术的SSD中,会在控制器的内部维护映射表和指纹表,其中,指纹表用于维护所有已写入flash存储的数据块的指纹以及对应的物理地址,映射表用于维护逻辑地址和物理地址的映射关系,以及逻辑地址的状态。
为了实现均匀的读分布,本发明所维护的元数据信息还包括热度表,读热度以有效的地址引用计数作为并行单元或SSD的读热度,分别记录SSD以及其中各并行单元的读热度。
图1所示为一个现有的NAND型闪存芯片的结构示意图,该闪存芯片由五个层次组成,由外向内依次为:芯片(chip)—晶圆(die)—分组(plane)—块(block)—页(page);其中,块是闪存中擦除操作的基本单元,页是闪存中读写操作的基本单元。在SSD中,通常以通道(channel)的形式组织闪存芯片,为了提高读写操作的并行性,SSD往往会支持不同粒度的并行操作,其中访问的最小并行单元为晶圆(die)。
为了解决去重应用在SSD中带来的读性能下降的问题,本发明所提供的面向SSD去重的数据分配方法,如图2所示,包括:
以有效的地址引用计数作为并行单元或SSD的读热度,预先建立一个读热度表,用于分别记录SSD以及其中各并行单元的读热度;在本发明中,并行单元可为chip、die或其他并行单元;
按照如下步骤处理每一个写请求:
(1)判断写请求是否可以去重,若是,则转入步骤(2);若否,则根据SSD的读热度计算并行单元的平均读热度后,转入步骤(3);
在一个可选的实施方式中,步骤(1)中,判断写请求是否可以去重,其方法包括:
对数写请求进行指纹计算,以得到目标数据的指纹f;
查找指纹表,若成功找到指纹f,则判定写请求可以去重;否则,判定写请求不能进行去重;
在实施例中,进行指纹计算时,以4KB大小为计算单位,以希望获得尽可能大的去重率,同时与flash存储最小的读写粒度相同,减少去重技术带来的复杂度;计算指纹的具体算法为SHA1的哈希算法,以减少指纹的冲突率;
应当理解的是,上述指纹计算方式仅为本发明的一个优选实施方式,不应理解为对本发明的唯一限定,在实际应用中,可根据具体的应用需求选择计算单位及算法;
(2)获得目标数据的重复数据所在的物理页,从而得到写请求的逻辑地址lpn所映射到的物理地址ppn,转入步骤(4);
(3)获得一个读热度小于平均读热度的并行单元作为分配单元,并在分配单元中为写请求分配一个空闲的物理页后写入目标数据,从而得到写请求的逻辑地址lpn所映射到的物理地址ppn;
在一个可选的实施方式中,步骤(3)中,获得一个读热度小于平均读热度的并行单元作为分配单元,其方法包括:
(31)获得当前的轮询令牌T所对应的并行单元,并从读热度表中获得该并行单元的读热度,若小于平均读热度,则将该并行单元作为分配单元,并转入步骤(33);否则,转入步骤(32);
(32)设置轮询令牌为T=(T+1)mod N,以使得轮询令牌指向下一个被轮询的并行单元,转入步骤(31);
(33)设置轮询令牌为T=(T+1)mod N,以使得轮询令牌指向下一个被轮询的并行单元,操作结束;
其中,轮询令牌用于指示被轮询的并行单元,在系统启动的初始时刻,轮询令牌被初始化为0;N为SSD中的并行单元总数;mod表示取模运算;
通过轮询的方式获取读热度较低(低于平均读热度)的并行单元,查询开销较小,并且有利于保证读分布的均匀性;
(4)根据写请求的类型和地址映射关系更新热度表;
在一个可选的实施方式中,步骤(4)具体包括:
根据写请求的逻辑地址lpn查找映射表,得到映射条目E;
从映射条目E中获得逻辑地址lpn的状态,若逻辑地址lpn是首次被写入,即该写请求是写入新数据的写请求,则获得物理地址ppn所在的并行单元c_new,将并行单元c_new和SSD的读热度均增加Δr;否则,即该写请求是对已写入的数据进行更新的写请求,获得写入目标数据前、后,逻辑地址lpn所映射到的物理地址所在的并行单元c_old和c_new,将并行单元c_old的读热度减少Δr,将并行单元c_new的读热度增加Δr;Δr为读热度的更新步长,为了便于计算,可设置Δr=1;
其中,目标数据为写请求的写入数据。
上述面向SSD去重的数据分配方法,通过维护各并行单元的读热度,并筛选出其中读热度较低(低于平均读热度)的并行单元进行数据分配,由此能够保证各并行单元的读热度较为均衡,从而避免了高度去重的数据聚集在极小部分的并行单元上,使得读分布更均匀;上述面向SSD去重的数据分配方法能够使得读分布更均匀,一方面可以降低请求之间的竞争,使得队列等待的时间缩短,提升了系统的整体性能,另一方面通过将高度去重的数据均匀分布在各个并行单元上,在对写请求分配空闲的物理页时,减少了逻辑上连续的写请求定向到相同的并行单元上的概率,提高了SSD内部的读并行性。总的来说,上述面向SSD去重的数据分配方法能够有效解决去重应用在SSD中带来的读性能下降的问题。
为了维护指纹表,上述面向SSD去重的数据分配方法中,步骤(3)还包括:
将目标数据写入新分配的物理页后,将目标数据的指纹f以及所分配的物理页的地址插入到指纹表中,以更新指纹表。
为了维护映射表,上述面向SSD去重的数据分配方法中,步骤(4)还包括:
将映射表中,逻辑地址lpn所在的映射条目的逻辑地址更新为物理地址ppn,并更新该条目中逻辑地址lpn的状态,以指示逻辑地址lpn已写入数据,从而实现对映射表的更新。
图3为上述面向SSD去重的数据分配方法在SSD内部控制器层实现的一种功能模块架构,主要包括去重模块和数据分配模块;去重模块主要是对新来的写请求进行去重尝试,采用SHA1的哈希算法,每4K的内容进行一次指纹计算;分配模块主要是对要写入flash存储的数据分配空闲的物理页,每次需要进行分配时,以轮询的方式选择一个读热度较低的并行单元。采用图3所示的模块架构处理写请求时,从内置缓存区移除的写请求进入去重模块之后进行去重尝试,如果发现该写请求的内容已经存在于flash存储设备里,则取消该请求;否则进入数据分配模块。
本发明还提供了一种系统,包括处理器和计算机可读存储介质,计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中存储的可执行程序,执行上述面向SSD去重的数据分配方法。
应用实例:
图4所示为本发明的一个应用实例,其中:
LPN={0,2,4,5,7,8,9,10,12,20,23,26,15,16,17,30}表示写请求的逻辑地址,请求的大小均是4K,Content={A,B,C,D,A,E,B,F,G,H,I,E,B,F,J,K}表示请求的内容。
如果一个写请求的内容已经存储在flash里了,该请求就是一个重复的写请求,是可以进行去重的。
传统的动态分配方法,不考虑并行单元的读热度,直接采用轮询的方式进行数据分配,采用传统的动态分配方法为上述写请求分配数据,相应的数据分布如图4(a)所示。
本发明所提供的面向SSD去重的数据分配方法,会选取读热度较低的并行单元(在本应用实例中,并行单元为Die)进行数据分配,采用本发明所提供的面向SSD去重的数据分配方法为上述写请求分配数据,具体过程为:
初始时,并行单元的轮询令牌初始化为0,即分配从第一个并行单元Chip0Die0开始分配,写请求LPN0、LPN2、LPN4、LPN5依次按顺序写入四个并行单元内,同时并行单元的读热度都变为1;当LPN7、LPN8、LPN9、LPN10到来时,LPN7可以被去重,因此被取消,同时Chip0Die0的读热度变为2;在为LPN8分配空闲的物理页时,传统的动态分配方法会分配并行单元Chip0Die0,而本发明所提供的面向SSD去重的数据分配方法会先判断当前并行单元的轮询令牌(Chip0Die0)的读热度,由于大于平均读热度,轮询令牌加1,指向Chip0Die1,并再次与平均读热度进行比较,满足不大于平均读热度,因此被分配给写请求LPN8;根据前述的操作,依次为后续的唯一数据块G,H,I,J,K分配相应的并行单元。
与传统的动态分配方法相比,本发明利用并行单元的读热度,避免高度去重的数据块聚集在小部分并行单元内,例如,采用传统的动态分配方法,高度去重的数据块B和F被存储到了同一并行单元内,而采用本发明所提供的面向SSD去重的数据分配方法,数据块B和F被存储到不同的并行单元内。当服务后续的逻辑上连续的读请求LPN7、LPN8、LPN9、LPN10时,传统的动态分配方法只能同时访问两个并行单元(Chip0Die0和Chip0Die1),本发明可以同时访问三个并行单元(Chip0Die0、Chip0Die1和Chip1Die0)。对于逻辑上连续的读请求LPN15、LPN16、LPN17,传统的动态分配方法使得该请求只能访问一个并行单元,而本发明所提出的基于读热度的分配策略可以同时访问三个并行单元。
总的来说,本发明基于并行单元的读热度进行数据分配,避免了高度去重的数据聚集在小部分并行单元内,提高了读并行性,同时降低了并行单元内部的访问竞争,从而使得SSD性能得以提升。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种面向SSD去重的数据分配方法,其特征在于,包括:
以有效的地址引用计数作为并行单元或SSD的读热度,预先建立一个读热度表,用于分别记录所述SSD以及其中各并行单元的读热度;
按照如下步骤处理每一个写请求:
(1)判断所述写请求是否可以去重,若是,则转入步骤(2);若否,则根据所述SSD的读热度计算并行单元的平均读热度后,转入步骤(3);
(2)获得目标数据的重复数据所在的物理页,从而得到所述写请求的逻辑地址lpn所映射到的物理地址ppn,转入步骤(4);
(3)获得一个读热度小于所述平均读热度的并行单元作为分配单元,并在所述分配单元中为所述写请求分配一个空闲的物理页后写入目标数据,从而得到所述写请求的逻辑地址lpn所映射到的物理地址ppn;
(4)根据所述写请求的类型和地址映射关系更新所述热度表;
其中,所述目标数据为所述写请求的写入数据。
2.如权利要求1所述的面向SSD去重的数据分配方法,其特征在于,所述步骤(1)中,判断所述写请求是否可以去重,其方法包括:
对所述写请求进行指纹计算,以得到所述目标数据的指纹f;
查找指纹表,若成功找到所述指纹f,则判定所述写请求可以去重;否则,判定所述写请求不能进行去重;
其中,SSD中的指纹表用于维护所有已写入flash存储的数据块的指纹以及对应的物理地址。
3.如权利要求2所述的面向SSD去重的数据分配方法,其特征在于,所述步骤(3)还包括:
将所述目标数据写入新分配的物理页后,将所述目标数据的指纹f以及所分配的物理页的地址插入到所述指纹表中,以更新所述指纹表。
4.如权利要求2所述的面向SSD去重的数据分配方法,其特征在于,进行指纹计算时,以4KB大小为计算单位。
5.如权利要求1所述的面向SSD去重的数据分配方法,其特征在于,所述步骤(3)中,获得一个读热度小于所述平均读热度的并行单元作为分配单元,其方法包括:
(31)获得当前的轮询令牌T所对应的并行单元,并从所述读热度表中获得该并行单元的读热度,若小于所述平均读热度,则将该并行单元作为所述分配单元,并转入步骤(33);否则,转入步骤(32);
(32)设置所述轮询令牌为T=(T+1)mod N,以使得所述轮询令牌指向下一个被轮询的并行单元,转入步骤(31);
(33)设置所述轮询令牌为T=(T+1)mod N,以使得所述轮询令牌指向下一个被轮询的并行单元,操作结束;
其中,所述轮询令牌用于指示被轮询的并行单元,在系统启动的初始时刻,所述轮询令牌被初始化为0;N为SSD中的并行单元总数;mod表示取模运算。
6.如权利要求1所述的面向SSD去重的数据分配方法,其特征在于,所述步骤(4)包括:
根据所述写请求的逻辑地址lpn查找映射表,得到映射条目E;
从所述映射条目E中获得所述逻辑地址lpn的状态,若所述逻辑地址lpn是首次被写入,则获得所述物理地址ppn所在的并行单元c_new,将所述并行单元c_new和所述SSD的读热度均增加Δr;否则,获得写入目标数据前、后,所述逻辑地址lpn所映射到的物理地址所在的并行单元c_old和c_new,将并行单元c_old的读热度减少Δr,将并行单元c_new的读热度增加Δr;
其中,SSD中的映射表用于维护逻辑地址和物理地址的映射关系,以及逻辑地址的状态,Δr为读热度的更新步长。
7.如权利要求6所述的面向SSD去重的数据分配方法,其特征在于,所述步骤(4)还包括:
将所述映射表中,所述逻辑地址lpn所在的映射条目的逻辑地址更新为所述物理地址ppn,并更新该条目中逻辑地址lpn的状态,以指示逻辑地址lpn已写入数据,从而更新所述映射表。
8.一种系统,包括处理器和计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储可执行程序;
所述处理器用于读取所述计算机可读存储介质中存储的所述可执行程序,执行权利要求1-7任一项所述的面向SSD去重的数据分配方法。
CN201910683628.9A 2019-07-26 2019-07-26 一种面向ssd去重的数据分配方法及系统 Active CN110413235B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910683628.9A CN110413235B (zh) 2019-07-26 2019-07-26 一种面向ssd去重的数据分配方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910683628.9A CN110413235B (zh) 2019-07-26 2019-07-26 一种面向ssd去重的数据分配方法及系统

Publications (2)

Publication Number Publication Date
CN110413235A true CN110413235A (zh) 2019-11-05
CN110413235B CN110413235B (zh) 2020-07-24

Family

ID=68363448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910683628.9A Active CN110413235B (zh) 2019-07-26 2019-07-26 一种面向ssd去重的数据分配方法及系统

Country Status (1)

Country Link
CN (1) CN110413235B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111443874A (zh) * 2020-03-28 2020-07-24 华中科技大学 基于内容感知的固态盘内存缓存管理方法、设备及固态盘

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068757A (zh) * 2015-07-23 2015-11-18 浙江大学 一种基于文件语义和系统实时状态的冗余数据去重方法
CN106293525A (zh) * 2016-08-05 2017-01-04 上海交通大学 一种提高缓存使用效率的方法及系统
CN106406759A (zh) * 2016-09-13 2017-02-15 郑州云海信息技术有限公司 一种数据存储方法及装置
CN107168652A (zh) * 2017-05-19 2017-09-15 郑州云海信息技术有限公司 一种提升SSD Cache读性能的方法
US20180046381A1 (en) * 2016-08-09 2018-02-15 International Business Machines Corporation Hybrid compressed media in a tiered storage environment
CN109144417A (zh) * 2018-08-16 2019-01-04 广州杰赛科技股份有限公司 一种云存储方法、系统和设备
CN109324979A (zh) * 2018-08-20 2019-02-12 华中科技大学 3d闪存固态盘系统的数据缓存划分方法及数据分配方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068757A (zh) * 2015-07-23 2015-11-18 浙江大学 一种基于文件语义和系统实时状态的冗余数据去重方法
CN106293525A (zh) * 2016-08-05 2017-01-04 上海交通大学 一种提高缓存使用效率的方法及系统
US20180046381A1 (en) * 2016-08-09 2018-02-15 International Business Machines Corporation Hybrid compressed media in a tiered storage environment
CN106406759A (zh) * 2016-09-13 2017-02-15 郑州云海信息技术有限公司 一种数据存储方法及装置
CN107168652A (zh) * 2017-05-19 2017-09-15 郑州云海信息技术有限公司 一种提升SSD Cache读性能的方法
CN109144417A (zh) * 2018-08-16 2019-01-04 广州杰赛科技股份有限公司 一种云存储方法、系统和设备
CN109324979A (zh) * 2018-08-20 2019-02-12 华中科技大学 3d闪存固态盘系统的数据缓存划分方法及数据分配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BIN LIN, SHANSHAN LI, XIANGKE LIAO, JING ZHANG: "ReDedup: Data Reallocation for Reading Performance Optimization in", 《INTERNATIONAL CONFERENCE ON ADVANCED CLOUD AND BIG DATA (CBD)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111443874A (zh) * 2020-03-28 2020-07-24 华中科技大学 基于内容感知的固态盘内存缓存管理方法、设备及固态盘
CN111443874B (zh) * 2020-03-28 2021-07-27 华中科技大学 基于内容感知的固态盘内存缓存管理方法、设备及固态盘

Also Published As

Publication number Publication date
CN110413235B (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
CN104115134B (zh) 用于管理对复合数据存储设备进行访问的方法和系统
US8909887B1 (en) Selective defragmentation based on IO hot spots
US10169232B2 (en) Associative and atomic write-back caching system and method for storage subsystem
CN103186350B (zh) 混合存储系统及热点数据块的迁移方法
US10572171B2 (en) Storage system
CN109240938A (zh) 存储系统以及控制非易失性存储器的控制方法
CN107544756B (zh) 基于SCM的Key-Value日志型本地存储方法
CN103558992A (zh) 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统
US20180107601A1 (en) Cache architecture and algorithms for hybrid object storage devices
US11093410B2 (en) Cache management method, storage system and computer program product
US12099736B2 (en) Scalable architecture enabling large memory system for in-memory computations
CN103593477A (zh) 一种哈希数据库的配置方法和装置
KR102505036B1 (ko) 임베디드 참조 카운터 및 특별 데이터 패턴 자동 감지
CN110968269A (zh) 基于scm与ssd的键值存储系统及读写请求处理方法
CN111443874B (zh) 基于内容感知的固态盘内存缓存管理方法、设备及固态盘
CA2415018C (en) Adaptive parallel data clustering when loading a data structure containing data clustered along one or more dimensions
CN110413235A (zh) 一种面向ssd去重的数据分配方法及系统
CN106775450B (zh) 一种混合存储系统中的数据分布方法
CN111309261A (zh) 一种分布式存储系统中单节点上数据物理位置映射方法
US10169250B2 (en) Method and apparatus method and apparatus for controlling access to a hash-based disk
CN116880776B (zh) 一种存储数据的数据处理系统
CN111190543B (zh) 一种线程间共享nvdimm存储资源的存储方法及系统
US11874767B2 (en) Memory partitions for processing entities
US10860233B2 (en) Half-match deduplication
US20190095340A1 (en) Discontiguous storage and contiguous retrieval of logically partitioned data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant