CN107148622A - 智能闪存高速缓存记录器 - Google Patents
智能闪存高速缓存记录器 Download PDFInfo
- Publication number
- CN107148622A CN107148622A CN201580059907.8A CN201580059907A CN107148622A CN 107148622 A CN107148622 A CN 107148622A CN 201580059907 A CN201580059907 A CN 201580059907A CN 107148622 A CN107148622 A CN 107148622A
- Authority
- CN
- China
- Prior art keywords
- volatile memory
- memory devices
- storage
- cache
- data block
- 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
Links
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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
-
- 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
- G06F2212/1024—Latency reduction
-
- 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/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本文的技术是用于链接非易失性存储设备以实现高可用性。一种方法涉及存储服务器接收在第一非易失性存储器设备中存储数据块的写入请求。存储服务器包括高速缓存存储在主存储装置上的数据块的多个非易失性存储器设备。这多个非易失性存储器设备包括第一非易失性存储器设备。存储服务器维护驻留在这多个非易失性存储器设备中的数据块的高速缓存索引。基于一个或多个标准,存储服务器将该写入请求重新路由到这多个非易失性存储器设备中的第二非易失性存储器设备,并将第二非易失性存储器设备的标识符存储在高速缓存索引中。
Description
技术领域
实施例一般而言涉及用于持久地高速缓存数据的技术。包括使用跨非易失性存储器设备(诸如闪存模块)地链接以实现高可用性的具体技术。
背景技术
混合驱动器组合固态驱动器(SSD)和硬盘驱动器(HDD)以实现可以吸收需求尖峰(spike)而不显著增加存储成本的存储设备。通常,SSD和HDD紧密耦合以实现无缝统一的存储设备。
多个混合驱动器不知道彼此,并且不协作来实现负载平衡。照此,混合驱动器内饱和(saturated)的SSD会变成瓶颈。该瓶颈可以使得存储管理器将存储活动重新路由到诸如联合复制品(federated replica)之类的远程设备,这可以涉及高延迟联网并有可能使得该瓶颈以级联方式扩散。
此外,由于混合驱动器内的SSD变得或多或少地临时饱和,存储管理器也会过早地使混合驱动器停止服务。这会造成诸如重构(resilvering)或其它重新平衡之类的附加补救活动(remedial action),该补救活动是带宽密集的、耗时的,甚至更有可能造成级联瓶颈。
附图说明
在附图的图中以示例而非限制的方式示出了本发明的实施例,附图中相似的标号指代相似的元件并且其中:
图1是示出根据各种实施例的在其中可以实现本文描述的某些技术的示例存储系统的逻辑框图。
图2示出根据实施例的用于将写入请求转移到非易失性存储器的示例过程。
图3是示出根据各种实施例的在其中可以实现本文描述的某些技术的示例存储系统的逻辑框图。
图4是示出根据各种实施例的在其中可以实现本文描述的某些技术的示例存储服务器的逻辑框图。
图5是示出适于实现本文描述的方法和特征的计算机系统的一个实施例的框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的透彻理解。然而,将明显的是,可以在没有这些具体细节的情况下实践本发明。在其它实例中,以框图的形式示出众所周知的结构和设备,以免不必要地模糊本发明。
本文根据以下大纲描述实施例:
1.0 总体概述
2.0 智能闪存高速缓存记录器
3.0 闪存高速缓存记录器过程
4.0 未对齐的高速缓存
5.0 跟踪转移的高速缓存索引
5.1 被链接的高速缓存
5.2 跟随链或解开链
5.3 元数据转移
5.4 引导(bootstrap)高速缓存索引
6.0 硬件概述
7.0 扩展和替代方案
总体概述
本文描述了用于链接非易失性存储设备以实现高可用性的技术。在实施例中,存储服务器接收要保存数据块的写入请求。存储服务器选择多个非易失性存储设备之一来将数据块高速缓存其中。如果所选择的非易失性存储设备不能及时处理写入请求,则存储服务器选择替代的非易失性存储设备来重新路由写入请求到该替代的非易失性存储设备。存储服务器还维护被高速缓存在非易失性存储设备中的数据块的高速缓存索引。当存储服务器将数据块写入替代的设备时,存储服务器将具有复合键的新索引条目插入高速缓存索引,其中该复合键至少具有存储设备标识符和存储偏移量。新条目的值至少具有非易失性存储设备的标识符、非易失性存储器偏移量,以及指示相关联的数据块是否被转移到了替代的非易失性存储设备的标志。存储服务器引用高速缓存索引来确定哪个非易失性存储设备记录了该相关联的数据块的最近写入。数据块可以被重复地转移,使得数据块的多个版本被配置为跨越多个非易失性存储设备的链中的环节(link)。
2.0智能闪存高速缓存记录器
图1示出了在其中可以实践本文描述的技术的示例存储系统100的框图,该系统将写入请求从饱和的或以其它方式临时不可用的非易失性存储器设备转移到就绪的非易失性存储器设备。存储系统100包括存储服务器110和主存储装置160。
主存储装置160是以固定尺寸(诸如64千字节)的逻辑数据块存储数据的块存储设备。主存储装置160可以是诸如盘驱动器或带驱动器之类的机械存储装置。主存储装置160的记录介质可以是磁性的或光学的。
主存储装置160可以经共享背板(诸如主板或服务器机架)或者通过光缆或磁缆(诸如InfiniBand、光纤通道)或其它小型计算机系统接口(SCSI)连接到存储服务器110。主存储装置160可以具有可承受的硬件和高存储容量的特点,可能使用可压声迹(squeezetrack)或叠瓦式磁记录(shingled magnetic recording)来实现主存储装置160。与集成电路系统相比,由于寻道时间或旋转延迟,主存储装置160还具有高延迟的特点。
存储服务器110可以是诸如刀片的机架式服务器、个人计算机、存储器件(appliance)或控制块存储设备的其它计算机。存储服务器110具有包括多个非易失性存储器设备的非易失性存储器设备120。非易失性存储器设备120即使在电力中断时也持久地存储和保留数据。与机械存储装置相比,非易失性存储器设备120在没有机械运动的情况下操作,并且可以具有低延迟的特点。
为了技术成熟度、低成本和商品可用性,每个非易失性存储器设备120将包括浮动栅极闪存存储器,但是其它非易失性存储器技术也是足够的。例如,为了高持久性、低功率、快速写入和耐辐射性,非易失性存储器设备120中的任何非易失性存储器设备可以是铁电(ferroelectric)随机存取存储器(RAM)。为了高的密度,非易失性存储器设备120中的任何非易失性存储器设备可以是磁阻RAM、相变RAM或千足虫(millipede)存储器。
由于非易失性存储设备120的低延迟,存储服务器110操作每个非易失性存储设备120作为存储在主存储装置160上的数据块的高速缓存。照此,当存储服务器110处理存储请求时,可以涉及非易失性存储设备120。
在操作中,存储服务器110接收写入请求170,其中该写入请求170承载要保存的数据块175。写入请求170可以源自虚拟存储管理器或数据库服务器。写入请求170可以通过通信网络被输送到存储服务器110,或者源自存储服务器110内的独立进程。
虽然数据块175旨在记录在主存储装置160中,但是存储服务器110具有高速缓存管理软件,该高速缓存管理软件通过将数据块175记录在非易失性存储器设备120中的任何非易失性存储器设备中来履行写入请求170。存储服务器110对非易失性存储器设备120的使用使得即使在需求尖峰期间也有低延迟。最终,存储服务器110可以稍后将数据块175记录到主存储装置160。存储服务器110对非易失性存储器设备120的使用还使得能够在将数据块175记录在主存储装置160上之前重复更新要合并(coalesce)的数据块175。
虽然非易失性存储器设备120被示为仅具有第一非易失性存储器设备130和第二非易失性存储器设备140,但是非易失性存储器设备120可以具有更多的非易失性存储器设备。由于各种原因,存储服务器110可以通过将数据块175记录到非易失性存储器设备120中的特定一个中来履行写入请求170。例如,数据块175的先前版本可能已经被固定(pinned)或以其它方式驻留在第一非易失性存储器设备130中。可替代地,数据块175可能尚未被高速缓存,并且第一非易失性存储器设备130可能是非易失性存储器设备120中最不忙的或最空的。
由于各种原因,将数据块175写入第一非易失性存储器设备130的尝试可能是不成功的。例如,闪存存储器通常需要动态维护。第一非易失性存储器设备130可以独立地忙于执行擦除循环、坏块管理或读干扰避免。照此,对写入请求170的执行可能超时或以其它方式失败。第一非易失性存储器设备130可能被积压的需求压倒。存储服务器110可以具有几乎耗尽的缓冲池。可替代地并且由于其它原因,存储服务器110可以决定取消待第一非易失性存储器设备130处理的写入请求170。
无论什么原因,存储服务器110都主动地或者反应性地决定将数据块175写入第一非易失性存储器设备130是不可行的。存储服务器110通过将写入请求170重新路由到第二非易失性存储设备140来进行补偿。
存储服务器110负责跟踪其非易失性存储器设备120中的哪些非易失性存储器设备包含哪些数据块。为此,存储服务器110维护高速缓存索引150作为将虚拟块地址与非易失性存储器设备120中高速缓存这些块的特定设备相关联的数据结构。例如,高速缓存索引150可以包含用于由高速缓存索引150跟踪的每个数据块的设备标识符155。
例如,高速缓存索引150可以操作作为将主存储设备标识符和块地址映射到非易失性存储器设备标识符和存储器偏移量的散列表。当存储服务器110通过将写入请求发送到特定的非易失性存储器设备来转移写入请求时,存储服务器110至少将该特定的非易失性存储器设备的标识符和被写入的数据块的存储器偏移量存储到高速缓存索引150中。这使得存储服务器110能够将涉及这些被写入的数据块的任何后续存储请求路由到该特定的非易失性存储器设备。
3.0闪存高速缓存记录器过程
图2绘出了用于将写入请求转移到非易失性存储器的示例过程的流程图。为了说明的目的,联系图1来讨论图2。
步骤202在实时操作期间发生。在步骤202中,计算机接收写入请求。该请求承载要存储的至少一个数据块。例如,写入请求170可以经通信网络源自虚拟存储管理器或数据库服务器。写入请求170可以将诸如存储服务器110控制的盘驱动器或闪存模块之类的存储设备识别作为数据块175的预期存储目的地。可替代地,写入请求170可以承载块地址,其中存储系统可以将该块地址用作查找键以根据高速缓存索引150来确定存储设备。
在步骤204中,重新路由条件的标准可以被满足。例如,存储服务器110可以向存储设备(诸如写入请求170可以识别的以及存储服务器110控制的盘驱动器或闪存模块)发出写入请求170。该存储设备可能不能按时履行或根本不能履行写入请求170。存储服务器110反应性地检测这种问题并将其识别为满足重新路由标准。可替代地并且在不向存储设备发出写入请求170的情况下,存储服务器110可以主动地评估存储设备的健康状况或就绪状态,并确定该存储设备未就绪。例如,存储服务器110可以检测到存储设备上积压的需求正造成不可接受的延迟。存储服务器110将这种设备压力识别为满足重新路由标准。
在步骤206中,写入请求被重新路由到另一个非易失性存储器设备。例如,存储服务器110已经检测到重新路由标准被满足。存储服务器110选择第二非易失性存储器设备140作为用于存储数据块175的即时(immediate)目的地。存储服务器110将数据块175写入第二非易失性存储器设备140。
在步骤208中,在高速缓存索引中记录实际存储了这些数据块的非易失性存储器设备的标识符。例如,高速缓存索引150可以驻留在易失性RAM中。存储服务器110至少将第二非易失性存储器设备140的标识符和数据块175的块地址写入高速缓存索引150中。照此,高速缓存索引150维护存储在非易失性存储器设备120中的所有数据块的清单,并记录非易失性存储器设备120中的哪些非易失性存储器设备存储哪些数据块。在处理后续的存储命令(无论是读还是写)时,存储服务器110可以咨询高速缓存索引150,以确定非易失性存储器设备120中的哪些非易失性存储器设备(如果有的话)具有后续的存储命令所牵涉的数据块。
在将数据块175持久性地高速缓存到第二非易失性存储器设备140中之后,存储服务器110已经履行了其对写入请求170的即时责任,并且可以向写入请求170的发起者通知该请求已经被履行。如果数据块175最终属于存储服务器110控制的诸如主存储装置160之类的另一个存储设备,则存储服务器110可以把将数据块175写入主存储装置160推迟到对存储服务器110和主存储装置160方便的稍后的时间。即,在步骤208结束时,数据块175可能未像预期地那样存储在主存储装置160中,但是,由于跟踪数据块175的位置的高速缓存索引150,这些块被持久地存储在附近并且可公开访问,就好像它们被存储在主存储装置160中一样。
4.0未对齐的高速缓存
图3示出了对高速缓存行(cache line)的一小部分进行高速缓存的示例存储系统300的框图,在示例存储系统300中可以实践本文描述的技术。存储系统300可以是存储系统100的实现方式。存储系统300包括存储服务器310和主存储装置305。主存储装置305可以是主存储装置160的实现方式。
存储服务器310可以是存储服务器110的实现方式。存储服务器310包括闪存模块320,闪存模块320可以是非易失性存储器设备120之一的实现方式。闪存模块320包括回写高速缓存340,该回写高速缓存340对也可以驻留在主存储装置305中的数据块进行高速缓存。
回写高速缓存330被组织成高速缓存行,诸如高速缓存行340和345。高速缓存行是回写高速缓存330中的驻留(residency)和回收(eviction)的单元。例如,如果回写高速缓存330已满但需要存储更多数据,则回写高速缓存330回收高速缓存行以获得用于附加数据的空间。
当被高速缓存的数据反映该数据的最近写入时,该数据是有效的。当有效的被高速缓存的数据与主存储装置305的内容不匹配时(诸如当主存储装置305或者缺少该数据或者具有该数据的陈旧副本时),该有效的被高速缓存的数据是脏(dirty)的。与直写高速缓存不同,回写高速缓存340可以存储与驻留在主存储装置305中的内容不匹配的脏数据。例如,回写高速缓存340中的脏数据可以反映更近的更新或者可以是全新的数据。
通过最终将脏的被高速缓存的数据写入主存储装置305,存储服务器310确保主存储装置305具有与回写高速缓存330的最终一致性。允许回写高速缓存330存储脏数据减少了明显的写入延迟,因为写入可以在实际写入主存储装置305之前被确认为完成。
高速缓存行的尺寸与数据块的尺寸之间的对应关系取决于回写高速缓存330的实现方式。在这个示例中,每个高速缓存行的尺寸被确定为用于存储一个数据块及其附带的元数据。高速缓存行340包括数据块360和位图350。
虽然具有其数据块的高速缓存行是回写高速缓存330内的回收单元,但是回写高速缓存330可以处理数据块的一小部分的写入。例如,数据块360可以具有64千字节的数据,而写入请求可以涉及少得多的数据。数据块360可以由诸如有效页面370和无效页面380的4千字节的页面组成。
当被高速缓存的数据不代表实际数据时,该被高速缓存的数据是无效的。例如,如果数据被写入全部的高速缓存行340,则全部的高速缓存行340都是有效的。然而,如果数据仅被写入高速缓存行340的一半,则高速缓存行340的一部分可以是有效的,并且高速缓存行340的另一部分可以是无效的。
如果存储服务器310总是将数据块360从主存储装置305加载到高速缓存行340中,作为处理对高速缓存行340的任何部分的后续写入的前序,则高速缓存行340将总是具有有效数据,因为它总是具有数据块360的最新内容。
然而,如果数据块360的一小部分被写入高速缓存行340而没有首先将数据块360从主存储装置305加载到高速缓存行340中,则高速缓存行340变得不一致(incoherent)。照此,在高速缓存行340内,数据块360的被写入的部分将是有效的,并且在高速缓存行340内,数据块360的任何其它部分将是无效的。
高速缓存行340具有位图350,以跟踪数据块360的哪些部分在高速缓存行340内是有效的。例如,数据块360可以被划分为诸如有效页面370和无效页面380之类的页面。位图350的每一位指示数据块360内的页面的有效性或无效性。
存储服务器310可以在处理对数据块360的小部分写入之前,首先将数据块360从主存储装置305加载到回写高速缓存330中。例如,如果在写有效页面370的请求发生时数据块360不在回写高速缓存330中,则存储服务器310可以将数据块360从主存储装置305加载到高速缓存行340中,作为高速缓存有效页面370的前序。
然而,为了减少延迟,存储服务器310可以避免从主存储装置305加载数据块360,而是直接将有效页面370写入高速缓存行340,在位图350内将有效页面370标志为有效,并且在位图350内将数据块360的其它页面标志为无效。
此外,数据块370的每个页面可以被细分为512字节的扇区。因为数据块只有16页,所以位图350很小。然而,每个数据块有128个扇区,这可能需要太大的位图来指示扇区有效性。不是将对扇区有效性的指示集中在位图350中,而是无效扇区可以在其自身的内容中承载对无效性的指示。例如,无效扇区390填充有可以由重复的幻数或其它保留的位图案组成的毒药图案(poison pattern)395。
数据块360可以具有有效页面和无效页面的混合,并且在有效页面内,数据块360可以具有有效扇区和无效扇区(诸如有效扇区375和无效扇区390)的混合。在回写期间,存储服务器310不会用来自回写高速缓存330内的无效部分的内容来覆写主存储装置305内的有效部分。可以代替地专门处理将部分有效的数据块360写回到主存储装置305中的尝试。当将数据从回写高速缓存330写回到主存储器305时,存储服务器310可以跳过数据的无效部分。
存储系统300有时可以是不一致的,诸如当数据块360的不同版本驻留在主存储装置305和闪存模块320中时。当发生这种情况时,有可能数据块360的两个版本都不是完全有效的。例如,扇区375可以在闪存模块320中有效,但在主存储装置305中无效。同样地,扇区390可以在主存储装置305中有效,但在闪存模块320中无效。数据块360的两个版本都不是完全有效的,但是位图350和毒药图案395使存储系统300总是能够定位数据块360的有效的特定部分。
当闪存模块320和主存储装置305都没有数据块360的完全有效版本时,可能不可能通过在闪存模块320和主存储装置305之间执行单次数据传送来重新获得一致性。在这种条件下,存储系统300必须执行至少两次数据传送,包括在闪存模块320和主存储装置305之间每个方向上的一次传送。
例如,存储系统300可以将有效扇区375写入主存储装置305中。该写入会使得数据块360在主存储装置305内成为完全有效的。存储系统300然后可以从主存储装置305读数据块360并将取回的内容写入高速缓存行340中,由此使闪存模块320也具有数据块360的有效副本。通过由存储系统300执行的这两次传送,数据块360的内容在主存储装置305和闪存模块320中完全相同。因此,存储系统300已经重新获得了关于数据块360的一致性。
5.0跟踪转移的高速缓存索引
图4示出了在逻辑上链接非易失性存储设备以实现高可用性的示例存储服务器400的框图,在示例存储服务器400中可以实践本文描述的技术。存储服务器400可以是存储服务器110的实现方式。存储服务器400包括闪存410和闪存420。闪存模块410和闪存模块420中的每一个可以是非易失性存储器设备120之一的实现方式。虽然这个示例使用闪存模块,但是实施例可以代替地使用诸如本文已经讨论的那些的其它非易失性存储器技术。
闪存410和闪存420中的每一个可以存储数据块和关于这些数据块的元数据。例如,闪存模块420存储数据块445和与数据块445相关联的元数据440。元数据440包括设备标识符460、块地址470和页面位图475。设备标识符460包含主存储装置405的设备标识符的值。块地址470包含虚拟地、逻辑地或物理地识别主存储装置405内的数据块的存储偏移量471的值。如图4中所示,自设备标识符450和设备标识符460出现的箭头的方向指示参考间接(referential indirection)而不是依赖性。设备之间的依赖性也沿着这些箭头发生,但是是在反方向上。
当数据块445驻留在闪存模块420中时,后续的读取和写入应当被路由到闪存模块420。为了便于这一点,存储服务器400维护指示哪些闪存模块存储哪些数据块的高速缓存索引490。为了最小化索引延迟,存储服务器400包括快速动态RAM(DRAM)480作为高速缓存索引490的容器。DRAM 480可以可选地是诸如静态RAM之类的非常快的RAM。
在第一次将数据块445存储在闪存模块420中时,存储服务器400写入将数据块445持久地将与主存储装置405相关联的元数据440。而且,在数据块445的初始写入期间,存储服务器400将索引条目AA插入高速缓存索引490中。索引条目AA充当指示数据块445的后续的读取和写入应当被指向闪存模块420的标志。
图4中为高速缓存索引490示出的细节本质上是逻辑的,并且不一定表示任何特定的数据结构。在实施例中,高速缓存490操作作为将键映射到值的散列表。键是复合的,使得它至少包括设备标识符和块地址。例如,读或写数据块的请求可以承载主存储装置405的设备标识符以及相关联的存储偏移量,存储服务器400可以将该设备标识符和存储偏移量用作从高速缓存索引490取回索引条目的键。索引条目的值具有高速缓存头,该高速缓存头指示哪个闪存模块的哪个高速缓存行正在高速缓存相关联的数据块。
当处理数据块445的后续的写入时,存储服务器400咨询高速缓存索引490,以确定该写入应当与对数据块445的其它写入合并并且被存储在闪存模块420内。然而,可能由于繁忙或不健康,闪存模块420可能不能及时处置后续的写入。存储服务器400检测这个问题,并通过专门处理以将该后续的写入转移离开闪存模块420而进行补偿。
这种专门处理通过在索引条目AA内将数据块445被转移标记为“是”来开始。存储服务器400选择替代的闪存模块(诸如闪存模块410)以接纳(accommodate)该写入。存储服务器400将传入的数据块写入闪存模块410中,该数据块示为数据块435。数据块435是数据块445的更近的版本。存储服务器400还将元数据430写入闪存模块410中,以持久地记载数据块435从闪存模块420被转移了。
最后,存储服务器400将索引条目BB插入高速缓存索引490中,以跟踪数据块435驻留在闪存模块410中。索引条目BB的键指示数据块445从哪里被转移了。照此,索引条目BB的复合键包括闪存模块420的设备标识符和数据块445的闪存偏移量。索引条目BB的高速缓存头指示数据块445被转移到了哪里。照此,索引条目BB的高速缓存头包括闪存模块410的设备标识符和数据块435的闪存偏移量。
5.1被链接的高速缓存
闪存410和闪存420被链接,因为闪存模块410内的设备标识符450指定闪存模块420。闪存模块链可以包括存储服务器400具有的闪存模块中的一些或全部,这些闪存模块可以包括比所示更多的闪存模块。照此,比所示更长的链是可能的。
此外,高速缓存行是转移的单元,而不是将整个闪存模块视为被转移的。照此,将数据块从闪存模块转移不会使该闪存模块停止服务。例如,即使数据块445从闪存模块420被转移,闪存模块420仍然可以继续处理对其它数据块的读和写,这可能是因为闪存模块420很快将就清除了积压或以其它方式重新获得多余的带宽。照此,闪存模块420可以包含被转移的一些数据块和未被转移并且在闪存模块420中保持活动的其它数据块的混合。
当闪存模块420被使得数据块445从闪存模块420被转移的需求尖峰短暂地压倒时,可以出现数据块的这种混合。在闪存模块420从需求尖峰复原的瞬间,闪存模块420可以恢复对其它数据块的处理请求。然而,在数据块445的转移停止之前可能会经过更多一些时间,尤其是如果撤销转移需要解开长链的话。
5.2跟随链或解开链
如上面所解释的,数据块的多个版本可以跨不同的高速缓存被链接。然而,也如上面所解释的,高速缓存行可以仅部分有效。当链的最近的环节仅具有部分数据块时,后续的读取应当跟随链以收集数据块的片段,然后将这些片段重新组装成可以返回给客户端的整个数据块。假设网络存储基础设施包括联合(federation)和复制(replication),那么,如果链中的闪存模块在跟随链的读取期间不响应,则该读取应当在本地失败,以使得重新发出到远程副本。
同样地,当存储服务器400决定停止数据块的转移时,存储服务器400应当解开链。解开包括跟随链以像关于读请求那样地收集和重新组装片段。然而,解开包括附加的处理。例如,对于解开,目标是撤销特定数据块的发生了的任何转移。
照此,存储服务器400将重新组装的数据块写回保持该数据块的最老版本的原始高速缓存行中。保持该数据块的其它版本的其它高速缓存行被立即回收或至少被无效,这包括移除高速缓存索引490中用于该数据块的除最老索引条目之外的所有索引条目。
解开链还需要从闪存模块410中丢弃数据块435和元数据430,并从高速缓存索引490移除索引条目BB。最后,解开链包括清除索引条目AA中将数据块445标志为已转移的“是”标记。
5.3元数据转移
虽然图4中的示例示出了数据块的转移,但是存储服务器400还可以转移元数据。即,数据块及其相关联的元数据是原子上分离的数据单元,这使得元数据和相关联的数据块的转移能够独立地发生。照此,虽然未示出,但是数据块及其相关联的元数据可以各自在高速缓存490内具有分离的索引条目。照此,可以转移元数据而不转移其相关联的数据块。同样地,元数据及其相关联的数据块可以被转移到分离的闪存模块。
5.4引导高速缓存索引
因为高速缓存索引490驻留在易失性DRAM 480中,所以当存储服务器400断电时,高速缓存索引490就会丢失。当存储服务器400重新启动时,它在接受存储请求之前重建高速缓存索引490。为了重建高速缓存索引490并且假设存储服务器400具有辨识被高速缓存的元数据的能力,存储服务器400扫描闪存410和闪存420以获取持久的元数据(诸如元数据430和元数据440)。
例如,存储服务器400可以扫描闪存模块410并发现元数据430。存储服务器400检测到元数据430具有指代不同闪存模块(其是闪存模块420)的设备标识符450。这使得存储服务器400辨识出闪存模块410依赖于闪存模块420。照此,存储服务器400可以决定在重新开始对闪存模块410的扫描之前代替地扫描和处理闪存模块420。
可替代地,如果存储服务器400未被配置为发现被高速缓存的元数据,则存储服务器400可以由充当被高速缓存的元数据的主目录的中央存储库来辅助。在任一种情况下,存储服务器400按根据转移链的依赖图的顺序引导存储服务器400的闪存模块。存储服务器400可以以深度优先搜索排序遍历闪存模块之间的相互依赖性,在此期间,存储服务器400重建高速缓存索引490并且如果需要就修补被高速缓存的陈旧的元数据。
6.0硬件概述
根据一个实施例,本文所描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括诸如被永久性地编程以执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)之类的数字电子设备,或者可以包括编程为按照固件、存储器、其它存储装置或者其组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制的编程组合以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或者结合硬连线和/或程序逻辑来实现这些技术的任何其它设备。
例如,图5是示出本发明的实施例可以在其上实现的计算机系统500的框图。计算机系统500包括总线502或者用于传送信息的其它通信机制,以及与总线502耦合以用于处理信息的硬件处理器504。硬件处理器504可以是例如通用微处理器。
计算机系统500还包括耦合到总线502以用于存储要由处理器504执行的指令和信息的主存储器506,主存储器506诸如是随机存取存储器(RAM)或其它动态存储设备。主存储器506还可以用于存储在要由处理器504执行的指令的执行期间的临时变量或其它中间信息。当存储在处理器504可访问的非暂时性存储介质中时,这种指令使计算机系统500成为被定制以执行指令中所指定的操作的专用机器。
计算机系统500还包括耦合到总线502的只读存储器(ROM)508或者其它静态存储设备,以用于存储用于处理器504的指令和静态信息。提供了诸如磁盘、光盘或固态驱动器之类的存储设备510,并且存储设备510被耦合到总线502以用于存储信息和指令。
计算机系统500可以经总线502耦合到诸如发光二极管(LED)显示器之类的显示器512,以用于向计算机用户显示信息。输入设备514(包括字母数字和其它键)耦合到总线502,以用于向处理器504传送信息和命令选择。另一种类型的用户输入设备是诸如鼠标、轨迹球或者游标方向键之类的游标控件516,用于向处理器504传送方向信息和命令选择并且用于控制显示器512上的游标运动。这种输入设备通常具有在两个轴(第一轴(例如,x)和第二轴(例如,y))中的两个自由度,这允许设备指定平面内的位置。
计算机系统500可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文所述的技术,这些定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统相组合,使计算机系统500成为专用机器或者将计算机系统500编程为专用机器。根据一个实施例,本文的技术由计算机系统500响应于执行包含在主存储器506中的一个或多个指令的一个或多个序列的处理器504而执行。这种指令可以从诸如存储设备510之类的另一存储介质读到主存储器506中。包含在主存储器506中的指令序列的执行使处理器504执行本文所述的过程步骤。在替代实施例中,硬连线的电路系统可以代替软件指令或者与其组合使用。
如在本文所使用的,术语“存储介质”指存储使机器以具体方式操作的数据和/或指令的任何非暂时性介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固态驱动器,诸如存储设备510。易失性介质包括动态存储器,诸如主存储器506。存储介质的常见形式包括例如,软盘、柔性盘、硬盘、固态驱动器、磁带、或者任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM,以及任何其它存储器芯片或盒带。
存储介质与传输介质不同但是可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线502的线。传输介质还可以采取声波或光波的形式,诸如在无线电波数据通信和红外线数据通信期间生成的那些。
各种形式的介质可以参与把一个或多个指令的一个或多个序列运载到处理器504以用于执行。例如,指令最初可以运载在远程计算机的磁盘或固态驱动器上。远程计算机可以把指令加载到其动态存储器中并且利用调制解调器经电话线发送指令。位于计算机系统500本地的调制解调器可以接收电话线上的数据并且使用红外线发送器把数据转换成红外线信号。红外线检测器可以接收在红外线信号中运载的数据,并且适当的电路系统可以把该数据放在总线502上。总线502把数据运载到主存储器506,处理器504从主存储器506取回并执行指令。由主存储器506接收的指令可以可选地在被处理器504执行之前或之后存储在存储设备510上。
计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供耦合到网络链路520的双向数据通信,其中网络链路520连接到本地网络522。例如,通信接口518可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器,或者提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口518可以是提供到兼容的局域网(LAN)的数据通信连接的LAN卡。也可以实现无线链路。在任何此类实现方式中,通信接口518都发送和接收运载表示各种类型信息的数字信号流的电信号、电磁信号或光学信号。
网络链路520通常通过一个或多个网络向其它数据设备提供数据通信。例如。网络链路520可以通过本地网络522提供到主计算机524或者到由互联网服务提供商(ISP)526操作的数据设备的连接。ISP 526继而通过现在通常称为“互联网”528的全球分组数据通信网络提供数据通信服务。本地网络522和互联网528二者都使用运载数字数据流的电信号、电磁信号或光学信号。通过各种网络的信号以及在网络链路520上并通过通信接口518的信号是传输介质的示例形式,其中这些信号把数字数据运载到计算机系统500或者运载来自计算机系统500的数字数据。
计算机系统500可以通过(一个或多个)网络、网络链路520和通信接口518发送消息和接收数据,这些消息和/或数据包括程序代码。在互联网示例中,服务器530可以通过互联网528、ISP 526、本地网络522和通信接口518传输用于应用程序的被请求的代码。
所接收的代码可以在其被接收时由处理器504执行,和/或存储在存储设备510或其它非易失性存储装置中,以供在稍后的时间执行。
如本文所使用的,术语“第一”、“第二”、“某些”和“特定”被用作命名约定,以彼此区分查询、计划、表示、步骤、对象、设备或其它项目,使得可以在这些项目被引入之后对这些项目进行引用。除非本文以另外的方式指定,否则这些术语的使用并不意味着被引用的项目的排序、定时或任何其它特性。
7.0扩展和替代方案
在前面的说明书中,本发明的实施例已经参考众多的具体细节进行了描述,这些细节随实现而不同。因此,对本发明是什么以及申请人预期本发明是什么的唯一且排他指示是从本申请发布的权利要求集合,这是以这种权利要求发布的具体形式,包括任何后续的改正。本文为包含在这种权利要求中的术语明确阐述的任何定义应当支配在权利要求中使用的这种术语的含义。因此,在权利要求中未明确记载的任何限制、元素、属性、特征、优点或属性均不得以任何方式限制这种权利要求的范围。相应地,说明书和附图应当从说明性而非限制性的意义上看待。
Claims (15)
1.一种方法,包括:
存储服务器接收存储数据块的写入请求,其中所述存储服务器包括高速缓存存储在主存储装置上的数据块的多个非易失性存储器设备,其中所述数据块驻留在所述多个非易失性存储器设备中的第一非易失性存储器设备中,其中所述存储服务器维护驻留在所述多个非易失性存储器设备中的数据块的高速缓存索引;以及
基于一个或多个标准,所述存储服务器:
将所述写入请求重新路由到所述多个非易失性存储器设备中的第二非易失性存储器设备;以及
将所述第二非易失性存储器设备的标识符存储在所述高速缓存索引中。
2.如权利要求1所述的方法,其中所述第二非易失性存储器设备包括回写高速缓存,其中所述回写高速缓存包括多个高速缓存行。
3.如权利要求2所述的方法,其中所述多个高速缓存行中的每个高速缓存行与指示所述每个高速缓存行的哪些部分有效的位图相关联。
4.如权利要求2-3中任一项所述的方法,其中驻留在所述多个高速缓存行之一的一部分中的具体图案指示所述部分是无效的。
5.如权利要求1-4中任一项所述的方法,其中基于一个或多个标准包括基于以下当中的至少一个:当所述存储服务器向第一非易失性存储器设备输送所述写入请求时所述写入请求超时,或者所述写入请求被取消。
6.如权利要求1-5中任一项所述的方法,其中所述第二非易失性存储器设备包括闪存存储器。
7.如权利要求1-6中任一项所述的方法,其中所述第二非易失性存储器设备包括以下之一:铁电随机存取存储器RAM、磁阻RAM、相变RAM或千足虫存储器。
8.如权利要求1-7中任一项所述的方法,还包括:基于与驻留在所述多个非易失性存储器设备中的被高速缓存的块相关联的元数据,生成所述高速缓存索引,其中所述元数据驻留在一个或多个存储设备上。
9.如权利要求8所述的方法,还包括按基于在所述元数据内编码的依赖性的顺序引导多个存储计算机。
10.如权利要求1-9中任一项所述的方法,其中基于一个或多个标准包括当所述存储服务器向第一非易失性存储器设备输送所述写入请求时所述写入请求超时。
11.如权利要求1-10中任一项所述的方法,还包括:
所述存储服务器接收在非易失性存储器设备中存储元数据的元数据写入请求;
基于所述一个或多个标准,所述存储服务器:
将所述元数据写入请求重新路由到所述多个非易失性存储器设备中的第三非易失性存储器设备;
将所述第三非易失性存储设备的标识符存储在所述高速缓存索引中。
12.一个或多个包括指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时执行如权利要求1-11中任一项所述的方法。
13.一种系统,包括:
主存储装置,所述主存储装置被配置为存储数据块;
多个非易失性存储器设备,所述多个非易失性存储器设备被配置为高速缓存存储在所述主存储装置上的数据块;以及
处理器,所述处理器连接到所述主存储装置和所述多个非易失性存储器设备,其中所述处理器被配置为:
接收存储数据块的写入请求,其中所述数据块驻留在所述多个非易失性存储器设备中的第一非易失性存储器设备中,其中所述处理器维护驻留在所述多个非易失性存储器设备中的数据块的高速缓存索引;以及
基于一个或多个标准,执行:
将所述写入请求重新路由到所述多个非易失性存储器设备中的第二非易失性存储器设备;以及
将所述第二非易失性存储器设备的标识符存储在所述高速缓存索引中。
14.如权利要求13所述的系统,其中所述处理器还被配置为:基于与驻留在所述多个非易失性存储器设备中的被高速缓存的块相关联的元数据,生成所述高速缓存索引,其中所述元数据驻留在一个或多个存储设备上。
15.如权利要求13-14中任一项所述的系统,其中所述处理器还被配置为:
接收在非易失性存储器设备中存储元数据的元数据写入请求;
基于所述一个或多个标准:
将所述元数据写入请求重新路由到所述多个非易失性存储器设备中的第三非易失性存储器设备;
将所述第三非易失性存储器设备的标识符存储在所述高速缓存索引中。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462054262P | 2014-09-23 | 2014-09-23 | |
US62/054,262 | 2014-09-23 | ||
US14/794,107 | 2015-07-08 | ||
US14/794,107 US10152412B2 (en) | 2014-09-23 | 2015-07-08 | Smart flash cache logger |
PCT/US2015/051700 WO2016049169A1 (en) | 2014-09-23 | 2015-09-23 | Smart flash cache logger |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107148622A true CN107148622A (zh) | 2017-09-08 |
CN107148622B CN107148622B (zh) | 2021-02-02 |
Family
ID=55525867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580059907.8A Active CN107148622B (zh) | 2014-09-23 | 2015-09-23 | 智能闪存高速缓存记录器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10152412B2 (zh) |
EP (1) | EP3198447B1 (zh) |
CN (1) | CN107148622B (zh) |
WO (1) | WO2016049169A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196795A (zh) * | 2017-12-30 | 2018-06-22 | 惠龙易通国际物流股份有限公司 | 一种数据存储方法、设备及计算机存储介质 |
CN113015967A (zh) * | 2018-10-05 | 2021-06-22 | 甲骨文国际公司 | 辅助存储服务器高速缓存 |
CN113467841A (zh) * | 2021-05-17 | 2021-10-01 | 翱捷智能科技(上海)有限公司 | 一种双操作系统设备及其快速休眠及唤醒的方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9936017B2 (en) * | 2015-10-12 | 2018-04-03 | Netapp, Inc. | Method for logical mirroring in a memory-based file system |
US10176099B2 (en) * | 2016-07-11 | 2019-01-08 | Intel Corporation | Using data pattern to mark cache lines as invalid |
US10474368B1 (en) | 2018-04-24 | 2019-11-12 | Western Digital Technologies, Inc | Fast read operation utilizing reduced storage of metadata in a distributed encoded storage system |
US10749958B2 (en) | 2018-04-24 | 2020-08-18 | Western Digital Technologies, Inc. | Reduced storage of metadata in a distributed encoded storage system |
US10216424B1 (en) | 2018-04-25 | 2019-02-26 | Western Digital Technologies, Inc. | Staging of write operations for container-based storage for sequential media |
CN115292266B (zh) * | 2022-05-30 | 2024-05-14 | 中国电子科技集团公司第五十二研究所 | 一种基于存储器的高可靠日志存储方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
CN101136906A (zh) * | 2006-08-31 | 2008-03-05 | 华为技术有限公司 | 移动IPv6中的通讯方法和移动IPv6通讯系统 |
US20100146239A1 (en) * | 2008-12-08 | 2010-06-10 | Infinite Memories Ltd. | Continuous address space in non-volatile-memories (nvm) using efficient embedded management of array deficiencies |
US20110066808A1 (en) * | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, System, and Method for Caching Data on a Solid-State Storage Device |
US20110099320A1 (en) * | 2009-10-23 | 2011-04-28 | International Business Machines Corporation | Solid State Drive with Adjustable Drive Life and Capacity |
CN102473092A (zh) * | 2009-07-24 | 2012-05-23 | 苹果公司 | 索引缓存树 |
CN102646079A (zh) * | 2012-04-23 | 2012-08-22 | 中国人民解放军国防科学技术大学 | 面向类Linux操作系统的磁盘数据保护方法 |
US8468293B2 (en) * | 2009-07-24 | 2013-06-18 | Apple Inc. | Restore index page |
US20130254487A1 (en) * | 2012-03-23 | 2013-09-26 | Hitachi, Ltd. | Method for accessing mirrored shared memories and storage subsystem using method for accessing mirrored shared memories |
US8615678B1 (en) * | 2008-06-30 | 2013-12-24 | Emc Corporation | Auto-adapting multi-tier cache |
CN103885892A (zh) * | 2012-12-20 | 2014-06-25 | 株式会社东芝 | 存储器控制器 |
US20140281132A1 (en) * | 2013-03-15 | 2014-09-18 | Marielle Bundukin | Method and system for ram cache coalescing |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5584002A (en) * | 1993-02-22 | 1996-12-10 | International Business Machines Corporation | Cache remapping using synonym classes |
US7506218B2 (en) * | 2006-08-18 | 2009-03-17 | International Business Machines Corporation | Timeout request scheduling using grouping and nonsynchronized processing to enhance performance |
US8467354B1 (en) * | 2008-08-27 | 2013-06-18 | Vocalocity, Inc. | Systems and methods for software-implemented telephony devices in a voice over internet protocol (VoIP) system |
US8621145B1 (en) | 2010-01-29 | 2013-12-31 | Netapp, Inc. | Concurrent content management and wear optimization for a non-volatile solid-state cache |
US9424195B2 (en) * | 2014-04-15 | 2016-08-23 | Advanced Micro Devices, Inc. | Dynamic remapping of cache lines |
-
2015
- 2015-07-08 US US14/794,107 patent/US10152412B2/en active Active
- 2015-09-23 WO PCT/US2015/051700 patent/WO2016049169A1/en active Application Filing
- 2015-09-23 CN CN201580059907.8A patent/CN107148622B/zh active Active
- 2015-09-23 EP EP15778454.7A patent/EP3198447B1/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4885680A (en) * | 1986-07-25 | 1989-12-05 | International Business Machines Corporation | Method and apparatus for efficiently handling temporarily cacheable data |
CN101136906A (zh) * | 2006-08-31 | 2008-03-05 | 华为技术有限公司 | 移动IPv6中的通讯方法和移动IPv6通讯系统 |
US8615678B1 (en) * | 2008-06-30 | 2013-12-24 | Emc Corporation | Auto-adapting multi-tier cache |
US20100146239A1 (en) * | 2008-12-08 | 2010-06-10 | Infinite Memories Ltd. | Continuous address space in non-volatile-memories (nvm) using efficient embedded management of array deficiencies |
CN102473092A (zh) * | 2009-07-24 | 2012-05-23 | 苹果公司 | 索引缓存树 |
US8468293B2 (en) * | 2009-07-24 | 2013-06-18 | Apple Inc. | Restore index page |
US20110066808A1 (en) * | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, System, and Method for Caching Data on a Solid-State Storage Device |
US20110099320A1 (en) * | 2009-10-23 | 2011-04-28 | International Business Machines Corporation | Solid State Drive with Adjustable Drive Life and Capacity |
US20130254487A1 (en) * | 2012-03-23 | 2013-09-26 | Hitachi, Ltd. | Method for accessing mirrored shared memories and storage subsystem using method for accessing mirrored shared memories |
CN102646079A (zh) * | 2012-04-23 | 2012-08-22 | 中国人民解放军国防科学技术大学 | 面向类Linux操作系统的磁盘数据保护方法 |
CN103885892A (zh) * | 2012-12-20 | 2014-06-25 | 株式会社东芝 | 存储器控制器 |
US20140281132A1 (en) * | 2013-03-15 | 2014-09-18 | Marielle Bundukin | Method and system for ram cache coalescing |
Non-Patent Citations (1)
Title |
---|
JESUNG KIM等: "A space-efficient flash translation layer for CompactFlash systems", << IEEE TRANSACTIONS ON CONSUMER ELECTRONICS>> * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108196795A (zh) * | 2017-12-30 | 2018-06-22 | 惠龙易通国际物流股份有限公司 | 一种数据存储方法、设备及计算机存储介质 |
CN108196795B (zh) * | 2017-12-30 | 2020-09-04 | 惠龙易通国际物流股份有限公司 | 一种数据存储方法、设备及计算机存储介质 |
CN113015967A (zh) * | 2018-10-05 | 2021-06-22 | 甲骨文国际公司 | 辅助存储服务器高速缓存 |
CN113015967B (zh) * | 2018-10-05 | 2024-04-26 | 甲骨文国际公司 | 辅助存储服务器高速缓存 |
CN113467841A (zh) * | 2021-05-17 | 2021-10-01 | 翱捷智能科技(上海)有限公司 | 一种双操作系统设备及其快速休眠及唤醒的方法 |
CN113467841B (zh) * | 2021-05-17 | 2024-06-11 | 翱捷智能科技(上海)有限公司 | 一种双操作系统设备及其快速休眠及唤醒的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016049169A1 (en) | 2016-03-31 |
EP3198447A1 (en) | 2017-08-02 |
CN107148622B (zh) | 2021-02-02 |
EP3198447B1 (en) | 2018-06-06 |
US10152412B2 (en) | 2018-12-11 |
US20160085681A1 (en) | 2016-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107148622A (zh) | 智能闪存高速缓存记录器 | |
US9692849B2 (en) | Method and node entity for enhancing content delivery network | |
US9569367B1 (en) | Cache eviction based on types of data stored in storage systems | |
CN103502926B (zh) | 基于扩展区的存储架构 | |
KR101852136B1 (ko) | 동적 샤딩을 위한 컴퓨터 구현 방법 | |
CN105339907B (zh) | 非易失性存储器系统中的同步镜像 | |
CN104025010B (zh) | 存储系统中的可变长度编码 | |
US8874850B1 (en) | Hierarchically tagged cache | |
CN102523279B (zh) | 一种分布式文件系统及其热点文件存取方法 | |
CN105843551A (zh) | 高性能和大容量储存重复删除中的数据完整性和损耗电阻 | |
US8171227B1 (en) | System and method for managing a flow based reply cache | |
US20160132396A1 (en) | Extent metadata update logging and checkpointing | |
CN107615252A (zh) | 横向扩展存储系统中的元数据管理 | |
US9772793B2 (en) | Data block movement offload to storage systems | |
US20080270878A1 (en) | Cache arrangement for improving raid i/o operations | |
CN101228523A (zh) | 用于高速缓存网络文件系统的系统和方法 | |
US9940241B1 (en) | Network system with cache offload service for flash storage | |
US9817865B2 (en) | Direct lookup for identifying duplicate data in a data deduplication system | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
US9384147B1 (en) | System and method for cache entry aging | |
US9608936B1 (en) | Network system with offload services for flash storage | |
CN104050103B (zh) | 一种用于数据恢复的缓存替换方法与系统 | |
CN110321301A (zh) | 一种数据处理的方法及装置 | |
US20130297969A1 (en) | File management method and apparatus for hybrid storage system | |
CN106933747A (zh) | 基于多流的数据存储系统和数据存储方法 |
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 |