CN111066005A - 响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新 - Google Patents

响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新 Download PDF

Info

Publication number
CN111066005A
CN111066005A CN201880057269.XA CN201880057269A CN111066005A CN 111066005 A CN111066005 A CN 111066005A CN 201880057269 A CN201880057269 A CN 201880057269A CN 111066005 A CN111066005 A CN 111066005A
Authority
CN
China
Prior art keywords
buffer
metadata
metadata track
updates
cpu
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
CN201880057269.XA
Other languages
English (en)
Other versions
CN111066005B (zh
Inventor
L·古普塔
K·J·阿什
K·安德森
M·J·卡洛斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN111066005A publication Critical patent/CN111066005A/zh
Application granted granted Critical
Publication of CN111066005B publication Critical patent/CN111066005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/1673Details of memory controller using buffers
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

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

响应于通过总线接口接收到输入/输出(I/O)命令,产生高速缓存命中。响应于产生高速缓存命中,将元数据道的更新存储在与处理I/O命令的中央处理单元(CPU)相关联的缓冲器中。用缓冲器中存储的元数据道的更新,来异步地更新来自缓冲器异的元数据道。

Description

响应于经由总线接口上的I/O操作产生的高速缓存命中对元 数据道的异步更新
技术领域
实施例涉及响应于经由通过总线接口的I/O操作产生的高速缓存命中而异步更新元数据道。
背景技术
在某些存储系统环境中,存储控制器(或存储控制器复合体)可以包括彼此耦合的多个存储服务器。存储控制器允许主机计算系统对由存储控制器控制的存储设备执行输入/输出(I/O)操作,其中主机计算系统可以被称为主机。在某些情况下,存储控制器的存储服务器可以各自包括多个中央处理单元(CPU),其可以用于执行多个任务的并行执行。
存储控制器可以包括高速缓存。从主机写入的数据可以存储在高速缓存中,并且在适当的时候,存储在高速缓存中的数据可被离台(destage)(即,移动或复制)到存储设备。数据也可以从存储设备登台(stage)(即,移动或复制)到存储控制器的高速缓存。如果用于读取I/O请求的数据在高速缓存中可用,则存储控制器可以从高速缓存响应对主机的读取I/O请求,否则可以将数据从存储设备登台到高速缓存以响应读取I/O请求。来自主机的写入I/O请求使得与该写入对应的数据被写入高速缓存,然后在适当的时间,可以将写入的数据从高速缓存离台到存储设备。由于高速缓存的存储容量与存储设备的存储容量相比相对较小,因此数据可以周期性地从高速缓存离台以在高速缓存中创建空存储空间。与从存储设备读取和写入数据相比,数据可以更快地从高速缓存写入和读取。
发明内容
提供了一种方法、系统、存储控制器和计算机程序产品,其中响应于通过总线接口接收输入/输出(I/O)命令而产生高速缓存命中。响应于产生高速缓存命中,将元数据道的更新存储在与处理I/O命令的中央处理单元(CPU)相关联的缓冲器中。用缓冲器中存储的元数据道的更新,来异步更新来自缓冲器的元数据道。由此,I/O命令优选地能够以及时的方式完成,而无需等待对元数据道的更新。
在另外的实施例中,在用缓冲器中存储的元数据道的更新来异步更新来自缓冲器的元数据道之前,完成CPU对I/O命令的处理。由此,在对元数据道进行对应的更新之前,I/O命令可以及时的方式完成。
在进一步的实施例中,缓冲器是来自缓冲器池的针对CPU保留的空闲缓冲器。响应于缓冲器被CPU用元数据道的更新来填充,将缓冲器返回到缓冲器池。作出指示以指示返回到缓冲器池的缓冲器是已使用的缓冲器。由此,已使用的缓冲器可临时存储对元数据道的更新。
在某些实施例中,多个后台任务中的一个后台任务执行用于异步地更新元数据道的操作。由此,对元数据道的更新由在后台执行的任务进行,并且不阻碍对syncio操作的处理。
在进一步的实施例中,响应于用已使用的缓冲器中存储的元数据道的更新来异步地更新来自已使用的缓冲器的元数据道,作出指示以指示已使用的缓冲器是空闲缓冲器。由此,当已经从已使用的缓冲器完成了元数据更新时,已使用的缓冲器在缓冲器池中被释放并且可以被重新使用。
在某些实施例中,多个CPU通过多个总线接口处理多个I/O命令。对多个后台任务的数量进行调整,以维持缓冲器池中空闲缓冲器的足够数量,其中缓冲器池中空闲缓冲器的足够数量大于第一阈值数量并且小于第二阈值数量。由此,保持缓冲器池中空闲缓冲器和已使用的缓冲器的数量平衡。
在进一步的实施例中,多个可调整数量的后台任务用所存储的多个元数据道的更新来异步地更新来自多个缓冲器的多个元数据道,其中多个缓冲器中所存储的多个元数据道的更新是由多个CPU生成的。作为后台任务的数量是可调整的结果,保持缓冲器池中空闲缓冲器和已使用的缓冲器的数量的平衡。
附图说明
现在将参考以下附图(相同的附图标记始终表示对应的部件)通过示例的方式描述本发明的优选实施例:
图1示出了根据某些实施例的计算环境的框图,计算环境包括耦合到一个或多个主机和一个或多个存储设备的存储控制器,用于将syncio处理与高速缓存和元数据管理集成。
图2示出了根据某些实施例的示出以syncio方式异步更新元数据道的框图;
图3示出了根据某些实施例的示出由CPU对缓冲器池中的空闲缓冲器的保留的框图;
图4示出了根据某些实施例的示出用于管理缓冲器池的操作的流程图;
图5示出了根据某些实施例的示出后台任务如何异步地更新元数据道的流程图;
图6示出了根据某些实施例的示出后台任务如何异步地更新元数据道的另一流程图;
图7示出了根据某些实施例的示出如何调整后台任务的数量以维持缓冲器池中空闲缓冲器的足够数量的流程图;
图8示出了根据某些实施例的示出如何响应于由于syncio操作而产生的高速缓存命中来进行元数据道的异步更新的流程图;
图9示出了根据某些实施例的云计算环境的框图;
图10示出了根据某些实施例的图9的云计算环境的进一步细节的框图;以及
图11示出了根据某些实施例的计算系统的框图,计算系统示出了可以包括在如图1-10中所描述的存储控制器或主机中的某些元件。
具体实施方式
在以下描述中,参考形成描述的一部分并示出若干实施例的附图。可以理解,可以利用其他实施例,并且可以进行结构和操作改变。
Syncio(也称为Sync I/O)包括用于计算设备的附加硬件和协议。Syncio被设计用于非常低的延迟时间随机读取和小块顺序写入。计算设备之间的Syncio连接可以是通过点对点的快速光外围组件互连Express(PCIe)接口。Syncio操作表现与传统I/O不同,区别在于在Syncio中,主机计算设备可以在自旋循环(spin loop)中保持应用线程,同时等待I/O操作完成。这避免了对执行传统I/O的两个上下文交换的处理器周期的需要、对执行用于将I/O线程置于睡眠状态然后重新分派I/O线程的操作的需要、以及对I/O中断的需要。
需要对用于Syncio的代码路径进行极度优化,以满足完成Syncio操作的时间要求。可能延迟Syncio操作的完成的任何条件可使得存储控制器向主机指示Syncio操作不能完成,并且可能必须从主机重试Syncio操作。
Syncio操作可导致高速缓存命中,其可使得一个或多个元数据道将需要更新,其中元数据道可存储关于存储在高速缓存中的多个道的信息。例如,元数据道可以存储关于在高速缓存中存储的上千个道的信息(元数据)。在必须完成Syncio操作的时间段内,直接更新一个或多个元数据道可能是不可能的,因为可能正在执行SyncIO操作的多个CPU可能需要写入相同的元数据道,并且必须轮流写入相同的元数据道。另外,一些元数据道可能在盘存储设备上,并且可能不能在必须完成Syncio操作的时间段内更新这些元数据道。
某些实施例在多个CPU执行的Syncio操作期间发生高速缓存命中时,用要写入元数据道的信息(元数据)更新与多个CPU相关联的多个缓冲器。对与CPU相关联的缓冲器的更新可以在需要完成Syncio操作的时间段内完成。后台任务可以用写入缓冲器的元数据来更新元数据道。因此,元数据道的更新与Syncio操作异步执行,即,当Syncio操作对道执行I/O操作时,不需要执行对与道对应的元数据道的更新。
示例性实施例
图1示出了根据某些实施例的计算环境100的框图,计算环境100包括存储控制器102,其耦合到一个或多个主机104、106以及一个或多个存储设备108、110。存储控制器102允许多个主机104、106对由存储控制器102维护的逻辑存储执行输入/输出(I/O)操作。对应于逻辑存储的物理存储可以在一个或多个存储设备108、110和/或存储控制器102的高速缓存112(例如,存储器)中找到。
存储控制器102和主机104、106可以包括任何适当的计算设备,包括本领域目前已知的计算设备,例如个人计算机、工作站、服务器、大型机、手持式计算机、掌上计算机、电话设备、网络设备、刀片计算机、处理设备等。存储控制器102、主机104、106和存储设备108、110可以是任何适当网络114中的元件,例如存储区域网络、广域网、因特网、内联网。在某些实施例中,存储控制器102、主机104、106和存储设备108、110可以是包括计算环境100的云计算环境中的元件。存储设备108、110可以包括存储盘、磁带驱动器、固态存储器等,并且可以由存储控制器102控制。
在某些实施例中,主机104、106可以经由总线接口(例如,点对点光学PCIe接口)116、118和网络接口120、122耦合到存储控制器102。来自主机104、106的Syncio操作可通过总线接口116、118执行。来自主机104、106的传统I/O操作可以通过网络接口120、122来执行。总线接口116、118可以包括比网络接口120、122更快的I/O访问信道。可以使用附加的总线接口技术来扩展总线接口116、118,包括PCIe扩展器线缆或组件,例如分布式PCIe交换机,以允许PCIe通过例如利用ExpEther技术的以太网。
高速缓存112可存储包括客户数据道、元数据道和其它道的多个道124。元数据道也可被存储在存储设备108、110中。每个元数据道可存储关于一个或多个客户数据道的信息。因此,多个客户数据道的元数据126被存储在多个元数据道128、130中,其中每个元数据道存储关于一个或多个客户的客户数据道的信息,并且元数据道128、130中的一些或所有可以存在于高速缓存112中,并且元数据道128、130中的一些或所有可以存在于一个或多个存储设备108、110中。
存储控制器102执行一个或多个Syncio过程132、一个或多个后台任务134和后台任务调整过程136。Syncio过程132可以在存储控制器的多个CPU138、140上执行。缓冲器池142(包括一个或多个空闲缓冲器144和一个或多个已使用缓冲器146)被保持在存储控制器102中,其中缓冲器池142中的每个缓冲器144、146包括可以与多个CPU138、140中的CPU相关联的存储器。
在某些实施例中,CPU138可执行Syncio操作,并且由于高速缓存命中高速缓存112的道,CPU138用需要写入与高速缓存112的道对应的元数据道128的信息来更新从空闲缓冲器144中选择的先前保留的缓冲器。后台任务134可通过将由多个CPU138、140在Syncio操作期间写入多个缓冲器的信息复制到元数据道,而与Syncio操作的执行异步地更新元数据道128、130(即,Syncio操作可在元数据道被更新之前完成)。后台任务调整过程136调整后台任务的数量,以确保可由CPU138、140保留的空闲缓冲器144的足够数量,以临时写入最终要写入元数据道128、130的信息。
图2示出了根据某些实施例的框图200,其示出Syncio中元数据道的异步更新。在某些实施例中,图2所示的操作可以由存储控制器102执行。
控制开始于框202,其中在CPU138执行的Syncio操作期间发生高速缓存112上的高速缓存命中,并且因此需要对元数据道128的更新。由于以下原因中的任何一个,不可能在必须完成SynchIO操作的时间段内直接更新元数据道128:(1)多个CPU138、140可能需要在相同的元数据道128上写入,并且元数据道128可能已经被锁定用于由除CPU138之外的另一个CPU写入;以及(2)元数据道128可在盘存储设备上,并且直接写入元数据道128或者写入元数据道128的暂存副本的时间超过SyncIO操作需要完成的时间(如框204所示)。
控制从框202前进到框206,其中CPU138将要对元数据道进行的更新临时存储在与CPU138相关联的缓冲器中。另外,对于执行Syncio操作的多个CPU138、140(如通过附图标记208所示),可调整数量的后台任务134异步更新(在块210)来自缓冲器的元数据道128、130,其中CPU138、140已经将要进行的更新写入元数据道128、130。
图3示出了根据某些实施例的框图300,其示出CPU138、140对来自缓冲器池142的空闲缓冲器的保留。
缓冲器池142可以包括多个空闲缓冲器302、304和多个已使用缓冲器306、308。空闲缓冲器是空的缓冲器,即,包括该缓冲器的存储器可以被写入而没有任何数据丢失。已使用缓冲器是满的缓冲器,即,在不重写存储控制器102所需的已有数据的情况下,更多的数据不能被写入包括该缓冲器的存储器。
在某些实施例中,当CPU需要更新元数据道并且CPU不具有任何分配的用于CPU独占写入的缓冲器时,CPU保留缓冲器池142的空闲缓冲器,并且分配所保留的空闲缓冲器用于CPU独占写入。例如,在图3中,CPU138已经为其自身分配了空闲缓冲器310,并且CPU140已经为其自身分配了空闲缓冲器312。由于缓冲器是存储控制器102中所包括的存储器,而元数据道可被另一CPU锁定或可位于存储设备中,因此与CPU将更新写入元数据道相比,CPU可以更快地将更新写入为该CPU保留的缓冲器中。
图4示出了根据某些实施例的流程图400,其示出用于管理缓冲器池142的操作。在某些实施例中,图4所示的操作可由存储控制器102执行。
控制在框402处开始,其中存储控制器102维护缓冲器池142,缓冲器池142包括空闲缓冲器144和已使用缓冲器146。CPU138执行Syncio操作,并且如果CPU138不具有保留的缓冲器,则CPU138从缓冲器池142保留空闲缓冲器以供CPU138使用(在框404)。如果在框404,CPU138已经具有未满的现有保留的缓冲器,则CPU138继续使用未满的现有保留的缓冲器。
控制从框404前进到框406,其中确定CPU138是否需要更新元数据道。例如,如果在执行Syncio操作时在高速缓存112中存在读取命中,则可能需要更新元数据道,其中元数据道可能需要被更新以存储用于确定使用什么离台机制来使来自高速缓存112的道离台的统计数据。
如果在框406确定CPU138需要更新元数据道("是"分支408),则控制进行到框410,其中CPU138指示(在方框410)在保留缓冲器的条目中需要对元数据道的更新。控制进行到框412,其中CPU138确定保留缓冲器是否已满。如果是(是"分支414"),则CPU138将所保留的缓冲器添加(在框416)到缓冲器池142中的已使用缓冲器的列表,并且控制返回到框402。如果否("否"分支418),则控制返回到框404,其中CPU138继续使用未满的现有保留的缓冲器。
如果在框406确定CPU138不需要更新元数据道("否"分支420),则控制返回到框402。
因此,图4示出了如何管理缓冲器池142以提供空闲缓冲器,以及如何生成已使用的缓冲器并将其放置在缓冲器池142中。
图5示出了根据某些实施例的流程图500,其示出后台任务如何异步地更新元数据道。在某些实施例中,图5所示的操作可以在存储控制器102内由在存储控制器102中执行的一个或多个后台任务134来执行。
控制在框502开始,其中后台任务134开始执行操作或继续执行操作。后台任务134确定(在框504)在缓冲器池142中是否存在已使用的缓冲器。如果是("是"分支506),后台任务134启动对来自缓冲器池142的已使用缓冲器的处理(在框508)。后台任务134处理已使用缓冲器的条目以更新(在框510)一个或多个元数据道128、130。因此,发生元数据道128、130的异步更新。在处理了已使用缓冲器的所有条目后,后台任务134指示(在框512)已使用缓冲器是空闲缓冲器,并且控制返回到框502。
如果在框504,后台任务134确定(在框504)在缓冲器池142中没有已使用的缓冲器("否"分支514),则控制返回到框502。
因此,图5所示的操作示出了异步更新元数据道的机制,即元数据道的更新相对于Syncio操作是异步的。
图6示出了根据某些实施例的另一流程图600,其示出后台任务134如何异步地更新元数据道128、130。在某些实施例中,图6所示的操作可以在存储控制器102内由在存储控制器102中执行的一个或多个后台任务来执行。
控制在框602开始,其中后台任务134开始执行操作或继续执行操作。后台任务134从缓冲器池142中选择(在框604)预定数量(例如,10)的已使用缓冲器。控制进行到框606,其中后台任务134产生一个或多个组,其中一组将所有条目存储在所选择的缓冲器中,其存储相同元数据道的更新信息。对于一组中的每个条目,后台任务134访问其更新信息存储在该条目中的元数据道,并用该更新来更新(在框608)该元数据道,即,一组中的每个条目用于更新相同的元数据道。在框608中处理在框606中生成的一个或多个组。
控制从框608前进到框610,其中在处理所有组后,指示框604中由后台任务选择的已使用的缓冲器为缓冲器池142中的空闲缓冲器。
因此,图6示出了用于在缓冲器池142中将多个已使用缓冲器转换为空闲缓冲器的机制。
图7示出了根据某些实施例的流程图700,其示出如何调整后台任务的数量以维持缓冲器池142中空闲缓冲器的足够数量。图7所示的操作可以由在存储控制器102中执行的后台任务调整过程136来执行。
控制开始于框702,其中启动后台任务调整过程136。控制从框702并行地进行到框704和706。
在框702,后台任务调整过程136确定缓冲器池142中的空闲缓冲器的数量是否大于最小阈值(例如,20)。如果是("是"分支708),则控制进行到框710,其中后台任务调整过程136继续维持当前数量的后台任务。如果不是("否"分支712),则后台任务调整过程136将后台任务的数量增加(在块714)N(例如,如果"N"表示数量5,则将后台任务的数量增加5)。因此,如果空闲缓冲器的数量达到或低于最小阈值,则使用更多的后台任务来增加将已使用缓冲器转换为空闲缓冲器的速率。
在框706,后台任务调整过程136确定缓冲器池142中的空闲缓冲器的数量是否小于最大阈值(例如,30)。如果是("是"分支716),则控制进行到框718,其中后台任务调整过程136继续维持当前数量的后台任务。如果不是("否"分支720),则后台任务调整过程136将后台任务的数量减少(在方块722)"M"(例如,如果"M"表示数量2,则将后台任务的数量减少2)。因此,如果空闲缓冲器的数量达到或上升到最大阈值以上,则使用更少的后台任务来降低将已使用缓冲器转换成空闲缓冲器的速率。
因此,图7示出了通过调整后台任务的数量(其用于将已使用缓冲器转换成空闲缓冲器)来维持空闲缓冲器的适当数量在最小阈值数和最大阈值数之间的某些实施例。
图8示出了根据某些实施例的流程图800,其示出如何响应于由于Syncio操作而产生的高速缓存命中来进行元数据道的异步更新。在某些实施例中,图8所示的操作可以由存储控制器102执行。
控制开始于框802,其中响应于通过总线接口116、118接收到输入/输出(I/O)命令,产生高速缓存命中。总线接口116、118上的I/O命令是SyncIO命令。响应于产生高速缓存命中,将元数据道的更新存储(在框804)在与处理I/O命令的中央处理单元(CPU)138相关联的缓冲器中。
控制从框804进行到框806,其中用缓冲器中存储的元数据道的更新,从缓冲器异步地更新元数据道(即,在更新元数据道时,Syncio操作可能已经完成)。
因此,图1-8示出了其中CPU对SyncIO命令的处理产生由于高速缓存命中而需要更新元数据道的某些实施例。然而,允许完成SyncIO命令而无需等待对元数据道的更新。在完成SyncIO命令的处理之前,CPU将对元数据道的更新存储在专门为CPU保留的缓冲器中。后台任务在适当的时间将更新从缓冲器复制到元数据道。因此,Syncio操作可以及时完成,而无需等待对元数据道的更新。
云计算环境
云计算是用于实现对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的方便的按需网络访问的模型,其可以以最小的管理努力或服务提供商交互来快速供应和释放。
现在参考图9,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。可以理解,图9显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图10,其中显示了云计算环境50(图9)提供的一组功能抽象层。首先可以理解,图10所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:在一个示例IBMzSeries系统中的大型机;在一个示例IBM pSeries系统中的基于RISC(精简指令集计算机)架构的服务器;IBM xSeries系统;IBM BladeCerter系统;存储设备;网络和网络组件。软件组件的示例包括:在一个示例IBM WebSphere应用服务器软件中的网络应用服务器软件;以及在一个示例IBM DB2数据库软件(IBM、zSeries、pSeries、xSeries、BladeCerter、WebSphere和DB2是在全世界许多管辖区注册的国际商业机器公司的商标)中的数据库软件。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及如图1-9所示在syncio68中异步写入元数据道。
附加实施例细节
所描述的操作可以被实现为使用标准编程和/或工程技术来产生软件、固件、硬件或其任何组合的方法、装置或计算机程序产品。因此,实施例的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,其在这里可以被统称为"电路"、"模块"或"系统"。此外,实施例的各方面可以采取计算机程序产品的形式。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),该计算机可读程序指令用于使处理器执行本实施例的各方面。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。可以理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
图11示出了根据某些实施例的可以包括在存储控制器102、主机104、106或其它计算设备中的某些元件的框图。系统1100可以包括电路1102,其在某些实施例中可以至少包括处理器1104。系统1100还可包含存储器1106(例如,易失性存储器装置)和存储设备1108。存储设备1108可以包括非易失性存储器设备(例如,EEPROM、ROM、PROM、闪存、固件、可编程逻辑等)、磁盘驱动器、光盘驱动器、磁带驱动器等。系统1100可以包括程序逻辑1110,其包括可以被加载到存储器1106中并且由处理器1104或电路1102执行的代码1112。在某些实施例中,包括代码1112的程序逻辑1110可被存储在存储设备1108中。在某些其它实施例中,程序逻辑1110可以在电路1102中实现。系统1100中的一个或多个组件可以经由总线或经由其它耦合或连接1114进行通信。因此,虽然图11示出了程序逻辑1110与其它元件分离,但是程序逻辑1110也可以在存储器1106和/或电路1102中实现。
某些实施例可以针对用于由人或自动处理集成计算机可读代码将计算指令部署到计算系统中的方法,其中,代码结合计算系统被使能执行所描述的实施例的操作。
术语"一实施例"、"实施例"、"多个实施例"、"该实施例"、"这些实施例"、"一个或多个实施例"、"一些实施例"和"一个实施例"表示"本发明的一个或多个(但不是全部)实施例",除非另有明确说明。
术语"包括"、"包含"、"具有"及其变体表示"包括但不限于",除非另有明确说明。
除非另外明确规定,否则列举的项目列表并不意味着任何或所有项目是互斥的。
术语"一"、"一个"和"该"表示"一个或多个",除非另有明确说明。
除非另外明确指出,否则彼此通信的设备不需要彼此连续通信。另外,彼此通信的设备可以直接通信或通过一个或多个中间物间接通信。
具有彼此通信的若干组件的实施例的描述并不暗示需要所有此类组件。相反,描述了各种可选组件以说明本发明的各种可能的实施例。
此外,尽管可以以连续的顺序描述过程步骤、方法步骤、算法等,但该过程、方法和算法可以被配置为以交替的顺序工作。换句话说,可以描述的步骤的任何顺序或次序不必须指示要求以该次序执行步骤。可以以任何可行的顺序执行本文所述的过程的步骤。此外,一些步骤可以同时执行。
当在此描述单个设备或产品时,很明显,可以使用多于一个的设备/产品(无论它们是否协作)来代替单个设备/产品。类似地,在这里描述了多于一个设备或产品(无论它们是否协作)的情况下,将容易明白的是,可以使用单个设备/产品来代替多于一个设备或产品,或者可以使用不同数量的设备/产品来代替所示数量的设备或程序。设备的功能和/或特征可以替代地由一个或多个未明确描述为具有该功能/特征的其它设备来体现。因此,本发明的其它实施例不需要包括该设备本身。
已经在附图中示出的至少某些操作示出了以特定顺序发生的某些事件。在替代实施例中,某些操作可以以不同的顺序执行、修改或移除。此外,可以将步骤添加到上述逻辑中,并且仍然符合所描述的实施例。此外,这里描述的操作可以顺序地发生,或者某些操作可以并行地处理。此外,操作可以由单个处理单元或由分布式处理单元执行。
为了说明和描述的目的,已经给出了本发明的各种实施例的上述描述。这不旨在进行穷举也不是要将本发明限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。本发明的范围不是由该具体实施方式来限定,而是由所附权利要求来限定。上述说明、示例和数据提供了对本发明的组成的制造和使用的完整描述。由于在不脱离本发明的精神和范围的情况下可以做出本发明的许多实施例,因此本发明在于下文所附的权利要求。

