CN109213439A - 用于减少写入延时的系统和方法 - Google Patents

用于减少写入延时的系统和方法 Download PDF

Info

Publication number
CN109213439A
CN109213439A CN201810678373.2A CN201810678373A CN109213439A CN 109213439 A CN109213439 A CN 109213439A CN 201810678373 A CN201810678373 A CN 201810678373A CN 109213439 A CN109213439 A CN 109213439A
Authority
CN
China
Prior art keywords
vfd
written
volume
buffer
operation mode
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
CN201810678373.2A
Other languages
English (en)
Other versions
CN109213439B (zh
Inventor
P·A·斯科特
R·D·格兰隆德
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.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of CN109213439A publication Critical patent/CN109213439A/zh
Application granted granted Critical
Publication of CN109213439B publication Critical patent/CN109213439B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • 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/14Details of searching files based on file metadata
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了具有减少的写入延时的计算机系统(100)以及用于在计算机系统中减少写入延时的方法。计算机系统(100)的处理电路(110)被配置为执行可在快速终止(FT)操作模式和正常或静止操作模式之间切换的卷过滤器驱动器(vfd(140))。当处理电路(110)接收将数据写入存储器(150)的输入/输出(IO)写入请求同时vfd(140)处于FT操作模式时,vfd(140)引起与所接收的IO写入请求相关联的元数据被写入存储器(150)的卷中,同时防止与所接收的IO写入请求相关联的实际数据被写入卷中,从而导致极快的FT模式操作。在文件被写入卷之后,vfd(140)进入静态操作模式,在此期间vfd(140)将所有IO写入请求传递给该卷。

Description

用于减少写入延时的系统和方法
背景
使用各种技术来减少写入延时(write latency),写入延时是将数据写入计算机系统的存储器所需的时间量。当数据写入存储器时,数据通常包含元数据和实际数据。元数据描述实际数据的属性。在典型的新文件数据写入操作期间,随着实际数据被写入存储器,元数据被在计算机系统上运行的文件系统(FS)处理(即,生成/写入、修改或删除)。元数据的这种处理需要在数据写入操作期间访问存储器,这增加了写入过程的延时,这对计算机系统的写入性能是不利的。
用于最小化FS延时的一种已知解决方案是实现通常称为一种类型的定制FS,该类型被设计为当计算机系统正在将数据写入存储器时最小化对处理元数据的需求。该解决方案有许多缺点,包括例如,实现定制FS的正确设计和可靠实施,需要了解存储硬件的复杂性和局限性,需要进行广泛的验证测试,以及需要用户学习另一个文件系统及其控制。
另一种已知的,但较少理解的解决方案(并且由于其使用模型缺陷通常未被使用)被称为“预写/写入”方法。利用预写入/写入方法,将要被捕获大小的文件用“虚拟(dummy)”数据预先写入,以预处理(即,写出)描述实际数据的元数据,然后将文件指针重新缠绕到开始写入虚拟数据的起始地址。然后相对于虚拟数据写入实际数据。如果要捕获的实际数据的持续时间非常短且已知大小,并且不需要立即开始写入,则从用户的角度来看预写/写入方法可能是可接受的。当然,对于文件写入,例如持续一个小时,那么最初的预写入预处理过程可能需要一个小时或更长的时间,这对于几乎所有现实的客户应用程序来说都是不可接受的。
预写/写入方法在称为CrystalDiskMark的存储性能基准测试工具中实现,该工具可用于测试底层存储硬件的性能,同时最小化由FS引起的性能降低。该工具的用户通常了解他们需要等待接收结果的时间长度,并且测试运行默认为相对较短的持续时间。对于由该工具执行的每个文件写入测试,在写入阶段向用户显示“准备”状态指示符,并且在写入阶段向用户显示“写入”状态指示符。这些指示符显示大致相同的时间量,因此用户会意识到工具预处理元数据所需的时间量。
在用于高端、高带宽应用程序的信号测量系统(例如测试和测量设备以及射电望远镜)中,FS必须能够以非常高的速度执行写入操作。这对无间隙或延时一致的应用程序(诸如流媒体应用程序(streaming application))尤其重要。通过实验,已经确定这种系统中的存储硬件可以足够快以满足这些需求,假设使用了最先进的硬件,但是该标准或非定制的FS(例如Windows NTFS)速度不够快(在更新元数据时在硬件上施加的额外性能开销太大),以防止硬件流水线因合理的低成本硬件组件和设计而出现溢出。
因此,需要一种运行非定制或标准FS的计算机系统,其减少用于高端、高带宽测量系统的计算机系统中的写入延时。还需要运行非定制或标准FS的计算机系统,该系统特别适合于减少无间隙写入延时或高度延时一致的应用程序(诸如流媒体应用程序)的写入延时。
附图说明
当结合附图阅读时,根据以下详细描述可最好地理解示例性实施方案。需要强调的是,各种特征不一定按比例绘制。事实上,为了讨论的清楚起见,尺寸可以任意增大或减小。在适用和实际的情况下,相同的附图标记表示相同的元件。
图1是根据代表性实施方案的具有减少的写入延时的计算机系统的框图。
图2是表示根据代表性实施方案的方法的流程图。
图3A和图3B描绘了根据代表性实施方案的方法的流程图,其中标准FS是WindowsNTFS,其是众所周知的和广泛使用的标准FS。
图4A和图4B描绘了根据代表性实施方案的方法的流程图,其中标准FS是WindowsNTFS,并且用于FT操作模式的文件初始化在内核模式下运行的VFD内完全执行。
图5是表示根据代表性实施方案的错误检测和恢复方法的流程图,用于检测和纠正将元数据写入卷时发生的错误。
具体实施方式
本文公开的代表性实施方案涉及具有减少的写入延时的计算机系统以及用于计算机系统中用于减少写入延时的方法。该计算机系统包括存储器和处理电路:处理电路被配置为执行能够在快速终止(FT)操作模式和正常“通过(pass through)”或静止操作模式之间切换的卷过滤器驱动器(VFD)。当VFD处于FT操作模式的同时处理电路接收输入/输出(IO)请求以将数据写入存储器时,作为“第一遍(first pass)”,VFD使与所接收的IO写入请求相关联的元数据被写入存储器的卷中,同时防止与所接收的IO写入请求相关联的实际数据被写入存储器的卷中。将文件写入卷后,VFD进入静态操作模式,在此期间VFD不会影响对卷的IO写入请求,只是将所有IO写入请求传递给卷,从而允许实际数据和与该文件相关联的任何滞后和附加的元数据更新被写入该卷中,作为“第二遍(second pass)”。
在下面的详细描述中,为了解释而非限制的目的,阐述了公开具体细节的示例性实施方案,以便提供对根据本教导的实施方案的透彻理解。然而,对于受益于本公开的本领域普通技术人员而言显而易见的是,根据本教导的与本文公开的具体细节不同的其他实施方案仍然在所附权利要求的范围内。此外,可以省略对众所周知的装置和方法的描述,以便不模糊示例性实施方案的描述。这些方法和装置显然在本教导的范围内。
本文使用的术语仅用于描述特定实施方案的目的,而不旨在限制。所定义的术语除了本教导的技术领域中通常理解和接受的定义术语的技术和科学含义之外。
如说明书和所附权利要求书中所使用的,除非上下文另有明确规定,否则术语“一”、“一个”和“该”包括单数和复数指代物。因此,例如,“设备”包括一个设备和多个设备。
如附图所示,可以使用相对术语来描述各个元件彼此之间的关系。除了附图中描述的方位之外,这些相对术语旨在包含设备和/或元件的不同方位。
应该理解,当元件被称为“连接到”或“耦合到”或“电耦合到”另一元件时,它可以直接连接或耦合,或者可以存在中间元件(intervening element)。
如本文使用的这些术语,术语“存储器”或“存储器设备”旨在表示非临时性计算机可读和可写存储介质,其能够存储计算机指令或计算机代码以由一个或更多处理器执行。存储器还可以存储各种类型的数据,这是本文所讨论的发明原理和概念的特别关注点。本文对“存储器”或“存储器设备”的引用应该被解释为一个或多个存储器或存储器设备。例如,存储器可以是同一计算机系统内的多个存储器。存储器还可以是分布在多个计算机系统或计算设备中的多个存储器。
本文使用的术语“处理器”包括能够执行计算机程序或可执行计算机指令的电子组件。本文对包括“处理器”的系统的引用应该被解释为具有一个或多个处理器或处理核心的系统。处理器可以例如是多核处理器。处理器还可以指单个计算机系统内的处理器集合或分布在多个计算机系统中的处理器集合。本文使用的术语“计算机”应该被解释为可能指的是单个计算机或计算设备或者计算机或计算设备的集合或网络,每个计算机或计算设备包括一个或多个处理器。计算机程序的指令可以由单个计算机或处理器执行,还可以由多个处理器执行,这些处理器可以在同一台计算机内或可以分布在多台计算机上。
如本文所使用的术语“标准FS”表示通常使用并理解为与特定(或多个)操作系统组合操作的非定制FS。例如,Microsoft Windows操作系统的当前实现默认为运行WindowsNT FS(以下称为“NTFS”),并且Microsoft正在增加运行称为弹性文件系统(ResilientFile System)(以下称为“作为“ReFS”)的FS的选项针对要求更高弹性和可靠性的用户。然而,一般而言,标准的、广泛使用的FS实施偏向于可靠且灵活的操作而不是最终性能。本文使用的术语“定制FS”表示定制设计用于解决例如在特定应用中使用的标准FS的缺点的FS,诸如本文描述的延时最小化和延时一致的操作。
图1示出了根据代表性实施方案的执行用于减少写入延时的方法的计算机系统100的框图。当计算机系统100或其中运行的应用程序或设备具有要写入存储器150的数据时,计算机系统100的操作系统(OS)120产生由OS的标准FS 130接收的写入命令120。标准FS可以是,例如NTFS或ReFS。标准FS 130然后发出包含要被写入存储器150的卷的实际数据和元数据的输入/输出(IO)请求。
OS 120具有能够从前述FT操作模式切换到前述正常或静止操作模式的卷过滤器驱动器(VFD)140,反之亦然。VFD 140在OS 120的内核中运行。如果VFD 140处于静止操作模式,则标准FS 130允许以正常方式将数据和元数据写入存储器150的卷中,即,在单次通过期间,当实际数据被写入存储器150时,元数据由标准FS 130以散布和间歇方式进行处理和写入。换言之,在静止操作模式中,VFD 140没有对存储器150的卷的IO写入请求产生影响。换言之,在静止操作模式中,VFD 140以“通过”(即静止)模式操作,使得OS 120、标准FS 130和存储器150完全正常工作,除了由于在“通过”模式中将VFD 140插入呼叫链中而造成的非常小的延时影响之外。
根据代表性实施方案,由处理电路110执行的应用程序或设备可以启动从静态操作模式到FT操作模式的切换。当VFD 140处于静止操作模式并且由处理电路110执行的应用程序指示VFD 140进入FT操作模式时,VFD 140退出静止操作模式并进入FT操作模式。FT操作模式特别适合于增强顺序写入应用程序的写入性能,诸如流媒体应用程序,其中数据在一段时间内被顺序捕获并写入存储器。当在FT操作模式中时,如果由VFD 140从标准FS 130所接收的IO写入请求包含元数据,则VFD 140使得元数据被写入存储器150的卷中,而如果由VFD 140从标准FS 130所接收的IO写入请求包含实际数据,则VFD 140不将实际数据写入该卷。下面参照代表性实施方案描述VFD 140区分包含元数据的IO写入请求和包含实际数据的IO写入请求的方式。在IO写入请求序列已被写入卷之后,VFD 140进入静态操作模式,其中VFD不影响对卷的IO写入请求。
根据优选实施方案,VFD 140被设计为优化非引导/非交换存储器卷的使用以用于单个写入流的最小延时性能。在这样的情况下,因为由处理电路110执行的应用程序完全掌握了存储器150的卷,所以完成其FT模式写入后,VFD 140的应用程序或写入器工作线程简单地命令VFD 140切换到静止操作模式。然而,对于多个应用程序及其写入流希望共享卷的情况(很可能是但不是严格意义上旨在提高平均性能而不是流卷(streaming volume)性能的应用程序),广为人知的软件同步技术可以是用于确保VFD 140被命令处于用于整体协调的多程序,多写入流需求的正确操作模式。
处理电路110包括被配置为以软件和/或固件的形式执行计算机指令或代码的一个或多个处理器(未示出)或处理核心(未示出)以执行VFD 140任务,这些任务是下面参照图2-图4B的流程图更详细地描述。这些指令被存储在存储器150中或未示出的一个或多个其他存储器设备中。处理电路110可以使用软件、固件、硬连线逻辑电路或其组合由例如一个或多个计算机处理器、现场可编程门阵列(FPGA)、应用专用集成电路(ASIC)或其组合实现。处理电路110可以由硬件、固件或软件体系结构的任何组合构成,并且可以包括其自己的存储器或存储器设备(例如,非易失性存储器),用于存储允许其执行各种功能的可执行软件/固件可执行代码。在一个实施方案中,处理电路可以包括例如执行OS 120的中央处理单元(CPU)。任何这样的存储器或存储设备构成非暂时性计算机可读和可写介质。
多种非瞬态计算机可读和可写介质适用于本发明原理和概念,包括例如固态存储设备、磁存储设备和光存储设备。例如,存储器设备可以通过任何数量、类型和组合的随机存取存储器(RAM)来实现,所述随机存取存储器(RAM)可以包括任何数量、类型和组合的计算机可读存储介质,诸如磁盘驱动器、非易失性固态诸如NAND、NOR和其他新型非易失性存储器(诸如相变或其他新型非易失性技术)、可写CD、可写DVD、可写通用串行总线(USB)驱动器等,其是非暂时性的(例如,与暂时传播信号相比)并且能够被配置为存储卷。
图2是表示根据代表性实施方案的方法的流程图。将参照图1中所示的计算机系统100来描述该方法,但是应该理解,该方法不限于由图1中所示的计算机系统100执行。使用由计算机系统100的处理电路110执行的VFD 140,接收或发起请求以进入FT操作模式,如框201所示。当在FT操作模式中时,VFD 140接收与文件相关联的IO写入请求以写入存储器150的卷,并确定所接收的IO写入请求是否包含元数据或实际数据,如框202所示。下面参照图3A和图4A中所示的代表性实施方案更详细地描述进行该确定的方式。
如果所接收的IO写入请求包含元数据,则VFD 140使元数据被写入存储器150的卷中,并且如果所接收的IO写请求包含实际数据,则VFD防止实际数据被写入卷,如框203所示。在文件已被写入卷之后,FT操作模式终止,并且VFD 140进入静止操作模式,其中VFD140将所有IO写请求传递给卷,从而允许将与文件相关联的实际数据写入卷中,如框204所示。另外,如下面将参照错误检测和校正以及图5更详细地描述的,如果没有将任何元数据写入卷中,则它将在静态操作模式期间被写入卷中,在该模式期间,VFD 140传递所有IO写入请求,而不管它们是否包含实际数据或元数据。
如下面将参照图3A-图4B更详细描述的,当由通过应用程序(图3A和3B)或通过写入器工作线程(图4A和4B)命令它执行时,VFD 140退出或终止FT操作模式并进入静止操作模式(框204)。由于VFD140的应用程序或写入器工作线程以非高速缓存模式写入,在所有标记的IO缓冲器已被写入卷之后,通过应用程序或通过写入器工作线程的FT操作模式的终止发生。额外的元数据可以在FT操作模式终止之后到达VFD 140,但是由于VFD 140静止,所以它将被简单地正常地传递到存储器150。如本文所使用的术语“标记的IO缓冲器”表示IO缓冲器,该IO缓冲器具有已由VFD 140的应用程序或写入器工作线程以预先选择的位序列写入的起始字节,随后由VFD 140检查以确定IO缓冲器是否包含元数据或实际数据,如将在下面参照图3A-图4B更详细描述的。
图3A和3B描绘了根据代表性实施方案的方法的流程图,其中标准FS 130是NTFS,如上所述,其是众所周知且广泛使用的标准FS。根据该代表性实施方案,OS 120是Microsoft Windows OS(以下称为“Windows OS”)。Windows OS与NTFS一起使得过滤器驱动程序能够被插入可以被修改以包括VFD 140的上述存储器卷。这使得Windows OS和NTFS非常适合于被修改以实现发明原理和概念,尽管其他标准FS,诸如ReFS,也适用于此目的。如上所述,FT操作模式可以由应用程序请求,或者它可以在被应用程序请求完全以内核模式运行FT操作模式之后由VFD 140发起。图3A和3B描绘了根据实施方案的当应用程序请求VFD140进入FT操作模式时的方法,而图4A和4B描绘了当VFD 140在被应用程序请求完全以内核模式运行FT操作模式之后发起FT操作模式时的方法。
应该理解,包括但不限于Linux和MacOS的许多其他操作系统可以被修改以实现本发明的基本操作,但可能不是以简单和优雅的方式。例如,它们的内核可能需要修改以添加本发明的操作,然后重新构建/编译,其复杂性在Windows下是不必要的。
参照图3A,如下所述,应用程序初始化VFD 140以在FT模式操作中操作。根据代表性实施方案,应用程序分配适当大尺寸的IO缓冲器以实现最大性能(例如,目前,这可以是多兆字节(MB)而不是更常见的多千字节(KB)),如框301所示。应用程序将预选标签位序列写入唯一且为VFD140已知的所分配的IO缓冲器的起始字节,如框302所示。如上所述,任何IO缓冲器具有已经用预选标签位序列写入的在本文中被称为“标签IO缓冲器”的起始字节。根据代表性实施方案,该预选标签位序列包括多个字节并且已知具有非常高的可能性是与NTFS元数据块的起始字节序列签名“不匹配(mismatch)”。用于该目的的预选标签位序列将基于正在实施VFD 140的FS来选择,并且对于不同的FS通常将不同。
也作为FT模式初始化过程的一部分,VFD 140分配大小等于或大于预选标签位序列的大小的比较缓冲器,并将预选标签位序列写入比较缓冲器,如框303所示。在FT模式初始化之后,在FT操作模式期间,应用程序通过OS 120的IO管理器(未示出)重复地将所分配的IO缓冲器的内容写入Windows NTFS,直到写入预期大小的文件,如框304所示。根据该代表性实施方案,这是在文件字节偏移量0处开始,使用由应用程序通过标准Win32 IO管理器应用程序接口(API)(诸如WriteFile())传送到NTFS的非缓存或直接IO请求。NTFS接收这些IO写入请求中的每一个,并且因为它们是非缓存的或直接IO请求,所以将它们直接传递给底层的卷功能驱动程序。VFD 140驻留在IO流水线的卷过滤器驱动器链中,因此接收来自NTFS的每个IO写入请求并检查IO缓冲器的内容以确定写入IO缓冲器的起始字节的位序列是否匹配写入比较缓冲器的预选标签位序列,如框305所示。如果是这样,则这意味着IO缓冲器的内容包含实际数据而不是元数据。因此,如果在框306处判定位序列匹配,则VFD140将IO完成确认发送回应用程序,而不将IO缓冲器的内容写入存储器150的底层硬件,如框307所示。当应用程序接收IO写入请求完成确认时,它增加文件字节偏移量并将下一个IO写入请求发送到NTFS,如框308所示,然后过程返回到框304,并以上述方式继续,参照框304-306。
如果VFD 140在框306处判定位序列不匹配,则这意味着IO缓冲器不是标记的IO缓冲器并且IO缓冲器的内容包含元数据。因此,如果在框306处判定位序列不匹配,则过程进行到图3B的框309,并且VFD 140将IO缓冲器的内容发送到底层卷,由此导致将元数据写入存储器的卷。
可以对上面参照图3A和图3B描述的代表性实施方案进行各种修改。根据代表性实施方案,如果目标是引导卷或交换卷,则不在框305和306进行确定。为了增加安全性和系统可靠性和性能,VFD 140优选地忽略访问引导卷和交换卷的尝试。因此,如果VFD 140检测到IO写入请求中包含的目标卷是引导卷或交换卷,则VFD 140忽略该IO写入请求,以使其直接进入存储器150的卷。优选地,尝试在VFD 140处于静止模式时,将FT模式启动为引导或交换卷。
根据代表性实施方案,对于用VFD140以静态模式“实际”写入用户数据的“第二遍”,应用程序可以创建“环形”或“无限”存储缓冲器操作模式通过在每次达到文件结束时将文件访问指针重置为存储器150的卷的当前文件的起始地址,同时仍保持已使用FT操作模式的预分配的文件的性能益处。这允许各种“保留历史记录”模式(有时称为“触发”模式)以记录远大于或长于所分配文件大小的数据流。该功能允许停止记录数据流,同时仍然能够后续访问许多以前的操作历史直至停止之前的文件大小,包括“无间隙”方式。
图4A和4B描绘了根据代表性实施方案的方法的流程图,其中标准FS 130是NTFS,并且FT操作模式的文件初始化完全在OS 120的内核空间内执行。为了最大FT模式性能,即给定文件大小的最短FT模式文件初始化时间,FT模式文件初始化完全在VFD 140内执行,如现在根据代表性实施方案所述。完全在内核空间内执行FT模式文件初始化消除写入的每个IO缓冲器的用户/内核空间调用转换,其增强整体FT模式写入性能。这与上面参照图3A和图3B描述的代表性实施方案形成对比,其中对写入的每个IO缓冲器执行用户/内核空间调用转换。
为了以最大性能开始FT模式初始化,应用程序向VFD 140发送请求,以完全在内核空间中执行FT模式初始化,如框401所示。用于此目的的初始化请求通常是输入输出控制(IOCtl)请求,并且通常包括卷名称、文件名称、要分配的IO缓冲器的大小以及所请求的文件大小。当VFD 140接收该请求时,VFD 140进入FT操作模式并启动写入器工作线程以执行文件初始化,如框402所示。写入器工作线程分配大小为大于或等于该请求中包含的IO缓冲器大小的IO缓冲器,并将预选标签位序列写入IO缓冲器的起始字节,如框403所示。为了进一步增加FT模式性能,超过由于每个IO缓冲器写入的上述消除用户/内核空间调用转换而实现的性能,写入器工作线程优选地分配IO缓冲器大小,该IO缓冲器大小是请求中包含的IO缓冲器大小的倍数(例如10倍),前提是这由Windows系统配置支持。
VFD 140的主线程分配比较缓冲器,该比较缓冲器足够大以保持前述的预选标签位序列,并将预选标签位序列写入比较缓冲器,如框404所示。VFD 140的写入器工作线程从文件偏移量0开始,通过IO管理器重复发送IO写入请求到NTFS以将IO缓冲器写入卷,直到写入预期大小的文件为止,如框405所示。这全部根据该实施方案在内核空间中完成。例如,作为简化实例,如果应用程序请求的文件大小为48MB(且卷至少包含那么多空闲空间),并且所分配的IO缓冲器大小为16MB(并且VFD写入器工作线程尚未分配一个增加的缓冲器大小),则该文件将被完全写入,使用同一个16MB标记的IO缓冲器,使用三个重复的WriteFile的序列。或者,应用程序可使用FS API查询存储器卷,以验证空间是可用的,直到卷上的整个剩余空间,并重复性地重写该IO缓冲器(加上可能还有最后的剩余大小),直到FT模式预分配在“第二遍”实际数据写入中使用的整个剩余存储器卷内容,如典型地在应用程序事先不知道将写入多大的实际数据文件时那样完成。在后一种情况下,随后是由应用程序在最后截断文件大小,以便与实际写入的数据匹配(如果适用)。
当IO管理器接收每个IO写入请求时,它通过NTFS将IO写入请求传递给VFD 140的主线程,如框406所示。VFD 140的主线程接收IO写入请求和元数据并检查通过的IO缓冲器的起始字节,以确定写入IO缓冲器的起始字节的位序列是否匹配在框404处存储在比较缓冲器中的主线程的预选签位序列,如框407所示。如果是这样,则这意味着IO缓冲器的内容包含实际数据而不是元数据。因此,如果在框408处判定位序列匹配,则主线程将IO完成确认发送回写入器工作线程,而不将所传递的IO缓冲器的内容写入存储器150的卷,如框409所示。当写入器工作线程接收IO写入请求完成确认时,它递增文件字节偏移量并将下一个IO写入请求发送到IO管理器和NTFS,如框410所示,然后过程以上面参照框406-408描述的方式返回到框406并继续。
如果VFD 140的主线程在框408处判定位序列不匹配,则这意味着所传递的IO缓冲器的内容包含元数据,并且该过程前进到图4B的框411,在该框处,VFD 140的主线程将IO写入请求发送到底层卷,这导致元数据被写入存储器150的卷。
从上面提供的描述应当理解,通过使大量元数据创建(例如,文件范围)发生在非常快速的“预写入”、“第一遍”文件中,因此允许“正常写入”、“第二遍”减少FS元数据访问的负担,VFD 140增加“延时一致”(即“流(streaming)”)性能和平均性能两者。对于最适合用于本发明原理和概念的非常高性能(当前通常为RAID0配置)存储器卷的类型,性能的提高可能在几十到几百个百分点的范围内。VFD 140减少了在利用标准FS(诸如NTFS和ReFS)的已知系统中通常经历的元数据流,例如通过在“第一遍”中快速“预处理”元数据,以便在写入实际数据期间在“第二遍”期间,对元数据的访问导致最小的延时。因此,诸如图1所示的使用VFD 140与诸如NTFS的标准FS组合的存储系统可以实现与使用已经设计的定制FS的存储系统类似或更好的性能以优化写入性能,同时避免通常与这种定制FS相关的成本、复杂性、可靠性验证和用户学习时间。
如上所述,在FT操作模式中,VFD 140立即终止,例如,当IO缓冲器在起始字节中具有前述的预选标签位序列时,将WriteFile调用返回给用户或写入器工作线程,而无需将传递给VFD 140的数据实际写入存储器150的卷。。该位序列被设计为与开始元数据块写入的位序列发生冲突的概率极低。例如,NTFS下的元数据块写入通常以字符序列“FILE”开始,而在FT操作模式期间写入IO缓冲器起始字节的预选标签位序列从不以“FILE”开头,并且可以增加长度(以某些FT模式性能下降为代价),以便匹配任何元数据值的概率极低。因此,元数据几乎总是按预期写入存储器150的卷中。尽管如此,本发明的原理和概念包括错误恢复机制,其检测和纠正元数据错误地未写入卷中的极端罕见的情况,如将在下面参照图5描述的。
因为在(FT模式)“第一遍”期间,元数据被写入存储器150的卷中,但是实际数据不是,所以“第一遍”可以在正常文件写入的一小部分时间完成,因为写入卷的唯一流是元数据。在VFD 140提供最大性能值的使用情况下,元数据是实际数据大小的一小部分。另外,如以上参照图4A和4B所述的方案所示,为了进一步提高元数据写入效率,所分配的IO缓冲器的大小优选地明显大于应用程序或设备请求中指定的IO缓冲器大小。除了提高性能之外,所分配的IO缓冲器的明显更大的尺寸还会导致元数据碎片的进一步减少。
图5是表示根据代表性实施方案的错误检测方法的流程图,用于检测在将元数据写入卷时发生的错误。根据该实施方案,错误检测方法在内核空间的VFD 140中执行。VFD140的写入器工作线程计算将被写入卷的标记的IO缓冲器的数量并将该数量传递给VFD140的主线程,如框501所示。主线程跟踪标记的IO缓冲器,其在FT操作模式期间实际上导致其不会被写入卷中,即,到FT操作模式终止的时间,如框502所示。该跟踪的数量是在图4A的框408处确定的匹配的数量。主线程将跟踪的数字与在框501处计算的数字进行比较,并确定这些数字是否不匹配,如框503所示。如果是这样,则VFD 140的主线程在FT模式终止时向应用程序返回错误代码,如框504所示。
在检测到错误的情况下,错误校正由应用程序执行,该应用程序简单地执行诸如“chkdsk”之类的标准文件系统完整性校正过程,以执行盘元数据清理操作,然后删除由FT操作模式创建的文件,如框505所示,然后使FT操作模式重新运行。这样做的唯一负面影响是,由于某些元数据未正确写入卷而消耗少量时间来纠正某些元数据不一致性(例如,运行“chkdsk”程序)。即使在发生此类错误的极少数情况下,也不会出现实际数据错误地写入卷从而导致卷上已有的文件损坏的情况。
另外,根据一个实施方案,VFD写入器工作线程具有这样一种模式,在该模式下,其可以增加计数器,该计数器产生与预选标签位序列串接的计数,以对所分配的IO缓冲器的每次写入产生反扩增的预选标签位序列。该计数器由VFD 140的主线程连续检查以提供在图4A的框408处检测到匹配的非常不可能的条件的早期错误指示(比全FT模式“预写入”的完成时刻早),即使IO缓冲器内容包含元数据。
虽然本发明的原理和概念不限于特定的使用情况或应用,但是VFD 140的合适使用情况的实例是用户不会预先知道写入“流”的大小或持续时间。在这种情况下,可以通过FT模式的操作指示VFD 140预留,即预写入卷上的所有剩余可用空间。应用程序首先查询卷的剩余容量,以便在FT操作模式下适当地指示/操作VFD 140。在FT操作模式之后,用户继续进行静态操作模式以写入实际数据流,直到流不足剩余卷容量或剩余卷容量的限制。在前一种情况下,用户的应用程序知道已写入了多少实际数据并适当地截断了文件大小。在后一种情况下,用户的应用程序将停止并截断已使用或完成的整个剩余卷大小,然后将FS写入位置设置回文件的开头,并或许继续写入多次迭代,从而形成一个无尽的记录循环。这种无尽的记录循环还可以在用户事先知道文件有多大或者如果剩余卷容量不足的情况下写入流将多长时间的情况下执行。
VFD 140的适当使用情况的另一个实例是使应用程序执行文件的FT模式创建,然后向另一个应用程序提供文件名以用于写入实际数据。这可以解决一些“无间隙多流”数据使用情况,在这种情况下防止运行FT模式是最佳的,而另一个应用程序正在对同一个卷执行“无间隙”捕获。由于本发明原理和概念的最有益的用途通常是在应用程序或设备正在写入实际数据时通过IO缓冲器写入的单个“流”来最大程度地消耗存储器卷的带宽,所以这些情况将不常见。
虽然已经在附图和前面的描述中详细说明和描述了本发明,但是这样的说明和描述被认为是说明性的或示例性的而不是限制性的。本发明不限于所公开的实施方案。例如,可以对图1所示的计算机系统100进行各种修改,同时仍然实现本发明的原理和目标,如本领域技术人员根据本文提供的描述将会理解的那样。类似地,可以对图2和图3A-5中描述的过程进行各种修改,同时仍然实现本发明的原理和目标,正如本领域技术人员根据本文提供的描述将会理解的那样。通过研究附图、公开内容和所附权利要求,本领域技术人员在实践要求保护的本发明时可以理解和实现所公开的实施方案的其他变型。

Claims (10)

1.一种减少将数据写入存储器(150)所需的时间量的计算机系统(100),所述计算机系统(100)包括:
存储器(150);以及
处理电路(110),其被配置为执行卷过滤器驱动器(vfd(140)),其中,当所述处理电路(110)接收将与文件相关联的数据写入所述存储器(150)的输入/输出(IO)请求同时所述vfd(140)处于快速终止(FT)操作模式时,所述vfd(140)使与所接收的IO写入请求相关联的元数据被写入存储器(150)的卷中,同时防止与所接收的IO写入请求相关联的实际数据被写入存储器的卷中,并且其中在FT操作模式结束之后,所述vfd(140)进入静态操作模式,在该操作模式期间,所述vfd(140)将所有IO写入请求传递给所述卷,从而允许将与所述文件相关联的实际数据被写入卷中。
2.根据权利要求1所述的计算机系统(100),其中,所述vfd(140)在由所述处理电路(110)执行的Windows操作系统的内核中运行。
3.根据权利要求1所述的计算机系统(100),其中,所述vfd(140)由所述处理电路(110)作为标准文件系统的一部分来执行。
4.根据权利要求3所述的计算机系统(100),其中,所述标准文件系统是包括WindowsNT文件系统(NTFS)的一组文件系统的文件系统。
5.根据权利要求1所述的计算机系统(100),其中,每个IO写入请求是用于将相应IO缓冲器的内容写入所述存储器(150)的卷的请求,并且其中所述vfd(140)在由处理电路(110)执行的Windows操作系统的内核中运行,并且其中,在FT操作模式的初始化期间,在计算机系统(100)上运行的应用程序分配IO缓冲器并且将预选标签位序列写入所分配的IO缓冲器的起始字节,并且其中,在FT操作模式的初始化期间,所述vfd(140)分配比较缓冲器并将预选标签位序列写入比较缓冲器,并且其中,在FT操作模式期间,应用程序重复地将所分配的IO缓冲器的内容写入所述计算机系统(100)的标准文件系统(FS),直到预期大小的文件已被写入标准fs(130)。
6.根据权利要求5所述的计算机系统(100),其中,在所述FT操作模式期间,所述vfd(140)检查已由所述应用程序写入的每个IO缓冲器的起始字节,以确定已被写入每个相应IO缓冲器的起始字节的位序列是否匹配所述预选标签位序列,并且其中,如果所述vfd(140)确定在被写入相应IO缓冲器的起始字节的位序列与所述预选标签位序列之间存在不匹配,则所述vfd(140)判定相应的IO写入请求包含元数据并且使元数据被写入卷中。
7.根据权利要求6所述的计算机系统(100),其中,如果所述vfd(140)确定被写入所述相应IO缓冲器的起始字节的位序列匹配所述预选标签位序列,则所述vfd(140)判定相应的IO写入请求包含实际数据,并且向应用程序发送已经完成IO写入请求的指示,而不会导致与相应的IO写入请求相关联的实际数据被写入卷中。
8.根据权利要求7所述的计算机系统(100),其中,在所述vfd(140)进入静态操作模式之后,所述vfd(140)将所有IO写入请求传递到所述卷,而不管所述IO写入请求是否包含实际数据或元数据。
9.根据权利要求1所述的计算机系统(100),其中,每个IO写入请求是将相应IO缓冲器的内容写入存储器(150)的卷的请求,并且其中,所述vfd(140)在由处理电路(110)执行的Windows操作系统的内核中运行,并且其中,所述vfd(140)从应用程序接收请求,所述请求使得所述vfd(140)完全在内核中执行FT操作模式并且包括卷的名称、文件名、文件大小和IO缓冲器的大小,并且其中,在FT操作模式的初始化期间,所述vfd(140)的主线程分配具有大小为大于或等于预选标签位序列的大小的比较缓冲器,并且将所述预选标签位序列写入比较缓冲器,并且其中,在FT操作模式的初始化期间,所述vfd(140)的写入器工作线程分配具有大小为等于或大于包括在由vfd(140)从应用程序所接收的请求中的IO缓冲器的大小的IO缓冲器,并且其中,在FT操作模式期间,所述vfd(140)的写入器工作线程将所述预选标签位序列写入所分配的IO缓冲器的起始字节并重复地将所分配的IO缓冲器的内容写入卷中,直到预期大小的文件已被写入卷中。
10.根据权利要求9所述的计算机系统(100),其中,在FT操作模式期间,所述vfd(140)的主线程检查由写入器工作线程发送到卷的IO缓冲器的起始字节,以确定已写入每个IO缓冲器的起始字节的位序列是否匹配所述预选标签位序列,并且其中,如果所述vfd(140)确定已经写入相应IO缓冲器的起始字节的位序列与所述预选标签位序列之间存在不匹配,则所述主线程判定相应的IO写入请求包含元数据并且使得元数据被写入卷中。
CN201810678373.2A 2017-06-29 2018-06-27 用于减少写入延时的系统和方法 Active CN109213439B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/636,906 US10339073B2 (en) 2017-06-29 2017-06-29 Systems and methods for reducing write latency
US15/636,906 2017-06-29

Publications (2)

Publication Number Publication Date
CN109213439A true CN109213439A (zh) 2019-01-15
CN109213439B CN109213439B (zh) 2023-06-09

Family

ID=63042467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810678373.2A Active CN109213439B (zh) 2017-06-29 2018-06-27 用于减少写入延时的系统和方法

Country Status (3)

Country Link
US (1) US10339073B2 (zh)
CN (1) CN109213439B (zh)
GB (1) GB2565882B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110286860A (zh) * 2019-06-28 2019-09-27 联想(北京)有限公司 信息处理方法、信息处理系统和电子设备
CN112346668A (zh) * 2021-01-08 2021-02-09 统信软件技术有限公司 一种光盘信息获取方法、计算设备及可读存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269709B2 (en) * 2018-10-05 2022-03-08 Sap Se Automated incident handling for software components
US11947817B2 (en) * 2021-11-15 2024-04-02 Microstrategy Incorporated Memory mapping to enhance data cube performance

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010025360A1 (en) * 1992-12-28 2001-09-27 Hitachi, Ltd. Disk array system and its control method
CN101359314A (zh) * 2007-07-30 2009-02-04 辉达公司 通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间
CN103885728A (zh) * 2014-04-04 2014-06-25 华中科技大学 一种基于固态盘的磁盘缓存系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003702B2 (en) * 2002-03-18 2006-02-21 Emc Corporation End-to-end checksumming for read operations
US20090150581A1 (en) * 2003-11-12 2009-06-11 David Chimitt Method and system for providing data volumes
EP1690163A4 (en) * 2003-11-17 2011-07-13 Virginia Tech Intell Prop TRANSPARENT CREATION OF CONTROL POINTS AND MIGRATION OF PROCESSES IN A DISTRIBUTED SYSTEM
US7779207B2 (en) 2005-08-25 2010-08-17 Microsoft Corporation Accelerated write performance
US7613750B2 (en) * 2006-05-29 2009-11-03 Microsoft Corporation Creating frequent application-consistent backups efficiently
KR100833188B1 (ko) 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
JP2010237921A (ja) * 2009-03-31 2010-10-21 Hitachi Software Eng Co Ltd 利用者端末装置及びその制御方法、並びにプログラム
CN101916201B (zh) * 2010-08-06 2015-05-27 中兴通讯股份有限公司 一种基于Android移动终端冷启动的方法和装置
CN103858116B (zh) * 2011-08-09 2015-09-02 Lsi公司 I/o设备及计算主机互操作
EP2742428B1 (en) * 2011-08-12 2016-01-06 Sandisk Enterprise IP LLC Cache management including solid state device virtualization
US9213717B1 (en) * 2011-09-28 2015-12-15 Emc Corporation Managing concurrent I/OS in file systems
US10671635B2 (en) 2013-02-27 2020-06-02 Hitachi Vantara Llc Decoupled content and metadata in a distributed object storage ecosystem
US9760574B1 (en) * 2014-06-30 2017-09-12 EMC IP Holding Company LLC Managing I/O requests in file systems
US9514054B2 (en) * 2014-07-08 2016-12-06 Netapp, Inc. Method to persistent invalidation to ensure cache durability
WO2017046789A1 (en) * 2015-09-15 2017-03-23 Gatekeeper Ltd. System and method for securely connecting to a peripheral device
GB2551381B (en) * 2016-06-16 2019-07-24 Mips Tech Llc Method of fetching instructions in an instruction fetch unit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010025360A1 (en) * 1992-12-28 2001-09-27 Hitachi, Ltd. Disk array system and its control method
CN101359314A (zh) * 2007-07-30 2009-02-04 辉达公司 通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间
CN103885728A (zh) * 2014-04-04 2014-06-25 华中科技大学 一种基于固态盘的磁盘缓存系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110286860A (zh) * 2019-06-28 2019-09-27 联想(北京)有限公司 信息处理方法、信息处理系统和电子设备
CN112346668A (zh) * 2021-01-08 2021-02-09 统信软件技术有限公司 一种光盘信息获取方法、计算设备及可读存储介质

Also Published As

Publication number Publication date
GB2565882B (en) 2020-01-08
US20190004979A1 (en) 2019-01-03
CN109213439B (zh) 2023-06-09
GB2565882A (en) 2019-02-27
US10339073B2 (en) 2019-07-02
GB201809803D0 (en) 2018-08-01

Similar Documents

Publication Publication Date Title
CN109213439A (zh) 用于减少写入延时的系统和方法
US6880060B2 (en) Method for storing metadata in a physical sector
US20130254457A1 (en) Methods and structure for rapid offloading of cached data in a volatile cache memory of a storage controller to a nonvolatile memory
US8463746B2 (en) Method and system for replicating data
US8880488B1 (en) Efficient extent-based B-tree insertion
US10282250B1 (en) Apparatus and method for a coherent, efficient, and configurable cyclic redundancy check retry implementation for synchronous dynamic random access memory
US9389960B2 (en) Recovering from a defective boot image
KR20060044631A (ko) 지속성 메모리 액세스 시스템, 지속성 메모리의 직접액세스 방법 및 지속성 메모리 시스템을 액세스하는 시스템
US8271968B2 (en) System and method for transparent hard disk drive update
US10503438B1 (en) Memory sub-system supporting non-deterministic commands
US9946721B1 (en) Systems and methods for managing a network by generating files in a virtual file system
US11429315B1 (en) Flash queue status polling
US9501436B1 (en) Multi-level message passing descriptor
US7370133B2 (en) Storage controller and methods for using the same
US10168936B2 (en) Memory system power management
US9529536B2 (en) Semiconductor memory device, memory system including the same, and operating method thereof
JP2002244933A (ja) チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法
US20150193311A1 (en) Managing production data
US8930680B2 (en) Sync-ID for multiple concurrent sync dependencies in an out-of-order store queue
KR102262209B1 (ko) 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치
JP2006227923A (ja) ディスク管理装置およびディスク管理プログラム
US11269561B2 (en) Speculative bank activate dynamic random access memory (DRAM) scheduler
CN111324280B (zh) 基于Raid5的数据写入方法和装置
US20060047917A1 (en) Method and apparatus for modifying an information unit using an atomic operation
JPH05100954A (ja) キヤツシユバツフア処理制御方式

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