CN110998546A - 使用高速缓存中的轨道的高速缓存控制块中的轨道格式代码来处理对高速缓存中的轨道的读和写请求 - Google Patents

使用高速缓存中的轨道的高速缓存控制块中的轨道格式代码来处理对高速缓存中的轨道的读和写请求 Download PDF

Info

Publication number
CN110998546A
CN110998546A CN201880048427.5A CN201880048427A CN110998546A CN 110998546 A CN110998546 A CN 110998546A CN 201880048427 A CN201880048427 A CN 201880048427A CN 110998546 A CN110998546 A CN 110998546A
Authority
CN
China
Prior art keywords
track
track format
cache
metadata
read
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
CN201880048427.5A
Other languages
English (en)
Other versions
CN110998546B (zh
Inventor
L·古波塔
K·安德森
K·J·阿什
M·J·卡洛斯
B·A·佩特森
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 CN110998546A publication Critical patent/CN110998546A/zh
Application granted granted Critical
Publication of CN110998546B publication Critical patent/CN110998546B/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/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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2012Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant and using different communication protocols
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • 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
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/462Track or segment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

Landscapes

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

Abstract

提供了一种计算机程序产品、系统和方法,用于使用高速缓存中的轨道的高速缓存控制块中的轨道格式代码来处理对高速缓存中的轨道的读和写请求。轨道格式表将轨道格式代码与轨道格式元数据相关联。确定该轨道格式表是否具有与被送入高速缓存的轨道的轨道格式元数据相匹配的轨道格式元数据。确定来自该轨道格式表的用于该轨道格式表中的轨道格式元数据的轨道格式代码是否与被送入的轨道的轨道格式元数据相匹配。当轨道格式表具有匹配的轨道格式元数据时,生成包括所确定的轨道格式代码的用于被添加到高速缓存的轨道的高速缓存控制块。

Description

使用高速缓存中的轨道的高速缓存控制块中的轨道格式代码 来处理对高速缓存中的轨道的读和写请求
技术领域
本发明涉及一种计算机程序产品、系统和方法,用于使用高速缓存中的轨道的高速缓存控制块中的轨道格式代码来处理对高速缓存中的轨道的读和写请求。
背景技术
在存储环境中,主机系统可以通过网络适配器在网络通道上向所连接的存储系统传送读/写请求。如果数据在存储系统的高速缓存中,即,读命中,则数据可以被快速地返回到主机系统。这减少了将所请求的数据返回到主机I/O请求的延迟。然而,如果所请求的数据不在存储系统的高速缓存中,则在存储系统需要从存储装置检索所请求的数据以返回时,可能存在实现的显著延迟。此外,执行主机读请求的线程或任务可能必须被上下文切换和去激活,以便允许主机系统处理进一步的I/O请求。当数据被返回到读请求时,则必须重新激活任务,并且必须将任务的数据返回到寄存器和处理器高速缓存,以允许处理读请求的返回数据。在本领域中需要用于处理对高速缓存的主机读/写请求的改进技术。
发明内容
在第一实施例中,提供了一种计算机程序产品、系统和方法,用于使用高速缓存中的轨道的高速缓存控制块中的轨道格式代码来处理对高速缓存中的轨道的读和写请求。轨道格式表将轨道格式代码与轨道格式元数据相关联,其中每个轨道格式元数据指示轨道中的数据布局。将轨道从存储装置送入高速缓存,并处理送入高速缓存的轨道的轨道格式元数据。确定该轨道格式表是否具有与被送入高速缓存的轨道的轨道格式元数据相匹配的轨道格式元数据。响应于该轨道格式表具有匹配的轨道格式元数据,确定来自该轨道格式表的用于该轨道格式表中的轨道格式元数据的轨道格式代码是否与被送入高速缓存的轨道的轨道格式元数据相匹配。当轨道格式表具有匹配的轨道格式元数据时,生成包括所确定的轨道格式代码的用于被添加到高速缓存的轨道的高速缓存控制块。
通过第一实施例,轨道格式代码被添加到高速缓存中的轨道的高速缓存控制块,以用于通过在轨道格式表中查找轨道格式代码的轨道格式元数据来确定在处理高速缓存中的轨道时的轨道布局和格式。这提供了对高速缓存中的轨道的轨道格式元数据的快速访问,而不必从存储装置读取和处理该轨道的轨道元数据。这种对轨道格式元数据的快速访问大大减少了处理读和写请求的等待时间,因为读取轨道元数据来确定轨道格式元数据是读/写处理等待时间的主要部分。
在第二实施例中,第一实施例可以另外包括在连接到主机的第一通道上从主机接收对目标轨道的读或写请求。确定目标轨道是否在高速缓存中。响应于确定目标轨道在高速缓存中,确定用于目标轨道的高速缓存控制块是否包括来自轨道格式表的有效轨道格式代码。响应于确定目标轨道不在高速缓存中或者确定高速缓存控制块不包括有效轨道格式代码,使读或写请求失败。使读或写请求失败导致主机在连接到主机的第二通道上向目标轨道重新发送读或写请求。
通过第二实施例,如果在需要快速响应时间的通道上接收到读或写请求,例如如果在总线接口上发送请求,其中用于读/写请求的主机线程在等待响应的同时正根据请求自旋,则如果在高速缓存中不存在用于轨道的有效轨道格式代码,则请求失败。如果没有有效的轨道格式代码,则响应将不能满足快速访问通道的时间要求,因为将需要访问轨道元数据来确定轨道格式。然而,如果存在有效的轨道格式代码,则可在快速通道的定时要求内响应该请求,因为使用高速缓存控制块中的轨道格式代码从轨道格式表确定轨道格式元数据将存在最小的等待时间。
在第三实施例中,第二实施例可以另外包括第一通道,该第一通道提供比第二通道更快的对读或写请求的处理。
在第三实施例中,通过提供用于确定轨道的轨道格式元数据的轨道格式代码,轨道格式表允许快速通道的快速处理。
在第四实施例中,第二实施例可另外包括当目标轨道不在高速缓存中时,在对目标轨道的读或写请求失败之后,在连接到主机的第二通道上接收对目标轨道的读或写请求。响应于在第二通道上接收到读或写请求,执行将目标轨道送入高速缓存、处理轨道格式元数据、确定轨道格式表是否具有匹配的轨道格式元数据、确定轨道格式代码以及生成高速缓存控制块的操作中的至少一个。
通过第四实施例,如果由于高速缓存控制块中不存在用于目标轨道的有效轨道格式代码而导致快速通道上的请求失败,则在较慢的第二通道上重新发送请求,其中由于第二通道上请求响应的预期较长时间,管理I/O请求的主机线程将进行上下文切换。在这种情况下,当在较慢的通道上接收到请求时,则当不存在目标轨道的有效轨道格式代码时处理该请求,这将需要将目标轨道送入高速缓存中和读取轨道元数据中的至少一个以确定轨道格式元数据,该轨道格式元数据可用于确定要包括在高速缓存控制块中的轨道格式代码,以减少对该轨道的未来请求的等待时间。
在第五实施例中,第二实施例可另外包括在对具有包括无效轨道格式代码的高速缓存控制块的目标轨道的读或写请求失败之后,在连接到主机的第二通道上接收对目标轨道的读或写请求。响应于当目标轨道的高速缓存控制块不具有有效轨道格式代码时在第二通道上接收到读或写请求,读取目标轨道的轨道格式元数据以处理在第二通道上接收到的读或写请求。确定轨道格式表是否具有与读取的轨道格式元数据匹配的轨道格式元数据。响应于轨道格式表具有匹配的轨道格式元数据,从轨道格式表中确定用于匹配的轨道格式元数据的轨道格式代码。将所确定的轨道格式代码作为有效轨道格式代码包括在目标轨道的高速缓存控制块中。
通过第五实施例,当在较快的第一通道上的请求失败之后在较慢的第二通道上接收到对目标轨道的请求时,读取轨道格式元数据,并且确定轨道格式代码并将其包括在高速缓存控制块中,以允许在第二通道上对针对目标轨道的未来请求的读/写请求的快速处理,从而可以快速确定轨道格式元数据,而不必针对未来请求从存储装置读取轨道元数据。
在第六实施例中,第一实施例可以另外包括,高速缓存控制块包括指示高速缓存控制块是否包括有效轨道格式代码的有效标志。当将轨道格式代码添加到高速缓存控制块时,将有效标志设置为有效。当在高速缓存中存在用于轨道更新的包括轨道格式代码的高速缓存控制块时,接收用于更新高速缓存中的轨道的写。确定对轨道的更新是否修改轨道格式。响应于确定对轨道的更新修改轨道格式,将有效标志设置为指示无效。
通过第六实施例,使用有效轨道格式代码来指示高速缓存控制块中的轨道格式代码是否有效。当通过写操作改变轨道格式时,该标志被设置为无效,因为在这种情况下,高速缓存控制块中的轨道格式代码不再准确地表示通过更新而改变的轨道格式。有效轨道格式代码提供允许快速确定高速缓存控制块是否包括可用于处理读或写请求的有效轨道格式代码的信息。
在第七实施例中,提供了一种用于管理来自主机的对高速缓存中所高速缓存的存储装置中的轨道的读和写请求的计算机程序产品、系统和方法。一种将轨道格式代码与轨道格式元数据相关联的轨道格式表,其中每个轨道格式元数据指示轨道中的数据布局。在高速缓存中的轨道的高速缓存控制块中,高速缓存控制块中的至少一个高速缓存控制块包括轨道格式表中指示轨道的轨道格式元数据的轨道格式代码之一。在高速缓存中从主机接收对目标轨道的读或写请求。确定用于目标轨道的高速缓存控制块是否包括有效轨道格式代码。响应于确定高速缓存控制块包括有效轨道格式代码,从轨道格式表中确定用于有效轨道格式代码的轨道格式元数据。使用所确定的轨道格式元数据来处理对高速缓存中的目标轨道的读或写请求。
通过第七实施例,当目标轨道的高速缓存控制块包括有效轨道格式代码时,则可以从轨道格式表中快速确定目标轨道的轨道格式元数据,而无需从存储装置中读取轨道元数据。轨道格式表的这种使用大大减少了处理对目标轨道的读和写请求的等待时间。
在第八实施例中,提供了一种用于管理来自主机的对高速缓存中所高速缓存的存储装置中的轨道的读和写请求的计算机程序产品、系统和方法。轨道格式表将轨道格式代码与轨道格式元数据相关联,其中每个轨道格式元数据指示轨道中的数据布局。在连接到主机的第一通道和第二通道中的一个上从主机接收对高速缓存中的目标轨道的读或写请求。确定目标轨道的高速缓存控制块是否包括轨道格式表中的有效轨道格式代码。当在第一通道上接收到读或写请求时,响应于确定高速缓存控制块不包括有效轨道格式代码,使读或写请求失败。响应于确定高速缓存控制块包括有效轨道格式代码,从轨道格式表确定有效轨道格式代码的轨道格式元数据。使用所确定的轨道格式元数据来处理对高速缓存中的目标轨道的读或写请求。
通过第八实施例,如果在需要快速处理的通道上接收到读/写请求,则如果目标轨道的高速缓存控制块不包括轨道格式代码,则请求失败,因为由必须读取轨道元数据引入的等待时间将不允许在第一通道上的请求在所需时间内完成。然而,如果高速缓存控制块包括有效的轨道格式代码,则可以处理第一通道上的请求,因为当可以从轨道格式表确定轨道格式元数据时,可以在第一通道所需的时间内返回响应。
附图说明
现在将参考附图仅通过示例的方式描述本发明的实施例,在附图中:
图1示出了存储环境的实施例。
图2示出了轨道格式表条目的实施例。
图3示出了高速缓存控制块的实施例。
图4示出了高速缓存中的最近最少使用(LRU)轨道列表的实施例。
图5示出了处理在诸如总线接口的第一通道上接收的读/写请求的操作的实施例。
图6示出了处理在诸如网络的第二通道上接收的读/写请求的操作的实施例。
图7示出了关闭轨道元数据并确定所关闭的轨道元数据的高速缓存中的轨道的轨道格式代码的操作的实施例。
图8示出了与所描述的实施例一起使用的计算机体系结构的实施例。
具体实施方式
在存储环境中,主机系统可以首先通过快速通道、诸如总线接口、诸如快速外围组件互连(PCIe)接口,将读/写请求传送到连接的存储系统。对于快速通道上的应该在阈值时间内完成的读/写请求,主机系统将用于读/写请求的应用线程保持在自旋循环(spinloop)中,等待请求完成。这节省了与上下文交换相关联的处理器时间,上下文交换去激活(deactivate)线程并且当接收到对读/写请求的响应时响应于一个中断重新激活线程。如果在快速通道上发送的读/写请求的数据不在高速缓存中,则存储系统可能使读/写请求失败,并且主机系统可以经由主机适配器在存储区域网络上传送相同的读/写请求,这比在总线(例如,PCIe接口)上处理I/O请求慢。在第二通道上传送读/写请求要求主机系统在等待读/写请求完成的同时执行从处理读/写请求的任务到另一任务的上下文切换。上下文切换是昂贵的,因为在等待读/写请求完成的同时,它要求运行任务的处理器清除所有寄存器以及L1和L2高速缓存来用于新任务,然后当完成新任务时,重新激活被上下文切换的任务,并且将状态数据返回给寄存器和L1和L2高速缓存来用于被上下文切换的任务。
某些读/写操作需要在阈值时间内完成,否则它们会失败。存储系统将必须访问轨道元数据以处理对轨道的请求。轨道元数据提供关于数据格式和轨道中记录的布局的信息,需要所述信息以便执行对轨道的读和写。然而,从存储装置中读取轨道元数据包括处理读/写请求的等待时间的相当大的部分。所描述的实施例提供了对高速缓存技术的改进,其通过在高速缓存控制块中包括用于高速缓存中的轨道的轨道格式代码来减少高速缓存操作等待时间。该轨道格式代码可用于从轨道格式表快速访问轨道格式,而不必从存储装置读取轨道元数据。通过消除从存储装置中的元数据轨道读取轨道元数据以确定轨道布局的需要,所述实施例通过从轨道格式表访问轨道的轨道布局信息,将轨道格式代码与通用轨道格式的轨道格式信息相关联,增加了完成需要在阈值时间内完成的第一通道上的读/写请求的可能性。
对于所描述的实施例,如果目标轨道的轨道格式代码在目标轨道的高速缓存控制块内,则处理对通道上的目标轨道的读/写请求,其要求在阈值时间内完成该请求。使用轨道格式代码从轨道格式表访问轨道格式元数据减少了访问轨道格式元数据的等待时间,以允许读/写请求在时间阈值内完成。这将主机线程正针对在总线接口上发送的读/写请求的读/写请求任务的自旋的时间保持在可接受的时间阈值内。然而,如果目标轨道的高速缓存控制块不具有有效的轨道格式代码,则第一通道上的读/写请求失败,因为假定必须从存储装置检索轨道格式元数据,则读/写请求不可能在阈值时间内完成。在第一通道上使读/写请求失败使得主机在第二通道上重新驱动读/写请求。在第二通道上对读/写请求的处理从存储装置读入轨道元数据,以允许处理读/写请求并将轨道格式代码添加到目标轨道的高速缓存控制块。
图1示出了存储环境的实施例,其中主机100将读和写请求定向到存储系统102以访问在磁盘盒106中的存储设备104中配置的卷中的轨道。主机100包括一个或多个处理器装置的处理器组108和包括由处理器组108执行的操作系统111的存储器110。主机操作系统111生成对存储设备104中配置的轨道的读和写请求。主机100包括在两个不同通道上传送读和写请求的硬件。第一通道是总线接口,例如快速外围组件互连(PCIe),包括总线112、连接总线112上的一个或多个设备、包括处理器组108、存储器系统110的总线开关114、和总线主机适配器116,以便通过外部总线接口电缆118将总线接口扩展到存储系统102。可以使用附加的总线接口技术来扩展总线接口,包括PCIe扩展器电缆或组件,例如分布式PCIe交换机,以允许例如利用ExpEther技术的以太网上的PCIe。连接主机100和存储系统102的第二通道使用连接到总线112的网络主机适配器120,其连接到单独的网络122,主机100和存储系统102通过该网络另外通信。通过总线接口的第一通道可以包括比通过网络主机适配器120的网络122接口更快的访问通道。
存储系统102包括总线接口,该总线接口包括总线124a、124b、连接到总线124a、124b上的端点设备的总线开关126、以及连接到外部总线接口电缆118以允许通过第一通道在总线接口上与主机100通信的总线主机适配器128。存储系统102包括具有总线主机适配器128的输入/输出舱(bay)130、连接到存储设备104的一个或多个设备适配器132、以及连接到网络122和主机系统的一个或多个网络主机适配器134。
存储系统102包括一个或多个处理器设备的处理器组136和具有高速缓存140以高速缓存由连接的主机100访问的轨道的存储器138。存储器138包括高速缓存管理器142和存储装置管理器144。存储装置管理器144管理来自主机100和存储系统102中的进程的对存储装置104中的轨道的访问请求。设备136、138、128、132和134经由在总线通道124a、124b和总线开关126中实施的总线接口连接。
高速缓存管理器142在高速缓存140中维护所访问的轨道以供将来对轨道的读访问,以允许所访问的轨道从较快访问高速缓存140返回而不必从存储装置104检索。此外,高速缓存140中的轨道可以通过写入来更新。轨道可以包括在存储装置104中配置的任何数据单元,例如轨道、逻辑块地址(LBA)等,其是更大的轨道组(例如卷、逻辑设备等)的一部分。
高速缓存管理器142维护存储器138中的高速缓存管理信息146,以管理高速缓存140中的读(未修改)和写(修改)轨道。高速缓存管理信息146可包括轨道格式表200,其具有用于提供轨道中的数据的布局和格式的细节的公共轨道格式描述符的轨道格式代码;轨道索引148,其提供高速缓存140中的轨道到控制块目录300中的高速缓存控制块的索引;以及用于高速缓存140中的轨道的最近最少使用(LRU)列表400。控制块目录300包括高速缓存控制块,其中,对于高速缓存140中的每个轨道存在一个高速缓存控制块,其提供关于高速缓存140中的轨道的元数据。轨道索引148将轨道与提供关于高速缓存140中的轨道的信息的高速缓存控制块相关联。在确定高速缓存LRU列表400已满或已经达到阈值级别时,从LRU列表400降级轨道以便为更多轨道腾出空间以从存储装置104放入高速缓存140中。
在某些实施例中,可以有多个主机100,它们通过第一和第二通道与存储系统102连接,以访问存储设备104中的轨道。在这种情况下,存储系统102将具有至少一个总线主机适配器128以连接到每个连接的主机100的总线接口118,以及一个或多个网络主机适配器134以连接到主机100上的网络主机适配器120。
在一个实施例中,总线接口112、114、116、118、124a、124b、126和128可以包括快速外围组件互连(PCIe)总线接口技术。在备选实施例中,总线接口112、114、116、118、124a、124b、126和128可以利用PCIe之外的适当总线接口技术。总线主机适配器116和128可以包括PCIe主机适配器,其提供接口以连接到PCIe电缆118。网络122可以包括存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、因特网、内联网等,并且网络主机适配器120、134提供主机100和存储系统102之间的网络122连接。
存储系统102可以包括存储系统,例如国际商业机器公司
Figure BDA0002375267790000091
Figure BDA0002375267790000092
和DS8880存储系统,或者来自其他供应商的存储控制器和存储系统。(IBM和DS8000是国际商业机器公司在全球的商标)。主机操作系统111可以包括操作系统,诸如来自国际商业机器公司("IBM")的Z系统操作系统
Figure BDA0002375267790000101
或本领域已知的其它操作系统。(Z/OS是IBM在全球的注册商标)。
磁盘盒106中的存储设备104可以包括不同类型或类别的存储设备,诸如磁性硬盘驱动器、包括固态电子器件的固态存储设备(SSD)、EEPROM(电可擦除可编程只读存储器)、闪存、闪存盘、随机存取存储器(RAM)驱动器、存储类存储器(SCM)等、相变存储器(PCM)、电阻随机存取存储器(RRAM)、自旋转移扭矩存储器(STT-RAM)、导电桥接RAM(CBRAM)、磁性硬盘驱动器、光盘、磁带等。存储空间中的卷还可以由设备阵列来配置,诸如简单磁盘捆绑(JBOD)、直接存取存储设备(DASD)、独立磁盘冗余阵列(RAID)、虚拟化设备等。此外,磁盘盒106中的存储设备104可以包括来自不同厂商的异构存储设备和不同类型的存储设备,诸如第一类型的存储设备,例如硬盘驱动器,其具有比第二类型的存储设备、例如SSD更慢的数据传输速率。
图2示出了轨道格式表200中的轨道格式表条目200i的实施例,其包括轨道格式代码202和轨道格式元数据204。在某些计数关键字数据(CKD)轨道实施例中,轨道格式元数据204可以包括轨道格式描述符(TFD),其指示轨道中的记录的数量、块大小、轨道中的块的数量、每个记录的数据长度、以及控制间隔大小,其指示作为一个单元原子地读取或写入的数据量、控制间隔中的块的数量、以及控制间隔是否跨越两个轨道、以及其他信息。轨道格式代码202可包括轨道格式表200中的索引条目200i的索引值。例如,如果存在32个轨道格式表条目200i,则轨道格式代码202可以包括5位以引用32个条目200i的不同的可能数量。
图3示出了高速缓存140中的一个轨道的高速缓存控制块300i的实施例,包括但不限于高速缓存控制块标识符302,例如高速缓存控制块300i的索引值;存储装置104中的轨道ID304;其中指示了高速缓存控制块300i的高速缓存LRU列表306;指示轨道的LRU列表条目308;高速缓存时间戳310,其指示将该轨道添加到高速缓存140并且在LRU列表306上指示的时间;通常为存储在高速缓存140中的轨道维护的附加轨道元数据312,诸如指示该轨道是否被修改的脏标志;轨道格式代码314,包括描述由高速缓存控制块300i表示的轨道304中的数据布局的轨道格式元数据204的轨道格式代码202之一;轨道格式代码有效标志316,其指示轨道格式代码314是有效还是无效;以及无效原因318,其指示轨道格式代码有效标志316代码无效的原因,如在轨道格式代码有效标志316中所指示的。
图4示出LRU列表400i的实施例,例如具有最近最多使用(MRU)端402和最近最少使用(LRU)端404,其中(MRU端402标识最近添加到高速缓存140或在高速缓存140中最近访问的轨道,从在LRU端404标识的轨道选择轨道以从高速缓存140降级。MRU端402和LRU端404分别指向列表400中指示的轨道的最近添加的轨道的以及在高速缓存140中时间最长的轨道的轨道标识符,例如轨道标识符地址或该轨道的高速缓存控制块索引。
图5示出了由高速缓存管理器142和存储装置管理器144执行的、处理经由总线主机适配器128在诸如PCIe总线接口的第一快速通道上接收的对目标轨道的读/写请求的操作的实施例。在总线主机适配器128处接收到(在框500)读/写请求时,如果(在框502)目标轨道不在高速缓存140中,则存储装置管理器144向主机100返回(在框504)第一通道或总线主机适配器128上的读/写请求失败,这使得主机100在第二通道或网络主机适配器120、134上重试读/写请求。返回失败,因为如果目标轨道不在高速缓存140中,则目标轨道和轨道元数据需要被送入到高速缓存140中,这将可能超过在第一通道上读/写的时间阈值,其中主处理器正在读/写请求的线程上自旋。如果(在框502)目标轨道在高速缓存140中并且是写入,并且如果(在框508)该写入修改轨道格式,则高速缓存管理器142将轨道格式代码有效标志316设置(在框510)为无效,并且指示(在框512)高速缓存140中的轨道被无效的无效原因318为轨道格式改变。存储装置管理器144然后向主机100返回(在框504)失败,因为需要从存储装置104读取轨道元数据以用修改的轨道格式更新。
如果(在框506)读/写请求是读或者如果(在框508)请求是不修改轨道格式的写,则高速缓存管理器142确定(在框514)轨道格式代码有效标志316是否被设置为有效。如果是,则高速缓存管理器142确定(在框516)轨道格式表200中与高速缓存控制块300i中的轨道格式代码314相对应的轨道格式元数据204。高速缓存管理器142使用(在框518)所确定的轨道格式元数据204中所指示的轨道格式布局来处理对高速缓存140中的目标轨道的读或写请求。如果该请求是写,则可以设置高速缓存控制块300i中的脏标志312以指示该轨道被修改。如果(在框514)轨道格式代码有效标志316无效,意味着没有对通过轨道格式代码314可用的轨道格式信息的快速访问,则存储装置管理器144在到总线主机适配器128的总线接口上返回(在框504)失败,因为不能使用轨道格式表200,并且需要从存储装置104读取轨道元数据,这将为第一通道上的快速读取/写入引入太多的等待时间。
对于图5的操作的实施例,在通过总线接口或第一通道的快速写入期间,如果可通过轨道格式表200无延迟地访问轨道格式元数据,则当可非常快速地处理事务时,允许读/写请求继续进行,因为可通过轨道格式代码314直接从轨道格式表200获得轨道元数据,而不必从存储装置104读取轨道元数据。然而,如果高速缓存控制块300i不具有允许对轨道格式元数据的低延迟访问的有效轨道格式代码314,则读/写请求失败,因为事务不可能在快速时间阈值内完成。这种确定对于在主处理器在等待读/写请求完成的同时在处理读/写请求的线程上自旋时避免处理其它任务中的主机延迟是重要的。如果可从轨道格式表200访问轨道元数据,则非常可能在所需的时间内可以在总线接口通道上完成读/写,避免主处理器保持线程太长时间,导致其它I/O请求排队和延迟。如果不能从轨道格式表200访问轨道元数据,而需要从存储装置104读取轨道元数据,则读/写请求不可能在主处理器针对读/写请求在线程上自旋的时间阈值内完成,并且返回失败。当不能从轨道格式表200获得轨道元数据时返回失败,导致等待读/写请求任务的主线程被去激活,并且主处理器可上下文切换以处理其它任务,然后在上下文切换期间在第二网络通道上重试读/写请求。
图6示出了由高速缓存管理器142和存储装置管理器144执行的处理在第二通道上接收的对目标轨道的读/写请求的操作的实施例,所述第二通道例如是网络主机适配器134上的网络122。在接收到(在框600)读/写请求时,如果(在框602)目标轨道不在高速缓存140中,则高速缓存管理器142将轨道从存储装置104送入(在框604)到高速缓存140,并从存储装置104读取(在框606)目标轨道的轨道元数据,以确定轨道格式,例如块的大小、控制间隔、轨道上的记录的布局等。如果(在框608)读/写请求是写,并且如果(在框610)该写修改了轨道格式,则高速缓存管理器142更新(在框612)轨道元数据以指示修改的轨道格式,并将轨道格式代码有效标志316设置(在框614)为无效。轨道元数据312被进一步更新(在框616)以指示轨道被修改或脏。如果(在框608)该请求是读或来自框616,则高速缓存管理器142使用(在框618)在轨道格式元数据中指示的轨道格式布局来处理对高速缓存140中的目标轨道的读或写请求。
如果(在框602)目标轨道在高速缓存140中,并且如果(在框630)轨道格式代码有效标志316被设置为有效,则高速缓存管理器142确定(在框632)轨道格式表200中的与高速缓存控制块300i-中的轨道格式代码314对应的目标轨道的轨道格式元数据204。控制从框632继续到框608以处理读/写请求。如果(在框630)轨道格式代码有效标志316被设置为无效,则控制进行到框606,以从存储装置104读取轨道的元数据,以确定轨道格式布局。
采用图6的实施例,当在第二较慢通道上、诸如通过网络122接收读/写请求时,其中主机操作系统111将已经为处理读/写请求的线程执行上下文切换,高速缓存管理器142可从存储装置104读取轨道元数据以确定轨道布局以处理该请求。在此期间,因为处理读/写请求的主机线程被上下文切换并且是不活动的,所以不会延迟对其他主机请求的主机处理,直到读/写请求返回完成。
图7示出了当关闭高速缓存140中的轨道的轨道元数据时由高速缓存管理器142执行的操作的实施例,这涉及如果改变,则将轨道元数据送出到存储设备104。在关闭(在框700)高速缓存140中的轨道的轨道元数据后,高速缓存管理器142处理(在框702)轨道元数据以确定轨道中的数据布局的轨道格式。如果(在框704)轨道格式表200不具有与从轨道元数据确定的轨道格式匹配的轨道格式元数据204(如果所确定的轨道格式不规则,则可能发生这种情况),则将轨道格式代码有效标志316设置(在框706)为无效,并将无效原因318设置成指示不支持该轨道格式。在这种情况下,对具有不规则格式的轨道的读/写请求仅在经由网络主机适配器134通过第二通道被接收到时被处理。
如果(在框704)轨道格式表具有与来自轨道元数据的所确定的轨道格式匹配的轨道格式元数据204,则高速缓存管理器142确定轨道格式表200中的所确定的轨道格式元数据204的轨道格式代码202,并将轨道格式代码202包括在高速缓存控制块300i中的字段314中。将轨道格式代码有效标志316设置(在框716)为有效。控制从方框708或716进行到方框718,如果轨道元数据被修改,则从存储器138送出轨道元数据,如果未被修改,则丢弃轨道元数据。
利用图7的操作,可在高速缓存控制块300i中用具有有限位数的轨道格式代码202来指示轨道格式信息,以索引轨道格式表200中描述轨道布局的轨道格式元数据204,其中轨道元数据本身不适合高速缓存控制块300i。对于将来的读/写访问,如果提供了有效的轨道格式代码314,则高速缓存管理器142可使用该代码314来以低等待时间从轨道格式表200获得轨道格式元数据204,而不必从存储装置104读取轨道元数据并进行确定轨道格式的处理。
本发明可以被实现为系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质,所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java,Smalltalk、C++等,以及常规过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
包括主机100和存储系统102的图1的计算组件可以在一个或多个计算机系统中实现,诸如图8所示的计算机系统802。计算机系统/服务器802可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机系统执行的程序模块。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器802可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。如图8所示,计算机系统/服务器802以通用计算设备的形式示出。计算机系统/服务器802的组件可以包括但不限于一个或多个处理器或处理单元804、系统存储器806、以及将包括系统存储器806的各种系统组件耦合到处理器804的总线808。总线808表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。
计算机系统/服务器802通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器802访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器806可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)810和/或高速缓存存储器812。计算机系统/服务器802还可以包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统813可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为"硬盘驱动器")读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,"软盘")读取和向其写入的磁盘驱动器,以及用于从诸如CD-ROM、DVD-ROM或其它光学介质的可移动、非易失性光盘读取或向其写入的光盘驱动器。在这样的实例中,每个可以通过一个或多个数据介质接口连接到总线808。如下面将进一步描绘和描述的,存储器806可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置成执行本发明的实施例的功能。
作为示例而非限制,具有一组(至少一个)程序模块816的程序/实用程序814以及操作系统、一个或多个应用程序、其它程序模块和程序数据可被存储在存储器806中。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括网络环境的实现。计算机802的组件可以被实现为程序模块816,其通常执行如这里描述的本发明的实施例的功能和/或方法。图1的系统可以在一个或多个计算机系统802中实现,其中如果它们在多个计算机系统802中实现,则计算机系统可以通过网络通信。
计算机系统/服务器802还可以与一个或多个外部设备818通信,诸如键盘、定点设备、显示器820等;一个或多个设备,其使得用户能够与计算机系统/服务器802交互;和/或使计算机系统/服务器802能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口822发生。此外,计算机系统/服务器802可以经由网络适配器824与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网)之类的一个或多个网络通信。如所描绘的,网络适配器824经由总线808与计算机系统/服务器802的其他组件通信。应当理解,尽管未示出,但其它硬件和/或软件组件可结合计算机系统/服务器802使用。实例包括但不限于:微码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
术语"实施例"、"多个实施例"、"该实施例"、"这些实施例"、"一个或多个实施例"、"一些实施例"和"一个实施例"表示"本发明的一个或多个(但不是全部)实施例",除非另有明确说明。
术语"包括"、"包含"、"具有"及其变体表示"包括但不限于",除非另有明确说明。
除非另外明确指出,否则列举的项目列表并不意味着任何或所有项目是互斥的。
术语"一"、"一个"和"该"表示"一个或多个",除非另有明确说明。
除非另外明确指出,否则彼此通信的设备不需要彼此连续通信。另外,彼此通信的设备可以直接通信或通过一个或多个中间物间接通信。
具有彼此通信的若干组件的实施例的描述并不暗示需要所有此类组件。相反,描述了各种可选组件以说明本发明的各种可能的实施例。
当在此描述单个设备或物品时,将容易地明白,可以使用多于一个设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,在这里描述了多于一个设备或产品的情况下(无论它们是否协作),将容易明白的是,可以使用单个设备/产品来代替多于一个设备或产品,或者可以使用不同数量的设备/产品来代替所示数量的设备或程序。设备的功能和/或特征可以替代地由一个或多个未明确描述为具有这样的功能/特征的其他设备来体现。因此,本发明的其它实施例不需要包括该设备本身。
为了说明和描述的目的,已经给出了本发明的各种实施例的上述描述。其不是穷举的,也不是要将本发明限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。本发明的范围不是由该详细描述来限定,而是由所附权利要求来限定。上述说明、示例和数据提供了对本发明的组成的制造和使用的完整描述。由于在不脱离本发明的精神和范围的情况下可以做出本发明的许多实施例,因此本发明在于所附权利要求书。