Claims (25)

1.一种方法,包括:
响应于通过总线接口接收到输入/输出(I/O)命令,产生高速缓存命中;
响应于产生所述高速缓存命中,将元数据道的更新存储在与处理所述I/O命令的中央处理单元(CPU)相关联的缓冲器中;以及
用所述缓冲器中存储的所述元数据道的更新来异步地更新来自所述缓冲器的所述元数据道。
2.如权利要求1所述的方法,其中,在用所述缓冲器中存储的所述元数据道的更新来异步地更新来自所述缓冲器的所述元数据道之前,完成所述CPU对所述I/O命令的处理。
3.根据权利要求2所述的方法,其中,所述缓冲器是来自缓冲器池的针对所述CPU保留的空闲缓冲器,所述方法还包括:
响应于所述缓冲器被所述CPU用元数据道的更新来填充,将所述缓冲器返回到所述缓冲器池;以及
指示返回到所述缓冲器池的所述缓冲器是已使用的缓冲器。
4.根据权利要求3所述的方法,其中,多个后台任务中的一个后台任务执行用于异步地更新所述元数据道的操作。
5.根据权利要求4所述的方法,所述方法还包括:
响应于用所述已使用的缓冲器中存储的所述元数据道的更新来异步地更新来自所述已使用的缓冲器的所述元数据道,指示所述已使用的缓冲器是空闲缓冲器。
6.根据权利要求5所述的方法,其中,多个CPU通过多个总线接口处理多个I/O命令,所述方法还包括:
调整所述多个后台任务的数量以维持所述缓冲器池中空闲缓冲器的足够数量,其中,所述缓冲器池中空闲缓冲器的所述足够数量大于第一阈值数量并且小于第二阈值数量。
7.根据权利要求1所述的方法,其中,多个可调整数量的后台任务用所述存储的所述多个元数据道的更新来异步地更新来自多个缓冲器的多个元数据道,其中,所述多个缓冲器中存储的所述多个元数据道的更新是由多个CPU生成的。
8.一种系统,包括:
一个或多个中央处理单元(CPU);以及
计算机可读存储介质,其具有与其一起体现的程序指令,所述程序指令能够由所述一个或多个CPU执行以使所述一个或多个CPU执行操作,所述操作包括:
响应于通过总线接口接收到输入/输出(I/O)命令,产生高速缓存命中;
响应于产生所述高速缓存命中,将元数据道的更新存储在与处理所述I/O命令的中央处理单元(CPU)相关联的缓冲器中;以及
用所述缓冲器中存储的所述元数据道的更新来异步地更新来自所述缓冲器的所述元数据道。
9.根据权利要求8所述的系统,其中,在用所述缓冲器中存储的所述元数据道的更新来异步地更新来自所述缓冲器的所述元数据道之前,完成所述CPU对所述I/O命令的处理。
10.根据权利要求9所述的系统,其中,所述缓冲器是来自缓冲器池的针对所述CPU保留的空闲缓冲器,所述操作还包括:
响应于所述缓冲器被所述CPU用元数据道的更新来填充,将所述缓冲器返回到所述缓冲器池;以及
指示返回到所述缓冲器池的所述缓冲器是已使用的缓冲器。
11.根据权利要求10所述的系统,其中,多个后台任务中的一个后台任务执行用于异步更新所述元数据道的操作。
12.根据权利要求11所述的系统,所述操作还包括:
响应于用所述已使用的缓冲器中存储的所述元数据道的更新来异步地更新来自所述已使用的缓冲器的所述元数据道,指示所述已使用的缓冲器是空闲缓冲器。
13.根据权利要求12所述的系统,其中,多个CPU通过多个总线接口处理多个I/O命令,所述操作还包括:
调整所述多个后台任务的数量以维持所述缓冲器池中空闲缓冲器的足够数量,其中,所述缓冲器池中空闲缓冲器的所述足够数量大于第一阈值数量并且小于第二阈值数量。
14.根据权利要求8所述的系统,其中,多个可调整数量的后台任务用所述存储的多个元数据道的更新来异步地更新来自多个缓冲器的多个元数据道,其中,所述多个缓冲器中存储的所述多个元数据道的所述更新是由多个CPU生成的。
15.一种计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有与其一起体现的计算机可读程序代码,所述计算机可读程序代码被配置为执行操作,所述操作包括:
响应于通过总线接口接收到输入/输出(I/O)命令,产生高速缓存命中;
响应于产生所述高速缓存命中,将元数据道的更新存储在与处理所述I/O命令的中央处理单元(CPU)相关联的缓冲器中;以及
用所述缓冲器中存储的所述元数据道的更新来异步地更新来自所述缓冲器的所述元数据道。
16.根据权利要求15所述的计算机程序产品,其中,在用所述缓冲器中存储的所述元数据道的更新来异步地更新来自所述缓冲器的所述元数据道之前,完成所述CPU对所述I/O命令的处理。
17.根据权利要求16所述的计算机程序产品,其中,所述缓冲器是来自缓冲器池的针对所述CPU保留的空闲缓冲器,所述操作还包括:
响应于所述缓冲器被所述CPU用元数据道的更新来填充,将所述缓冲器返回到所述缓冲器池;以及
指示返回到所述缓冲器池的所述缓冲器是已使用的缓冲器。
18.根据权利要求17所述的计算机程序产品,其中,多个后台任务中的一个后台任务执行用于异步地更新所述元数据道的操作。
19.根据权利要求18所述的计算机程序产品,所述操作还包括:
响应于用所述已使用的缓冲器中存储的所述元数据道的更新来异步地更新来自所述已使用的缓冲器的所述元数据道,指示所述已使用的缓冲器是空闲缓冲器。
20.根据权利要求19所述的计算机程序产品,其中,多个CPU通过多个总线接口处理多个I/O命令,所述操作还包括:
调整所述多个后台任务的数量以维持所述缓冲器池中空闲缓冲器的足够数量,其中,所述缓冲器池中空闲缓冲器的所述足够数量大于第一阈值数量并且小于第二阈值数量。
21.根据权利要求15所述的计算机程序产品,其中,多个可调整数量的后台任务用所述存储的所述多个元数据道的更新来异步地更新来自多个缓冲器的多个元数据道,其中,所述多个缓冲器中存储的所述多个元数据道的更新是由多个CPU生成的。
22.一种存储控制器,其经由总线接口通信地耦合到主机计算设备,所述存储控制器包括:
高速缓存;以及
多个缓冲器,其中,所述存储控制器执行操作,所述操作包括:
响应于经由所述总线接口从所述主机计算设备接收到输入/输出(I/O)命令,在所述高速缓存上产生高速缓存命中;
响应于产生所述高速缓存命中,将元数据道的更新存储在与处理所述I/O命令的中央处理单元(CPU)相关联的缓冲器中;以及
用所述缓冲器中存储的所述元数据道的更新来异步地更新来自所述缓冲器的所述元数据道。
23.根据权利要求22所述的存储控制器,其中,在用所述缓冲器中存储的所述元数据道的更新来异步地更新来自所述缓冲器的所述元数据道之前,完成所述CPU对所述I/O命令的处理。
24.根据权利要求23所述的存储控制器,其中,所述缓冲器是来自从所述多个缓冲器生成的缓冲器池的针对所述CPU保留的空闲缓冲器,所述操作还包括:
响应于所述缓冲器被所述CPU用元数据道的更新来填充,将所述缓冲器返回到所述缓冲器池;以及
指示返回到所述缓冲器池的所述缓冲器是已使用的缓冲器。
25.根据权利要求24所述的存储控制器,其中,多个后台任务中的一个后台任务执行用于异步更新所述元数据道的操作。
CN201880057269.XA 2017-09-05 2018-08-24 响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新 Active CN111066005B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/695,920 US10565109B2 (en) 2017-09-05 2017-09-05 Asynchronous update of metadata tracks in response to a cache hit generated via an I/O operation over a bus interface
US15/695,920 2017-09-05
PCT/IB2018/056423 WO2019048969A1 (en) 2017-09-05 2018-08-24 ASYNCHRONOUS METADATA TRACK UPDATE IN RESPONSE TO A GENERATED INTERCEPTION VIA I / O OPERATION ON A BUS INTERFACE

