CN108089817A - 存储系统及其操作方法和操作数据处理系统的方法 - Google Patents

存储系统及其操作方法和操作数据处理系统的方法 Download PDF

Info

Publication number
CN108089817A
CN108089817A CN201711180803.XA CN201711180803A CN108089817A CN 108089817 A CN108089817 A CN 108089817A CN 201711180803 A CN201711180803 A CN 201711180803A CN 108089817 A CN108089817 A CN 108089817A
Authority
CN
China
Prior art keywords
data
index
host
storage system
storage
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
CN201711180803.XA
Other languages
English (en)
Other versions
CN108089817B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020170031808A external-priority patent/KR102306672B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN108089817A publication Critical patent/CN108089817A/zh
Application granted granted Critical
Publication of CN108089817B publication Critical patent/CN108089817B/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0608Saving storage space on 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • 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]
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

提供了一种执行数据去重的存储系统、操作存储系统的方法和操作数据处理系统的方法。存储系统包括:存储装置,其构造为存储从主机接收的数据;和控制器,其构造为从主机接收数据和索引,索引与从主机接收的数据关联。控制器包括:存储器,其构造为存储映射信息和参考计数,映射信息将从主机接收的索引与存储系统的物理地址关联,参考计数与从主机接收的索引关联。控制器构造为通过从存储器读取映射信息和参考计数来确定从主机接收的数据是否对应于先前存储在存储装置中的数据的副本,所述读取操作基于从主机接收到的索引。控制器构造为通过在从主机接收的数据对应于先前存储在存储装置中的数据的副本的情况下更新参考计数来执行去重处理。

Description