Claims (28)

1.一种用于管理来自主机的对高速缓存中所高速缓存的存储装置中的轨道的读和写请求的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有体现在其中的可执行以执行操作的计算机可读程序代码,所述操作包括:
维护将轨道格式代码与轨道格式元数据相关联的轨道格式表,其中每个轨道格式元数据指示轨道中的数据的布局;
将轨道从存储装置送入高速缓存;
处理被送入高速缓存的轨道的轨道格式元数据;
确定轨道格式表是否具有与被送入高速缓存的轨道的轨道格式元数据相匹配的轨道格式元数据;
响应于轨道格式表具有匹配的轨道格式元数据,从轨道格式表中确定用于轨道格式表中的与被送入高速缓存的轨道的轨道格式元数据相匹配的轨道格式元数据的轨道格式代码;以及
当轨道格式表具有匹配的轨道格式元数据时,生成用于被添加到高速缓存的轨道的高速缓存控制块,高速缓存控制块包括所确定的轨道格式代码。
2.根据权利要求1所述的计算机程序产品,其中所述操作还包括:
在连接到主机的第一通道上从主机接收对目标轨道的读或写请求;
确定目标轨道是否在高速缓存中;
响应于确定目标轨道在高速缓存中,确定用于目标轨道的高速缓存控制块是否包括来自轨道格式表的有效轨道格式代码;以及
响应于确定目标轨道不在高速缓存中或者确定高速缓存控制块不包括有效轨道格式代码而使读或写请求失败,其中,使读或写请求失败使得主机在连接到主机的第二通道上向目标轨道重新发送读或写请求。
3.根据权利要求2所述的计算机程序产品,其中第一通道提供比第二通道更快的对读或写请求的处理。
4.根据权利要求2所述的计算机程序产品,其中所述操作还包括:
当目标轨道不在高速缓存中时,在对目标轨道的读或写请求失败之后,在连接到主机的第二通道上接收对目标轨道的读或写请求,其中响应于在第二通道上接收读或写请求,执行将目标轨道送入高速缓存、处理轨道格式元数据、确定轨道格式表是否具有匹配的轨道格式元数据、确定轨道格式代码以及生成高速缓存控制块的操作中的至少一个。
5.根据权利要求2所述的计算机程序产品,其中所述操作还包括:
对于具有包括无效轨道格式代码的高速缓存控制块的目标轨道,在连接到主机的第二通道上接收对目标轨道的读或写请求;
响应于当目标轨道的高速缓存控制块不具有有效轨道格式代码时、在第二通道上接收到读或写请求,执行:
读取目标轨道的轨道格式元数据,以处理在第二通道上接收的读或写请求;以及
确定轨道格式表是否具有与所读取的轨道格式元数据相匹配的轨道格式元数据;
响应于轨道格式表具有匹配的轨道格式元数据,从轨道格式表中确定用于匹配的轨道格式元数据的轨道格式代码;以及
将所确定的轨道格式代码作为有效轨道格式代码包括在目标轨道的高速缓存控制块中。
6.如权利要求1所述的计算机程序产品,其中,轨道格式表中的轨道格式元数据指示轨道中的记录的数量、块大小、轨道中的块的数量、每个记录的数据长度以及指示作为一个单元原子地读或写的数据量的控制间隔大小中的至少一个,并且其中,轨道格式代码具有比轨道格式元数据少的位,并且高速缓存控制块不具有足够的可用空间来存储轨道格式元数据。
7.根据权利要求1所述的计算机程序产品,其中高速缓存控制块包括指示高速缓存控制块是否包括有效轨道格式代码的有效标志,其中当将轨道格式代码添加到高速缓存控制块时,有效标志被设置为有效,其中所述操作还包括:
接收写以更新高速缓存中的轨道,其中在高速缓存中存在用于轨道更新的高速缓存控制块,高速缓存控制块包括轨道格式代码;
确定对轨道的更新是否修改轨道格式;以及
响应于确定对轨道的更新修改轨道格式,将有效标志设置为指示无效。
8.根据权利要求7所述的计算机程序产品,其中所述操作还包括:
响应于确定对轨道的更新未修改轨道格式,使用高速缓存控制块中的轨道格式代码来从轨道格式表确定轨道格式元数据,以用来更新高速缓存中的轨道。
9.根据权利要求1所述的计算机程序产品,其中高速缓存控制块包含指示高速缓存控制块是否包含有效轨道格式代码的有效标志,其中所述操作还包括:
响应于轨道格式表不具有匹配的轨道格式元数据,将有效标志设置为无效。
10.根据权利要求1所述的计算机程序产品,其中高速缓存控制块包含指示高速缓存控制块是否包含有效轨道格式代码的有效标志,其中所述操作还包括:
当有效标志被设置为指示高速缓存控制块中不存在指示轨道被无效、轨道未满、轨道的格式不规则以及所述轨道的数据长度不支持高速缓存中的一者的有效轨道格式代码时,设置高速缓存控制块中的无效原因位。
11.一种用于管理来自主机的对高速缓存中所高速缓存的存储装置中的轨道的读和写请求的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有体现在其中的可执行以执行操作的计算机可读程序代码,所述操作包括:
维护将轨道格式代码与轨道格式元数据相关联的轨道格式表,其中每个轨道格式元数据指示轨道中的数据的布局;
在高速缓存中维护轨道的高速缓存控制块,其中高速缓存控制块中的至少一个高速缓存控制块包括轨道格式表中指示轨道的轨道格式元数据的轨道格式代码之一;
从主机接收对高速缓存中的目标轨道的读或写请求;
确定用于目标轨道的高速缓存控制块是否包括有效轨道格式代码;
响应于确定高速缓存控制块包括有效轨道格式代码,从轨道格式表确定有效轨道格式代码的轨道格式元数据;以及
使用所确定的轨道格式元数据来处理对高速缓存中的目标轨道的读或写请求。
12.根据权利要求11所述的计算机程序产品,其中接收步骤包括在连接到主机的第一通道和第二通道中的一者上从主机接收读或写请求;并且所述操作还包括:
当在第一通道上接收到读或写请求时,响应于确定高速缓存控制块不包括有效轨道格式代码,使读或写请求失败。
13.根据权利要求12所述的计算机程序产品,其中所述操作进一步包括:
响应于确定目标轨道的高速缓存控制块不包括有效轨道格式代码,从存储装置读取目标轨道的轨道元数据;
从读取的目标轨道的轨道元数据确定轨道格式元数据;
确定轨道格式表是否包括用于所确定的轨道格式元数据的轨道格式代码;以及
响应于确定轨道格式表包括用于所确定的轨道格式元数据的轨道格式代码,将从轨道格式表确定的轨道格式代码包括在高速缓存控制块中。
14.一种用于管理来自主机的对高速缓存中所高速缓存的存储装置中的轨道的读和写请求的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有体现在其中的可执行以执行操作的计算机可读程序代码,所述操作包括:
维护将轨道格式代码与轨道格式元数据相关联的轨道格式表,其中每个轨道格式元数据指示轨道中的数据的布局;
在连接到主机的第一通道和第二通道中的一者上从主机接收对高速缓存中的目标轨道的读或写请求;
确定目标轨道的高速缓存控制块是否包括轨道格式表中的有效轨道格式代码;以及
当在第一通道上接收到读或写请求时,响应于确定高速缓存控制块不包括有效轨道格式代码,使读或写请求失败;
响应于确定高速缓存控制块包括有效轨道格式代码,从轨道格式表确定有效轨道格式代码的轨道格式元数据;以及
使用所确定的轨道格式元数据来处理对高速缓存中的目标轨道的读或写请求。
15.根据权利要求14所述的计算机程序产品,其中所述操作还包括:
当在第二通道上接收到读或写请求时,响应于确定目标轨道的高速缓存控制块不包括有效轨道格式代码,从存储装置读取目标轨道的轨道元数据;
从读取的目标轨道的轨道元数据确定轨道格式元数据;
确定轨道格式表是否包括用于所确定的轨道格式元数据的轨道格式代码;以及
响应于确定轨道格式表包括用于所确定的轨道格式元数据的轨道格式代码,将从轨道格式表确定的轨道格式代码包括在高速缓存控制块中。
16.一种用于管理来自主机的对存储装置中的轨道的读和写请求的系统,包括:
处理器;
高速缓存,用于高速缓存来自存储装置的轨道;
一种计算机可读存储介质,具有在其中体现的计算机可读程序代码,所述计算机可读程序代码可执行以执行操作,所述操作包括:
维护将轨道格式代码与轨道格式元数据相关联的轨道格式表,其中每个轨道格式元数据指示轨道中的数据的布局;
将轨道从存储装置送入高速缓存;
处理被送入高速缓存的轨道的轨道格式元数据;
确定轨道格式表是否具有与被送入高速缓存的轨道的轨道格式元数据相匹配的轨道格式元数据;
响应于轨道格式表具有匹配的轨道格式元数据,从轨道格式表中确定用于轨道格式表中的与被送入高速缓存的轨道的轨道格式元数据相匹配的轨道格式元数据的轨道格式代码;以及
当轨道格式表具有匹配的轨道格式元数据时,生成用于被添加到高速缓存的轨道的高速缓存控制块,高速缓存控制块包括所确定的轨道格式代码。
17.根据权利要求16所述的系统,其中所述操作还包括:
在连接到主机的第一通道上从主机接收对目标轨道的读或写请求;
确定目标轨道是否在高速缓存中;
响应于确定目标轨道在高速缓存中,确定用于目标轨道的高速缓存控制块是否包括来自轨道格式表的有效轨道格式代码;以及
响应于确定目标轨道不在高速缓存中或者确定高速缓存控制块不包括有效轨道格式代码而使读或写请求失败,其中,使读或写请求失败使得主机在连接到主机的第二通道上向目标轨道重新发送读或写请求。
18.根据权利要求17所述的系统,其中第一通道提供比第二通道更快的对读或写请求的处理。
19.根据权利要求17所述的系统,其中所述操作还包括:
当目标轨道不在高速缓存中时,在对目标轨道的读或写请求失败之后,在连接到主机的第二通道上接收对目标轨道的读或写请求,其中响应于在第二通道上接收读或写请求,执行将目标轨道送入高速缓存、处理轨道格式元数据、确定轨道格式表是否具有匹配的轨道格式元数据、确定轨道格式代码以及生成高速缓存控制块的操作中的至少一个。
20.根据权利要求17所述的系统,其中所述操作还包括:
在对于具有包括无效轨道格式代码的高速缓存控制块的目标轨道的读或写请求失败之后,在连接到主机的第二通道上接收对目标轨道的读或写请求;
响应于当目标轨道的高速缓存控制块不具有有效轨道格式代码时、在第二通道上接收到读或写请求,执行:
读取目标轨道的轨道格式元数据,以处理在第二通道上接收的读或写请求;以及
确定轨道格式表是否具有与所读取的轨道格式元数据相匹配的轨道格式元数据;
响应于轨道格式表具有匹配的轨道格式元数据,从轨道格式表中确定用于匹配的轨道格式元数据的轨道格式代码;以及
将所确定的轨道格式代码作为有效轨道格式代码包括在目标轨道的高速缓存控制块中。
21.根据权利要求16所述的系统,其中高速缓存控制块包括指示高速缓存控制块是否包括有效轨道格式代码的有效标志,其中当将轨道格式代码添加到高速缓存控制块时,有效标志被设置为有效,其中所述操作还包括:
接收写以更新高速缓存中的轨道,其中在高速缓存中存在用于轨道更新的高速缓存控制块,高速缓存控制块包括轨道格式代码;
确定对轨道的更新是否修改轨道格式;以及
响应于确定对轨道的更新修改轨道格式,将有效标志设置为指示无效。
22.一种用于管理来自主机的对高速缓存中所高速缓存的存储装置中的轨道的读和写请求的方法,包括:
维护将轨道格式代码与轨道格式元数据相关联的轨道格式表,其中每个轨道格式元数据指示轨道中的数据的布局;
将轨道从存储装置送入高速缓存;
处理被送入高速缓存的轨道的轨道格式元数据;
确定轨道格式表是否具有与被送入高速缓存的轨道的轨道格式元数据相匹配的轨道格式元数据;
响应于轨道格式表具有匹配的轨道格式元数据,从轨道格式表中确定用于轨道格式表中的与被送入高速缓存的轨道的轨道格式元数据相匹配的轨道格式元数据的轨道格式代码;以及
当轨道格式表具有匹配的轨道格式元数据时,生成用于被添加到高速缓存的轨道的高速缓存控制块,高速缓存控制块包括所确定的轨道格式代码。
23.根据权利要求22所述的方法,还包括:
在连接到主机的第一通道上从主机接收对目标轨道的读或写请求;
确定目标轨道是否在高速缓存中;
响应于确定目标轨道在高速缓存中,确定用于目标轨道的高速缓存控制块是否包括来自轨道格式表的有效轨道格式代码;以及
响应于确定目标轨道不在高速缓存中或者确定高速缓存控制块不包括有效轨道格式代码而使读或写请求失败,其中,使读或写请求失败使得主机在连接到主机的第二通道上向目标轨道重新发送读或写请求。
24.根据权利要求23所述的方法,还包括:
当目标轨道不在高速缓存中时,在对目标轨道的读或写请求失败之后,在连接到主机的第二通道上接收对目标轨道的读或写请求,其中响应于在第二通道上接收读或写请求,执行将目标轨道送入高速缓存、处理轨道格式元数据、确定轨道格式表是否具有匹配的轨道格式元数据、确定轨道格式代码以及生成高速缓存控制块的操作中的至少一个。
25.根据权利要求23所述的方法,还包括:
在对于具有包括无效轨道格式代码的高速缓存控制块的目标轨道的读或写请求失败之后,在连接到主机的第二通道上接收对目标轨道的读或写请求;
当目标轨道的高速缓存控制块不具有有效轨道格式代码时,响应于在第二通道上接收到读或写请求,执行:
读取目标轨道的轨道格式元数据,以处理在第二通道上接收的读或写请求;以及
确定轨道格式表是否具有与所读取的轨道格式元数据相匹配的轨道格式元数据;
响应于轨道格式表具有匹配的轨道格式元数据,从轨道格式表中确定用于匹配的轨道格式元数据的轨道格式代码;以及
将所确定的轨道格式代码作为有效轨道格式代码包括在目标轨道的高速缓存控制块中
26.根据权利要求22所述的方法,其中高速缓存控制块包括指示高速缓存控制块是否包括有效轨道格式代码的有效标志,其中当将轨道格式代码添加到高速缓存控制块时,有效标志被设置为有效,其中所述操作还包括:
接收写以更新高速缓存中的轨道,其中在高速缓存中存在用于轨道更新的高速缓存控制块,高速缓存控制块包括轨道格式代码;
确定对轨道的更新是否修改轨道格式;以及
响应于确定对轨道的更新修改轨道格式,将有效标志设置为指示无效。
27.一种用于管理来自主机的对高速缓存中所高速缓存的存储装置中的轨道的读和写请求的方法,所述方法包括:
维护将轨道格式代码与轨道格式元数据相关联的轨道格式表,其中每个轨道格式元数据指示轨道中的数据的布局;
在高速缓存中维护轨道的高速缓存控制块,其中高速缓存控制块中的至少一个高速缓存控制块包括轨道格式表中指示轨道的轨道格式元数据的所述轨道格式代码之一;
从主机接收对高速缓存中的目标轨道的读或写请求;
确定用于目标轨道的高速缓存控制块是否包括有效轨道格式代码;
响应于确定高速缓存控制块包括有效轨道格式代码,从轨道格式表确定有效轨道格式代码的轨道格式元数据;以及
使用所确定的轨道格式元数据来处理对高速缓存中的目标轨道的读或写请求。
28.一种用于管理来自主机的对高速缓存中所高速缓存的存储装置中的轨道的读和写请求的系统,所述系统包括:
处理器;
高速缓存,用于高速缓存来自所述存储装置的轨道;
一种计算机可读存储介质,具有在其中体现的计算机可读程序代码,所述计算机可读程序代码可执行以执行操作,所述操作包括:
维护将轨道格式代码与轨道格式元数据相关联的轨道格式表,其中每个轨道格式元数据指示轨道中的数据的布局;
在高速缓存中维护轨道的高速缓存控制块,其中高速缓存控制块中的至少一个高速缓存控制块包括轨道格式表中指示轨道的轨道格式元数据的轨道格式代码之一;
从主机接收对高速缓存中的目标轨道的读或写请求;
确定用于目标轨道的高速缓存控制块是否包括有效轨道格式代码;
响应于确定高速缓存控制块包括有效轨道格式代码,从轨道格式表确定有效轨道格式代码的轨道格式元数据;以及
使用所确定的轨道格式元数据来处理对高速缓存中的目标轨道的读或写请求。
CN201880048427.5A 2017-07-27 2018-07-19 用于处理对高速缓存中的轨道的读和写请求的方法和系统 Active CN110998546B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/662,194 2017-07-27
US15/662,194 US10691566B2 (en) 2017-07-27 2017-07-27 Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
PCT/IB2018/055378 WO2019021124A1 (en) 2017-07-27 2018-07-19 USING A TRACK FORMAT CODE IN A CACHED MEMORY CONTROL BLOCK FOR A TRACK IN A CACHE MEMORY TO PROCESS READING AND WRITING REQUESTS ON THE TRACK IN CACHE MEMORY