Publications (2)

Publication Number Publication Date
CN111066005A true CN111066005A (zh) 2020-04-24
CN111066005B CN111066005B (zh) 2023-09-29

Family

ID=65518528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880057269.XA Active CN111066005B (zh) 2017-09-05 2018-08-24 响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新

Country Status (6)

Country Link
US (2) US10565109B2 (zh)
JP (1) JP7104289B2 (zh)
CN (1) CN111066005B (zh)
DE (1) DE112018004138T5 (zh)
GB (1) GB2579754B (zh)
WO (1) WO2019048969A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970236B2 (en) * 2017-04-21 2021-04-06 Softnas Operating Inc. System and method for optimized input/output to an object storage system
US10565109B2 (en) 2017-09-05 2020-02-18 International Business Machines Corporation Asynchronous update of metadata tracks in response to a cache hit generated via an I/O operation over a bus interface
CN111722785A (zh) * 2019-03-21 2020-09-29 阿里巴巴集团控股有限公司 一种缓存更新方法和装置
CN111061654B (zh) * 2019-11-11 2022-05-10 支付宝(杭州)信息技术有限公司 缓存刷新处理方法及装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106971A1 (en) * 2004-11-18 2006-05-18 International Business Machines (Ibm) Corporation Management of metadata in a storage subsystem
US20070168565A1 (en) * 2005-12-27 2007-07-19 Atsushi Yuhara Storage control system and method
CN101165663A (zh) * 2006-10-17 2008-04-23 国际商业机器公司 使用高速缓存的地址转换与i/o适配器进行通信的装置、方法
US20160232102A1 (en) * 2015-02-07 2016-08-11 International Business Machines Corporation Efficient multi-threaded journal space reclamation

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845710A (en) * 1986-12-23 1989-07-04 Oki Electric Industry Co., Ltd. Dynamic buffer supervising system for a data link access protocol control
US5493668A (en) * 1990-12-14 1996-02-20 International Business Machines Corporation Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
US5734861A (en) * 1995-12-12 1998-03-31 International Business Machines Corporation Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US5848241A (en) * 1996-01-11 1998-12-08 Openframe Corporation Ltd. Resource sharing facility functions as a controller for secondary storage device and is accessible to all computers via inter system links
US5893140A (en) * 1996-08-14 1999-04-06 Emc Corporation File server having a file system cache and protocol for truly safe asynchronous writes
US6574720B1 (en) * 1997-05-30 2003-06-03 Oracle International Corporation System for maintaining a buffer pool
US6490652B1 (en) * 1999-02-03 2002-12-03 Ati Technologies Inc. Method and apparatus for decoupled retrieval of cache miss data
US6658533B1 (en) * 2000-09-21 2003-12-02 Intel Corporation Method and apparatus for write cache flush and fill mechanisms
US6691216B2 (en) * 2000-11-08 2004-02-10 Texas Instruments Incorporated Shared program memory for use in multicore DSP devices
US6944724B2 (en) * 2001-09-14 2005-09-13 Sun Microsystems, Inc. Method and apparatus for decoupling tag and data accesses in a cache memory
US7162551B2 (en) * 2003-10-31 2007-01-09 Lucent Technologies Inc. Memory management system having a linked list processor
US7137033B2 (en) * 2003-11-20 2006-11-14 International Business Machines Corporation Method, system, and program for synchronizing subtasks using sequence numbers
US7039661B1 (en) * 2003-12-29 2006-05-02 Veritas Operating Corporation Coordinated dirty block tracking
US8230144B1 (en) * 2004-10-19 2012-07-24 Broadcom Corporation High speed multi-threaded reduced instruction set computer (RISC) processor
US8813052B2 (en) * 2005-12-07 2014-08-19 Microsoft Corporation Cache metadata for implementing bounded transactional memory
US7797396B2 (en) * 2007-01-30 2010-09-14 Hewlett-Packard Development Company, L.P. Network attached storage (NAS) server having a plurality of automated media portals
US20080244153A1 (en) 2007-04-02 2008-10-02 Mediatek Inc. Cache systems, computer systems and operating methods thereof
US7877559B2 (en) * 2007-11-26 2011-01-25 Globalfoundries Inc. Mechanism to accelerate removal of store operations from a queue
CN101236530B (zh) 2008-01-30 2010-09-01 清华大学 高速缓存替换策略的动态选择方法
US8612668B2 (en) * 2008-11-24 2013-12-17 Juniper Networks, Inc. Storage optimization system based on object size
US8935484B2 (en) * 2011-03-31 2015-01-13 Hewlett-Packard Development Company, L.P. Write-absorbing buffer for non-volatile memory
US9460177B1 (en) 2012-09-25 2016-10-04 Emc Corporation Managing updating of metadata of file systems
US9268652B1 (en) * 2012-10-31 2016-02-23 Amazon Technologies, Inc. Cached volumes at storage gateways
US20140258628A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots
US9280467B1 (en) 2013-03-15 2016-03-08 Emc Corporation Metadata flushing using additive increase and multiplicitive decrease to determine a number of IO processes used
US9471499B2 (en) * 2013-05-20 2016-10-18 Globalfoundries Inc. Metadata management
US10229161B2 (en) * 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US9727611B2 (en) * 2013-11-08 2017-08-08 Samsung Electronics Co., Ltd. Hybrid buffer management scheme for immutable pages
US9880933B1 (en) * 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
CN104035729B (zh) 2014-05-22 2017-02-15 中国科学院计算技术研究所 一种日志映射的块设备精简配置方法
US20150347310A1 (en) * 2014-05-30 2015-12-03 Lsi Corporation Storage Controller and Method for Managing Metadata in a Cache Store
US9864774B2 (en) 2015-06-23 2018-01-09 International Business Machines Corporation Granular buffering of metadata changes for journaling file systems
US10114753B2 (en) * 2015-08-21 2018-10-30 International Business Machines Corporation Using cache lists for multiple processors to cache and demote tracks in a storage system
US9778879B2 (en) * 2015-10-23 2017-10-03 Microsoft Technology Licensing, Llc Flushless transactional layer
US9811474B2 (en) * 2015-10-30 2017-11-07 International Business Machines Corporation Determining cache performance using a ghost cache list indicating tracks demoted from a cache list of tracks in a cache
US9824030B2 (en) * 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage
US9384143B1 (en) * 2015-11-12 2016-07-05 International Business Machines Corporation Selecting cache lists indicating tracks in a cache to process for demotion
US10169232B2 (en) * 2016-02-19 2019-01-01 Seagate Technology Llc Associative and atomic write-back caching system and method for storage subsystem
US10067883B2 (en) * 2016-05-31 2018-09-04 International Business Machines Corporation Using an access increment number to control a duration during which tracks remain in cache
US9971508B2 (en) * 2016-06-06 2018-05-15 International Business Machines Corporation Invoking input/output (I/O) threads on processors to demote tracks from a cache
US9971689B2 (en) * 2016-06-06 2018-05-15 International Business Machines Corporation Invoking input/output (I/O) threads and demote threads on processors to demote tracks from a cache
CN106850856A (zh) 2017-03-28 2017-06-13 南京卓盛云信息科技有限公司 一种分布式存储系统及其同步缓存方法
US20190034355A1 (en) * 2017-07-27 2019-01-31 International Business Machines Corporation Saving track metadata format information for tracks demoted from cache for use when the demoted track is later staged into cache
US10387321B2 (en) * 2017-08-01 2019-08-20 International Business Machines Corporation Securing exclusive access to a copy of a metadata track via a process while the metadata track is held in a shared mode by another process
US10565109B2 (en) 2017-09-05 2020-02-18 International Business Machines Corporation Asynchronous update of metadata tracks in response to a cache hit generated via an I/O operation over a bus interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106971A1 (en) * 2004-11-18 2006-05-18 International Business Machines (Ibm) Corporation Management of metadata in a storage subsystem
US20070168565A1 (en) * 2005-12-27 2007-07-19 Atsushi Yuhara Storage control system and method
CN101165663A (zh) * 2006-10-17 2008-04-23 国际商业机器公司 使用高速缓存的地址转换与i/o适配器进行通信的装置、方法
US20160232102A1 (en) * 2015-02-07 2016-08-11 International Business Machines Corporation Efficient multi-threaded journal space reclamation