存储系统及其操作方法和操作数据处理系统的方法
相关申请的交叉引用
本申请要求于2016年11月23日在USPTO提交的美国临时申请No.62/425,686以及于2017年3月14日在韩国知识产权局提交的韩国专利申请No.10-2017-0031808的优先权,它们各自的公开通过引用方式全文并入本文中。
技术领域
本发明构思涉及一种存储系统,更具体地说,涉及一种执行数据去重的存储系统、操作存储系统的方法和操作数据处理系统的方法。
背景技术
数据去重技术确定将被存储在存储系统中的数据是否已经存储在存储系统中了。当数据去重技术确定所述数据已经存储时,不将数据重复地存储在存储系统中,并且仅管理指向已经存储的数据的链接,因此,可有效地利用存储空间。由于去重技术可提高存储系统的使用效率,因此用于大量数据的存储系统需要去重技术。
然而,为了使用去重技术,需要管理诸如数据(或哈希索引)和与其对应的数据存储位置(例如,逻辑/物理地址)的各种信息,因此,会出现用于管理用于去重的信息的资源增加的问题。
发明内容
本发明构思提供了一种用于减轻管理涉及去重的信息的负担的存储系统。
本发明构思提供了一种操作存储系统的方法。
本发明构思还提供了一种操作数据处理系统的方法。
根据本发明构思的示例实施例,提供了一种存储系统,包括:
存储装置,其构造为存储从主机接收到的数据;以及控制器,其构造为从主机接收数据和索引,所述索引与从主机接收到的数据关联。所述控制器包括:存储器,其构造为存储映射信息和参考计数,所述映射信息将从主机接收到的索引与存储系统的物理地址关联,所述参考计数与从主机接收到的索引关联。控制器构造为通过从存储器读取映射信息和参考计数来确定从主机接收到的数据是否对应于先前存储在存储装置中的数据的副本,所述读取操作基于从主机接收到的索引。
所述控制器构造为通过在从主机接收到的数据对应于先前存储在存储装置中的数据的副本的情况下更新参考计数来执行去重处理。
根据本发明构思的示例实施例,提供了一种操作存储系统的方法,所述方法包括步骤:从主机接收第一数据和第一索引,第一索引与第一数据关联;确定所述第一索引是否与对应于先前存储在存储系统中的数据的索引相同;响应于确定所述第一索引与对应于先前存储在存储系统中的数据的索引相同,通过更新参考计数而不写所述第一数据执行数据去重,参考计数先前存储在存储系统中;以及将更新的参考计数提供至主机。
根据本发明构思的示例实施例,提供了一种操作包括存储系统的数据处理系统的方法,所述方法包括步骤:将映射信息存储在存储系统中,映射信息包括利用来自外部系统的数据产生的索引与指示数据的存储位置的物理地址之间的映射;在存储系统中接收包括额外数据和对应于所述额外数据的索引的写请求;在存储系统中确定所述额外数据是否对应于已经存储在存储系统中的数据的副本;以及在所述额外数据对应于已经存储在存储系统中的数据的副本的情况下,通过更新存储在存储系统中的参考计数执行去重处理。
附图说明
通过以下结合附图的详细描述将更清楚地理解本发明构思的实施例,其中:
图1是根据本发明构思的实施例的数据处理系统的框图;
图2和图3是示出数据处理系统的具体实施的框图;
图4是示出通过根据本发明构思的实施例的数据处理系统的主机执行的功能的框图;
图5是根据本发明构思的实施例的存储系统的框图;
图6是示出存储在图5的工作存储器中的各种模块的示例的框图;
图7A和图7B是示出根据本发明构思的实施例的在主机和存储系统中管理的信息的示例的示图;
图8是示出根据本发明构思的实施例的数据处理系统的数据读写操作的示例的框图;
图9是示出根据本发明构思的实施例的操作主机的方法的流程图;
图10是示出根据本发明构思的实施例的操作存储系统的方法的流程图;
图11至图18是示出根据本发明构思的实施例的数据处理系统中的主机与存储系统之间的通信的示例的示图;以及
图19是包括根据本发明构思的实施例的服务器系统的网络系统的框图。
具体实施方式
下文中,将参照附图详细描述本发明构思的实施例。
图1是根据本发明构思的实施例的数据处理系统10的框图。
参照图1,数据处理系统10可包括主机100和存储系统200。存储系统200可包括控制器210和存储装置220。根据本发明构思的实施例,主机100可包括索引产生器110,并且存储系统200的控制器210可包括索引表211。在图1的示例中,索引表211示为提供在控制器210中。然而,本发明构思的实施例不限于此。例如,索引表211可存储在存储系统200中的控制器210以外的存储器中。
数据处理系统10可包括存储介质,其用于基于外部系统(例如,计算节点)的请求存储数据。作为示例,存储系统200可包括一个或多个固态盘(SSD)。当存储系统200包括SSD时,存储系统200可包括基于非易失性方案存储数据的多个闪速存储器芯片(例如,NAND存储器芯片)。存储系统200可包括一个闪速存储器装置。存储系统200可包括具有一个或多个闪速存储器芯片的存储卡。
当存储系统200包括闪速存储器时,闪速存储器可包括二维(2D)NAND存储器阵列或三维(3D)或竖直NAND存储器阵列。3D存储器阵列按照单片方式形成在在硅衬底上或中形成的电路的至少一个物理层级中,作为涉及包括具有布置在硅衬底上的有源区的存储器单元的阵列的操作的电路,或者作为涉及存储器单元的操作的电路。术语“按照单片方式”意指所述阵列的各个层级的层直接堆叠在所述阵列的各个下一层级的层上。
在根据本发明构思的示例实施例中,3D存储器阵列包括在竖直方向上排列的竖直NAND串,以使得至少一个存储器单元位于另一存储器单元上方。所述至少一个存储器单元可包括电荷俘获层。
美国专利No.7,679,133、No.8,553,466、No.8,654,587和No.8,559,235以及美国专利申请公开No.2011/0233648公开了包括多个层级和在所述层级之间共享的字线和/或位线的3D存储器阵列,并且它们通过在本说明书中引用全文被包含于此。
作为另一示例,存储系统200可包括其它各种类型的存储器。例如,存储系统200可包括非易失性存储器,诸如磁性RAM(MRAM)、自旋转移矩MRAM、导电桥RAM(CBRAM)、铁电RAM(FeRAM)、相位RAM(PRAM)、电阻式RAM、纳米管RAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子存储器和/或绝缘体电阻改变存储器。
主机100可在数据处理系统10中执行数据的管理操作。作为示例,主机100可向存储系统200提供数据写请求或数据读请求。另外,响应于来自主机100的数据擦除请求,存储系统200可对主机100指示的区域的数据执行擦除操作。
主机100可通过各种接口与存储系统200通信。主机100可包括能够针对存储系统200执行数据访问的各种类型的装置。例如,主机100可为或者可包括与基于闪速存储器的存储系统200通信的应用处理器(AP)。根据示例实施例,主机100可经各种接口与存储系统200通信,诸如通用串行总线(USB)、多媒体卡(MMC)、快速PCI(PCI-E)、AT附件(ATA)、串行AT附件(SATA)、并行AT附件(PATA)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、增强型小型磁盘接口(ESDI)和集成驱动电子器件(IDE)。
根据示例实施例,数据处理系统10可使用数据去重技术。在使用去重技术的情况下,当请求写入的数据是已经存储在存储系统200中的数据的副本(或者与该数据相同)时,可通过仅管理针对已经存储的数据的链接而非重复存储所述请求写入的数据来完成针对写请求的处理。因此,可更有效地使用存储系统200的存储空间。
可管理存储系统200中的索引表211,以确定请求写入的数据是否是重复数据。根据实施例,主机100的索引产生器110可产生对应于请求写入的数据的索引Index,并且将索引Index提供至存储系统200。索引Index可具有用于识别数据Data的信息,并且作为示例,可产生针对各个数据具有唯一值的索引并且将该索引提供至存储系统200。
索引产生器110可按照各种方式实施。例如,索引产生器110可包括通过硬件实施的运算电路。作为替代或者另外地,索引产生器110可通过执行算法功能的软件实施。根据实施例,索引产生器110可对应于哈希引擎,其通过利用针对数据Data的哈希函数的操作来计算哈希值作为索引。当索引产生器110对应于哈希引擎时,索引产生器110可通过利用各种哈希算法计算哈希值,诸如GOST、HAVAL、MD2、MD4、MD5、PANAMA、RadioGatun、RIPEMD、RIPEMD-128/256、RIPEMD-160、RIPEMD-320、SHA-0、SHA-1、SHA-256/224、SHA-512/384、SHA-3、和/或WHIRLPOOL。
基于数据写请求,存储系统200可接收数据Data并接收通过数据Data产生的索引Index来作为用于识别数据Data的信息。在数据写操作中,存储系统200的控制器210可将索引Index与物理地址(例如,物理块地址PBA)映射,并且将数据Data存储在对应于映射的物理地址PBA的位置。可在索引表211中存储和管理索引Index与物理地址PBA之间的映射信息。
根据示例实施例,主机100可向存储系统200提供数据Data和与其对应的索引Index作为用于写数据的信息,而不用运行或连接文件系统,该文件系统连接用于基于逐文件(file-by-file)的方式管理数据或者用于产生针对存储系统200的逻辑地址。另外,当存储系统200包括闪速存储器时,控制器210可包括闪存转换层(FTL),以提供主机100与存储装置220之间的接口,并且可通过经由FTL的地址映射操作执行索引Index与物理地址PBA之间的映射。
下面将描述关于根据本发明构思的实施例的数据去重的操作示例。
由于外部系统请求写数据,主机100可从外部系统接收数据Data和与其对应的逻辑地址(未示出)。另外,可在主机100中存储通过索引产生器110产生的索引Index。作为示例,主机100可包括存储器(未示出),并且索引Index可与接收到的逻辑地址对齐(align)并且作为树结构存储在存储器中。
存储系统200可从主机100接收数据Data和索引Index,可通过利用索引Index确定数据Data是否是重复的,并且根据确定结果执行去重处理。作为示例,存储系统200可将从主机100接收到的索引Index与对应于先前存储在存储系统200中的数据的索引进行比较,并且可根据比较结果确定数据Data是否是重复的。
为了利用索引确定是否存在重复数据,当在索引表211中存储先前接收到的索引时,可以通过接收到的索引与存储在索引表211中的索引之间的比较操作确定数据是否可能是重复的。当索引表211中不存在与接收到的索引相同的索引时,存储系统200可将数据Data存储在通过新映射至接收到的索引Index的物理地址PBA指示的位置。然而,当索引表211中存在与接收到的索引相同的索引时,存储系统200可确定接收到的数据Data是重复数据,并且可通过不将接收到的数据Data存储在存储装置220中来执行去重处理。
由于执行了基于去重的写数据,可从外部系统通过多个逻辑地址查阅(或访问)先前存储在存储系统200中的数据。根据示例实施例,存储系统200还可存储计数信息(例如,参考计数),以管理先前存储的数据的查阅次数。例如,可在索引表211中存储和管理参考计数。根据实施例,当主机100请求写入的数据Data对应于重复数据时,存储系统200可对参考计数执行更新操作,并且为主机100提供更新的参考计数以及指示已执行去重处理的信息。
在示例实施例中,物理地址PBA和参考计数可与索引表211中的索引Index对齐并且存储在索引表211中。根据实施例,索引Index的实际信息可不存储在索引表211中。可按照各种方式执行上述对重复数据的确定。例如,可通过检查与接收到的索引Index对齐的存储的信息(例如,物理地址和/或参考计数)来确定是否存在重复数据。
根据上述实施例,主机100可将通过处理数据Data产生的索引Index直接提供至存储系统200作为用于写/读数据Data的信息,因此,可减少用于数据去重的管理的信息量,并且可减少主机100中的用于存储信息的存储器空间。例如,在常规情况下,主机100通过文件系统等的操作分离地管理索引与文件ID(或者存储系统200的逻辑块地址)之间的映射信息。然而,根据本发明构思的实施例,主机100可处理数据去重,而不用运行文件系统或者根据运行的结果存储和管理信息。
图2和图3是示出数据处理系统300A和300B的具体实施的框图。在下面的实施例中,假设上述索引产生器对应于用于产生哈希值的哈希引擎,并且索引是哈希索引。另外,数据处理系统300A可压缩来自外部的数据并且可存储压缩的数据。然而,本发明构思的实施例不限于此。
参照图2,数据处理系统300A可包括主机310A和存储系统320A,并且可从外部系统(例如,外部计算节点)接收数据Data和对应的逻辑地址LBA。假设先前已从外部系统提供了第一逻辑地址LBA 1至第三逻辑地址LBA 3和与其对应的数据Data,第一逻辑地址LBA 1至第三逻辑地址LBA 3与第一哈希索引Hash Index 1至第三哈希索引Hash Index 3之间的映射信息可存储在主机310A中,并且可在存储系统320A中存储第一哈希索引Hash Index 1至第三哈希索引Hash Index 3与第一物理地址PBA 1至第三物理地址PBA 3之间的映射信息。另外,可从外部系统提供第四逻辑地址LBA 4和与其对应的数据Data,并且可从数据Data产生第四哈希索引Hash Index 4。
主机310A可包括作为索引产生器的哈希引擎311A,并且还可包括存储产生的哈希索引的存储器312A。哈希引擎311A可响应于具有特定(或者,作为替代,预定)大小的数据Data产生具有多个比特的哈希索引。可不同地限定数据Data的大小和哈希索引的大小。例如,可从4kB数据Data中产生128比特的哈希索引。
根据实施例,第一哈希索引Hash Index 1至第三哈希索引Hash Index 3可与第一逻辑地址LBA 1至第三逻辑地址LBA 3对齐,并且存储在存储器312A中。当从外部系统接收到用于写数据或读数据的逻辑地址LBA时,可从存储器312A读出对应于逻辑地址LBA的先前存储的哈希索引。
另外,存储系统320A可包括存储器321A和压缩数据Data的压缩器322A。作为示例,存储系统320A可产生对应于接收到的哈希索引的物理地址PBA,并且存储器321A可将哈希索引与物理地址PBA之间的映射信息作为表存储。作为示例,第一哈希索引Hash Index 1至第三哈希索引Hash Index 3和第一物理地址PBA 1至第三物理地址PBA 3可一起存储在存储器321A中。另外或者作为替代,第一物理地址PBA 1至第三物理地址PBA 3可与第一哈希索引Hash Index 1至第三哈希索引Hash Index 3对齐,并且存储在存储器321A中。在这种情况下,第一哈希索引Hash Index 1至第三哈希索引Hash Index 3实际上可不存储在存储器321A中。
根据示例实施例,存储器321A还可存储对应于哈希索引的参考计数。例如,存储器321A还可存储对应于第一哈希索引Hash Index 1至第三哈希索引Hash Index 3的参考计数Ref CNT 1至Ref CNT 3。例如,在本发明构思的实施例中,可在存储系统320A中管理参考计数Ref CNT 1至Ref CNT 3。
下面将描述数据去重操作的示例。
主机310A可接收第四逻辑地址LBA 4和与其对应的数据Data,并且哈希引擎311A可从数据Data中产生第四哈希索引Hash Index 4。可在存储器312A中存储产生的第四哈希索引Hash Index 4与第四逻辑地址LBA 4之间的映射信息。另外,主机310A可在将数据写请求提供至存储系统320A的过程中将第四哈希索引Hash Index 4和对应的数据Data提供至存储系统320A。
存储系统320A可利用第四哈希索引Hash Index 4确定是否存在重复数据。例如,存储系统320A可确定对应于先前存储的数据的第一哈希索引Hash Index 1至第三哈希索引Hash Index 3中的任一个是否与第四哈希索引Hash Index 4相同。如果存储系统320A确定在存储器321A中不存在与第四哈希索引Hash Index 4相同的哈希索引,则存储系统320A可将第四哈希索引Hash Index 4映射至第四物理地址PBA 4,并且将数据Data存储在由第四物理地址PBA 4指示的位置。另外,可在存储器321A中存储第四哈希索引Hash Index 4与第四物理地址PBA 4之间的映射信息。
然而,如果第四哈希索引Hash Index 4与任一个哈希索引(例如,第一哈希索引Hash Index 1)相同,则可通过去重处理跳过数据Data的重复存储,并且可通过第四逻辑地址LBA 4查阅对应于第一哈希索引Hash Index 1的数据。根据实施例,当执行去重处理时,可更新对应于第一哈希索引Hash Index 1的第一参考计数Ref CNT 1的值,并且作为示例,第一参考计数Ref CNT 1的值可增大一。另外,根据实施例,可从存储系统320A将更新后的第一参考计数Ref CNT 1与指示已执行去重处理的信息一起提供至主机310A。
图3示出用于压缩数据Data的压缩器设置在主机中的示例。如图3所示,数据处理系统300B可包括主机310B和存储系统320B。主机310B可包括哈希引擎311B、存储器312B和压缩器313B。另外,存储系统320B可包括存储哈希索引与物理地址之间的映射信息的存储器321B。图3所示的数据处理系统300B也可按照与上述实施例中的相同的方式执行数据去重。例如,存储系统320B可使用从主机310B提供的哈希索引来确定是否存在重复数据,并且可根据确定结果执行数据去重。
根据上述实施例的用于存储各种映射信息的存储器可包括各种类型的存储器或者通过各种类型的存储器来实现,例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、晶闸管RAM(T-RAM)、零电容RAM(Z-RAM)和/或双晶体管RAM(TTRAM)。
图4是示出通过根据本发明构思的示例实施例的数据处理系统400的主机执行的功能的框图。
参照图4,数据处理系统400可包括主机410和存储系统420,并且主机410可包括由硬件和/或软件实施的各种模块。例如,主机410可包括远程程序调用(RPC)模块411、块服务模块412、去重管理模块413和/或压缩模块414。
RPC模块411可与另一系统或者另一服务器执行通信。例如,RPC模块411可执行调用用于数据发送/接收的另一服务器的功能。块服务模块412可以执行用于以块为基础的处理数据管理的功能。去重管理模块413可设为在主机410中执行用于数据去重的一部分功能。例如,去重管理模块413可包括利用数据产生哈希索引的哈希引擎。去重管理模块413还可包括用于存储来自外部系统的逻辑地址与哈希索引之间的映射信息的存储器。压缩模块414可压缩数据,并且将压缩的数据提供至存储系统420。
根据本发明构思的示例实施例,可将哈希索引直接提供至存储系统420,作为与存储和读数据相关的信息。因此,主机410不需要运行用于以文件为基础管理数据的文件系统或者用于管理数据的块层,所述块层的大小根据对应于逻辑块的大小通过压缩而变化。例如,可减少结合数据去重所需的主机410的存储器资源,并且由于可不运行文件系统和/或块层的至少一些功能,因此可提高系统性能。
图5是根据本发明构思的实施例的存储系统500的框图。存储系统500可包括控制器和存储装置,并且图5所示的构造对应于控制器的实施例。
参照图5,存储系统500可包括作为处理器的中央处理单元510、主机接口520、存储器接口530和工作存储器540。根据示例实施例,存储系统500还可包括哈希引擎550。工作存储器540可存储索引表541,并且在修改的实施例中,存储系统500中的另一存储器可存储索引表541。
中央处理单元510可通过运行机器可读指令控制存储系统500的全部操作,所述机器可读指令包括存储在工作存储器540中的各种程序。可在工作存储器540中加载除存储系统500的功能之外包括关于数据去重的各种程序的软件。工作存储器540可通过随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器或其他存储器实施或者可包括它们。
根据上述实施例,主机可为来自外部系统的数据产生哈希索引,并且可将该哈希索引提供至存储系统500。存储系统500还可包括哈希引擎550。根据实施例,哈希引擎550还可对从主机提供的哈希索引和/或数据执行哈希操作。例如,由于存储系统500进一步设有哈希引擎550,存储在存储系统500中的信息量可减少。
将参照图5和图6描述本发明构思的更多特定构造和操作。图6是示出各种模块的示例的框图。模块可包括硬件或存储在图5的工作存储器540中的软件。当存储系统500包括闪速存储器时,可将图6所示的各种模块限定为包括在FTL中的那些。
可在工作存储器540中存储上述索引表541,并且还可在工作存储器540中存储通过中央处理单元510的操作执行各种功能的模块。作为示例,在工作存储器540中还可存储地址转换模块542、去重控制模块543和数据管理模块544。
地址转换模块542将从主机提供的哈希索引转换为物理地址。作为示例,可在索引表541中存储哈希索引与物理地址之间的映射信息。如在上述示例中,索引表541可按照与哈希索引对齐的形式存储物理地址,并且可从索引表541中读取对应于主机提供的哈希索引的物理地址。
去重控制模块543可执行用于防止以冗余方式存储数据的各种功能。例如,去重控制模块543可检查主机提供的哈希索引和存储在索引表541中的信息,以确定请求写入的数据是否对应于重复数据。去重控制模块543还可执行用于将参考计数信息存储在索引表541中的操作和管理参考计数信息的操作。例如,当存在与来自主机的哈希索引相同的哈希索引时,可更新(例如,可增大)对应于相同的索引的参考计数值。
数据管理模块544可执行各种数据管理操作。例如,数据管理模块544可在闪速存储器中执行数据管理操作。根据实施例,数据管理模块544可利用关于数据去重的信息执行数据管理操作。例如,可根据存储在索引表541中的参考计数的值调整数据管理操作。例如,可基于参考计数的值执行诸如数据移动、备份和垃圾收集的各种管理操作。
在图5和图6的实施例中,示出了通过软件执行根据本发明构思的实施例的去重处理的示例。然而,本发明构思的实施例不限于此。作为示例,用于去重处理的至少一些功能可通过硬件或者硬件和软件的组合来实施。
图7A和图7B是示出根据本发明构思的实施例的在主机和存储系统中管理的信息的示例的示图。根据本发明构思的实施例,图7A示出了在主机方确定数据重复的一般情况,图7B示出了在存储系统方确定数据重复的示例。
参照图7A,主机可从外部系统接收逻辑地址LBA 1至LBA 3和对应的数据,并且为数据产生索引(例如,哈希索引Hash Index 1至Hash Index 3)。另外,可在存储器中存储和管理逻辑地址LBA 1至LBA 3与哈希索引Hash Index 1至Hash Index 3之间的映射信息。
另外,主机可操作文件系统以访问存储系统。在执行去重之后,主机可在存储器中存储哈希索引Hash Index 1至Hash Index 3和与其对应的文件信息(例如,文件标识FileID 1至File ID 3)。另外,还可存储对应于哈希索引Hash Index 1至Hash Index 3和文件信息File ID 1至File ID 3的参考计数Ref CNT 1至Ref CNT 3。另外,主机可将针对存储系统的逻辑地址LBA S1至LBA S3经文件系统提供至存储系统,并且存储系统可存储逻辑地址LBA S1至LBA S3与物理地址PBA 1至PBA 3之间的映射信息。也就是说,主机可通过执行双表管理来执行数据去重,因此,存储器的使用量会增加,并且信息检索时间会增加。
作为替代,如图7B所示,根据本发明构思的实施例,主机可仅管理来自外部系统的逻辑地址LBA 1至LBA 3和与其对应的哈希索引Hash Index 1至Hash Index 3之间的映射信息。因此,主机不需要重复地管理一张表,并且可减轻主机方处理信息的负担。
主机可将哈希索引Hash Index 1至Hash Index 3提供至存储系统,并且存储系统可存储并管理哈希索引Hash Index 1至Hash Index 3与物理地址PBA 1至PBA 3之间的映射信息。存储系统还可存储对应于哈希索引Hash Index 1至Hash Index 3和物理地址PBA1至PBA 3的参考计数Ref CNT 1至Ref CNT 3。
图8是示出根据本发明构思的实施例的数据处理系统600的数据读写操作的示例的框图。在图8所示的实施例中,存储系统620是包括NAND存储器的SSD,并且示出了键-值SSD。
根据实施例的数据处理系统600可包括多个存储系统。存储系统中的一个或多个可构造为键-值存储,并且数据处理系统600可按照将实际数据存储在另一存储系统中的方式操作。例如,可由具有低计算能力的低性能节点和SSD构造键-值存储,并且外部客户可访问键-值存储,以请求存储和读数据。在这种情况下,作为存储系统之一的存储系统620可接收键作为上述实施例中的索引,并且还可接收值作为数据。另外,与上述实施例相似,可通过对于从外部系统提供的数据的哈希操作产生键。
参照图8,数据处理系统600可包括主机610和存储系统620。根据上述实施例,存储系统620可存储并管理键Key作为索引,并且通过利用存储的键执行数据去重。
主机610可接收数据写请求和/或数据读请求。作为写操作的示例,可通过对数据User Data的哈希操作产生键Key,并且可通过对数据User Data的压缩处理产生对应于压缩的数据的值Value。另外,可通过键和值接口命令处理产生写请求Put(Key,Value)和读请求Get(Key),并且可通过SSD装置驱动器将产生的请求Put(Key,Value)和Get(Key)提供至存储系统620。
存储系统620可利用接收到的键Key和接收到的值Value执行基于去重的写/读操作。例如,存储系统620可通过参照接收到的键Key和存储在索引表中的信息确定数据是否是重复的。例如,假设确定接收到的键Key是否与先前存储的键相同,当不存在相同的键时,存储系统620可在索引表中额外存储接收到的键Key同与其对应的物理地址PBA之间的映射信息,并且可将值Value存储在NAND存储器中的通过物理地址PBA指示的位置。作为存储的示例,接收到的键Key、值Value和与其对应的元数据Meta data可一起存储在NAND存储器的一页中。
根据示例实施例,还可将参考计数存储在索引表中。当存在相同的键时,可通过更新对应于相同的键的参考计数完成数据写操作,而不用在NAND存储器中重复地存储键Key和值Value。根据实施例,还可相对于键Key和值Value在存储系统620中执行哈希操作处理,并且可进一步减小存储在存储系统620中的键Key和值Value的大小。
作为读操作的示例,主机610可通过哈希引擎产生对应于数据User Data的键Key,并且将产生的键Key提供至存储系统620,作为用于读取数据的信息。作为示例,可经SSD装置驱动器将利用键Key的读请求Get(Key)提供至存储系统620。
存储系统620可接收针对对应于键Key的数据User Data的读请求Get(Key),通过索引表确定映射至键Key的物理地址PBA,并且从由物理地址PBA指示的位置读取数据。根据实施例,可读取对应于存储在NAND存储器中的信息中的数据的值Value,并且将其提供至主机610,并且主机610可通过对值Value进行解压来恢复数据User Data。
图9是示出根据本发明构思的实施例的操作主机的方法的流程图。
参照图9,主机接收作为外部系统方的地址的逻辑地址LBA和对应于逻辑地址LBA的数据Data(操作S11)。主机可通过对数据Data的操作处理产生索引Index,并且将产生的索引Index存储在主机中,如操作S12所示。作为示例,主机可利用哈希函数产生哈希索引,并且可将产生的哈希索引与逻辑地址LBA对齐地存储在存储器中。
主机可将数据Data和与其对应的索引Index提供至存储系统(例如,SSD),如操作S13所示。存储系统可响应于来自主机的写请求在应用了数据去重的情况下执行写操作,并且当根据实施例执行数据去重时,主机可从存储系统接收参考计数信息,如操作S14所示。接收到的参考计数信息可用于后续数据管理操作。
图10是示出根据本发明构思的实施例的操作存储系统的方法的流程图。
存储系统可从主机接收数据Data和与其对应的索引Index,如操作S21所示,并且可搜索先前存储在索引表中的用于数据去重的信息,如操作S22所示。根据搜索结果,可确定与接收到的索引对齐地存储的信息,或者可确定是否存在与接收到的索引相同的索引,并且可基于确定结果来确定从主机接收到的数据Data是否是重复数据。
如果确定从主机接收的数据Data不是重复数据,则存储系统可产生对应于接收到的索引Index的物理地址PBA,并且存储索引Index与物理地址PBA之间的映射信息,如操作S24所示。由于不存在相同的索引,因此从主机提供的数据Data首先被存储在存储系统中,从而数据Data可被存储在对应于物理地址PBA的位置,如操作S25所示。
然而,如果确定从主机接收到的数据Data是重复数据,则可确定存在与从主机提供的数据Data相同的数据,因此,可在不重复地存储数据Data的情况下完成针对写请求的处理。作为示例,可更新对应于与从主机提供的索引Index相同的索引的参考计数,如操作S26所示,并且可将关于更新的参考计数的信息提供至主机,如操作S27所示。可通过增大或减小参考计数的值来执行参考计数的更新,并且作为示例,每当接收到针对相同索引的写请求时,参考计数可增大1。
下文中,相对于数据去重,描述了可应用于本发明构思的实施例的各种操作性示例。图11至图18是示出根据本发明构思的实施例的数据处理系统中的主机与存储系统之间的通信的示例的示图。在下面的实施例中,假设存储系统为键-值SSD KV SSD,并且值Value可称作数据。
在图11的示例中,在不考虑数据冲突的情况下描述数据去重操作。例如,利用哈希函数等产生的键Key的大小小于数据Value的大小,因此,会发生即使数据Value具有不同的值也产生了相同的键的数据冲突。
参照图11,主机在接收数据写请求时从数据Value中产生了键Key,并且将写请求PUT(Key,Value)提供至存储系统。存储系统可利用键Key执行数据重复检查操作。当数据Value对应于重复数据时,存储系统可仅更新参考计数Ref CNT,而不重复地存储数据Value。存储系统可为主机提供指示已对写请求PUT(Key,Value)执行去重处理的信息Info_DD,并且还可将更新的参考计数Ref CNT提供至主机。主机可基于信息Info_DD确定已经执行了数据去重。
图12和图13示出了考虑了数据冲突的数据去重操作的示例。图12示出了在主机方执行了数据冲突确定的示例,并且图13示出了在存储系统方执行了数据冲突确定的示例。
参照图12,如图11的实施例中那样,主机从数据Value中产生了键Key并且将写请求PUT(Key,Value)提供至存储系统。存储系统利用键Key执行数据重复检查操作。当数据Value对应于重复数据时,存储系统可读取对应于接收到的键Key的数据Value,并且除指示已发生数据重复的信息Info_D以外,还为主机提供读取的数据Value。
主机可通过将从外部系统请求写入的数据Value与从存储系统提供的数据Value进行比较来检查是否存在数据冲突。作为示例,主机可通过以比特或字节为单位将从外部系统请求写入的数据Value与从存储系统提供的数据Value进行比较来确定是否存在相同数据,并且可将确定结果Res_C提供至存储系统。
根据指示请求写入的数据Value与从存储系统提供的数据Value相同的确定结果Res_C,存储系统可仅更新参考计数Ref CNT而不重复存储数据Value,并且为主机提供指示已执行去重的信息Info_DD。另外,还可将更新的参考计数Ref CNT提供至主机。
当请求写入的数据Value与从存储系统提供的数据Value不同时,可确定发生数据冲突,并且主机可执行用于消除数据冲突的管理操作。可根据各种方法执行数据冲突消除。例如,主机可产生与冲突的数据Value具有不同的哈希值的键Key'。根据实施例,主机可在数据冲突事件中将新的写请求PUT(Key',Value)提供至存储系统,并且可在存储系统响应于写请求PUT(Key',Value)存储数据Value的同时防止数据冲突。
参照图13,如在上述图11和图12的实施例中,主机通过哈希函数产生键Key,并且将写请求PUT(Key,Value)提供至存储系统。存储系统可利用键Key执行数据重复检查操作。
当根据利用键Key的数据重复检查操作存在重复数据时,数据存储可确定是否发生数据冲突。例如,存储系统可读取对应于键Key的数据Value,并且确定读取的数据Value是否与从主机提供的数据Value相同。如果读取的数据Value与从主机提供的数据Value相同,则可确定不存在数据冲突。因此,存储系统可仅更新参考计数Ref CNT而不重复地存储数据Value。另外,存储系统可为主机提供指示已执行去重的信息Info_DD和更新的参考计数Ref CNT。
另一方面,当发生数据冲突时,存储系统可为主机提供指示已出现数据冲突的信息Info_C。主机可按照与上述实施例中的方式基本相同的方式执行用于消除数据冲突的管理操作。例如,主机可针对冲突的数据Value产生具有不同的哈希值的键Key',并且将新的写请求PUT(Key',Value)提供至存储系统。
在上述实施例中,描述了执行新哈希操作以消除数据冲突的示例。然而,本发明构思的实施例不限于此。例如,可通过将冲突的数据写入存储系统中并且将表信息作为链接列表进行管理来消除数据冲突。另外,可对冲突次数计数,并且可基于冲突数量执行数据冲突管理,并且可使用各种管理方法来消除数据冲突。
在示出下面的实施例的附图中,假设数据Value对应于“ABCD”并且从该数据Value产生对应于“123”的键。图14示出了关于参考计数的管理的数据处理系统的操作的示例。
参照图14,主机从该数据Value产生对应于“123”的键,并且将用于该数据Value的写请求PUT(123,ABCD)提供至存储系统。存储系统可确定接收到的数据Value不对应于重复数据,并且根据写请求PUT(123,ABCD)正常写数据Value,并且还为主机提供指示写已完成的信号。
然后,主机可将针对重复数据“ABCD”的写请求提供至存储系统。存储系统可通过利用键的检查操作确定接收到的写请求对应于用于重复数据的写请求,并且可为主机提供指示已发生数据重复的信息Info_D。主机可响应于信息Info_D为存储系统提供包括对应于“123”的键的读请求GET(123),并且存储系统可响应于读请求GET(123)读取数据Value并且将读取的数据Value提供至主机。
主机可按照与上述实施例中的相同方式利用从存储系统中读出的数据Value确定是否已发生数据冲突。作为确定的结果,当从存储系统接收到的数据Value与请求写入的数据相同时,由于未发生数据冲突,主机可请求存储系统增加针对对应于“123”的键的参考计数。存储系统可响应于主机的请求通过增大(或者更新)针对对应于“123”的键的参考计数完成写操作。
根据上述实施例,可在存储系统中管理针对键的参考计数,但是,可通过主机执行调整针对键的参考计数的操作。例如,对于重复数据的写请求,可通过主机确定是否发生数据冲突,并且可基于确定结果通过主机管理存储系统中的参考计数。
图15示出了利用存储系统中的参考计数信息的操作的示例。
参照图15,如上述实施例中所示,主机从数据Value“ABCD”产生对应于“123”的键,并且将针对数据Value的写请求PUT(123,ABCD)提供至存储系统。存储系统可确定数据Value是否是重复的,并且可根据确定结果写数据Value或者仅更新参考计数而不写数据Value。另外,可将指示已执行去重的信息Info_DD提供至主机。
主机可根据外部系统的请求执行覆写或者对现有数据Value执行部分更新操作。作为示例,主机提供请求PUT_OVERWRITE以用另一值覆写与对应于“123”的键相对应的数据Value,或者提供请求PUT_PARTIAL_UPDATE以更新对应于所述键的数据Value中的一些。
存储系统可确定是执行主机的覆写请求还是部分更新请求。例如,存储系统可通过检查与对应于“123”的键相对应的参考计数来确定是执行覆写请求还是部分更新请求。作为检查参考计数的结果,如果与对应于“123”的键相对应的数据是通过外部系统方的多个逻辑地址参照的数据,则存储系统可为主机提供指示不可改变数据的信息“Failed”。主机可基于存储系统的信息“Failed”再次确定是否数据已经改变。
图16示出了通过主机确定数据去重的示例。
参照图16,如上述实施例中所示,主机从数据Value“ABCD”产生了对应于“123”的键,并且将针对数据Value的写请求PUT(123,ABCD)提供至存储系统。存储系统可利用键执行重复检查操作,并且将确定结果提供至主机。当数据Value不是重复数据时,正常写入被请求写入的数据。当数据是重复数据时,可将指示已发生数据重复的信息Info_D提供至主机。
主机可选择性地执行数据去重。例如,主机可根据数据去重模式进行操作,并且当主机处于数据去重模式时,主机可将数据去重请求Req_Dedup提供至存储系统。存储系统可响应于数据去重请求Req_Dedup更新对应于所述键的参考计数,并且为主机提供指示已执行数据去重的信息Info_DD。另一方面,当主机未处于去重模式时,主机可将数据重复请求Req_Dup提供至存储系统,并且存储系统可重复地存储数据Value,并且为主机提供已正常存储数据Value的信息指示。
可基于各种标准执行如上所述的去重的应用。例如,主机可根据数据Value确定数据Value的重要性,并且可请求以冗余方式存储相对重要的数据(或者需要存储稳定性的数据)。因此,数据去重可应用于相对不重要的数据。
根据实施例,存储系统可将存储在其中的参考计数提供至主机,并且主机可在应用数据去重时确定参考计数的值。作为示例,当对应于特定键的参考计数的值相对大时,其可指示对应于特定键的数据被频繁参照。在这种情况下,主机可确定对应于特定键的参考计数的值是否超过阈值。在写对应于特定键的数据的操作中,可以根据参考计数的值与阈值之间的比较结果应用或不应用数据去重。
图17示出了在数据处理系统中利用参考计数的操作的示例。省略了对图17所示的特征中的与在先前实施例中描述的那些相同的特征的详细描述。
参照图17,根据本发明构思的实施例的数据处理系统可包括主机和存储系统,并且对应于键的参考计数可存储在存储系统中。存储系统还可将参考计数提供至主机。可按照各种方式从存储系统将参考计数提供至主机。作为示例,每当应用数据去重时,可将对应于所述键的参考计数提供至主机。作为替代,不管是否数据去重,可定期或不定期地将存储在存储系统中的存储器中的参考计数提供至主机。
主机可存储从存储系统提供的参考计数,并且可确定参考计数以执行数据管理操作。例如,针对具有相对大(或超过阈值)的参考计数的键,主机可确定对应于所述键的数据的重要性高,并且根据数据执行管理操作。在实施例中,主机可针对对应于所述键的数据向存储系统提供备份请求。作为替代,主机可请求存储系统将对应于所述键的数据移动至可靠存储区域(例如,NAND存储器中的单电平单元(SLC)区域)。存储系统可根据主机的管理请求执行操作。
图18示出了在数据处理系统中利用参考计数的操作的示例。省略了对图18所示的特征中的与在先前实施例中描述的那些相同的特征的详细描述。
图18中示出了在存储系统中存储参考计数但是从主机将参考计数的值提供至存储系统的示例。另外,虽然在图18中示出了在主机中执行用于确定数据是否是重复的或者确定是否存在数据冲突的操作的示例,但是本发明构思的实施例不限于此。例如,即使未执行数据冲突管理,也可应用当前实施例,或者在存储系统方执行数据冲突管理。
参照图18,主机可从数据Value“ABCD”产生对应于“123”的键,并且由于将针对数据Value的写请求PUT(123,ABCD)提供至存储系统,存储系统可存储数据Value。然后,当产生了相同的键(例如,“123”)时,主机可确定发生了数据重复,并且可为存储系统提供用于读取与对应于“123”的键相对应的数据Value的请求。存储系统可为主机提供对应于所述键的参考计数(例如,1)以及对应于所述键的数据Value。
主机使用从存储系统接收到的数据Value来确定是否发生了数据冲突。如果确定已发生数据冲突,则主机可根据上述实施例执行数据冲突管理操作。另一方面,如果确定未发生数据冲突,则主机可再次将数据写请求提供至存储系统,并且可将对应于所述键的参考计数改变为值2,并且将值2提供至存储系统。存储系统可基于数据去重执行写操作。例如,存储系统可根据从主机提供的信息将对应于所述键的参考计数从1更新为2,而不写重复数据。
图19是根据本发明构思的实施例的包括服务器系统710的网络系统700的框图。除服务器系统710之外,图19中示出了多个端子731_1至731_n(例如,计算节点),并且可根据上述实施例利用数据处理系统实施服务器系统710。
参照图19,网络系统700可包括经网络720与服务器系统710通信的多个端子731_1至731_n。服务器系统710可包括服务器711和作为存储系统的SSD 712。服务器711可执行上述实施例中的主机的功能。
服务器711可处理从连接至网络720的多个端子731_1至731_n发送的请求。作为示例,服务器711可在SSD 712中存储从多个端子731_1至731_n提供的数据。另外,根据上述实施例,服务器711可通过利用数据去重功能减少或防止相同数据的重复存储,因此,可有效地使用SSD 712的存储空间。
SSD 712可根据上述实施例管理哈希索引和参考计数。根据实施例,SSD 712可从主机接收数据和与其对应的哈希索引,利用哈希索引确定数据是否是重复的,并且根据确定结果执行用于存储数据和更新参考计数的操作。另外,当对应于特定键的参考计数的值较大时,与其对应的数据可对应于在多个端子731_1至731_n中的一个或多个中使用的数据,并且可根据上述实施例执行利用参考计数的数据管理操作。
虽然已经参照本发明构思的实施例具体示出和描述了本发明构思,但是应该理解,在不脱离权利要求的精神和范围的情况下,可在其中作出各种形式和细节上的改变。

