CN111694507B - 计算环境中的存储缓存/分层期间加速任务的装置和方法 - Google Patents

计算环境中的存储缓存/分层期间加速任务的装置和方法 Download PDF

Info

Publication number
CN111694507B
CN111694507B CN201910687143.7A CN201910687143A CN111694507B CN 111694507 B CN111694507 B CN 111694507B CN 201910687143 A CN201910687143 A CN 201910687143A CN 111694507 B CN111694507 B CN 111694507B
Authority
CN
China
Prior art keywords
storage unit
data
threshold
processor
write
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
Application number
CN201910687143.7A
Other languages
English (en)
Other versions
CN111694507A (zh
Inventor
K.乔希
S.维什诺伊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN111694507A publication Critical patent/CN111694507A/zh
Application granted granted Critical
Publication of CN111694507B publication Critical patent/CN111694507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • 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/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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
    • 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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/37Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本文的实施例公开了一种用于在计算环境中的存储缓存和分层期间对任务进行加速的装置和方法。该装置包括处理器。第一和第二存储单元以及存储器单元耦合到处理器。存储器单元被配置为接收写入数据操作。基于所接收的写入数据操作来确定第一存储单元中的脏数据量。脏数据包括存在于第一存储单元中要同步到第二存储单元的数据。当脏数据量小于第一阈值时,对与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率进行减速。当脏数据量小于第一阈值时,对与到第一存储单元的写入数据操作相关联的写入速率进行加速。

Description

计算环境中的存储缓存/分层期间加速任务的装置和方法
本申请基于2019年3月13日向印度知识产权局提交的第201941009729号印度专利申请,并要求其在《美国法典》第35编第119节下的优先权,该申请的公开内容通过引用整体并入本文。
技术领域
本公开涉及数据存储系统领域,更具体地,涉及用于在计算机环境中的存储缓存(caching)/分层(tiering)期间对任务进行加速的设备和方法。
背景技术
通常,存储系统可以包括一个或多个存储器存储设备,诸如固态驱动器(SolidState Drives,SSD),其可以包括基于闪存的存储器存储阵列。信息可以存储在SSD中,并且然后可以根据需要从SSD中读取信息。数据存储的多层系统可以包括多个不同的数据存储方案,诸如用于快速读/写访问的第一数据存储方案(例如,缓存)和可以具有更慢读/写访问但是更大存储空间的第二数据存储方案(例如,主存储)。多层数据存储系统的示例可以是其中硬盘驱动器(Hard Disk Drive,HDD)用作主存储,SSD用作缓存的混合SSD设备。在多层数据存储系统中,信息最初可以被写入更快的数据存储方案,并且然后可以在单次写入操作中被迁移到更慢的数据存储方案。这种缓存管理方法可以被视为回写(writeback)方法。
根据回写方法,由于缓存中的信息在其被迁移到主存储之前有可能被修改,所以系统必须跟踪哪些缓存的信息是“干净的(clean)”(即未修改的)以及哪些缓存的信息是“脏的(dirty)”(即已修改的)。
此外,在回写方法中,诸如缓存/分层设备的SSD的带宽可以在外部写入数据操作和内部读取数据操作之间共享。由于与内部读取数据操作(即存储设备之间的同步)的竞争,写入数据操作(即来自用户/应用的输入)的速度可能会降低。如果缓存/分层存储设备正在发展成完全脏的(即没有干净的空间),则SSD可能不考虑额外的写入数据操作,并且可以旁路(bypass)该操作以写入慢速后端设备,诸如硬盘驱动器(HDD)。
图1a是示出与写入数据操作相关的旁路时间的曲线图。如果SSD的干净空间很大,则写入数据操作处于相对更高的速度。此外,如果SSD的干净空间为零,那么在写入数据操作的早期阶段,写入数据操作被直接旁路到后端存储设备。
图1b是示出每秒输入/输出运算(Input/output Operations Per Second,IOPS)趋势的曲线图。用于写入策略的方法可以被配置为:如果有干净的空间,则从更快的缓存/分层设备完成写入数据操作,以及如果没有干净的空间,则旁路写入数据操作到后端。此外,同步策略可以被配置为在执行同步/读取数据操作之前等待磁盘空闲时间(即没有到来的写入数据操作)。
根据另一方法,写入策略可以被配置为:如果有干净的空间,则从更快的缓存/分层设备完成写入数据操作,以及如果没有干净的空间,则旁路写入数据操作到后端。此外,同步策略可以被配置为一旦后续写入数据操作完成,就在后台开始同步/读取数据操作。
根据另一方法,每个外部I/O流可以被分解成多个内部I/O流。该方法包括跟踪I/O流、计算需求和分配信用。
然而,这些方法不允许在写入数据操作和同步/读取数据操作之间共享带宽。此外,这些方法不允许管理写入数据操作和同步/读取数据操作之间的争用,目的是尽可能多的由更快的设备(即缓存/分层)来服务写入数据操作。
发明内容
本文的实施例的主要目的是公开一种基于管理同步/读取数据操作的速度和写入数据操作的速度之间的平衡,在计算环境中的存储缓存和分层期间对任务进行加速的装置和方法。
本文的实施例的另一目的是公开一种使用用于基于高速非易失性存储器固态驱动器(Non-Volatile Memory express–Solid State Drive,NVMe-SSD)的存储设备的高速非易失性存储器加权循环法(Non-Volatile Memory express–Weighted Round Robin,NVMe-WRR)对速度转换进行管理和优先级排序的装置和方法。
本文的实施例的另一目的是公开一种用于在预定时间内减少诸如旁路到后端存储设备的事件(即写入数据操作)发生的装置和方法。
一种用于在计算环境中的存储缓存和分层期间对任务进行加速的装置,该装置包括处理器。第一存储单元耦合到处理器。第二存储单元耦合到处理器。存储器单元耦合到处理器。存储器单元包括处理模块,该处理模块被配置为从计算环境接收写入数据操作。基于所接收的写入数据操作来确定第一存储单元中的脏数据量。脏数据包括存在于第一存储单元中要同步到第二存储单元的数据。当确定的脏数据量小于第一阈值时,与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率被减速。当确定的脏数据量小于第一阈值时,与从计算环境到第一存储单元的写入数据操作相关联的写入速率被加速。
一种用于在计算环境中的存储缓存和分层期间对任务进行加速的方法,包括由处理器从计算环境接收写入数据操作。处理器基于所接收的写入数据操作来确定第一存储单元中的脏数据量。脏数据包括存在于第一存储单元中要同步到第二存储单元的数据。当确定的脏数据量小于第一阈值时,处理器对与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率进行减速。当确定的脏数据量小于第一阈值时,处理器对与从计算环境到第一存储单元的写入数据操作相关联的写入速率进行加速。
附图说明
当结合附图考虑时,本公开及其许多伴随方面的更完整的领会将变得容易获得并且其通过参考下面的详细描述变得更加容易理解,其中:
图1a是示出与写入数据操作相关的旁路时间的曲线图;
图1b是示出每秒输入/输出运算(IOPS)趋势的图表;
图2a是示出根据本公开的示例性实施例的用于在计算环境中的存储缓存和分层期间对任务进行加速的装置的框图;
图2b是示出根据本公开的示例性实施例的如图2a所示的处理模块的详细视图,该处理模块包括各种模块;
图3a和图3b是分别示出根据本公开的示例性实施例的回写架构中的存储缓存和存储分层的框图;
图4是示出根据本公开的示例性实施例的基于确定的阈值来增加和减少写入速率和读取速率的序列的流程图;
图5是示出根据本公开的示例性实施例的与写入数据操作相关的旁路时间的曲线图;
图6a是示出根据本公开的示例性实施例的用于在计算环境中的存储缓存和分层期间对任务进行加速的方法的流程图;
图6b是示出根据本公开的示例性实施例的用于对与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率进行加速的方法的流程图;
图6c是示出根据本公开的示例性实施例的用于仲裁与写入数据操作和读取数据操作中的至少一个相对应的队列序列的方法的流程图,该方法使用用于基于高速非易失性存储器固态驱动器(NVMe-SSD)的存储设备的高速非易失性存储器加权循环法(NVMe-WRR);
图6d是示出根据本公开的示例性实施例的当脏数据在第一阈值和第二阈值之间时以相等速率执行写入数据操作和读取数据操作的方法的流程图;
图6e是示出根据本公开的示例性实施例的用于当第一存储单元空闲时对与读取数据操作相关联的同步速率进行加速的方法的流程图;以及
图7示出了根据本公开的示例性实施例的实施用于在存储缓存和分层期间对任务进行加速的装置和方法的计算环境。
具体实施方式
在描述附图所示的本公开的示例性实施例时,为了清楚起见,采用了特定术语。然而,本公开并不旨在局限于如此选择的特定术语,并且应当理解,每个特定元素包括以类似方式操作的所有技术等同物。
本公开的示例性实施例涉及一种基于管理同步/读取数据操作的速度和写入数据操作的速度之间的平衡,在计算环境中的存储缓存和分层期间对任务进行加速的装置和方法。
此外,本公开的示例性实施例涉及一种使用基于用于高速非易失性存储器固态驱动器(NVMe-SSD)的存储设备的高速非易失性存储器加权循环法(NVMe-WRR)对速度转换进行管理和优先级排序的装置和方法。
此外,本公开的示例性实施例涉及用于在预定时间内减少诸如旁路到后端存储设备的事件(即写入数据操作)发生的装置和方法。
本公开的示例性实施例涉及一种用于在计算环境中的存储缓存和分层期间对任务进行加速的装置和方法。现在参考附图,更具体地参考图2a至图7,注意,在所有附图及其详细描述中,相似的附图标记可以表示相应的特征。
图2a是示出根据本公开的示例性实施例的用于在计算环境中的存储缓存和分层期间对任务进行加速的装置100的框图。
装置100包括处理器102、存储器单元104、存储单元108和存储控制器114。此外,装置100可以包括耦合到存储器单元104的处理模块106。当机器可读指令被执行时,处理模块106使得装置100在计算环境中处理数据。此外,存储单元108可以包括第一存储单元110和第二存储单元112。存储单元108可以耦合到存储控制器114。耦合到存储单元108的存储控制器114可以包括主机接口、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态RAM、存储器接口140、中央处理单元(central processing unit,CPU)、总线、工作负载模块、定时器、节流(throttling)模块、时钟生成器、存储器介质设备的虚拟地址(例如,逻辑块地址(logic block addresses,LBA))和物理地址之间的映射和/或转换、和/或其他类似组件。处理器102可以耦合到存储器单元104、一个或多个第一存储单元110和一个或多个第二存储单元112。第一存储单元110可以用作系统存储器和/或第二存储单元112的缓存。第一存储单元110和第二存储单元112可以包括磁盘阵列或磁盘阵列的分层。
第二存储单元112可以是第三存储单元的缓存。第三存储单元可以是第四存储单元的缓存。在本公开的示例性实施例中,存储单元的每个分层可以逐渐比上一存储单元更慢且更大。例如,第四存储单元可以是云存储方案或磁带盒和磁带驱动器,而第三存储单元可以是具有相对更小的存储空间但相对更快的访问时间的本地硬盘驱动器。作为缓存,第三存储单元可以存储在第四存储单元上存储的总数据的子集。第二存储单元112可以是具有比第三存储单元相对更小的存储空间但相对更快的访问时间的SSD具有。作为缓存,第二存储单元112可以存储在第三存储单元上存储的数据的子集。因此,写入第一存储单元110的新数据最终被写入第二存储单元112,并且也最终被写入第三存储单元和第四存储单元,以此类推。
存储单元108可以包括处理器、非易失性存储器(non-volatile memory,NVM)和/或易失性存储器。第一存储单元110可以是系统存储器、闪存、固态驱动器(SSD)、安全数字(secure digital,SD)卡、微SD卡和/或类似组件。第二存储单元112可以是硬盘驱动器(Hard Disk Drive,HDD)、非易失性存储器(NVM)、云存储装置、磁带库、磁带盒、磁带驱动器、虚拟磁带、网络附接存储装置(Network Attached Storage,NAS)、直接附接存储装置(direct attached storage,DAS)、内容可寻址存储装置(Content Addressable Storage,CAS)、集群文件系统(Cluster File Systems,CFS)和/或类似组件。
装置100可以是台式计算机、手持设备、多处理器系统、基于微处理器的可编程消费电子产品、膝上型电脑、服务器、网络计算机、小型计算机、大型计算机、相机、摄像机、IoT(Internet of Thing,物联网)设备、可穿戴计算技术设备、个人助理设备、车辆信息娱乐系统和/或类似组件。
处理器102或第一存储单元110可以使用至少一种接口协议与第二存储单元112通信,例如,高速外围设备组件互连(Peripheral Component Interconnect Express,PCIe)、高级技术附件(Advanced Technology Attachment,ATA)、串行ATA(Serial ATA,SATA)、并行ATA(Parallel ATA,PATA)、串行附接小型计算机系统接口(Serial Attached SmallComputer System Interface,SAS)、存储区域网络(Storage Area Network,SAN)、基于以太网的ATA(ATA over Ethernet,AoE)、光纤通道协议(Fiber Channel Protocol,FCP)、基于以太网的光纤通道(Fiber Channel over Ethernet,FCoE)、基于光纤通道的企业系统连接(Enterprise Systems Connection,ESCON)、互联网小型计算机系统接口(InternetSmall Computer Systems Interface,iSCSI)和/或类似协议。
装置100可以包括诸如输入/输出接口、通信接口等的其他组件。装置100可以包括用户应用接口、应用管理框架和/或应用框架,以用于在存储缓存和分层期间对任务进行加速。应用框架可以包括不同的模块和子模块,以执行用于在存储缓存和分层期间对任务进行加速的操作。应用框架可以提供支持特定环境应用开发的基本结构的软件库。应用框架也可以用于开发图形用户界面(graphical user interface,GUI)和基于网络的应用。
在本公开的示例性实施例中,本文的方法可以使用装置100来实施。本公开的示例性实施例可以响应于用户提供的命令或命令集来执行数据或信息的特定操作。本文的方法可以使用诸如服务器的装置100来实施。根据本公开的示例性实施例,装置100可以经由通信网络与服务器通信,以用于执行从驻留在装置100中的第一存储单元110到驻留在服务器中的第二存储单元112的同步/读取数据操作。
在本公开的示例性实施例中,装置100被配置为从计算环境接收写入数据操作。在本公开的示例性实施例中,装置100被配置为基于接收写入数据操作来确定第一存储单元110中的脏数据量(或脏数据的大小)。脏数据包括存在于第一存储单元110中要同步到第二存储单元112的脏数据。在本公开的示例性实施例中,装置100被配置为识别确定的第一存储单元110中的脏数据量是否对应于大于/小于第一阈值和/或第二阈值的量。这里,第一阈值小于第二阈值。在本公开的示例性实施例中,装置100被配置为如果确定的脏数据量小于第一阈值,则对与从第一存储单元110到第二存储单元112的读取数据操作相关联的同步速率进行减速。在本公开的示例性实施例中,装置100被配置为如果确定的脏数据量大于第二阈值,则对与从计算环境到第一存储单元110的写入数据操作相关联的写入速率进行减速。在本公开的示例性实施例中,装置100被配置为如果确定的脏数据量大于第二阈值,则对与从第一存储单元110到第二存储单元112的读取数据操作相关联的同步速率进行加速。在本公开的示例性实施例中,装置100被配置为如果确定的脏数据量小于第二阈值,则对与从计算环境到第一存储单元110的写入数据操作相关联的写入速率进行加速。
在本公开的示例性实施例中,装置100被配置为识别第一存储单元110是否对应于至少一个高速非易失性存储器固态驱动器(NVMe-SSD)。在本公开的示例性实施例中,装置100被配置为如果第一存储单元110对应于NVMe-SSD,则基于至少一个参数将加权分数分配给读取数据操作和/或所接收的写入数据操作。在本公开的示例性实施例中,基于至少一个参数,诸如优先级数据、与所接收的写入数据操作相关联的应用类型、确定的剩余数据容量、第一存储单元110中的脏数据、元数据、用户数据、报头、内部输入/输出操作和外部输入/输出操作、和/或与所接收的写入数据操作相关联的类别,将加权分数分配给写入数据操作。
在本公开的示例性实施例中,装置100被配置为基于分配的加权分数来确定读取数据操作和接收的写入数据操作中的至少一个的优先级。在本公开的示例性实施例中,装置100被配置为基于确定的优先级,使用加权循环(WRR)仲裁方法,使用耦合到处理器102的存储控制器114来仲裁与写入数据操作和读取数据操作中的至少一个相对应的队列序列。在本公开的示例性实施例中,装置100被配置为分别基于确定的优先级以及确定的第一存储单元110中的脏数据量是否大于/小于第一阈值/第二阈值,使得与写入数据操作相对应的仲裁队列序列对写入速率进行加速和/或减速。在本公开的示例性实施例中,装置100被配置为分别基于确定的优先级以及确定的第一存储单元110中的脏数据量是否大于/小于第一阈值/第二阈值,使得与读取数据操作相对应的仲裁队列序列对同步速率进行加速/减速。在本公开的示例性实施例中,对写入数据操作和读取数据操作的加速和减速分别基于确定的脏数据量大于或小于第一阈值和第二阈值。
在NVMe中,确定命令执行的次序的过程称为仲裁。因此,可以在NVMe规范中阐述各种仲裁机制,诸如循环仲裁(其中所有提交队列(submission queue,SQ)都以相等优先级对待)。然而,在本公开中,具有紧急优先级的加权循环(WRR)仲裁(其中给予某一提交队列(SQ)优先于其他提交队列的优先级)被用作仲裁机制的示例。然而,也可以可替代地使用其他合适的仲裁机制。仲裁机制也可以是供应商特定(vendor-specific)的仲裁。
在本公开的示例性实施例中,装置100被配置为识别确定的第一存储单元110中的脏数据量是否在第一阈值和第二阈值之间。在本公开的示例性实施例中,装置100被配置为如果确定的第一存储单元110中的脏数据量在第一阈值和第二阈值之间,则以相等的速率执行写入数据操作和读取数据操作。
在本公开的示例性实施例中,装置100被配置为当第一存储单元110中没有写入数据操作时,确定第一存储单元110是否空闲。在本公开的示例性实施例中,装置100被配置为如果第一存储单元110空闲,则对与从第一存储单元110到第二存储单元112的读取数据操作相关联的同步速率进行加速。
在本公开的示例性实施例中,装置100被配置为识别第一存储单元110中的剩余数据容量是否为零。第一存储单元110中的剩余数据容量为零指示第一存储单元110中没有干净的空间。在本公开的示例性实施例中,装置100被配置为将到第一存储单元110的写入速率逐渐减速达预定时间之后,将写入数据操作转移到第二存储单元112。将写入数据操作转移到第二存储单元112是基于识别第一存储单元110中的剩余数据容量为零。
在本公开的示例性实施例中,第一存储单元110包括缓存单元和/或分层单元。在本公开的示例性实施例中,第一存储单元110是相对更快的磁盘驱动器,以及第二存储单元是相对更慢的磁盘驱动器。在本公开的示例性实施例中,使用不对称分布方法来动态分配第一阈值和/或第二阈值。不对称分布可能是变量的值出现在不规则的频率上以及平均值、中值和模式出现在不同的点上的情况。不对称分布可能表现出偏斜度。偏斜度可以是一个实值随机变量关于其平均值的概率分布不对称的度量
在本公开的示例性实施例中,写入数据操作包括外部输入/输出操作,以及读取数据操作包括内部输入/输出操作。在本公开的示例性实施例中,对写入速率和同步速率进行加速和减速包括分配与读取数据操作相对应的读取带宽和/或与写入数据操作相对应的写入带宽。在本公开的示例性实施例中,加速和减速包括逐渐增加和/或逐渐降低同步速率和/或写入速率。
在本公开的示例性实施例中,基于确定的第一存储单元110中的脏数据量,将加权分数分配给读取数据操作。在本公开的示例性实施例中,将加权分数分配给写入数据操作和读取数据操作还包括将写入数据操作和读取数据操作分类为高优先级、中优先级和/或低优先级。在本公开的示例性实施例中,检查确定的第一存储单元110中的脏数据量是否在第一阈值和第二阈值之间包括确定存在的剩余数据容量的大小是否在第一阈值和第二阈值之间。
图2a示出了根据本公开示例性实施例的计算机实施的系统的功能组件。在某些情况下,组件可以是硬件组件、软件组件或硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是操作系统级软件。在某些情况下,一个组件与另一组件的连接可以是紧密连接,其中两个或多个组件在单个硬件平台上操作。在其他情况下,可以通过跨越长距离的网络连接进行连接。每个实施例可以使用不同的硬件、软件和互连架构来实现本文描述的功能。
图2b示出了根据如本文公开的本公开的示例性实施例的如图2a所示的处理模块106,处理模块106包括各种模块。在本公开的示例性实施例中,装置100可以包括存储在存储器单元104中的处理模块106,如图2a所示。处理模块106可以包括多个子模块。多个子模块可以包括数据接收模块202、数据容量确定模块204、阈值确定模块206、数据速率减速模块208和数据速率加速模块210。
在本公开的示例性实施例中,数据接收模块202被配置为从计算环境接收写入数据操作。在本公开的示例性实施例中,数据容量确定模块204被配置为基于接收写入数据操作来确定第一存储单元110中的脏数据量。脏数据包括第一存储单元110中要同步到第二存储单元112的数据。在本公开的示例性实施例中,数据阈值确定模块206被配置为检查确定的第一存储单元110的剩余数据容量是否大于/小于第一阈值和第二阈值。
在本公开的示例性实施例中,第一阈值小于第二阈值。在本公开的示例性实施例中,数据速率减速模块208被配置为如果确定的脏数据量小于第一阈值,则对与从第一存储单元110到第二存储单元112的读取数据操作相关联的同步速率进行减速。在本公开的示例性实施例中,数据速率减速模块208被配置为如果确定的脏数据量大于第二阈值,则对与从计算环境到第一存储单元110的写入数据操作相关联的写入速率进行减速。
在本公开的示例性实施例中,数据速率加速模块210被配置为如果确定的脏数据量大于第二阈值,则对与从第一存储单元110到第二存储单元112的读取数据操作相关联的同步速率进行加速。在本公开的示例性实施例中,数据速率加速模块210被配置为如果确定的脏数据量小于第一阈值,则对与从计算环境到第一存储单元110的写入数据操作相关联的写入速率进行加速。
本公开的示例性实施例可以包括硬件和/或软件元件。以软件实施的实施例可以包括固件、驻留软件、微码等。本文描述的各种模块所执行的功能可以在其他模块或其他模块的组合中实施。出于本说明书的目的,计算机可用或计算机可读介质可以是能够包括、存储、传达、传播或传输由指令执行系统、装置或设备使用或与其结合使用的程序的任何装置。
图3a和图3b是分别示出根据本公开的示例性实施例的回写架构中的存储缓存和存储分层的框图。
在本公开的示例性实施例中,外部I/O可以是到缓存单元的写入数据操作,以及内部I/O可以是用于将数据从诸如SSD的第一存储单元110同步到诸如HDD的后端设备(即,第二存储单元112)的读取数据操作。
在回写缓存方法中,更快的设备可以运行从用户、应用和/或另一个源接收的写入数据操作。写入到诸如SSD的第一存储单元110的数据可以稍后同步到诸如HDD的慢速后端。
在分层方法中,可以使用诸如SSD的更快的设备来完成写入数据操作。写入到诸如SSD的第一存储单元110的数据可以稍后以分层方式同步到诸如HDD的更慢后端。例如,数据被同步到第二存储单元112的第一磁盘阵列,并且稍后被移动到第二存储单元112的第二磁盘阵列。如果缓存或分层单元没有干净的空间和/或没有剩余的数据容量,则可以将写入数据操作旁路到诸如HDD的(多个)更慢的后端。
图4是示出根据本公开的示例性实施例的基于确定的阈值来增加和减少写入速率和读取速率的序列的流程图。
在本公开的示例性实施例中,可以从计算环境接收诸如应用数据的用户写入/写入数据操作作为输入。装置100可以确定第一存储单元110中的脏数据量是否在阈值之间。第一存储单元可以包括脏数据。如果脏数据量小于TH1,则写入数据操作被分配高优先级,且同步/读取数据操作被分配低优先级。如果脏数据量不小于TH1且不大于TH2,则写入数据操作和同步/读取数据操作被分配中优先级。此外,如果脏数据量大于TH2,则写入数据操作被分配低优先级,且同步/读取数据操作被分配高优先级。此外,如果没有写入数据操作达预定时间段,则同步/读取数据操作被分配高优先级。
在本公开的示例性实施例中,第一阈值可以计算为TH1(即TH1=缓存/分层数据容量的X%),第二阈值可以计算为TH2(即TH2=缓存/分层数据容量的Y%)。这里X<Y,并且可以允许缓存/分层数据容量的不对称划分。例如,可以选择X和Y,使得阈值产生缓存容量的不对称划分。例如,处理器102可以运行TH1=25%和TH2=60%,而不是TH1=33%和TH2=66%。例如,处理器可以将第三阈值分配为TH3。因此,处理器可以将阈值运行为TH1=25%、TH2=45%和TH3=60%。处理器102可以基于需求或者基于第一存储单元110的存储容量来动态改变阈值。
在本公开的示例性实施例中,WRR可以是诸如NVMe控制器的存储控制器114的仲裁方法,其中输入/输出队列可以被标记为紧急、高、中或低优先级。可以为高、中和低优先级分配加权分数。可以基于加权分数获取更多命令。例如,如果有3个队列,且权重为24、16和8,那么仲裁将从3个队列中以24:16:8的比率接受命令。
图5是示出根据本公开的示例性实施例的与写入数据操作相关的旁路时间的曲线图。
在本公开的示例性实施例中,处理器102被配置为在对第一存储单元110的写入速率逐渐减速之后,将写入数据操作转移到第二存储单元112。在本公开的示例性实施例中,到第二存储单元112的写入数据操作是基于对第一存储单元110的写入速率逐渐减速达预定时间之后,识别第一存储单元中的剩余数据容量为零。在本公开的示例性实施例中,如果没有剩余数据容量,那么第一存储单元110完全充满可能需要同步到第二存储单元112的脏数据。
图6a是描绘根据本公开的示例性实施例的用于在计算环境中的存储缓存和分层期间对任务进行加速的方法600a的流程图。
在步骤602,方法600a包括由处理器102从计算环境接收写入数据操作。在步骤604,方法600a包括由处理器102基于所接收的写入数据操作来确定第一存储单元110中的脏数据量。在步骤606,方法600a包括如果确定的脏数据量小于第一阈值,则由处理器102对与从第一存储单元110到第二存储单元112的读取数据操作相关联的同步速率进行减速。在步骤608,方法600a包括如果确定的脏数据量小于第一阈值,则由处理器102对与从计算环境到第一存储单元的写入数据操作相关联的写入速率进行加速。
方法600a中描述的各种步骤可以以呈现的次序、不同的次序或同时执行。此外,在本公开的一些示例性实施例中,可以省略图6a中描述的一个或多个步骤。
图6b是描绘根据本公开的示例性实施例的用于对与从第一存储单元110到第二存储单元112的读取数据操作相关联的同步速率进行加速的方法600b的流程图。
在步骤610,方法600b包括如果确定的脏数据量大于第二阈值,则由处理器102对与从计算环境到第一存储单元110的写入数据操作相关联的写入速率进行减速。在步骤612,方法600b包括如果确定的脏数据量大于第二阈值,则由处理器102对与从第一存储单元110到第二存储单元112的读取数据操作相关联的同步速率进行加速。
方法600b中描述的各种步骤可以以呈现的次序、不同的次序或同时执行。此外,在本公开的一些示例性实施例中,可以省略图6b中描述的一个或多个步骤。
图6c是描述根据本公开的示例性实施例的用于使用用于基于高速非易失性存储器固态驱动器(NVMe-SSD)的存储设备的高速非易失性存储器加权循环法(NVMe-WRR)来仲裁与写入数据操作和读取数据操作中的至少一个相对应的队列序列的方法600c的流程图。
在步骤622,方法600c包括由处理器102识别第一存储单元110是否对应于至少一个高速非易失性存储器固态驱动器(NVMe-SSD)。在步骤624,方法600c包括,如果第一存储单元110对应于NVMe-SSD,则由处理器102基于至少一个参数将加权分数分配给读取数据操作和/或接收的写入数据操作。在步骤626,方法600c包括由处理器102基于分配的加权分数来确定读取数据操作和/或所接收的写入数据操作的优先级。在步骤628,方法600c包括,由处理器102基于确定的优先级,使用加权循环(WRR)仲裁方法,使用耦合到处理器102的存储控制器114来仲裁与写入数据操作和/或读取数据操作的相对应的队列序列。在步骤630,方法600c包括由处理器102分别基于确定的优先级以及确定的第一存储单元110中的脏数据量是否对应于大于/小于第一阈值/第二阈值,使得与写入数据操作相对应的仲裁队列序列对写入速率进行加速和/或减速。在步骤632,方法600c包括由处理器102分别基于确定的优先级以及确定的第一存储单元110中的脏数据量是否对应于大于/小于第一阈值/第二阈值,使得与读取数据操作相对应的仲裁队列序列对同步速率进行加速/减速。
方法600c中描述的各种步骤可以以呈现的次序、不同的次序或同时执行。此外,在本公开的一些示例性实施例中,可以省略图6c中描述的一个或多个步骤。
图6d是描述根据本公开的示例性实施例的用于如果脏数据在第一阈值和第二阈值之间则以相等速率执行写入数据操作和读取数据操作的方法600d的流程图。
在步骤636,方法600d包括由处理器102检查确定的第一存储单元110中的脏数据量是否在第一阈值和第二阈值之间。在步骤638,方法600d包括如果确定的第一存储单元110中的脏数据量在第一阈值和第二阈值之间,则由处理器102以相等的速率执行写入数据操作和读取数据操作。
方法600d中描述的各种步骤可以以呈现的次序、不同的次序或同时执行。此外,在本公开的一些示例性实施例中,可以省略图6d中描述的一个或多个步骤。
图6e是描述根据本公开的示例性实施例的用于如果第一存储单元空闲则对与读取数据操作相关联的同步速率进行加速的方法600e的流程图。
在步骤640,方法600e包括当第一存储单元110中没有写入数据操作,由处理器102确定话第一存储单元110是否空闲。在步骤642,方法600e包括如果第一存储单元110空闲,则由处理器102对与从第一存储单元110到第二存储单元112的读取数据操作相关联的的同步速率进行加速。
方法600e中描述的各种步骤可以以呈现的次序、不同的次序或同时执行。此外,在本公开的一些示例性实施例中,可以省略图6e中描述的一个或多个步骤。
图7示出了根据本公开的示例性实施例的实施用于在存储缓存和分层期间对任务进行加速的设备和方法的计算环境702。
如图所示,计算环境702包括配备有控制单元704和算术逻辑单元(ArithmeticLogic Unit,ALU)706的至少一个处理单元708、存储器710、存储单元712、多个网络设备716和多个输入输出(I/O)设备714。处理单元708负责处理方案的指令。处理单元708从控制单元接收命令以执行其处理。此外,可以在ALU706的帮助下计算指令执行中涉及的任何逻辑和算术运算。整个计算环境702可以包括多个同质或异质核心、不同种类的多个CPU、特殊介质和/或其他加速器。处理单元708负责处理方案的指令。此外,多个这样的处理单元708可以位于单个芯片上或多个芯片上。
包括用于实施本文描述的方法的指令和代码的方案被存储在存储器710、存储单元712或两者中。在运行时,指令可以从相应的存储器710或存储单元712中取出,并由处理单元708运行。
各种网络设备716或外部I/O设备714可以连接到计算环境,以通过网络单元和I/O设备单元支持实施。
在本公开的示例性实施例中,计算环境702可以是电子设备、服务器、客户端设备和/或另一形式的计算机设备。计算环境702可以在存储缓存和分层期间执行对任务的加速。计算环境702可以包括应用管理框架。应用管理框架可以包括多个处理模块106和子模块。处理模块106可以存储在存储单元712的存储器710中。处理模块106可以负责在存储缓存和分层期间执行对任务的加速。
使用计算环境702的回写缓存和分层方法可以在外部写入数据操作和内部读取数据操作(同步诱导)之间共享缓存/分层单元的带宽。因此,基于缓存/分层单元中的脏数据的大小,自适应地管理外部(用户写入)写入数据操作和内部读取数据操作(同步)的速度。写入速率和同步速率的速度管理由处理单元708动态执行。
本公开的示例性实施例可以允许服务来自更快的缓存/分层的写入达更长的时间。本文描述的示例性实施例可以允许在给定时间内减少旁路到后端事件的发生,进而实现更好的性能。本文描述的示例性实施例可以利用NVMe WRR内部建立的优先级。本文描述的示例性实施例允许使用内部存储/磁盘阵列(分层)。本文描述的示例性实施例允许服务来自的更快的缓存/分层的写入数据操作达更长的时间。本文描述的示例性实施例可以允许在不使用NVMe的缓存单元/设备中实施。
本文公开的示例性实施例可以通过运行在至少一个硬件设备上的并且执行网络管理功能以控制本文已经描述的各种元件的至少一个软件程序来实施。图2a所示的元件可以是硬件设备,或者硬件设备和软件模块的组合。
在不脱离总体构思的情况下,可以对本公开的示例性实施例的前述描述进行修改和/或适应以用于各种应用和用途,因此,这种适应和修改应该并且旨在处于所公开的实施例的等同物的含义和范围内。

Claims (19)

1.一种在计算环境中用于在存储缓存和分层期间对任务进行加速的装置,包括:
处理器;
第一存储单元,耦合到处理器;
第二存储单元,耦合到处理器;
存储器单元,耦合到处理器,其中,所述存储器单元包括处理模块,所述处理模块被配置为:
从计算环境接收写入数据操作;
基于所接收的写入数据操作,确定第一存储单元中的脏数据量,其中,所述脏数据包括存在于第一存储单元中的、要同步到第二存储单元的数据;
当确定的脏数据量小于第一阈值时,逐渐降低与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率,其中,降低同步速率包括降低处理器执行与同步相关的操作的优先级;以及
当确定的脏数据量小于第一阈值时,逐渐提高与从计算环境到第一存储单元的写入数据操作相关联的写入速率,其中,提高写入速率包括提高处理器执行与写入相关的操作的优先级。
2.根据权利要求1所述的装置,其中,所述处理模块还被配置为:
当确定的脏数据量大于第二阈值时,逐渐降低与从计算环境到第一存储单元的写入数据操作相关联的写入速率,其中,降低写入速率包括降低处理器执行与写入相关的操作的优先级;以及
当确定的脏数据量大于第二阈值时,逐渐提高与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率,其中,提高同步速率包括提高处理器执行与同步相关的操作的优先级。
3.根据权利要求1所述的装置,其中,所述处理模块还被配置为:
确定所确定的第一存储单元中的脏数据量是否在第一阈值和第二阈值之间;以及
当确定的第一存储单元中的脏数据量在第一阈值和第二阈值之间时,以相等的速率执行写入数据操作和读取数据操作。
4.根据权利要求1所述的装置,其中,所述处理模块还被配置为:
当在第一存储单元中没有写入数据操作时,确定第一存储单元是否空闲;以及
当第一存储单元空闲时,逐渐提高与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率,其中,提高同步速率包括提高处理器执行与同步相关的操作的优先级。
5.根据权利要求1所述的装置,其中,使用不对称分布方法来动态分配第一阈值和/或第二阈值。
6.根据权利要求1所述的装置,其中,提高/降低写入速率和同步速率包括分别分配与读取数据操作相对应的读取带宽和与写入数据操作相对应的写入带宽。
7.一种在计算环境中用于在存储缓存和分层期间对任务进行加速的装置,包括:
处理器;
第一存储单元,耦合到处理器;
第二存储单元,耦合到处理器;
存储器单元,耦合到处理器,其中,所述存储器单元包括处理模块,所述处理模块被配置为:
从计算环境接收写入数据操作;
基于所接收的写入数据操作,确定第一存储单元中的脏数据量,其中,所述脏数据包括存在于第一存储单元中的、要同步到第二存储单元的数据;
当确定的脏数据量小于第一阈值时,降低与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率;以及
当确定的脏数据量小于第一阈值时,提高与从计算环境到第一存储单元的写入数据操作相关联的写入速率,
其中,所述处理模块还被配置为:
识别第一存储单元何时对应于至少一个高速非易失性存储器固态驱动器NVMe-SSD;
当第一存储单元对应于NVMe-SSD时,基于至少一个参数,将加权分数分配给读取数据操作和/或所接收的写入数据操作;
基于分配的加权分数,确定读取数据操作和/或所接收的写入数据操作的优先级;
基于确定的优先级,使用加权循环(WRR)仲裁方法,使用耦合到处理器的存储控制器来仲裁与写入数据操作和/或读取数据操作相对应的队列序列;
分别基于确定的优先级以及确定的第一存储单元中的脏数据量是否大于和/或小于第一阈值和/或第二阈值,使得与写入数据操作相对应的仲裁队列序列提高和/或降低写入速率;以及
分别基于确定的优先级以及确定的第一存储单元中的脏数据量是否大于和/或小于第一阈值和/或第二阈值,使得与读取数据操作相对应的仲裁队列序列提高和/或降低同步速率。
8.根据权利要求7所述的装置,其中,基于至少一个参数将加权分数分配给写入数据操作,所述至少一个参数包括优先级数据、与所接收的写入数据操作相关联的应用类型、确定的第一存储单元的剩余数据容量、脏数据量、元数据、用户数据、报头、内部输入/输出操作、外部输入/输出操作、以及与所接收的写入数据操作相关联的类别中的至少一个。
9.根据权利要求7所述的装置,其中,基于确定的第一存储单元中的脏数据量,将加权分数分配给读取数据操作。
10.根据权利要求7所述的装置,其中,将加权分数分配给写入数据操作和读取数据操作还包括将写入数据操作和读取数据操作分类到高优先级、中优先级和/或低优先级中。
11.一种在计算环境中用于在存储缓存和分层期间对任务进行加速的方法,包括:
由处理器从计算环境接收写入数据操作;
由处理器基于所接收的写入数据操作,确定第一存储单元中的脏数据量,其中,所述脏数据包括存在于第一存储单元中的、要同步到第二存储单元的数据;
当确定的脏数据量小于第一阈值时,由处理器逐渐降低与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率,其中,降低同步速率包括降低处理器执行与同步相关的操作的优先级;以及
当确定的脏数据量小于第一阈值时,由处理器逐渐提高与从计算环境到第一存储单元的写入数据操作相关联的写入速率,其中,提高写入速率包括提高处理器执行与写入相关的操作的优先级。
12.根据权利要求11所述的方法,还包括:
当确定的脏数据量大于第二阈值时,由处理器逐渐降低与从计算环境到第一存储单元的写入数据操作相关联的写入速率,其中,降低写入速率包括降低处理器执行与写入相关的操作的优先级;以及
当确定的脏数据量大于第二阈值时,由处理器逐渐提高与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率,其中,提高同步速率包括提高处理器执行与同步相关的操作的优先级。
13.根据权利要求11所述的方法,还包括:
由处理器识别第一存储单元是否对应于至少一个高速非易失性存储器固态驱动器NVMe-SSD;
当第一存储单元对应于NVMe-SSD时,由处理器基于至少一个参数,将加权分数分配给读取数据操作和/或所接收的写入数据操作;
由处理器基于分配的加权分数,确定处理器执行与读取相关的操作和/或与通过相关的操作的优先级;
由处理器基于所确定的优先级,使用加权循环(WRR)仲裁方法,使用耦合到处理器的存储控制器来仲裁与写入数据操作和/或读取数据操作相对应的队列序列;
由处理器分别基于确定的优先级以及确定的第一存储单元中的脏数据量是否大于/小于第一阈值/第二阈值,使得与写入数据操作相对应的仲裁队列序列逐渐提高和/或逐渐降低写入速率;以及
由处理器分别基于确定的优先级以及确定的第一存储单元中的脏数据量是否大于/小于第一阈值/第二阈值,使得与读取数据操作相对应的仲裁队列序列逐渐提高和/或逐渐降低同步速率。
14.根据权利要求13所述的方法,其中,基于至少一个参数将加权分数分配给写入数据操作,所述至少一个参数包括优先级数据、与所接收的写入数据操作相关联的应用类型、确定的第一存储单元的剩余数据容量、脏数据量、元数据、用户数据、报头、内部输入/输出操作、外部输入/输出操作、以及与所接收的写入数据操作相关联的类别中的至少一个。
15.根据权利要求13所述的方法,其中,基于确定的第一存储单元中的脏数据量,将加权分数分配给读取数据操作。
16.根据权利要求13所述的方法,其中,将加权分数分配给写入数据操作和读取数据操作还包括将写入数据操作和读取数据操作分类到高优先级、中优先级和/或低优先级中。
17.根据权利要求11所述的方法,还包括:
由处理器检查确定的第一存储单元中的脏数据量何时在第一阈值和第二阈值之间;以及
当确定的第一存储单元中的脏数据量在第一阈值和第二阈值之间时,由处理器以相等的速率执行写入数据操作和读取数据操作。
18.根据权利要求11所述的方法,还包括:
当第一存储单元中没有写入数据操作时,由处理器确定第一存储单元何时空闲;以及
当第一存储单元空闲时,由处理器提高与从第一存储单元到第二存储单元的读取数据操作相关联的同步速率。
19.根据权利要求11所述的方法,其中,使用不对称分布方法来动态分配第一阈值和/或第二阈值。
CN201910687143.7A 2019-03-13 2019-07-29 计算环境中的存储缓存/分层期间加速任务的装置和方法 Active CN111694507B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201941009729 2019-03-13
IN201941009729 2019-03-13

Publications (2)

Publication Number Publication Date
CN111694507A CN111694507A (zh) 2020-09-22
CN111694507B true CN111694507B (zh) 2024-05-10

Family

ID=72424716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910687143.7A Active CN111694507B (zh) 2019-03-13 2019-07-29 计算环境中的存储缓存/分层期间加速任务的装置和方法

Country Status (2)

Country Link
US (1) US11055218B2 (zh)
CN (1) CN111694507B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402226B1 (en) * 2010-06-18 2013-03-19 Emc Corporation Rate proportional cache write-back in a storage server
CN109062505A (zh) * 2018-07-13 2018-12-21 南瑞集团有限公司 一种缓存策略写入分层硬件架构下的写性能优化方法
CN109213693A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 存储管理方法、存储系统和计算机程序产品

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100228922A1 (en) * 2009-03-09 2010-09-09 Deepak Limaye Method and system to perform background evictions of cache memory lines
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US9417968B2 (en) * 2014-09-22 2016-08-16 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US9483402B2 (en) * 2014-09-24 2016-11-01 Netapp, Inc. Methods and systems for dynamically controlled caching
US10191879B2 (en) 2015-03-31 2019-01-29 Veritas Technologies Llc System and method for creating snapshots in openflame environment
US10853246B2 (en) * 2018-10-30 2020-12-01 EMC IP Holding Company LLC Increasing performance of write throughput using machine learning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402226B1 (en) * 2010-06-18 2013-03-19 Emc Corporation Rate proportional cache write-back in a storage server
CN109213693A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 存储管理方法、存储系统和计算机程序产品
CN109062505A (zh) * 2018-07-13 2018-12-21 南瑞集团有限公司 一种缓存策略写入分层硬件架构下的写性能优化方法

Also Published As

Publication number Publication date
US11055218B2 (en) 2021-07-06
US20200293462A1 (en) 2020-09-17
CN111694507A (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
US20200089537A1 (en) Apparatus and method for bandwidth allocation and quality of service management in a storage device shared by multiple tenants
US10387202B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
US11163452B2 (en) Workload based device access
US10082958B2 (en) Invoking input/output (I/O) threads on processors to demote tracks from a cache
US10310980B2 (en) Prefetch command optimization for tiered storage systems
US9971689B2 (en) Invoking input/output (I/O) threads and demote threads on processors to demote tracks from a cache
US10642755B2 (en) Invoking demote threads on processors to demote tracks from a cache based on free cache segments
US9372825B1 (en) Global non-volatile solid-state cache in a network storage system
US9465555B2 (en) Method and apparatus for efficient processing of disparate data storage commands
US10614004B2 (en) Memory transaction prioritization
US11036635B2 (en) Selecting resources to make available in local queues for processors to use
US9201598B2 (en) Apparatus and method for sharing resources between storage devices
JP2023536237A (ja) 書き込みセット内のトラックのためのキャッシュ・リソースが解放された後、書き込みセット内のトラックへの予想される書き込みのためにキャッシュ・リソースを取得する
US10346070B2 (en) Storage control apparatus and storage control method
CN111694507B (zh) 计算环境中的存储缓存/分层期间加速任务的装置和方法
US11972148B2 (en) Proactive storage operation management using thermal states
US10664396B2 (en) Systems, methods and apparatus for fabric delta merge operations to enhance NVMeoF stream writes
US10809937B2 (en) Increasing the speed of data migration
US12079477B2 (en) Optimizing backend workload processing in a storage system
WO2024140707A1 (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