Also Published As

Publication number Publication date
US20200151095A1 (en) 2020-05-14
JP7104289B2 (ja) 2022-07-21
US11010295B2 (en) 2021-05-18
CN111066005B (zh) 2023-09-29
GB202004608D0 (en) 2020-05-13
GB2579754A (en) 2020-07-01
US20190073301A1 (en) 2019-03-07
GB2579754B (en) 2020-12-02
US10565109B2 (en) 2020-02-18
DE112018004138T5 (de) 2020-04-23
JP2020532803A (ja) 2020-11-12
WO2019048969A1 (en) 2019-03-14

Similar Documents

Publication Publication Date Title
US11023286B2 (en) Container based service management
US20220004504A1 (en) Integration of application indicated maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US20200356806A1 (en) Container image management
US10983913B2 (en) Securing exclusive access to a copy of a metadata track via a process while the metadata track is held in a shared mode by another process
US10216429B2 (en) Performing post-processing operations for log file writes
CN111066005B (zh) 响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新
US10078507B2 (en) Cloud infrastructure for reducing storage facility code load suspend rate by redundancy check
CN111033479B (zh) 高速缓存管理
US11144213B2 (en) Providing preferential access to a metadata track in two track writes
CN112912860B (zh) 存储系统中具有空洞的离台磁道
US10606489B2 (en) Sidefiles for management of data written via a bus interface to a storage controller during consistent copying of data
US11144230B2 (en) Data copy amount reduction in data replication
US10613896B2 (en) Prioritizing I/O operations
US10545688B2 (en) Management of data written via a bus interface to a storage controller during consistent copying of data
CN111465920B (zh) 远程复制操作期间通过总线接口被写入存储控制器的数据的管理
US9665308B2 (en) Optimization of the copying of change recorded data by using spare flash capacity
US10789008B2 (en) Reducing write collisions in data copy
US11030100B1 (en) Expansion of HBA write cache using NVDIMM

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