Claims (23)

1.一种存储系统,包括:
存储装置,其构造为存储从主机接收到的数据;以及
控制器,其构造为从所述主机接收数据和索引,所述索引与从主机接收到的数据关联,
所述控制器包括存储器,该存储器构造为存储映射信息和参考计数,所述映射信息将从所述主机接收到的索引与所述存储系统的物理地址关联,所述参考计数与从所述主机接收到的索引关联,
所述控制器构造为通过从所述存储器读取所述映射信息和所述参考计数中的至少一个来确定从所述主机接收到的数据是否对应于先前存储在所述存储装置中的数据的副本,所述读取操作基于从所述主机接收到的索引,并且
所述控制器构造为通过在从所述主机接收到的数据对应于先前存储在所述存储装置中的数据的副本的情况下更新所述参考计数来执行去重处理,
其中,所述存储装置是键-值存储装置,其构造为将从所述主机接收到的数据作为值来存储,并且构造为将从所述主机接收到的索引作为与所述值关联的键来存储,并且
从所述主机接收到的索引是通过数据的哈希函数产生的哈希值。
2.根据权利要求1所述的存储系统,其中,如果与先前存储在所述存储装置中的数据关联的索引与从所述主机接收到的索引相同,则所述控制器构造为确定从所述主机接收到的数据对应于先前存储在所述存储装置中的数据的副本。
3.根据权利要求2所述的存储系统,其中,
所述存储器构造为存储对应于第一索引至第N索引的第一参考计数至第N参考计数,其中N是等于或大于2的整数,并且
所述控制器构造为:响应于从所述主机接收到的索引与所述第一索引相同,通过增大对应于所述第一索引的所述第一参考计数来执行所述去重处理。
4.根据权利要求1所述的存储系统,其中,所述控制器构造为将更新的参考计数提供至所述主机。
5.根据权利要求1所述的存储系统,其中,所述控制器构造为向所述主机提供第一信息,其指示从所述主机接收到的数据是先前存储在所述存储装置中的数据的副本,并且构造为从所述主机接收参考计数更新请求并且响应于所述参考计数更新请求对所述参考计数执行更新。
6.根据权利要求1所述的存储系统,其中,所述控制器包括压缩器,其构造为压缩从所述主机接收到的数据并且将压缩的数据提供至所述存储装置。
7.根据权利要求1所述的存储系统,其中,所述控制器包括哈希引擎,其构造为对从所述主机接收到的数据和从所述主机接收到的索引中的至少一个执行所述哈希函数。
8.根据权利要求1所述的存储系统,其中,所述控制器包括:
处理器,其构造为执行机器可读指令,以及
工作存储器,其构造为存储去重控制模块,其用于确定从所述主机接收到的数据是否是先前存储在所述存储装置中的数据的副本并且用于控制所述参考计数的更新操作,其中,所述去重控制模块是所述处理器可执行的程序。
9.一种操作存储系统的方法,所述方法包括步骤:
从主机接收第一数据和第一索引,所述第一索引与所述第一数据关联;
确定所述第一索引是否与对应于先前存储在所述存储系统中的数据的索引相同;
响应于确定所述第一索引与对应于先前存储在所述存储系统中的数据的索引相同,通过更新参考计数而不写所述第一数据来执行数据去重,所述参考计数先前存储在所述存储系统中;以及
将更新的参考计数提供至所述主机,
其中,所述存储系统包括键-值存储装置,其构造为将从所述主机接收到的数据作为值来存储,并且构造为将从所述主机接收到的索引作为与所述值关联的键来存储。
10.根据权利要求9所述的方法,其中,所述存储系统构造为存储第二索引至第N索引以及与所述第二索引至所述第N索引对应的第二参考计数至第N参考计数,其中N是等于或大于3的整数,并且所述方法还包括步骤:
响应于所述第一索引与所述第二索引相同,增大对应于所述第二索引的所述第二参考计数。
11.根据权利要求10所述的方法,其中,提供更新的参考计数的步骤包括为所述主机提供所述第二参考计数。
12.根据权利要求9所述的方法,还包括步骤:
响应于确定所述第一索引与对应于先前存储在所述存储系统中的数据的索引不是相同的索引,将所述第一索引新映射至第一物理地址;
响应于确定所述第一索引与对应于先前存储在所述存储系统中的数据的索引不是相同的索引,将所述第一数据写在由所述第一物理地址指示的位置;以及
响应于确定所述第一索引与对应于先前存储在所述存储系统中的数据的索引不是相同的索引,存储所述第一物理地址和对应于所述第一索引的第一参考计数。
13.根据权利要求9所述的方法,还包括步骤:
响应于确定所述第一索引与对应于先前存储在所述存储系统中的数据的索引是相同的索引,为所述主机提供指示所述第一数据是重复数据的信息;以及
响应于确定所述第一索引与对应于先前存储在所述存储系统中的数据的索引是相同的索引,从所述主机接收去重请求或者重复存储请求中的至少一个,
其中,响应于来自所述主机的去重请求执行所述数据去重,并且
响应于来自所述主机的重复存储请求重复地存储所述第一数据。
14.根据权利要求9所述的方法,还包括步骤:
响应于确定所述第一索引与对应于先前存储在所述存储系统中的数据的索引是相同的索引,读取对应于相同的索引的数据;以及
响应于确定所述第一索引与对应于先前存储在所述存储系统中的数据的索引是相同的索引,通过将读取的数据与所述第一数据进行比较,决定是否发生了数据冲突,
其中,如果决定是否发生了数据冲突的步骤决定未发生数据冲突,则执行所述数据去重。
15.根据权利要求14所述的方法,还包括步骤:
在发生了数据冲突的情况下将指示已发生数据冲突的信息提供至所述主机;
接收对应于所述第一数据已经改变的第一索引;以及
将所述第一数据写在由新映射至已改变的第一索引的第一物理地址指示的位置。
16.根据权利要求9所述的方法,还包括步骤:
响应于确定存在与所述第一索引相同的索引,为所述主机提供指示所述第一数据是重复数据的第一信息;以及
响应于确定存在与所述第一索引相同的索引,从所述主机接收指示改变的参考计数的第二信息,
其中,更新参考计数的步骤包括更新所述参考计数以对应于从所述主机提供的所述第二信息。
17.一种操作包括存储系统的数据处理系统的方法,所述方法包括步骤:
将映射信息存储在所述存储系统中,所述映射信息包括利用来自外部系统的数据产生的索引与指示所述数据的存储位置的物理地址之间的映射;
在所述存储系统中接收包括额外数据和对应于所述额外数据的索引的写请求;
在所述存储系统中确定所述额外数据是否对应于已经存储在所述存储系统中的数据的副本;以及
在所述额外数据对应于已经存储在所述存储系统中的数据的副本的情况下,通过更新存储在所述存储系统中的参考计数执行去重处理,
其中,所述存储系统包括键-值存储装置,其构造为将从主机接收到的数据作为值来存储,并且构造为将从该主机接收到的索引作为与所述值关联的键来存储。
18.根据权利要求17所述的方法,其中,所述数据处理系统还包括主机,并且所述方法还包括步骤:
在所述主机中通过所述额外数据的哈希函数产生索引;以及
将所述额外数据和对应于所述额外数据的索引提供至所述存储系统。
19.根据权利要求18所述的方法,还包括步骤:
在所述主机中压缩从所述外部系统接收到的所述额外数据。
20.根据权利要求18所述的方法,还包括步骤:
将更新的参考计数从所述存储系统提供至所述主机。
21.根据权利要求18所述的方法,还包括步骤:
将第一信息从所述存储系统提供至所述主机,所述第一信息指示所述写请求是针对先前存储在所述存储系统中的数据的副本的写请求;以及
提供第二信息,所述第二信息请求所述去重处理,所述第二信息从所述主机提供至所述存储系统,
其中,所述存储系统构造为响应于所述第二信息执行所述去重处理。
22.根据权利要求18所述的方法,还包括步骤:
从所述存储系统读取数据,该读取的数据对应于所述索引;
响应于确定所述写请求是针对重复数据的写请求,将该读取的数据提供至所述主机;以及
在所述主机中通过将所述数据与该读取的数据进行比较来确定是否发生了数据冲突。
23.根据权利要求18所述的方法,还包括步骤:
在所述主机中检查对应于从所述存储系统提供的多个索引的参考计数;以及
基于检查的结果,针对对应于超过阈值的参考计数的数据向所述存储系统提供备份请求。
CN201711180803.XA 2016-11-23 2017-11-23 存储系统及其操作方法和操作数据处理系统的方法 Active CN108089817B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662425686P 2016-11-23 2016-11-23
US62/425,686 2016-11-23
KR1020170031808A KR102306672B1 (ko) 2016-11-23 2017-03-14 데이터 중복 제거를 수행하는 스토리지 시스템, 스토리지 시스템 및 데이터 처리 시스템의 동작방법
KR10-2017-0031808 2017-03-14