Publications (2)

Publication Number Publication Date
CN110998546A true CN110998546A (zh) 2020-04-10
CN110998546B CN110998546B (zh) 2023-04-14

Family

ID=65037991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880048427.5A Active CN110998546B (zh) 2017-07-27 2018-07-19 用于处理对高速缓存中的轨道的读和写请求的方法和系统

Country Status (6)

Country Link
US (3) US10691566B2 (zh)
JP (1) JP7055191B2 (zh)
CN (1) CN110998546B (zh)
DE (1) DE112018002951B4 (zh)
GB (1) GB2578080B (zh)
WO (1) WO2019021124A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10691566B2 (en) 2017-07-27 2020-06-23 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
US10572355B2 (en) 2017-07-27 2020-02-25 International Business Machines Corporation Transfer track format information for tracks in cache at a primary storage system to a secondary storage system to which tracks are mirrored to use after a failover or failback
US10540246B2 (en) 2017-07-27 2020-01-21 International Business Machines Corporation Transfer track format information for tracks in cache at a first processor node to a second process node to which the first processor node is failing over
US10579296B2 (en) 2017-08-01 2020-03-03 International Business Machines Corporation Providing track format information when mirroring updated tracks from a primary storage system to a secondary storage system
US10579532B2 (en) 2017-08-09 2020-03-03 International Business Machines Corporation Invalidating track format information for tracks in cache
US11036641B2 (en) 2017-08-09 2021-06-15 International Business Machines Corporation Invalidating track format information for tracks demoted from cache
US10430305B2 (en) 2017-09-01 2019-10-01 International Business Machine Corporation Determine whether to rebuild track metadata to determine whether a track format table has a track format code for the track format metadata
US10608961B2 (en) * 2018-05-08 2020-03-31 Salesforce.Com, Inc. Techniques for handling message queues
US10996891B2 (en) 2019-02-28 2021-05-04 International Business Machines Corporation Token management for write commands transmitted by a host over a plurality of interfaces to a storage controller
US11010248B2 (en) * 2019-02-28 2021-05-18 International Business Machines Corporation Reuse of resources in a storage controller for executing write commands over a plurality of interfaces
US10884936B2 (en) 2019-04-19 2021-01-05 International Business Machines Corporation Updating a track format table used to provide track format codes for cache control blocks with more frequently accessed track format metadata
US11294812B2 (en) 2020-08-04 2022-04-05 International Business Machines Corporation Obtaining cache resources for expected writes to tracks in a write set after the cache resources were released for the tracks in the write set
US11243885B1 (en) 2020-08-04 2022-02-08 International Business Machines Corporation Providing track access reasons for track accesses resulting in the release of prefetched cache resources for the track
US11720500B2 (en) 2021-09-03 2023-08-08 International Business Machines Corporation Providing availability status on tracks for a host to access from a storage controller cache
US11726913B2 (en) 2021-09-03 2023-08-15 International Business Machines Corporation Using track status information on active or inactive status of track to determine whether to process a host request on a fast access channel
CN115827310B (zh) * 2023-02-21 2023-05-23 成都天成电科科技有限公司 一种信息校验的方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303862A1 (en) * 2011-05-23 2012-11-29 International Business Machines Corporation Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
CN103562843A (zh) * 2011-05-23 2014-02-05 国际商业机器公司 在具有多个高速缓存的存储系统中高速缓存数据
CN104040508A (zh) * 2012-01-17 2014-09-10 国际商业机器公司 填充来自第一高速缓存的轨道的第一步幅以向第二高速缓存中的第二步幅写入

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2273798A (en) * 1992-12-22 1994-06-29 Ibm Cache system for disk array.
US5636359A (en) 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
JP3260998B2 (ja) * 1995-02-16 2002-02-25 富士通株式会社 ディスク制御装置
US5724501A (en) * 1996-03-29 1998-03-03 Emc Corporation Quick recovery of write cache in a fault tolerant I/O system
US6029229A (en) * 1997-01-29 2000-02-22 Emc Corporation Digital data storage subsystem including directory for efficiently providing formatting information for stored records
US6438661B1 (en) * 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6216199B1 (en) * 1999-08-04 2001-04-10 Lsi Logic Corporation Hardware mechanism for managing cache structures in a data storage system
US6330655B1 (en) 1999-08-20 2001-12-11 Emc Corporation Digital data storage subsystem including directory for efficiently providing formatting information for stored records
US6314490B1 (en) * 1999-11-02 2001-11-06 Ati International Srl Method and apparatus for memory addressing
US6715030B1 (en) * 2000-06-09 2004-03-30 Storage Technology Corporation Apparatus and method for storing track layout information for performing quick write operations
WO2002017055A1 (fr) 2000-08-18 2002-02-28 Fujitsu Limited Dispositif de commande de disque, procede de commande de disque, dispositif de commande a distance de disque, et procede de commande a distance de disque
US6425051B1 (en) * 2000-09-25 2002-07-23 International Business Machines Corporation Method, system, program, and data structures for enabling a controller accessing a storage device to handle requests to data in a first data format when the storage device includes data in a second data format
US6832290B2 (en) 2002-03-12 2004-12-14 International Business Machines Corporation Method, system, program, and data structures for maintaining metadata in a storage system
US6928526B1 (en) * 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
US7000083B2 (en) * 2003-06-06 2006-02-14 International Business Machines Corp. Resynchronization of count key data with its corresponding meta data
US7124128B2 (en) * 2003-06-17 2006-10-17 International Business Machines Corporation Method, system, and program for managing requests to tracks subject to a relationship
US7467168B2 (en) 2003-06-18 2008-12-16 International Business Machines Corporation Method for mirroring data at storage locations
US7139933B2 (en) 2003-06-20 2006-11-21 International Business Machines Corporation Preserving cache data against cluster reboot
US7260679B2 (en) 2004-10-12 2007-08-21 International Business Machines Corporation Apparatus and method to manage a data cache using a first and second least recently used list
US8676748B2 (en) 2004-11-18 2014-03-18 International Business Machines Corporation Clearing metadata tracks in a storage system
JP2006252239A (ja) 2005-03-11 2006-09-21 Fujitsu Ltd ファイル制御装置
US8813052B2 (en) * 2005-12-07 2014-08-19 Microsoft Corporation Cache metadata for implementing bounded transactional memory
US7434002B1 (en) * 2006-04-24 2008-10-07 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7647463B2 (en) * 2006-11-16 2010-01-12 International Business Machines Corporation Apparatus, system and method for detection of mismatches in continuous remote copy using metadata
US7818609B2 (en) * 2006-11-27 2010-10-19 Emc Corporation Methods and systems for managing corrupted meta-data in a computer system or network
US7958432B2 (en) 2007-04-11 2011-06-07 International Business Machines Corporation Verification of non volatile storage storing preserved unneeded data
US8332581B2 (en) 2007-08-13 2012-12-11 International Business Machines Corporation Stale track initialization in a storage controller
US20110191522A1 (en) * 2010-02-02 2011-08-04 Condict Michael N Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory
US9009118B2 (en) 2010-10-20 2015-04-14 Apple Inc. Temporal metadata track
US8683130B2 (en) 2011-04-07 2014-03-25 International Business Machines Corporation Fabricating key fields
US9021201B2 (en) * 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache
US8935476B2 (en) 2012-01-17 2015-01-13 International Business Machines Corporation Managing caching of extents of tracks in a first cache, second cache and storage
US8825953B2 (en) * 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using a stride number ordering of strides in the second cache to consolidate strides in the second cache
US8825973B2 (en) 2012-01-17 2014-09-02 International Business Machines Corporation Caching source blocks of data for target blocks of data
US8606767B2 (en) 2012-02-08 2013-12-10 International Business Machines Corporation Efficient metadata invalidation for target CKD volumes
US8918581B2 (en) * 2012-04-02 2014-12-23 Microsoft Corporation Enhancing the lifetime and performance of flash-based storage
US9032169B2 (en) 2012-05-24 2015-05-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Method for high performance dump data set creation
US9104552B1 (en) * 2012-06-23 2015-08-11 Samsung Electronics Co., Ltd. Method for the use of shadow ghost lists to prevent excessive wear on FLASH based cache devices
US9779027B2 (en) 2012-10-18 2017-10-03 Oracle International Corporation Apparatus, system and method for managing a level-two cache of a storage appliance
US10019459B1 (en) 2012-12-19 2018-07-10 Springpath, LLC Distributed deduplication in a distributed system of hybrid storage and compute nodes
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
US9430386B2 (en) * 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9280478B2 (en) * 2013-04-26 2016-03-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Cache rebuilds based on tracking data for cache entries
US9317207B2 (en) 2013-11-27 2016-04-19 Vmware, Inc. Cache migration
US9489389B2 (en) * 2013-12-09 2016-11-08 PernixData, Inc. System and method for maintaining cache coherency
US9471510B2 (en) * 2013-12-20 2016-10-18 Netapp, Inc. System and method for cache monitoring in storage systems
US9442664B2 (en) 2014-04-02 2016-09-13 International Business Machines Corporation Efficient flashcopy backup target volume allocation from a shared resource pool
US9354992B2 (en) * 2014-04-25 2016-05-31 Netapp, Inc. Interconnect path failover
US9298567B2 (en) 2014-08-12 2016-03-29 International Business Machines Corporation System availability in PPRC failover environments
US9830088B2 (en) * 2014-09-22 2017-11-28 Netapp, Inc. Optimized read access to shared data via monitoring of mirroring operations
US9710398B2 (en) 2014-11-18 2017-07-18 International Business Machines Corporation RE-MRU of metadata tracks to reduce lock contention
US9471505B2 (en) 2015-02-07 2016-10-18 International Business Machines Corporation Efficient multi-threaded journal space reclamation
US9952904B2 (en) 2015-08-21 2018-04-24 International Business Machines Corporation Distributing tracks to add to cache to processor cache lists based on counts of processor access requests to the cache
US10320936B2 (en) 2015-10-20 2019-06-11 International Business Machines Corporation Populating a secondary cache with unmodified tracks in a primary cache when redirecting host access from a primary server to a secondary server
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
US10019367B2 (en) * 2015-12-14 2018-07-10 Samsung Electronics Co., Ltd. Memory module, computing system having the same, and method for testing tag error thereof
US10158894B2 (en) 2015-12-15 2018-12-18 Telefonaktiebolaget Lm Ericsson (Publ) Edge media router device for facilitating distribution and delivery of media content having end-to-end encryption
US10185619B2 (en) * 2016-03-31 2019-01-22 Intel Corporation Handling of error prone cache line slots of memory side cache of multi-level system memory
CN106294772B (zh) 2016-08-11 2019-03-19 电子科技大学 分布式内存列式数据库的缓存管理方法
CN107122081A (zh) 2017-05-31 2017-09-01 京东方科技集团股份有限公司 一种触控显示面板及其驱动方法
US10540246B2 (en) 2017-07-27 2020-01-21 International Business Machines Corporation Transfer track format information for tracks in cache at a first processor node to a second process node to which the first processor node is failing over
US10572355B2 (en) 2017-07-27 2020-02-25 International Business Machines Corporation Transfer track format information for tracks in cache at a primary storage system to a secondary storage system to which tracks are mirrored to use after a failover or failback
US10691566B2 (en) 2017-07-27 2020-06-23 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
US10579296B2 (en) 2017-08-01 2020-03-03 International Business Machines Corporation Providing track format information when mirroring updated tracks from a primary storage system to a secondary storage system
US10579532B2 (en) * 2017-08-09 2020-03-03 International Business Machines Corporation Invalidating track format information for tracks in cache
US11036641B2 (en) 2017-08-09 2021-06-15 International Business Machines Corporation Invalidating track format information for tracks demoted from cache
US10223274B1 (en) 2017-08-28 2019-03-05 International Business Machines Corporation Maintaining track format metadata for target tracks in a target storage in a copy relationship with source tracks in a source storage
US10430305B2 (en) 2017-09-01 2019-10-01 International Business Machine Corporation Determine whether to rebuild track metadata to determine whether a track format table has a track format code for the track format metadata
US10884936B2 (en) 2019-04-19 2021-01-05 International Business Machines Corporation Updating a track format table used to provide track format codes for cache control blocks with more frequently accessed track format metadata

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303862A1 (en) * 2011-05-23 2012-11-29 International Business Machines Corporation Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
CN103562843A (zh) * 2011-05-23 2014-02-05 国际商业机器公司 在具有多个高速缓存的存储系统中高速缓存数据
CN104040508A (zh) * 2012-01-17 2014-09-10 国际商业机器公司 填充来自第一高速缓存的轨道的第一步幅以向第二高速缓存中的第二步幅写入

