CN107526689B - 读高速缓存管理 - Google Patents
读高速缓存管理 Download PDFInfo
- Publication number
- CN107526689B CN107526689B CN201710463348.8A CN201710463348A CN107526689B CN 107526689 B CN107526689 B CN 107526689B CN 201710463348 A CN201710463348 A CN 201710463348A CN 107526689 B CN107526689 B CN 107526689B
- Authority
- CN
- China
- Prior art keywords
- data
- read cache
- sequence
- read
- region
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000013500 data storage Methods 0.000 claims description 13
- 238000013523 data management Methods 0.000 claims description 5
- 238000011156 evaluation Methods 0.000 claims 4
- 238000012005 ligant binding assay Methods 0.000 claims 3
- 238000012544 monitoring process Methods 0.000 claims 2
- 238000007726 management method Methods 0.000 description 24
- 238000001514 detection method Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 5
- 238000010438 heat treatment Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Abstract
主题应用程序与读高速缓存管理有关。本文所公开的具体实施提供了一种包括磁盘读高速缓存和各种读高速缓存管理技术的存储系统。根据一个具体实施,存储设备控制器按时间顺序读取在磁盘的读高速缓存中存储数据序列的一系列不连续的数据块,所述数据序列由所请求的逻辑块地址序列(LBA)识别。所述控制器确定所述数据序列的读取请求满足至少一个预定访问频率标准,并且响应于所述确定,所述控制器将所述数据序列的数据重新写入所述读高速缓存中的一系列连续的数据块。
Description
技术领域
本主题申请涉及数据存储,更具体地讲涉及读高速缓存管理。
背景技术
在数据存储系统中,可识别为逻辑块地址(LBA)序列的特定读访问模式重复出现。以接收顺序执行读取命令可能需要检索存储在存储介质上一较大空间区域上的数据。在具有移动部件诸如硬盘驱动器组件的一些存储设备中,这种访问模式对设备性能具有强烈的不利影响。在这些设备中,存储设备的致动器臂可能必须在不同的径向位置之间移动以读取物理上不同的数据。致动器臂过度移动是很耗时的,并且会消耗非常多的电力。
发明内容
在一个具体实施中,所公开的技术提供了利用磁盘上的读高速缓存的数据管理方法。该方法需要按时间顺序读取在磁盘的读高速缓存中存储数据序列的一系列不连续的数据块,并确定对数据序列的读请求满足至少一个预定的访问频率标准。响应于这种确定,将数据序列的数据重新写入读高速缓存中的一系列连续的数据块,以便于随后顺序读取数据序列。
本发明内容旨在以简化的形式介绍一些可供选择的概念,这些概念在下面的具体实施方式中作了进一步描述。本发明内容并非意图识别所要求保护的主题的主要特征或基本特征,也不旨在用于限制所要求保护的主题的范围。通过下文、更具体地讲下文所书的各种具体实施的具体实施方式,所要求保护的主题的其他特征、细节、效用和优点将变得显而易见,如附图中进一步说明及所附权利要求中限定的。
附图说明
通过以下结合附图描述各种具体实施的具体实施方式可最好地理解所述技术。
图1示出了示例性数据存储系统,该数据存储系统具有包括磁盘读高速缓存的存储设备和实现用于读高速缓存动态重排序的技术的控制器。
图2示出了用于实现用于读高速缓存重排序和高速缓存数据复制管理的技术的示例性存储系统。
图3示出了用于实现用于读高速缓存重排序和高速缓存数据复制管理的另外的技术的示例性存储系统。
图4示出了实现动态读高速缓存管理技术的另一示例性存储系统。
图5示出了磁盘读高速缓存的热序列检测和数据复制管理的示例性操作。
具体实施方式
随着数据存储、检索和分析需求的增加,对更便宜且更快速的数据存储设备的需求也在增加。硬盘驱动器(HDD)被广泛用作数据存储设备计算系统。这类数据存储设备包括在磁介质、光介质等上存储数据的磁盘驱动器。相比之下,固态设备(SSD)没有移动部件,并且使用集成电路组件作为存储器来存储数据。SSD在数据访问速度和系统性能方面具有优势,而HDD则具有成本优势。混合驱动器(也称为SSHD)将HDD技术和SSD技术相结合,以利用成本和速度的优势。
一些SSHD使用闪存部件作为读高速缓存,以允许快速访问频繁访问的或最近访问的数据(此处也称为“热”数据)。当将SSD存储器(诸如闪存)用作读高速缓存时,可以以相等的速度访问读高速缓存中的所有数据。在这种情况下,缓存数据单元在闪存中的实际布置顺序对系统性能没有影响。相比之下,HDD的访问速度的延迟主要归因于数据的物理位置和致动器臂“寻找”到每个物理位置以执行读取或写入操作所需的相关时间。因此,HDD系统很少包括物理上位于磁盘上的任何类型的读缓存。
本文所公开的技术提供了允许HDD模拟SSHD期望的驱动性能特征的数据管理技术。在一个具体实施中,这是使用磁盘读取缓存来实现的。本文公开的多种读高速缓存管理技术提供提高的设备性能,诸如与动态热序列检测相关的技术、用于高速缓存数据重排序的技术、用于高速缓存数据复制管理的技术以及用于动态高速缓存存储分配的技术。
图1示出了示例性数据存储系统100,其具有包括磁盘读高速缓存(以下称为“读高速缓存102”)的存储设备104以及实现用于读高速缓存102动态重排序的技术的控制器126。存储设备104包括具有多个数据块(例如,扇区110)的磁盘108,其可保存设定数量的存储字节。
存储设备104包括位于磁盘108上方的致动器臂116的远端上的头部120。围绕致动器旋转轴线125旋转的旋转音圈电机用于将头部120定位在包括目标扇区的同心数据轨道上,同时围绕盘旋转轴线113旋转的主轴电机用于使磁盘108旋转。挠性电缆134为头部120提供必要的电连接路径,同时允许致动器臂116在操作期间枢转运动,以使头部120在靠近内径114的径向位置和磁盘108的外径118之间移动。
磁盘108上的存储空间至少在读高速缓存102和主存储器112之间划分。主存储器112是通过主计算机128读取自和写入到的主数据存储区域。主存储器112中的每个数据块与逻辑地址(例如,逻辑块地址(LBA))相关联,逻辑地址可在由主计算机128发送到存储设备104的读取或写入命令中指定。与主存储器112相反,读高速缓存102用于满足某些“热数据”要求的数据的冗余存储。例如,读高速缓存可存储根据预定义的标准被确定为“频繁访问”或者“最近访问”的数据的冗余副本。在各种具体实施中,存储设备104可实现包括例如常规磁记录、带状磁记录、隔行磁记录等的各种存储和数据管理技术。因此,读高速缓存102可在不同的具体实施中包括具有不同特征的轨道,诸如带状数据轨道、非带状数据轨道、隔行轨道、以增加的径向密度(轨道/英寸或TPI)排列的轨道等。
在图1中,读高速缓存102被示出为位于靠近磁盘108的外径118的区域中。该位置对于驱动性能是有益的,因为存储在磁盘108的外径118附近的数据以更大的线速度旋转,并且通常可比存储在内径114附近的数据更快地被访问。读高速缓存102可包括单个数据轨道或多个数据轨道。在一些具体实施中,读高速缓存102位于与图1所示的区域不同的区域中,诸如外径118的略内侧。
存储设备104可使用各种规则和技术来初始地识别热数据。在一个具体实施中,控制器126基于每个单独的LBA读取自或写入到主存储器112的多次次数来将某些LBA识别为“热”。在一些具体实施中,该确定独立于访问LBA的任何顺序执行。当识别出新的热数据时,控制器126的读高速缓存管理模块122将数据写入读高速缓存102。最初可将热数据布置在读高速缓存102中,而不考虑读取顺序。例如,被一起频繁读取的LBA序列可存储在不连续的块上、不同的轨道上等。
当控制器126接收到从磁盘读取数据的命令时,控制器126检查LBA高速缓存列表130,以在使致动器臂116在主存储器112内寻找到对应于所请求的数据的位置之前,确定所请求的LBA在读高速缓存102中是否可用。在LBA高速缓存列表130中识别所请求的一个或多个LBA的情况下,控制器126可选择从读高速缓存102而不是主存储器112检索相关联的所请求的数据。
在一些情况下,主机128可向控制器126发送随机地存储在读高速缓存102中的数据序列的读请求。如本文所使用的,术语“数据序列”通常是指(诸如在一个或多个读取或写入命令中的)由主机128或控制器126指定的逻辑地址(LBA)的时间顺序序列可识别的数据。当所请求的LBA的相应访问序列不对应于根据存储设备104的旋转访问顺序可读取的磁盘108上的数据块的物理连续排序时,数据序列被称为“随机存储”在磁盘108上。换句话说,根据存储设备104的自然时序读取顺序,“随机”访问的数据序列是不可读的。例如,随机存储的数据序列的读取可需要一个或许多个耗时的寻找和旋转操作,这些操作将致动臂116致动到相应数量的不同径向位置。
与随机存储的数据序列相比,在本文中,当数据序列由对应于根据LBA访问序列的顺序排列的磁盘108上的一系列物理上连续的数据块的所请求LBA的访问序列标识时,数据序列被称为“顺序”或“依次存储”。本文中使用的术语“顺序读取”是指根据存储设备104的旋转访问顺序的物理布局执行的物理顺序的块序列的读取。例如,沿着单个数据轨道布置的连续数据块可存储可根据存储设备104的自然物理布局读取顺序依次读取的数据序列。类似地,跨越两个相邻轨道的连续数据块(例如,两个相邻数据轨道上的所有块)可存储可根据存储设备104的自然物理布局读取顺序依次读取的数据序列。
由于在主存储器112中识别热数据并被复制到读高速缓存102中的顺序,读高速缓存102可包括随机存储的一些数据,诸如不一定存储的小数据块(例如,32KB),所述小数据块与其他与常见文件、程序、数据例程等相关的小数据块物理有关。然而,随着时间的推移,热序列检测模块124监视来自读高速缓存102的读取并开始识别并跟踪从读高速缓存102检索到的数据的“热序列”(例如,满足一个或多个访问频率标准的序列,诸如与数据访问的频率和/或新近相关的标准)。
例如,加热序列检测模块124可按照以下顺序“X、L、A、B、Q、W”来确定频繁地从读高速缓存102读取随机存储的数据块序列。在该示例中,X、L、A、B、Q和W可各自表示单独的LBA或LBA的块,诸如扇区或多个连续存储的数据扇区。当读取该序列(例如X、L、A、B、Q、W)的请求满足预定的访问频率标准时,热检测模块124将所请求的序列识别为“热序列”。每个识别的热序列的LBA被记录在存储器中,诸如在检测到的热序列表132(例如,示例性日志文件)中,并且每个热序列的数据在物理上重新排列在读高速缓存内,以允许顺序读取每个识别的热序列。例如,读高速缓存管理模块122读取每个识别的加热序列的随机存储的数据,根据主机128请求序列的LBA的顺序来重新排列数据,并以允许数据的顺序回读的方式将重新排列的数据重新写入读高速缓存102。例如,读高速缓存管理模块122将所识别的热序列的随机存储的数据块重新写入为沿着读高速缓存102内的单个数据轨道排列的一系列连续的数据块。
LBA缓存列表130和/或检测到的热序列表132可各自包括主机LBA到磁盘108上的物理数据块的映射。为了快速访问,LBA高速缓存列表130和/或检测到的热序列表132中的一者或两者可存储在存储设备104的易失性存储器(未示出),诸如DRAM中。例如,只要存储设备104在断电之后获得电力,LBA高速缓存列表130和/或检测到的热序列表132的映射就可被持久地存储在磁盘104上并被加载到易失性存储器中。
如上所述,动态地重新布置缓存数据以允许顺序读取热序列有助于根据与更昂贵的SSHD设备所提供的访问速度相似或一致的访问速度来读取热序列数据,该SSHD设备包括SSD存储器中的读高速缓存。可采用各种高速缓存管理技术,其中的一些在下面描述,以补充这种高访问速度优势同时在性能和数据存储容量之间提供优化的平衡。
控制器126包括软件和/或硬件,并且可在数据存储设备100内或通信地耦合到该数据存储设备中的任何有形的计算机可读存储介质中实现。如本文所使用的,术语“有形计算机可读存储介质”包括但不限于RAM、ReRAM、MRAM、闪速存储器或其他存储器技术,以及其他固态存储器类存储器或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或者可用于存储所需信息并且可由移动设备或计算机访问的任何其他有形介质。与有形计算机可读存储介质相比,无形计算机可读通信信号可体现计算机可读指令、数据结构、程序模块或驻留在调制数据信号(诸如,载波或其他信号传输机制)中的其他数据。
图2示出了实现用于读高速缓存重排序和重复管理的技术的示例存储系统200。存储系统200包括至少一个磁盘210,其中存储空间被分配在读高速缓存202和主存储器204之间。主存储器204中的每个数据块与属于主计算机(未示出)的寻址方案的LBA相关联。相反,读高速缓存202存储与被确定为满足某些“热数据”标准的LBA相关联的数据的冗余副本。读高速缓存202可包括单个数据轨道或多个数据轨道,并且被划分为第一连续区域和第二连续区域(在本文中被称为不完整区域206和完整区域208)。
不完整区域206随机存储热数据,而不考虑可访问各种数据块的顺序。与此相反,完整区域208顺序存储所识别的热序列,以允许主机设备顺序读回每个序列。在图2中,完整区域208被示为比不完整区域206更靠近磁盘210的外径212;在其他具体实施中,这些区域的定位可相对于盘的外径212颠倒。在一些具体实施中,完整区域208和不完整区域206各自是连续的,但是不共享边界。
当各个LBA或LBA块最初被识别为满足一个或多个预定访问频率标准时,对应于该LBA的数据被最初写入不完整区域206中。例如,热数据检测模块(未示出)可监测对主存储区域204的数据写入,并且识别被频繁访问的主存储数据块。在一个具体实施中,热数据检测模块识别主存储区域204中被频繁执行的小随机读取(例如,小于约32KB的读取)。当这些被频繁执行的随机读取满足一个或多个预定访问频率标准(诸如,与访问的频率和/或新近相关的标准)时,主存储区域204的相应数据被复制到读高速缓存202的不完整区域206。例如,示例性数据块“B”可以是每天、每周、每月或通过满足一个或多个预定访问频率标准的一些其他频率访问的32KB数据块。
在一个具体实施中,如果主存储区域204的数据在驱动电源启动后立即(例如,在一分钟内)被访问,则该数据被识别为“热数据”并且被放置在读高速缓存202内。例如,如果数据块的字符串小于某一大小(例如,500MB)并且在相关联的存储设备通电后前60秒内被读取,则该字符串可被认为是“热”字符串并且可从主存储区域204复制到不完整区域206中。
值得注意的是,被识别为热数据的一些数据块可一起被频繁地访问,但仍然被随机存储在不完整区域206内。例如,主机可按时间顺序(连续地)偶尔或经常请求两个LBA块,但是这两个块最初在不同时间被识别为“热”。在这种情况下,可按非顺序读取顺序将两个块放置在读高速缓存102中。
随着时间的推移,热序列检测模块(未示出)辨别出与存储在读高速缓存202的不完整区域206中的LBA有关的被频繁请求的读回序列。当与这些被频繁请求的LBA序列相关的访问请求满足预定访问频率标准(例如,与访问的频率和/或新近有关的标准)时,在一个具体实施中,这些序列被记录为“热序列”并且被顺序重写到读高速缓存202的完整区域208中。例如,热序列检测模块可识别可由连续对应于不完全区域206的非连续物理块的LBA序列所识别的热序列。在识别该热序列时,热序列检测模块在完整区域208内顺序重写热序列,以允许随后顺序读取序列。当识别的热序列首次被写入完整区域208时,相应的数据块可被不完整区域206中的其他热数据删除或覆盖。
在图2的示例中,不完整区域206随机存储标记为A、Q、B、Z、Y、R和F的示例性热数据块。这些热数据块中的每一者可表示单个LBA或多个LBA(例如,部分扇区、完整扇区或连续存储的多个扇区)。当从读高速缓存202的不完整区域206读取时,这些热数据块可比在主存储区域204中存储相同数据的相关联数据块以快得多的速度被访问。然而,值得注意的是,块“A”随后是块“Q”的读取需要致动器臂从第一径向位置到第二径向位置进行搜索。这种搜索意味着数据访问的延迟。
如果热序列检测模块将序列“AQBQYFQR”识别为热序列(例如,因为读取相应LBA序列的请求满足一些预定访问频率标准),则读高速缓存管理模块(未示出)从不完整区域206读取所识别的热序列的数据、重新排列该数据并根据所请求的LBA序列顺序在完整区域208内写入该数据。例如,热序列214包括沿着单个数据轨道216连续布置的热数据块“ABZYFQR”,以便于随后顺序读取热序列214。在热序列214首次被写入完整区域208的时刻,不完整区域206中的相应物理数据块(例如,A、B、Z、Y、F、Q和R)可被用于覆盖和存储从主存储区域204复制的新的热数据。在另一个具体实施中,一旦热序列被写入完整区域208中,就在不完整区域206中擦除所识别的热序列的数据块。
在一个具体实施中,完整区域208专门存储热序列,并且不存储任何随机排列的数据。因此,完整区域208的所有或基本上所有的数据可通过顺序读取相应的热序列来访问。示例性热序列可包括例如用于发起被频繁使用的程序的可执行代码、引导顺序、被频繁播放的媒体文件的数据、被频繁访问的文字文档的数据等。
在某些情况下,将数据从不完整区域206移动到完整区域208需要跟踪和管理重复,诸如通过识别并允许重复或通过采取步骤来减轻或消除重复。在一个具体实施中,存储设备控制器采取行动以确保重复数据块不出现在不完整区域206和完整区域208中。在另一个具体实施中,存储设备控制器采取行动以确保重复数据块不出现(或适度至以有限量出现)在完整区域208内。
在一个具体实施中,热序列检测通过识别并消除重复的实例来执行,诸如通过将部分热序列而不是完整热序列写入完整区域208中来执行。例如,新识别的热序列220包括数据块“WJFZNB”。当该热序列首次被识别时,一些或所有的相应数据块被随机存储在不完整区域206中。(值得注意的是,新识别的热序列中的一些数据块可能已经被存储在完整区域208中先前识别的且顺序存储的热序列内)。
当准备将新识别的热序列(例如,WJFZNB)写入完整区域208中时,存储设备控制器确定新识别的热序列220中的任何数据块是否已经重复出现在完整区域208中的另一个热序列内。在所示的示例中,数据块Z和B都已经出现在顺序存储的热序列214内。因此,存储设备控制器选择将部分热序列218写入完整区域208中。部分热序列218省略块Z和B,但按相同的顺序依次包括新识别的热序列220的所有其他块(例如,部分序列218包括数据块“WJFN”的序列而不是完整热顺序220“WJFZNB”)。
当存储设备200接收到读取新识别的热序列220的后续请求时,存储设备控制器执行两个顺序读取:部分热序列218的读取和热序列214的部分222(虚线框所示)的另一读取,以检索数据块Z和B的数据。在存储器中,存储设备将读取的数据拼接在一起,以重建由主机请求的新识别的热序列220。然后将该重建的热序列提供给主机(未示出)。尽管热序列重建的该示例性实例需要执行两个顺序读取操作,但是热序列重建的其他实例可能需要执行三个或更多个顺序读取。
通过在完整区域208中选择性地写入一些完整热序列和一些部分热序列,如上所述,可在快速访问(例如,大量数据块仍然可被顺序读取)与容量(例如,以允许读高速缓存202最终存储更大量的用户数据)之间实现平衡。
尽管存储设备控制器在图2的示例中去重复,但是存储设备控制器在其他具体实施中可在一定程度上允许重复。下面参考图3讨论选择性读高速缓存块重复的一个示例。
图3示出了实现用于读高速缓存重排序和重复管理的其他技术的示例存储系统300。存储系统300包括至少一个磁盘310,其中存储空间被分配在读高速缓存302和主存储器304之间。读高速缓存302被划分为第一续区域和第二连续区域(在本文中被称为不完整区域306和完整区域308)。不完整区域306随机存储热数据,而不考虑可访问各种数据块的顺序。与此相反,完整区域308顺序存储所识别的热序列,以允许主机设备顺序读回每个序列。
图3的存储系统300可识别热数据并管理不完整区域306,如上面参考图2所述。然而,当将顺序热序列写入完整区域308中时,存储系统300选择性地允许重复的实例。在所示的示例中,完整区域308顺序存储两个热序列314和318。值得注意的是,图3的示例性热序列314和318各自存储一些共同数据块B和Z,这些数据块重复出现在热序列314和318中。
在一个具体实施中,存储设备控制器监测多个识别的热序列中的潜在重复,并且基于当前的重复统计资料来选择性地去重复或允许重复。当不允许重复时,存储设备控制器可将一个或多个部分热序列写入完整区域308中,同时有意地省略已经出现在另一个顺序存储的热序列中的热序列中的任何数据块,如上面参考图2所述。然而,在其他情况下,存储设备控制器评估当前的高速缓存重复统计资料,并允许将重复数据块物理地写入多个读高速缓存位置,如图3所示。
允许多个热序列(诸如序列314和318)中的重复增加了存储系统300可将热序列314和318中每一者的数据的数据读回主机的速度。这种增加的访问速度显著降低了HDD和SSHD设备之间的性能差距。然而,值得注意的是,高速缓存数据重复消耗了存储空间,并且存在对有效使用读高速缓存容量的兴趣可能超过对高速数据访问的兴趣的情况。在这些情况下,高速缓存管理模块可选择性地去重复(例如,通过写入部分加热序列)并且依赖于将多个顺序存储的热序列中的选择数据块链接在一起的映射,以重建所要求的特定热序列。
用于在顺序存储的热序列中处理数据块重复的规则可根据期望的性能统计和当前的磁盘使用在不同的具体实施中变化。在一些具体实施中,重复规则被设计为实现性能和读高速缓存容量之间的平衡。例如,可允许复制,直到读高速缓存302中的数据块重复的实例的总数达到预定最大值。例如,可在完整区域308内允许多达二十个重复的实例。当超过该阈值时,可将任何新识别的热序列选择性地去重复并将其顺序存储为部分热序列。在一些情况下,存储设备控制器可选择性地重写和去重复先前识别的且顺序存储的热序列,以释放读高速缓存302中的容量。在至少一个具体实施中,将限制设为完整区域308内的重复数据块的连续序列的最大长度。
在一个具体实施中,读高速缓存管理模块维护与热序列数据有关的读请求日志。使用该日志,读高速缓存管理模块随着时间的推移对顺序存储的热序列进行排级和重新排级。当先前识别的热序列不满足一个或多个必要的访问频率标准时,读高速缓存管理模块可选择用新识别的热序列覆盖先前识别的且顺序存储的热序列。在其他情况下,包括一个或多个顺序存储的热序列的存储空间可被擦除,或者仅用于覆盖新识别的热序列数据。在一个具体实施中,读高速缓存管理模块执行完整区域308的维护以在完整区域308中四处移动热序列数据,以便将可用存储空间重新定位在一起,从而对完整区域308进行碎片整理。
图4示出了实现动态读高速缓存管理技术的示例性存储系统400。存储系统400包括具有物理数据存储器的磁盘412,其中该存储器被分配在读高速缓存402和主存储器404之间。主存储器404用作用户数据的主存储区域,而读高速缓存402则存储被确定为满足某些“热数据”要求的数据的冗余副本。尽管未示出,但是读高速缓存402还可以被划分为两个或更多个子区域,例如用于存储“不完整的”(碎片)热数据块和“完整的”(顺序存储)加热序列的区域,如图2所示。
在一个具体实施中,磁盘412是过度配置的(overprovisioned)驱动器,并且读高速缓存402被静态分配以占据并非存储系统400的额定容量的一部分的过度配置的空间。“过度配置”(overprovisioning)是指,相比于销售或推广给客户或市场的存储容量,生产和运输更多实际存储容量的做法。因此,例如,如果将1TB的存储容量出售给客户端,则存储器供应商实际上多生产了10%的容量,因此在该设备中产生了1.1TB的存储容量。在一些情况下,读高速缓存402映射到该额外容量内的物理区域,并且设备控制器在任何时候都不接收主机发起的写入到读高速缓存402的用户数据写入。
在另一个具体实施中,读高速缓存402不包括在过度配置的驱动空间中,并且物理数据块可以在读高速缓存402和主存储器404之间来回地动态分配。例如,边界406是动态的,并且可由存储设备的高速缓存管理模块移动,以基于某些条件的满足来重新分配读高速缓存402和主存储器404之间的物理存储的分配。在实现这种动态读高速缓存大小调整技术的系统中,读高速缓存402可以是存储系统400的“额定”容量的一部分,并且主存储器404和读高速缓存402中的每个数据块可以被包括在主计算机(未示出)的LBA寻址方案中。换句话说,存储设备400可以偶尔地接收主机发起的针对位于读高速缓存402中的物理数据块的用户数据写入。
为了在上述“动态”存储分配具体实施中实现读高速缓存,存储设备控制器可以实施动态重映射和重定向方案,以引导后续的写入远离读高速缓存402一段时间,例如直到驱动器装满、需要使用读高速缓存402的存储空间作为用户数据的存储器而不是读缓存。
在这样的具体实施中,存储设备控制器将对应于读高速缓存402的物理数据块的主机LBA重映射到主存储器404中的物理数据块,并将所有后续的使用数据写入上述重映射位置和主存储器404的其他位置,直到主存储器404的容量利用满足一个或多个预定容量标准。例如,预定容量标准可以指定主存储404中剩余的可用(未使用)空间的分布或量。当主存储器404的容量利用满足一个或多个预定容量标准时,存储设备控制器将读高速缓存402的容量撤回(例如交出)到主存储器404。在这种情况下,可以重新分配以前用于读高速缓存402的数据块,以作为主存储器404的一部分用于用户数据的接收和存储。
存储设备控制器可以利用多个合适的映射和重定向方案来实现动态读高速缓存大小调整。在一个具体实施中,响应于确定满足预定容量标准,存储设备控制器将全部读高速缓存402撤回到主存储器404。在另一个具体实施中,存储设备控制器将读高速缓存402中的存储空间递增地撤回到主存储器404。例如,存储设备控制器可以响应于确定主存储器404的可用存储已经下降到第一阈值,将读高速缓存402的10%交到主存储器404,并响应于确定主存储器404的可用存储已经下降到第二阈值,将读高速缓存402的另外10%交到主存储器404。
在一个具体实施中,读高速缓存402通过与主存储器404共享边界的连续存储区域被递增地撤回到主存储器404。例如,将读高速缓存402的部分递增地撤回到主存储404可能需要在箭头408指示的方向上移动读高速缓存402和主存储器404之间的边界406。若随后主存储器404中附加存储空间变得可用,存储设备控制器还可能能够将主存储器404的空间重新分配给读高速缓存402,例如通过沿着箭头410指示的方向移动边界406。
在一个具体实施中,读高速缓存402的静态部分存在于过度配置的空间中(例如,物理块地址映射方案的主机逻辑块地址之外),并且读高速缓存402的动态部分作为驱动器额定容量的一部分动态存在。如上所述,如果确定存储设备满足预定容量标准,可将动态部分(例如,递增地或一次性全部地)撤回到主存储器404。
在其他的具体实施中,存储设备400除了读高速缓存402之外还包括写高速缓存(未示出),并且写高速缓存和读高速缓存之间的边界是动态的,可基于当前驱动器使用条件的满足由高速缓存管理模块移动。例如,如果存储设备400用作备份驱动器并且驱动器正在接收大量新数据,则存储设备控制器可以向读高速缓存分配比写高速缓存更大的存储空间。然而,如果存储设备400主要用于密集读取操作,则存储设备控制器可以向读高速缓存分配比写高速缓存更多的存储空间。写高速缓存和读高速缓存之间存储空间的分配可以以与上文中相关于图4的读高速缓存402和主存储器404之间的边界406所论述的方式类似的方式动态改变。
图5示出了用于对位于磁盘上的读高速缓存的重新排序和数据复制管理的示例性操作500。第一识别操作502识别包括随机存储在磁盘读高速缓存中的数据的新的热序列。在一个具体实施中,所识别的热序列由全部存储在读高速缓存中的数据组成,其中至少一些相对于主机设备请求对应的LBA序列的顺序被随机地(例如,在非连续数据块上)存储。例如,所识别的热序列可包括存储在两个或更多个不同的非相邻数据轨道上的数据块组。在一个具体实施中,根据预定义的访问频率标准来识别热序列,例如基于主机设备所请求的序列的频率或近因。
确定操作504确定所识别的新热序列是否包括任何LBA,这些LBA在读高速缓存的先前确定的并且顺序存储的热序列中重复出现。在一个具体实施中,读高速缓存包括包含随机存储的热数据(例如,32KB或更小的热数据块)的第一区域,以及包括基于读高速缓存的第一区域的读取来识别的顺序存储的热序列的第二区域缓存。如果所识别的新热序列的LBA没有在任何先前识别的顺序存储的热序列中重复出现,写操作508将所识别的新热序列顺序写入读高速缓存(例如,以便于顺序回读热序列的顺序)。在一个具体实施中,将新识别的热序列写入高速缓存的连续区域,该连续区域被保留用于顺序存储所识别的热序列。
另一方面,如果新识别的热序列中的一个或多个LBA确实出现在先前识别的顺序存储的热序列中,则另一确定操作506确定出现在读高速缓存中的LBA重复数量是否满足一个或更多个重复条件。例如,一个重复条件可指定读高速缓存中允许的复制实例的总数。如果读高速缓存中的当前LBA重复的总数相对于重复阈值较低,则满足复制条件并允许重复。在这种情况下,写入操作508以提供对序列的后续顺序读取的方式,将新的热序列写入具有重复数据块的读高速缓存。以这种方式允许重复能够实现通过单次顺序读取操作最快地读取所识别的热序列。
另一方面,如果读高速缓存中的LBA重复的总数很高,则确定操作508可确定不满足重复条件。在这种情况下,重复数据删除操作510删除新的热序列的重复数据以省略已经出现在先前识别的顺序存储的热序列中的数据块。重复数据删除操作510的结果是省略所识别的重复数据块的部分热序列,但是与新的热序列相同。写入操作512将删除重复数据的热序列顺序写入读高速缓存以便于顺序回读删除重复数据的热序列。在这种情况下,新识别的热序列的读取需要执行两个或更多个顺序读取和将读高速缓存中的不同位置的数据拼接在一起。
在一个具体实施中,读高速缓存包括存储顺序存储的热序列的第一连续区域,以及包括与读取序列无关的随机存储的热数据的第二连续区域。在一些具体实施中,存储空间可在读高速缓存和主存储器之间动态地分配,诸如基于当前位于主存储器中的数据的数量和/或分布。例如,主存储器和读高速缓存可以是共享可由存储设备控制器动态改变的边界的连续区域。在一些具体实施中,读高速缓存包括在过度配置的HDD设备的过度配置的空间中。在其他具体实施中,读高速缓存是驱动器的标称容量的一部分,并且存储设备控制器将主机发起的新数据写入远离读高速缓存,并在驱动器开始填满时引导至重新映射的主存储位置一段时间,诸如直到满足容量条件。
本文描述的具体实施可被实现为一个或多个计算机系统中的逻辑步骤。本文所描述的各种具体实施的逻辑操作被实现为:(1)在一个或多个计算机系统中执行的处理器实现的步骤的序列,以及(2)一个或多个计算机系统内的互连的机器或电路模块。具体实施是一个选择的问题,取决于计算机系统的性能要求。因此,构成本文所描述的具体实施的逻辑运算被不同地称为操作、步骤、对象或模块。此外,应当理解,逻辑操作可按任何顺序执行,除非在权利要求中另有明确说明,或者权利要求中规定必须按照特定顺序执行。
上述说明书、示例和数据提供了示例性具体实施的结构和应用的完整描述。因为在不脱离本发明的精神和范围的情况下可以进行许多替代的具体实施,本发明依据随后所附权利要求。此外,在不脱离所述权利要求的情况下,不同具体实施的结构特征可以组合在另一具体实施中。
Claims (17)
1.一种数据管理的方法,包括:
监测多个数据片段中的每一者的访问频率统计,所述多个数据片段存储于存储装置的主存储数据区域中;
响应于确定对所对应的数据片段的读取请求满足至少一个预定访问频率标准而将所述数据片段中的每一者从所述主存储数据区域复制至读高速缓存的第一连续区域;
按时间顺序从所述读高速缓存的所述第一连续区域读取一系列不连续的数据块,所述系列不连续的数据块存储包括所复制的数据分段的子集的数据序列,所述所复制的数据分段由所请求的逻辑块地址LBA序列识别;
确定对所述数据序列的读取请求满足所述预定访问频率标准中的至少一个;并且
响应于所述确定,将所述数据序列的数据重新写入所述读高速缓存的第二连续区域中的一连续系列的连续的数据块,以便于随后顺序读取所述数据序列,所述第二连续区域与所述第一连续区域是分离的。
2.根据权利要求1所述的方法,其中所述读高速缓存位于盘的外径区域中。
3.根据权利要求2所述的方法,其中
所述第一连续区域包括被识别为满足所述至少一个预定访问频率标准的顺序存储的数据序列;以及
所述第二连续区域包括随机存储的数据。
4.根据权利要求2所述的方法,其中所述第一连续区域比所述第二连续区域更靠近所述盘的外径。
5.根据权利要求1所述的方法,还包括:
确定所述数据序列包括还被包括在所述读高速缓存的另一顺序存储的数据序列中的重复数据,所述读高速缓存的另一顺序存储的数据序列被预先识别为满足所述至少一个预定访问频率标准;
评估所述读高速缓存中当前的重复数据量;以及
基于所述评估,将所述重复数据写入所述读高速缓存。
6.根据权利要求1所述的方法,还包括:
确定所述数据序列包括还被包括在所述读高速缓存的另一顺序存储的数据序列中的重复数据,所述读高速缓存的另一顺序存储的数据序列被预先识别为满足所述至少一个预定访问频率标准;
评估所述读高速缓存中当前的重复数据量;以及
基于所述评估,在重写所述数据序列时省略所述重复数据。
7.根据权利要求1所述的方法,还包括:
基于主存储器的当前容量利用率来动态地调整所述读高速缓存和所述主存储器之间的存储空间的分配。
8.根据权利要求1所述的方法,其中所述读高速缓存包括动态配置的物理空间。
9.根据权利要求8所述的方法,其中所述方法还包括使新的输入数据的写入远离所述读高速缓存,直到所述主存储数据区域的当前容量利用满足至少一个预定条件。
10.一种存储设备,包括:
包括读高速缓存的磁盘;以及
控制器,所述控制器被配置为:
监测多个数据片段中的每一者的访问频率统计,所述多个数据片段存储于存储装置的主存储数据区域中;
响应于确定对所对应的数据片段的读取请求满足至少一个预定访问频率标准而将所述数据片段中的每一者从所述主存储数据区域复制至读高速缓存的第一连续区域;
按时间顺序从所述读高速缓存的所述第一连续区域读取一系列不连续的数据块,所述系列不连续的数据块存储包括所复制的数据分段的子集的数据序列,所述所复制的数据分段由所请求的逻辑块地址LBA序列识别;
确定对所述数据序列的读取请求满足所述预定访问频率标准中的至少一个;以及
响应于所述确定,将所述数据序列的数据重新写入所述读高速缓存的第二连续区域中的一连续系列的连续的数据块,以便于随后顺序读取所述数据序列,所述第二连续区域与所述第一连续区域是分离的。
11.根据权利要求10所述的存储设备,其中
所述第一连续区域包括被识别为满足所述至少一个访问频率标准的顺序存储的数据序列;以及
所述第二连续区域包括随机存储的数据。
12.根据权利要求10所述的存储设备,其中所述控制器被进一步配置为:
确定所述要求的数据序列包括还被包括在所述读高速缓存的另一顺序存储的数据序列中的重复数据,所述读高速缓存的另一顺序存储的数据序列被预先识别为满足所述至少一个预定访问频率标准;
评估所述读高速缓存中当前的重复数据量;以及
基于所述评估,将所述重复数据写入所述读高速缓存。
13.根据权利要求10所述的存储设备,其中所述控制器被进一步配置为:
确定所述要求的数据序列包括还被包括在所述读高速缓存的另一顺序存储的数据序列中的重复数据,所述读高速缓存的另一顺序存储的数据序列被预先识别为满足所述至少一个预定访问频率标准;
评估所述读高速缓存中当前的重复数据量;以及
基于所述评估,在重写所述数据序列时省略所述重复数据。
14.根据权利要求10所述的存储设备,其中所述控制器被进一步配置为:
基于所述主存储数据区域的当前容量利用率来动态地调整所述读高速缓存和用户数据存储空间之间的存储空间的分配。
15.根据权利要求10所述的存储设备,其中所述读高速缓存包括动态配置的物理空间。
16.根据权利要求10所述的存储设备,其中所述存储设备控制器被进一步配置为使新的传入数据的写入远离所述读高速缓存,直到所述主存储数据区域的当前容量利用满足至少一个预定条件。
17.一种数据管理的方法,包括:
按时间顺序读取在存储设备的读高速缓存中存储数据序列的一系列不连续的数据块,所述数据序列由所请求的逻辑块地址LBA序列识别;
确定对所述数据序列的读取请求满足至少一个预定访问频率标准;
响应于所述确定,识别所述数据序列中的重复数据,所述重复数据也包含在所述读高速缓存的另一个顺序存储的数据序列中,所述另一个顺序存储的数据序列被预先识别为满足所述至少一个预定访问频率标准;以及
响应于所述识别,将所述数据序列的数据重新写入所述读高速缓存的一系列连续的数据块,以便于随后顺序读取所述数据序列,所述数据序列的重新写入数据省略所述重复数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/185,497 | 2016-06-17 | ||
US15/185,497 US10037149B2 (en) | 2016-06-17 | 2016-06-17 | Read cache management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107526689A CN107526689A (zh) | 2017-12-29 |
CN107526689B true CN107526689B (zh) | 2024-01-16 |
Family
ID=60659534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710463348.8A Active CN107526689B (zh) | 2016-06-17 | 2017-06-19 | 读高速缓存管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10037149B2 (zh) |
KR (1) | KR102357203B1 (zh) |
CN (1) | CN107526689B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI571745B (zh) * | 2016-01-26 | 2017-02-21 | 鴻海精密工業股份有限公司 | 緩存管理方法及使用該方法的電子裝置 |
CN108519858B (zh) * | 2018-03-22 | 2021-06-08 | 雷科防务(西安)控制技术研究院有限公司 | 存储芯片硬件命中方法 |
JP2019169218A (ja) * | 2018-03-22 | 2019-10-03 | 株式会社東芝 | 磁気ディスク装置 |
CN108829343B (zh) * | 2018-05-10 | 2020-08-04 | 中国科学院软件研究所 | 一种基于人工智能的缓存优化方法 |
US11330042B2 (en) * | 2018-05-17 | 2022-05-10 | International Business Machines Corporation | Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers |
US11221886B2 (en) | 2018-05-17 | 2022-01-11 | International Business Machines Corporation | Optimizing dynamical resource allocations for cache-friendly workloads in disaggregated data centers |
US11275684B1 (en) * | 2020-09-15 | 2022-03-15 | Seagate Technology Llc | Media read cache |
CN114442911B (zh) * | 2020-11-06 | 2024-03-08 | 戴尔产品有限公司 | 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法 |
KR20220073017A (ko) * | 2020-11-26 | 2022-06-03 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN113010454A (zh) * | 2021-02-09 | 2021-06-22 | Oppo广东移动通信有限公司 | 数据读写方法、装置、终端及存储介质 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0727745A1 (en) * | 1995-02-20 | 1996-08-21 | Hitachi, Ltd. | Memory control apparatus and its control method |
CN1783034A (zh) * | 2004-12-02 | 2006-06-07 | 富士通株式会社 | 存储系统及其控制方法和其程序 |
CN1996464A (zh) * | 2006-01-04 | 2007-07-11 | 日立环球储存科技荷兰有限公司 | 地址分配方法、磁盘驱动器和数据写入方法 |
CN101606167A (zh) * | 2007-02-08 | 2009-12-16 | 西尔弗布鲁克研究股份有限公司 | x和y坐标数据被分成每个标记的相应半部的包含标记的编码图案 |
US7822939B1 (en) * | 2007-09-25 | 2010-10-26 | Emc Corporation | Data de-duplication using thin provisioning |
CN102096639A (zh) * | 2009-12-15 | 2011-06-15 | 英特尔公司 | 用于修剪在非易失性闪速介质上的数据的方法 |
CN102298506A (zh) * | 2010-06-24 | 2011-12-28 | 国际商业机器公司 | 存储系统和用于实现存储系统的方法 |
WO2013105960A1 (en) * | 2012-01-12 | 2013-07-18 | Fusion-Io, Inc. | Systems and methods for managing cache admission |
CN103401665A (zh) * | 2013-06-28 | 2013-11-20 | 国家超级计算深圳中心(深圳云计算中心) | 集群存储系统中重传超时计时器的优化方法及装置 |
CN103500161A (zh) * | 2012-04-23 | 2014-01-08 | 国际商业机器公司 | 用于通过指定虚拟地址在重复删除系统中保存冗余的方法和系统 |
CN103562843A (zh) * | 2011-05-23 | 2014-02-05 | 国际商业机器公司 | 在具有多个高速缓存的存储系统中高速缓存数据 |
CN103917962A (zh) * | 2011-11-18 | 2014-07-09 | 国际商业机器公司 | 读取存储在存储系统上的文件 |
CN104050094A (zh) * | 2013-03-11 | 2014-09-17 | Lsi公司 | 管理高速缓存存储区的系统、方法和计算机可读介质 |
CN104144194A (zh) * | 2013-05-10 | 2014-11-12 | 中国移动通信集团公司 | 云存储系统的数据处理方法及装置 |
CN104145252A (zh) * | 2012-03-05 | 2014-11-12 | 国际商业机器公司 | 两级高速缓存系统中的自适应高速缓存提升 |
CN104240732A (zh) * | 2013-06-07 | 2014-12-24 | 杭州海康威视数字技术股份有限公司 | 光盘写入方法及装置 |
CN104425039A (zh) * | 2013-09-10 | 2015-03-18 | Lsi公司 | 用于改进的固态介质顺序读的动态映射预取 |
CN104536904A (zh) * | 2014-12-29 | 2015-04-22 | 杭州华为数字技术有限公司 | 一种数据管理的方法、设备与系统 |
KR101575258B1 (ko) * | 2014-07-24 | 2015-12-07 | 현대자동차 주식회사 | 차량 데이터 제어 방법 및 그 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7120832B2 (en) * | 2001-09-27 | 2006-10-10 | Hewlett-Packard Development Company, L.P. | Storage device performance monitor |
US8489817B2 (en) * | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
US8504774B2 (en) | 2010-10-13 | 2013-08-06 | Microsoft Corporation | Dynamic cache configuration using separate read and write caches |
US8886911B2 (en) * | 2011-05-31 | 2014-11-11 | Micron Technology, Inc. | Dynamic memory cache size adjustment in a memory device |
US9478249B2 (en) * | 2013-08-30 | 2016-10-25 | Seagate Technology Llc | Cache data management for program execution |
-
2016
- 2016-06-17 US US15/185,497 patent/US10037149B2/en active Active
-
2017
- 2017-06-19 KR KR1020170077377A patent/KR102357203B1/ko active IP Right Grant
- 2017-06-19 CN CN201710463348.8A patent/CN107526689B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0727745A1 (en) * | 1995-02-20 | 1996-08-21 | Hitachi, Ltd. | Memory control apparatus and its control method |
CN1783034A (zh) * | 2004-12-02 | 2006-06-07 | 富士通株式会社 | 存储系统及其控制方法和其程序 |
CN1996464A (zh) * | 2006-01-04 | 2007-07-11 | 日立环球储存科技荷兰有限公司 | 地址分配方法、磁盘驱动器和数据写入方法 |
CN101606167A (zh) * | 2007-02-08 | 2009-12-16 | 西尔弗布鲁克研究股份有限公司 | x和y坐标数据被分成每个标记的相应半部的包含标记的编码图案 |
CN101636709A (zh) * | 2007-02-08 | 2010-01-27 | 西尔弗布鲁克研究股份有限公司 | 包含复制坐标数据和非复制坐标数据的编码图案 |
US7822939B1 (en) * | 2007-09-25 | 2010-10-26 | Emc Corporation | Data de-duplication using thin provisioning |
CN102096639A (zh) * | 2009-12-15 | 2011-06-15 | 英特尔公司 | 用于修剪在非易失性闪速介质上的数据的方法 |
CN102298506A (zh) * | 2010-06-24 | 2011-12-28 | 国际商业机器公司 | 存储系统和用于实现存储系统的方法 |
CN103562843A (zh) * | 2011-05-23 | 2014-02-05 | 国际商业机器公司 | 在具有多个高速缓存的存储系统中高速缓存数据 |
CN103917962A (zh) * | 2011-11-18 | 2014-07-09 | 国际商业机器公司 | 读取存储在存储系统上的文件 |
WO2013105960A1 (en) * | 2012-01-12 | 2013-07-18 | Fusion-Io, Inc. | Systems and methods for managing cache admission |
CN104145252A (zh) * | 2012-03-05 | 2014-11-12 | 国际商业机器公司 | 两级高速缓存系统中的自适应高速缓存提升 |
CN103500161A (zh) * | 2012-04-23 | 2014-01-08 | 国际商业机器公司 | 用于通过指定虚拟地址在重复删除系统中保存冗余的方法和系统 |
CN104050094A (zh) * | 2013-03-11 | 2014-09-17 | Lsi公司 | 管理高速缓存存储区的系统、方法和计算机可读介质 |
CN104144194A (zh) * | 2013-05-10 | 2014-11-12 | 中国移动通信集团公司 | 云存储系统的数据处理方法及装置 |
CN104240732A (zh) * | 2013-06-07 | 2014-12-24 | 杭州海康威视数字技术股份有限公司 | 光盘写入方法及装置 |
CN103401665A (zh) * | 2013-06-28 | 2013-11-20 | 国家超级计算深圳中心(深圳云计算中心) | 集群存储系统中重传超时计时器的优化方法及装置 |
CN104425039A (zh) * | 2013-09-10 | 2015-03-18 | Lsi公司 | 用于改进的固态介质顺序读的动态映射预取 |
KR101575258B1 (ko) * | 2014-07-24 | 2015-12-07 | 현대자동차 주식회사 | 차량 데이터 제어 방법 및 그 장치 |
CN104536904A (zh) * | 2014-12-29 | 2015-04-22 | 杭州华为数字技术有限公司 | 一种数据管理的方法、设备与系统 |
Non-Patent Citations (1)
Title |
---|
嵌入式视频解码器运动补偿过程的数据布局优化;王恒伟;《中国优秀硕士学位论文全文数据库信息科技辑》;20120715(第07期);I136-547 * |
Also Published As
Publication number | Publication date |
---|---|
US10037149B2 (en) | 2018-07-31 |
KR20170142931A (ko) | 2017-12-28 |
CN107526689A (zh) | 2017-12-29 |
US20170364447A1 (en) | 2017-12-21 |
KR102357203B1 (ko) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526689B (zh) | 读高速缓存管理 | |
US9507538B2 (en) | File management system for devices containing solid-state media | |
US8756382B1 (en) | Method for file based shingled data storage utilizing multiple media types | |
US10176212B1 (en) | Top level tier management | |
KR101405729B1 (ko) | 동적 저장장치 계층화 방법 및 시스템 | |
JP6208156B2 (ja) | ハイブリッドストレージ集合体の複製 | |
US8327076B2 (en) | Systems and methods of tiered caching | |
US8019925B1 (en) | Methods and structure for dynamically mapped mass storage device | |
JP5623239B2 (ja) | 書込みレコードの重複を排除する記憶装置、及びその書込み方法 | |
US9804786B2 (en) | Sector translation layer for hard disk drives | |
US20070019315A1 (en) | Data-storage apparatus, data-storage method and recording/reproducing system | |
US10956071B2 (en) | Container key value store for data storage devices | |
US20140281186A1 (en) | Dynamic granule-based intermediate storage | |
US10152236B2 (en) | Hybrid data storage device with partitioned local memory | |
US10394493B2 (en) | Managing shingled magnetic recording (SMR) zones in a hybrid storage device | |
US20100070733A1 (en) | System and method of allocating memory locations | |
KR20140040870A (ko) | 계층화된 비휘발성 스토리지를 위한 시스템 및 방법 | |
KR20130083356A (ko) | 메타데이터 지속성을 위한 방법 | |
US20140281185A1 (en) | Staging sorted data in intermediate storage | |
US10725970B2 (en) | Block storage device with optional deduplication | |
US10268386B2 (en) | Data storage device including temporary storage locations | |
US11275684B1 (en) | Media read cache | |
US9236066B1 (en) | Atomic write-in-place for hard disk drives | |
JP6285762B2 (ja) | エラー訂正コードの制御方法および大容量ストレージ | |
Suk et al. | Performance analysis of nand flash-based ssd for designing a hybrid filesystem |
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 |