Publications (2)

Publication Number Publication Date
CN108089817A true CN108089817A (zh) 2018-05-29
CN108089817B CN108089817B (zh) 2023-12-19

Family

ID=62146965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711180803.XA Active CN108089817B (zh) 2016-11-23 2017-11-23 存储系统及其操作方法和操作数据处理系统的方法

Country Status (2)

Country Link
US (1) US11644992B2 (zh)
CN (1) CN108089817B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109872161A (zh) * 2019-03-01 2019-06-11 山东大学 一种加速iota子链交易验证过程的芯片及系统
CN110134335A (zh) * 2019-05-10 2019-08-16 天津大学深圳研究院 一种基于键值对的rdf数据管理方法、装置及存储介质
CN114265958A (zh) * 2022-03-01 2022-04-01 南京得瑞芯存科技有限公司 Kv ssd的映射管理方法、装置及存储介质
CN114579061A (zh) * 2022-04-28 2022-06-03 苏州浪潮智能科技有限公司 一种数据存储方法、装置、设备及介质

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10642522B2 (en) * 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10789011B2 (en) 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10789002B1 (en) * 2017-10-23 2020-09-29 EMC IP Holding Company LLC Hybrid data deduplication for elastic cloud storage devices
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US11816043B2 (en) 2018-06-25 2023-11-14 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of I/O requests
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11086837B2 (en) * 2019-01-15 2021-08-10 EMC IP Holding Company LLC Fast key-value storage for continuous data protection systems
CN109800336B (zh) * 2019-01-30 2020-12-25 百度在线网络技术(北京)有限公司 基于键值对存储系统的表格实现方法、装置、设备和介质
US10860420B2 (en) 2019-02-05 2020-12-08 Alibaba Group Holding Limited Method and system for mitigating read disturb impact on persistent memory
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10970212B2 (en) 2019-02-15 2021-04-06 Alibaba Group Holding Limited Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones
US11061834B2 (en) 2019-02-26 2021-07-13 Alibaba Group Holding Limited Method and system for facilitating an improved storage system by decoupling the controller from the storage medium
US10783035B1 (en) 2019-02-28 2020-09-22 Alibaba Group Holding Limited Method and system for improving throughput and reliability of storage media with high raw-error-rate
US10891065B2 (en) 2019-04-01 2021-01-12 Alibaba Group Holding Limited Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11074124B2 (en) 2019-07-23 2021-07-27 Alibaba Group Holding Limited Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
FR3100627B1 (fr) * 2019-09-05 2023-11-10 Blade Procédé de gestion d’un groupe de donnees dans un système informatique
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11429573B2 (en) * 2019-10-16 2022-08-30 Dell Products L.P. Data deduplication system
US11200159B2 (en) * 2019-11-11 2021-12-14 Alibaba Group Holding Limited System and method for facilitating efficient utilization of NAND flash memory
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11709609B2 (en) * 2020-03-27 2023-07-25 Via Technologies, Inc. Data storage system and global deduplication method thereof
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
CN111651438A (zh) * 2020-04-28 2020-09-11 银江股份有限公司 基于MapDB的结构化数据去重方法、装置、设备及介质
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US20240061595A1 (en) * 2022-08-16 2024-02-22 Micron Technology, Inc. Optimizing memory for repeating patterns

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1606097A (zh) * 2003-10-08 2005-04-13 三星电子株式会社 闪速存储器控制装置、存储器管理方法、及存储器芯片
US7908436B1 (en) * 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US20110276781A1 (en) * 2010-05-05 2011-11-10 Microsoft Corporation Fast and Low-RAM-Footprint Indexing for Data Deduplication
CN103049390A (zh) * 2012-12-14 2013-04-17 华为技术有限公司 应用元数据的数据处理方法及存储系统
CN103136243A (zh) * 2011-11-29 2013-06-05 中国电信股份有限公司 基于云存储的文件系统去重方法及装置
US20130151759A1 (en) * 2011-12-08 2013-06-13 Samsung Electronics Co., Ltd. Storage device and operating method eliminating duplicate data storage

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727197A (en) * 1995-11-01 1998-03-10 Filetek, Inc. Method and apparatus for segmenting a database
US6675205B2 (en) * 1999-10-14 2004-01-06 Arcessa, Inc. Peer-to-peer automated anonymous asynchronous file sharing
US6976053B1 (en) * 1999-10-14 2005-12-13 Arcessa, Inc. Method for using agents to create a computer index corresponding to the contents of networked computers
US20040085999A1 (en) * 2002-10-31 2004-05-06 Burnett Charles James Method and apparatus for selective segmentation and reassembly of asynchronous transfer mode streams
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8645334B2 (en) * 2009-02-27 2014-02-04 Andrew LEPPARD Minimize damage caused by corruption of de-duplicated data
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US8965852B2 (en) * 2009-11-24 2015-02-24 Dell Products L.P. Methods and apparatus for network efficient deduplication
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
US9852149B1 (en) * 2010-05-03 2017-12-26 Panzura, Inc. Transferring and caching a cloud file in a distributed filesystem
US9053032B2 (en) * 2010-05-05 2015-06-09 Microsoft Technology Licensing, Llc Fast and low-RAM-footprint indexing for data deduplication
US20110276744A1 (en) * 2010-05-05 2011-11-10 Microsoft Corporation Flash memory cache including for use with persistent key-value store
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8682873B2 (en) * 2010-12-01 2014-03-25 International Business Machines Corporation Efficient construction of synthetic backups within deduplication storage system
KR20120072909A (ko) * 2010-12-24 2012-07-04 주식회사 케이티 내용 기반 중복 방지 기능을 가지는 분산 저장 시스템 및 그 오브젝트 저장 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
US9110936B2 (en) * 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
KR101826047B1 (ko) 2011-09-28 2018-02-07 삼성전자주식회사 저장 장치 및 그 구동 방법
KR20190057441A (ko) * 2012-05-24 2019-05-28 구글 엘엘씨 무접촉 프로토콜을 제공하기 위한 시스템들, 방법들, 및 컴퓨터 프로그램 제품들
EP2898424B8 (en) * 2012-09-19 2019-08-21 Hitachi Vantara Corporation System and method for managing deduplication using checkpoints in a file storage system
US8751763B1 (en) * 2013-03-13 2014-06-10 Nimbus Data Systems, Inc. Low-overhead deduplication within a block-based data storage
KR20150002297A (ko) 2013-06-28 2015-01-07 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
US9361334B2 (en) * 2013-08-23 2016-06-07 Cisco Technology, Inc. Addressing cache coherence in updates to a shared database in a network environment
WO2015048140A1 (en) 2013-09-24 2015-04-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for storage collision management
KR102187127B1 (ko) 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US9442941B1 (en) 2014-03-28 2016-09-13 Emc Corporation Data structure for hash digest metadata component
US9921773B2 (en) * 2014-06-18 2018-03-20 Citrix Systems, Inc. Range-based data deduplication using a hash table with entries replaced based on address alignment information
DK3059679T3 (en) 2014-12-05 2018-12-17 Huawei Tech Co Ltd CONTROL UNIT, FLASH MEMORY UNIT, PROCEDURE FOR IDENTIFICATION OF DATA BLOCK STABILITY, AND PROCEDURE FOR STORING DATA ON THE FLASH MEMORY UNIT
US10175894B1 (en) * 2014-12-30 2019-01-08 EMC IP Holding Company LLC Method for populating a cache index on a deduplicated storage system
US10248677B1 (en) * 2014-12-30 2019-04-02 EMC IP Holding Company LLC Scaling an SSD index on a deduplicated storage system
US10204002B1 (en) * 2014-12-30 2019-02-12 EMC IP Holding Company LLC Method for maintaining a cache index on a deduplicated storage system
US10289307B1 (en) * 2014-12-30 2019-05-14 EMC IP Holding Company LLC Method for handling block errors on a deduplicated storage system
US10503717B1 (en) * 2014-12-30 2019-12-10 EMC IP Holding Company LLC Method for locating data on a deduplicated storage system using a SSD cache index
US10409781B2 (en) * 2015-04-29 2019-09-10 Box, Inc. Multi-regime caching in a virtual file system for cloud-based shared content
US9612749B2 (en) * 2015-05-19 2017-04-04 Vmware, Inc. Opportunistic asynchronous deduplication using an in-memory cache
US9934264B2 (en) 2015-06-02 2018-04-03 Netapp, Inc. Technique for reducing metadata stored in a memory of a node
US10255287B2 (en) * 2015-07-31 2019-04-09 Hiveio Inc. Method and apparatus for on-disk deduplication metadata for a deduplication file system
US9977746B2 (en) * 2015-10-21 2018-05-22 Hewlett Packard Enterprise Development Lp Processing of incoming blocks in deduplicating storage system
US20170208125A1 (en) * 2016-01-19 2017-07-20 Hope Bay Technologies, Inc Method and apparatus for data prefetch in cloud based storage system
US20170206218A1 (en) * 2016-01-19 2017-07-20 Hope Bay Technologies, Inc Method and apparatus for data deduplication in cloud based storage system
US10929357B2 (en) * 2016-02-29 2021-02-23 Red Hat, Inc. Detecting stale storage layouts without using client locks
US9983821B2 (en) * 2016-03-29 2018-05-29 Samsung Electronics Co., Ltd. Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
WO2017180144A1 (en) * 2016-04-15 2017-10-19 Hitachi Data Systems Corporation Deduplication index enabling scalability
US10585611B2 (en) * 2016-04-26 2020-03-10 Netapp Inc. Inline deduplication
US10452297B1 (en) * 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US9940060B1 (en) * 2016-05-02 2018-04-10 Pure Storage, Inc. Memory use and eviction in a deduplication storage system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1606097A (zh) * 2003-10-08 2005-04-13 三星电子株式会社 闪速存储器控制装置、存储器管理方法、及存储器芯片
US7908436B1 (en) * 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US20110276781A1 (en) * 2010-05-05 2011-11-10 Microsoft Corporation Fast and Low-RAM-Footprint Indexing for Data Deduplication
CN103136243A (zh) * 2011-11-29 2013-06-05 中国电信股份有限公司 基于云存储的文件系统去重方法及装置
US20130151759A1 (en) * 2011-12-08 2013-06-13 Samsung Electronics Co., Ltd. Storage device and operating method eliminating duplicate data storage
CN103049390A (zh) * 2012-12-14 2013-04-17 华为技术有限公司 应用元数据的数据处理方法及存储系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109872161A (zh) * 2019-03-01 2019-06-11 山东大学 一种加速iota子链交易验证过程的芯片及系统
CN110134335A (zh) * 2019-05-10 2019-08-16 天津大学深圳研究院 一种基于键值对的rdf数据管理方法、装置及存储介质
CN114265958A (zh) * 2022-03-01 2022-04-01 南京得瑞芯存科技有限公司 Kv ssd的映射管理方法、装置及存储介质
CN114579061A (zh) * 2022-04-28 2022-06-03 苏州浪潮智能科技有限公司 一种数据存储方法、装置、设备及介质