Also Published As

Publication number Publication date
JP7055191B2 (ja) 2022-04-15
US20190034304A1 (en) 2019-01-31
US20220156166A1 (en) 2022-05-19
DE112018002951B4 (de) 2023-03-16
US10691566B2 (en) 2020-06-23
GB2578080A (en) 2020-04-15
US11704209B2 (en) 2023-07-18
GB2578080B (en) 2020-09-09
JP2020528624A (ja) 2020-09-24
GB202002167D0 (en) 2020-04-01
CN110998546B (zh) 2023-04-14
WO2019021124A1 (en) 2019-01-31
US20200226041A1 (en) 2020-07-16
DE112018002951T5 (de) 2020-04-02
US11263097B2 (en) 2022-03-01

Similar Documents

Publication Publication Date Title
CN110998546B (zh) 用于处理对高速缓存中的轨道的读和写请求的方法和系统
US11243708B2 (en) Providing track format information when mirroring updated tracks from a primary storage system to a secondary storage system
US11188431B2 (en) Transfer track format information for tracks at a first processor node to a second processor node
US11086784B2 (en) Invalidating track format information for tracks in cache
US11157376B2 (en) Transfer track format information for tracks in cache at a primary storage system to a secondary storage system to which tracks are mirrored to use after a failover or failback
US10754780B2 (en) Maintaining track format metadata for target tracks in a target storage in a copy relationship with source tracks in a source storage
US11188430B2 (en) Determine whether to rebuild track metadata to determine whether a track format table has a track format code for the track format metadata
US11036641B2 (en) Invalidating track format information for tracks demoted from cache
WO2022029563A1 (en) Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set
US10884936B2 (en) Updating a track format table used to provide track format codes for cache control blocks with more frequently accessed track format metadata
US12135655B2 (en) Saving track metadata format information for tracks demoted from cache for use when the demoted track is later staged into cache
US11726913B2 (en) Using track status information on active or inactive status of track to determine whether to process a host request on a fast access channel
US20190034355A1 (en) Saving track metadata format information for tracks demoted from cache for use when the demoted track is later staged into cache
CN116324739A (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