Also Published As

Publication number Publication date
CN108089817B (zh) 2023-12-19
US11644992B2 (en) 2023-05-09
US20180143780A1 (en) 2018-05-24

Similar Documents

Publication Publication Date Title
CN108089817A (zh) 存储系统及其操作方法和操作数据处理系统的方法
US10649969B2 (en) Memory efficient persistent key-value store for non-volatile memories
US11042487B2 (en) Memory system and method for controlling nonvolatile memory
CN111164574B (zh) 基于存储设备内部地址的冗余编码条带
US9342256B2 (en) Epoch based storage management for a storage device
CN107102955B (zh) 用于存储子系统的关联和原子回写高速缓冲存储系统和方法
KR101596652B1 (ko) 비휘발성 메모리에 대한 탄력적인 웨어 관리
US10468077B2 (en) Adaptive object buffering and meta-data indexing using persistent memory to improve flash memory durability in tiered storage
US20180089074A1 (en) Techniques to Manage Key-Value Storage at a Memory or Storage Device
US9990277B2 (en) System and method for efficient address translation of flash memory device
US11874815B2 (en) Key-value storage device and method of operating the same
US9535628B2 (en) Memory system with shared file system
CN113227994B (zh) 具有请求程序指定的备份的文件创建
US20200334169A1 (en) File page table management technology
CN108027764B (zh) 可转换的叶的存储器映射
CN106919517B (zh) 闪存及其访问方法
US11681629B2 (en) Direct cache hit and transfer in a memory sub-system that programs sequentially
KR20170084675A (ko) 메모리 내의 데이터를 액세스하는 방법과 이를 이용하는 메모리 장치
KR102306672B1 (ko) 데이터 중복 제거를 수행하는 스토리지 시스템, 스토리지 시스템 및 데이터 처리 시스템의 동작방법
CN110569000A (zh) 基于固态硬盘阵列的主机端raid管理方法和装置
US20190227740A1 (en) Atomic write method for multi-transaction
CN108920293A (zh) 固态硬盘写失败的处理方法和固态硬盘
US20210064287A1 (en) Memory system and method of controlling nonvolatile memory
CN115576868B (zh) 一种多级映射框架、数据操作请求处理方法及系统
Lim et al. Bitmap discard operation for the higher utilization of flash memory storage

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