CN103250141A - 联网的客户端-服务器体系结构中的预读处理 - Google Patents

联网的客户端-服务器体系结构中的预读处理 Download PDF

Info

Publication number
CN103250141A
CN103250141A CN2011800578016A CN201180057801A CN103250141A CN 103250141 A CN103250141 A CN 103250141A CN 2011800578016 A CN2011800578016 A CN 2011800578016A CN 201180057801 A CN201180057801 A CN 201180057801A CN 103250141 A CN103250141 A CN 103250141A
Authority
CN
China
Prior art keywords
read
reading
serial
request
advance
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
CN2011800578016A
Other languages
English (en)
Other versions
CN103250141B (zh
Inventor
L·阿罗诺维奇
O·索宁
K·穆什金
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 CN103250141A publication Critical patent/CN103250141A/zh
Application granted granted Critical
Publication of CN103250141B publication Critical patent/CN103250141B/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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system

Abstract

在用于在联网的客户端-服务器体系结构中进行预读处理的方法中,通过多个唯一序列标识(ID)来分组读取消息,其中,所述序列ID中的每一个都对应于由涉及正在被客户端应用中的执行的线程连续地读取的特定存储段的所有读取和预读请求构成的特定读取序列。存储系统使用序列id值来标识和过滤在由存储系统接收到时过时的预读消息,因为客户端应用已经移动,以读取不同的存储段。基本上,当其序列id值比由存储系统已经看到的最近值晚时,丢弃消息。序列ID被存储系统用来确定要加载到预读高速缓存中的对应的预读数据。

Description

联网的客户端-服务器体系结构中的预读处理
技术领域
本发明一般涉及计算机,并且具体来说,涉及计算存储环境中的联网的客户端-服务器体系结构中的预读处理。
背景技术
当执行顺序读取操作时,预读机制通过执行将数据从存储设备加载到基于存储器的高速缓存中的后台预读操作,来提高读取过程的效率,然后在后续的读取操作中,直接从高速缓存中读取此数据。这使得有效地使用存储通道和设备,随着时间的推移平衡I/O访问,如此提高总的读取过程的效率。具体而言,当处理读取操作时,并非等待从存储设备中检索数据,数据一般而言已经在预读高速缓存中可用,由于高速缓存访问(通常是基于存储器的)比I/O访问快一些,因此整个读取过程更有效。
发明内容
为顺序读取使用情况一般性地优化预读机制。在以下所示出的各实施例和所要求保护的主题中考虑的体系结构中,多个因素可能会降低预读机制的效率。主要地,由于假设当通过网络时消息可以重新排序,因此在目的地处接收到的消息的顺序会与它们被生成和发送的顺序不同。这可能会导致由客户端连续地发出的读取和预读消息在由存储系统接收到时是不按顺序的。具体而言,这些消息可能看起来具有间隙和后读取行为。这两个行为可能会降低在存储系统中操作的预读机制的效率,因为在这样的情况下更难以确定哪些数据驻留在存储系统的预读高速缓存中最有益。
另外,随着客户端应用从读取一个存储段移动到另一个存储段,由客户端为以前的段所发出的预读消息可能在与下面的段相关联的读取和预读消息已经被存储系统处理之后到达存储系统。处理与以前的段相关联的过时的消息效率低,因为这样的处理耗费资源。此外,处理这样的过时的消息可能会将在存储系统中操作的预读机制转移到以前的段,这也会降低读取过程的效率。
鉴于前面的内容,需要解决以上的挑战的机制。相应地,提供了由处理器设备在联网的客户端-服务器体系结构中进行预读处理的各实施例。读取消息通过多个唯一序列标识(ID)来被分组,其中,所述序列ID中的每一个都对应于一个特定读取序列,所述特定读取序列包括与正在被客户端应用中的执行的线程连续地读取的特定存储段有关的所有读取和预读请求。存储系统使用序列ID值来标识和过滤在由存储系统接收到时过时的预读消息,因为客户端应用已经移动以读取不同的存储段。基本上,当其序列ID值比由存储系统已经看到的最近值晚时,丢弃消息。序列ID被存储系统用来确定要加载到由存储系统为每一个客户端应用读取会话维护的预读高速缓存中的对应的预读数据,其中所述预读高速缓存在逻辑上被分区为用于数据处理的前面的和后面的在逻辑上连续的缓冲器,当使预读高速缓存的数据内容前进时,根据客户端应用读取会话的读取请求前进的方式,数据被加载到从前面的逻辑缓冲器的末端偏移之后的一个字节的偏移开始的后面的逻辑缓冲器中。只要通过观察序列ID的传入的和维护的值而推导的连续读取流是由客户端应用读取会话维护的,则正在被读取的数据段中的预读高速缓存位置使用上文广泛地描述的方法前进,读取请求从高速缓存的内容处理,或者从存储设备中检索(如果它们引用的数据不完全包含在高速缓存中)。当标识再次通过观察序列ID的传入的和维护的值而推导的新连续读取流时,正在被读取的数据段中的高速缓存的位置基于传入的读取请求的偏移来修改,以及所请求的数据从高速缓存来提供。
除前面的示例性方法实施例之外,还提供了其他示例性系统和计算机产品实施例,它们提供了相关的优点。
附图说明
现在将参考各个附图,只作为示例,来描述本发明的各实施例,其中:
图1示出了计算存储环境中的示例性预读体系结构;
图2示出了顺序读取流中的间隙;
图3示出了考虑了传入的和维护的序列ID值的用于处理读取请求的示例性方法;
图4示出了考虑了传入的和维护的序列ID值以及最远的偏移值的用于处理读取请求的示例性方法;
图5示出了使用最远的偏移的读取请求的更新数据范围的示例性计算;
图6和7示出了被实现为预读高速缓存的物理缓冲器中的逻辑缓冲器的示例性布局;
图8示出了基于预定阈值来触发首先在图6中所描绘的逻辑缓冲器的数据内容的前进的示例性条件;
图9示出了用于使用高速缓存缓冲器来处理传入的读取请求的示例性方法;以及
图10示出了适用于实现下列所要求保护的主题的各方面的示例性硬件。
具体实施方式
在下面所示出的各实施例中,考虑了联网的客户端-服务器体系结构,其中客户端应用发出对于存储在存储系统(在此体系结构中,是服务器)中的数据的读取请求。客户端应用和存储系统通过网络被附接。图1示出了示例性的这种联网的客户端-服务器体系结构10。客户端系统12包含客户端应用14,其中通过相对于客户端应用本地驻留(即,在同一个处理器上)的并使用预读高速缓存18的客户端代理20发出读取请求。客户端代理20是存储系统26在运行客户端应用14的处理器上的代理。客户端代理20(并非客户端应用)通过网络28与存储系统26进行通信。
客户端代理20和存储系统26使用消息(例如,读取和预读请求22)通过网络28进行通信。如通常对于网络假设的,假设在此体系结构中,当通过网络时相对于它们的生成顺序,消息22可以被重新排序。在体系结构10中,客户端代理20和存储系统26两者都可以应用它们自己的预读机制。即,客户端代理20可以基于由客户端应用20所发出的读取请求来产生预读操作,并将预读数据存储在其自己的高速缓存18中。此外,存储系统26还可以基于从客户端代理20接收到的读取请求22来生成预读操作,并将预读数据存储在专用高速缓存24中。存储系统26利用存储网络连接性30来向存储设备34发送读取和预读请求32,如图所示。
虽然假设由客户端应用14所发出的读取请求一般是连续的(因此,在此上下文中,是预读机制的优点),假设客户端应用的高级别读取模式是随机的。这样的读取模式的示例将是使用较小的小节的顺序读取操作从多个存储实体(例如,文件)(每一个独立地存储在存储系统中)读取相对大的数据节的应用。
如上文所提及的,为顺序读取使用情况一般性地优化预读机制。在所示出的实施例中考虑的体系结构10中,多个因素可能会降低预读机制的效率。主要地,由于假设当通过网络时消息可以被重新排序,因此在目的地处可以接收到的消息的顺序会与它们被生成和发送的顺序不同。这可能会导致由客户端代理连续地发出的读取和预读消息在由存储系统接收到时看起来是不按顺序的。具体而言,这些消息可能看起来具有间隙和后读取(read-behind)行为。这两个行为可能会降低在存储系统中操作的预读机制的效率,因为在这样的情况下更难以确定哪些数据驻留在存储系统的预读高速缓存中是最有益的。
另外,再次如上文所提及的,随着客户端应用从读取一个存储段移动到另一个存储段,由客户端代理为以前的段所发出的预读消息可能在与下面的段相关联的读取和预读消息已经被存储系统处理之后到达存储系统。处理与以前的段相关联的过时的消息效率低,因为这样的处理耗费资源。此外,处理这样的过时的消息可能会将在存储系统中操作的预读机制转移到以前的段,这也会降低读取过程的效率。
所示出的各实施例用于有效地解决上面的挑战。在所示出的各实施例的机制中,从客户端代理发送到存储系统的每一个读取和预读消息表达此处将被称为序列ID值的内容,序列ID值以特定读取序列来分组读取消息,以便与正在由客户端应用中的执行的线程连续地读取的特定存储段相关联的所有读取和预读请求都被指派相同唯一序列ID值,并且因此被分组在一起。存储系统使用序列ID值来标识和过滤在由存储系统接收到时过时的预读消息,因为客户端应用已经移动以读取不同的存储段。广泛地,当其序列ID值比由存储系统已经看到的最近值晚时,丢弃消息。
在客户端代理的其预读机制的实现涉及在每一次迭代中生成覆盖加载到其预读高速缓存所需的所有数据的预读请求,同时不考虑以前发出的预读请求或对当前正在生成或发送的预读请求的响应的情况下,所示出的各实施例的机制允许存储系统有效地处理这样的预读请求。为客户端代理的实现采取的这种方法简化了其实现,最终使存储系统能确保:通过其预读机制向存储设备施加的读取访问,在现实中就它们的偏移而言被序列化,如此增强了被存储系统所使用的预读机制的有效性。在此方法中,由客户端代理所生成的预读请求可以在它们的数据范围重叠,这又要求存储系统也基于它们的所请求的数据范围来过滤并修改读取请求。
在下列描述中,与客户端应用中的执行的线程相关联的读取会话被称为“客户端应用读取会话”。根据所示出的各实施例的机制,存储系统为每一个客户端应用读取会话维护它在正在被读取的数据段中处理的当前最远的偏移(除维护的序列ID值之外)。一般而言,如果由消息所指定的读取请求的序列ID值等于维护的序列ID值,并且接收到的读取请求的末端偏移小于或等于维护的最远的偏移,则由存储系统丢弃传入的消息。如果序列ID值相等,并且读取请求的末端偏移大于最远的偏移,则最远的偏移被修改为读取请求的末端偏移,并且作为从最远的偏移的以前的值加一个字节开始并在最远的偏移的新的值结束的范围来计算读取并发送到客户端代理的数据范围。
存储系统为每一个客户端应用读取会话维护预读高速缓存,并使用序列ID的传入的和维护的值来确定要被加载到预读高速缓存中的数据内容。构成预读高速缓存的物理缓冲器在逻辑上被分区为两个缓冲器,该两个缓冲器就它们的数据中的相关偏移而言始终在逻辑上是连续的。逻辑缓冲器中的每一个,不管它们在物理缓冲器中的布局如何,就它们在数据中的偏移而言,可以是第一逻辑缓冲器,然后另一个缓冲器是第二逻辑缓冲器。缓冲器中的数据内容可以根据客户端应用读取会话的读取请求前进的方式来前进。缓冲器的数据内容只能在正在被读取的数据段中向前移动,并不反向跟踪。通过超过有关其末端偏移超过第二逻辑缓冲器中的阈值偏移的读取请求的数量的阈值,来触发前进,其中后一偏移是基于由第二逻辑缓冲器覆盖的数据范围的百分比来定义的。在激活这样的前进时,第一逻辑缓冲器的开始偏移被设置为第二逻辑缓冲器的末端偏移加一个字节,然后数据被加载到新定义的第二逻辑缓冲器中。
当处理传入的读取请求时,两个逻辑缓冲器中的数据内容被视为单个缓冲器内的连贯的数据段。在一个实施例中,传入的读取请求可以使用下列方法来处理,如目前简要地描述的。只要通过观察序列ID的传入的和维护的值而推导的连续读取流是由客户端应用读取会话维护的,则正在被读取的数据段中的缓冲器的位置只使用上文所广泛描述的方法来修改,读取请求从缓冲器的内容来处理,或从存储设备中检索(如果它们引用的数据不完全包含在缓冲器中)。当标识再次通过观察序列ID的传入的和维护的值而推导的新连续读取流时,则正在被读取的数据段中的缓冲器的位置,基于传入的读取请求的偏移来修改,以及所请求的数据从缓冲器来提供。
在向客户端代理发送由读取操作请求的数据的过程中,存储系统将返回的数据划分为多个不相重叠的段,并在单独的网络消息中发送每一个段。存储系统并行地通过执行的多个线程并利用多个网络连接(即,每一个响应消息都可以利用不同的网络连接来发送)发送这些响应消息,如此在网络连接上平衡响应消息。由于此方法,存储系统和客户端代理之间的网络带宽使用率显著改善。客户端代理收集由存储系统所发送的响应消息,并从在响应消息中表达的数据段构成读取和预读请求的数据。由于利用上面的方法网络带宽被更好地使用,因此增强了总的读取性能。
当客户端应用读取会话移动以读取不同的存储段时,并且如果这些消息在与下一段相关联的消息已经被存储系统处理之后在存储系统中接收到,则由客户端代理所生成的预读消息可能变得过时。根据所示出的各实施例的机制,可以使用下列方法在存储系统处过滤这样的消息。
从客户端代理发送到存储系统的每一个读取和预读消息表达了序列ID值,该序列ID值以特定读取序列分组读取消息,以便与正在由客户端应用中的执行的线程连续读取的特定存储段相关联的所有读取和预读请求都被指派相同唯一序列ID值,并因此被分组在一起。在序列ID值之间有次序关系。序列ID值是由客户端代理独立地为每一个客户端应用读取会话生成的,并允许确定正在被会话连续地读取的不同的存储段。读取和预读请求与特定序列ID值相关联,只要序列ID值不基于接下来指定的客户端代理逻辑而修改。
在一个实施例中,客户端代理在下列情况下生成客户端应用读取会话的新序列ID值:(1)没有会话的以前的序列ID值,或(2)由会话启动新顺序读取流。在一个实施例中,新顺序读取流可以通过观察当前读取流中的间隙(前向间隙或者后向间隙)来被标识,如以下图2所示。具体而言,当新读取请求的开始偏移和最近的读取请求的末端偏移之间的差异不同于一个字节时,存在间隙(此差异可以是正的或负的)。观察读取会话读取存储器中的不同数据实体(例如,不同的独立文件)的移动,还标识新顺序读取流。这样的事件通过使用存储器实体的新标识符观察会话来标识。
图2描绘了正在被读取的特定数据段中的示例性范围50,示出了顺序读取流中的间隙。下一读取请求的数据范围被示范为最近的读取请求的数据范围56前面的数据范围54或者后面的数据范围60。在第一种情况下,读取请求创建后向间隙52,在第二种情况下,读取请求创建前向间隙58。
现在参看图3,示出了用于通过存储系统处理读取请求,应用预读逻辑并考虑传入的和维护的序列ID值的示例性方法70。对于每一个客户端应用读取会话,由存储系统维护当前序列ID值。当前序列ID值被初始化为空值。对于与客户端应用读取会话相关联的新接收到的读取请求(步骤74):如果没有此会话的以前的序列ID值(步骤76),或者如果接收到的序列ID值比维护的值更新(步骤78),则维护的值被设置为与新读取请求一起发送的值(步骤80),并进一步处理读取请求(步骤82);如果接收到的序列ID值等于维护的值(再次,步骤78),则不改变维护的值,并进一步处理读取请求(步骤82);如果接收到的序列ID值比维护的值晚(再次,步骤78),则丢弃相关联的读取请求和其序列ID值(步骤84)。然后,方法70结束(步骤86)。
在一个实施例中,客户端代理为每一个客户端应用读取会话都维护预读高速缓存,以有效地处理由会话所发出的读取请求。客户端代理生成预读请求,以将数据加载到其预读高速缓存中。生成这些请求,并以异步(后台)方式处理其来自存储系统的响应。
在一个可能的实施例中,客户端代理记录它向其发出预读请求的最远的偏移,并从该偏移进一步生成额外的预读请求。在此实施例中,这样的预读请求将不会在它们的数据范围重叠,如此存储系统根据它们的范围来处理传入的读取请求,不必由于重叠的范围而过滤或修改读取请求。
在另一个替换实施例中,客户端代理在每一次迭代中生成覆盖加载到其预读高速缓存中所需的所有数据的预读请求,而不考虑以前发出的预读请求或对当前正在被生成或发送的预读请求的响应。此方法简化了客户端代理实现,并导致由客户端代理所生成的可能会在它们的数据范围重叠的预读请求。这需要存储系统也基于它们的请求的数据范围来过滤并修改传入的读取请求。作为此处理的结果,存储系统可以确保:通过其预读机制向存储设备施加的读取访问,在现实中就它们的偏移而言被序列化,如此增强了被存储系统所使用的预读机制的有效性。在此方法中,存储系统使用如以下图4所示的下列方法来过滤并修改读取请求。
图4示出了考虑传入的和维护的序列ID值以及最远的偏移值的用于通过存储系统来处理读取请求的示例性方法90。存储系统为每一个客户端应用读取会话维护它在正在被读取的数据段中处理的当前最远的偏移。此值被初始化为空值。除维护的序列ID值之外,还维护此值。对于从客户端应用读取会话接收到的新读取请求(步骤94),如果读取请求的序列ID值等于维护的序列ID值(步骤98),则:如果读取请求的末端偏移小于或等于最远的偏移(步骤100),则丢弃请求(因为所请求的范围已经被处理,并被发送到客户端代理)(步骤108)。如果读取请求的末端偏移大于最远的偏移(再次,步骤100),则最远的偏移被修改为读取请求的末端偏移(步骤102),并且作为从最远的偏移的以前的值加一个字节开始并在最远的偏移的新的值结束的范围来计算读取并发送到客户端代理的数据范围(步骤104)。在以下的图5中,示出了此计算120,其中对于具有开始偏移124和末端偏移132的读取请求的示例性数据范围122,以及最远的偏移的以前的值126,导致读取请求的在最远的偏移的新的值130结束的更新的数据范围128。
如果读取请求的序列ID值大于维护的序列ID值(再次,步骤98),或如果对于此会话没有以前的序列ID值(步骤96),则维护的序列ID值被设置为与新读取请求一起发送的值(步骤110),最远的偏移被设置为新读取请求的末端偏移(步骤112),以及进一步处理读取请求,而不对其范围进行任何更改(步骤106)。如果读取请求的序列ID值小于维护的值(再次,步骤98),则相关联的读取请求和其序列ID值被丢弃(再次,步骤108)。然后,方法90结束(步骤114)。
在一个实施例中,存储系统为每一个客户端应用读取会话维护预读高速缓存。下面是用于确定要被加载到预读高速缓存的数据内容,以及使用高速缓存来处理读取请求的示例性方法。构成预读高速缓存的物理缓冲器在逻辑上被分区为两个缓冲器,其数据内容是使用下列方法确定的。两个缓冲器就它们的数据中的相关联的偏移而言始终在逻辑上是连续的。即,第二逻辑缓冲器的开始偏移始终在第一逻辑缓冲器的末端偏移之后的一个字节开始。逻辑缓冲器中的每一个,不管它们在物理缓冲器中的布局如何,就它们在数据中的偏移而言,可以是第一逻辑缓冲器,然后另一个缓冲器是第二逻辑缓冲器。在以下的图6和7分别作为情况(A)和(B)示出了示例性数据段148,158的此分区140,150。物理缓冲器142,152被分区为第一和第二逻辑缓冲器144,146和154,156,如图所示。
开始时,当两个逻辑缓冲器是空的时,并且当处理客户端应用读取会话中的第一读取请求时,可以应用下列示例性方法。一个缓冲器(例如,在物理缓冲器中在物理上是第一个的缓冲器)的开始偏移被设置为读取请求的开始偏移。另一个缓冲器的开始偏移被设置为第一逻辑缓冲器的末端偏移加一个字节。要被加载到缓冲器中的数据大小是它们的总大小(即,物理缓冲器的大小)。数据被加载到两个缓冲器(一般而言,利用对存储设备的单个读取操作)。从缓冲器提供传入的读取请求。
缓冲器中的数据内容可以使用例如下列方法,根据客户端应用读取会话的读取请求前进的方式而前进。使缓冲器中的数据内容前进是通过将第一逻辑缓冲器的开始偏移设置为第二逻辑缓冲器的末端偏移加一个字节来完成的。这在第一和第二逻辑缓冲器之间切换。然后,数据被加载到当前第二逻辑缓冲器(以前的第一逻辑缓冲器)中。
用于使用上面指定的示例性方法使缓冲器的数据内容前进的触发是:其末端偏移超过偏移阈值的读取请求的数量超过该读取请求的数量的阈值。每当逻辑缓冲器的数据内容改变(即,第一和第二逻辑缓冲器切换)时,重新计算偏移阈值,而其值与由第二逻辑缓冲器覆盖的数据范围的百分比相关联。在我们的方法中,此百分比是50%,意味着当读取请求开始引用第二逻辑缓冲器的后一半时,第一逻辑缓冲器的数据内容具有低的进一步被访问的概率,因此第一逻辑缓冲器前进,变为第二逻辑缓冲器。在一个实施例中,这样的读取请求的数量阈值是2。在以下的图8中示出了对于示例性数据段172的这些阈值166和用于触发缓冲器168,170的数据内容的前进的条件(例如,其末端偏移超过偏移阈值164的两个以上的读取请求162),如图所示。
在使缓冲器的数据内容前进的过程中,将数据加载到新定义的第二逻辑缓冲器中是相对于读取请求的处理以异步(后台)过程来完成的。如果任何读取请求必须访问处于被加载到第二逻辑缓冲器的处理中的数据,则此读取请求被阻止(使用同步机制),直到数据被加载并在第二逻辑缓冲器中可用。
当处理传入的读取请求时,两个逻辑缓冲器中的数据内容被视为单个高速缓存缓冲器内的连贯的数据段。在一个实施例中,传入的读取请求可以使用图9所示出的下列方法180来处理。方法180以接收到读取请求(步骤184)开始(步骤182)。如果高速缓存缓冲器是空的(步骤186),则数据使用以前所描述的方法被加载到两个逻辑缓冲器中(步骤188),以及从高速缓存缓冲器提供读取请求的数据(步骤196)。
如果高速缓存缓冲器不是空的(再次,步骤186),并且如果读取请求的开始和末端偏移在高速缓存缓冲器的偏移内(步骤190),则从高速缓存缓冲器提供读取请求的数据(再次,步骤196)。如果读取请求的序列ID大于当前序列ID(步骤192),则设置指示在超过高速缓存缓冲器的范围的第一连续的读取请求时,高速缓存缓冲器将被复位的标记(如下面所指定的)。当前序列ID被设置为该读取请求的序列ID(步骤194)。如果读取请求的序列ID小于当前序列ID(再次,步骤192),则该读取请求已经通过以前所描述的序列ID屏蔽而被丢弃。
如果高速缓存缓冲器不是空的(再次,步骤186),并且如果读取请求的偏移超过高速缓存缓冲器的偏移(再次,步骤190),并且如果读取请求的序列ID等于当前序列ID,以及指示高速缓存缓冲器复位的标记被关闭(指示它仍是相同顺序读取流)(步骤198),则一般从存储设备中检索由读取请求所引用的数据,带有下列例外。(1)如果由读取请求所引用的数据的一部分存在于高速缓存缓冲器中,则此部分可以从高速缓存缓冲器提供,以及(2)如果当前读取请求触发了高速缓存缓冲器的数据内容中的修改,或者如果这样的修改已经在进行中,并且如果其引用的数据将存在于高速缓存缓冲器的经过修改的数据内容中,则该读取请求可以阻止,直到高速缓存缓冲器的更新的数据内容被加载(步骤200)。在上面暗示了从存储设备中检索落后于高速缓存缓冲器的数据内容的读取请求(具体而言,检索它们的不存在于高速缓存缓冲器中的部分),并决不等待高速缓存缓冲器的内容中的修改(始终向前进行)。
如果读取请求的序列ID大于当前序列ID或者指示高速缓存缓冲器复位的标记打开(指示这是新读取的流)(步骤198),则使用下列方法来更新高速缓存缓冲器的数据内容。一个逻辑缓冲器的开始偏移被设置为读取请求的开始偏移;另一个逻辑缓冲器的开始偏移被设置为第一逻辑缓冲器的末端偏移加一个字节;读取到缓冲器的大小是它们的总大小;以及然后数据被加载到高速缓存缓冲器中(使用对存储设备的单个读取请求)(步骤202)。指示高速缓存缓冲器复位的标记被关闭(再次,步骤202)。从高速缓存缓冲器提供读取请求(步骤196)。最后,如果读取请求的序列ID小于当前序列ID,则在接收时通过在前的处理过滤消息(以前所描述的)。然后,方法180结束(步骤204)。
在向客户端代理发送由读取操作请求的数据的过程中,存储系统将返回的数据划分为多个不相重叠的段,并在单独的网络消息中发送每一个段。存储系统通过执行的多个线程并利用多个网络连接(即,每一个响应消息都可以利用不同的网络连接来发送)并行地发送这些响应消息,如此在网络连接上平衡响应消息。结果,存储系统和客户端代理之间的网络带宽使用率显著改善。客户端代理收集由存储系统所发送的响应消息,并从在响应消息中表达的数据段构成读取和预读请求的数据。由于利用上面的机制网络带宽被更好地使用,因此增强了总的读取性能。
图10示出了适用于实现下列所要求保护的主题的各方面的示例性硬件250。在所描绘的实施例中,示出了体系结构10(图1)的示例性部分252。体系结构10的部分252可作为其一部分在计算机环境中操作,在计算机环境中,可以实现前面所示出的各实施例的机制。然而,应该理解,图10只是示例性的,并不意图声明或暗指关于其中可以实现各实施例的示例性方面的特定体系结构的任何限制。在不偏离后面的描述和所要求保护的主题的范围的情况下,可以对图10中所描绘的体系结构进行许多修改。
部分252包括处理器254和诸如随机存取存储器(RAM)之类的存储器256。部分252可以可操作地耦合到为了方便起见未示出的多个组件,包括在图形用户界面上向用户呈现诸如窗口之类的图像的显示器、键盘、鼠标、打印机等等。当然,所属领域的技术人员将认识到,上面组件的任何组合、或任意数量的不同的组件、外围设备及其他设备,可以与部分252一起使用。
在所示出的实施例中,部分252在存储在存储器256中的操作系统(OS)258(例如,z/OS、OS/2、LINUX、UNIX、WINDOWS MACOS)控制之下操作,并与用户对接以接受输入和命令并呈现结果。在本发明的一个实施例中,OS258根据本发明便于预读功能。为此,OS258包括预读模块264,该预读模块264可以适用于执行在前面所示出的各实施例中所描述的示例性方法中的各种进程和机制。
部分252可以实现编译器262,该编译器262允许以诸如COBOL、PL/1、C、C++、JAVA、ADA、BASIC、VISUAL BASIC或任何其他编程语言编写的应用程序260被转换为可由处理器254读取的代码。在完成之后,应用程序260使用利用编译器262所生成的关系以及逻辑来访问和操纵存储在部分252的存储器256中的数据。
在一个实施例中,实现操作系统258、应用程序260、以及编译器262的指令可触摸地以计算机可读介质实现,计算机可读介质可以包括一个或多个固定的或可移动的数据存储设备,诸如压缩驱动器、光盘、硬盘驱动器、DVD/CD-ROM、数字磁带、固态驱动器(SSD)等等。进一步地,操作系统258和应用程序260可以包括指令,这些指令在由部分252读取和执行时,使部分252执行实现和/或使用本发明所需的步骤。应用程序260和/或操作系统258指令也可以可触摸地以存储器256实现。如此,如此处可以使用的术语“制品”、“程序存储设备”和“计算机程序产品”旨在涵盖可以从任何计算机可读设备或介质访问的和/或操作的计算机程序。
本发明的各实施例可以包括一个或多个相关软件应用程序260,包括例如用于管理构成计算设备的网络(诸如存储区域网络(SAN))的分布式计算机系统的功能。相应地,处理器254可以包括一个或多个存储管理处理器(SMP)。应用程序260可以在单个计算机内或作为包含计算设备的网络的分布式计算机系统的一部分来操作。网络可以涵盖通过局域网和/或因特网连接(可以是公共或安全的,例如,通过虚拟专用网络(VPN)连接),或通过光纤通道SAN或所属领域的技术人员所理解的其他已知网络类型而连接的一台或多台计算机。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”程序设计语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上面已经参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
尽管详细示出了本发明的一个或多个实施例,但是那些精通技术的人员将理解,在不偏离如下面的权利要求所阐述的本发明的范围的情况下,可以对那些实施例进行修改。

Claims (10)

1.一种用于由处理器设备在联网的客户端-服务器体系结构中进行预读处理的方法,包括:
通过多个唯一序列标识(ID)来分组读取消息,所述序列ID中的每一个都对应于一个读取序列,包括与正在被客户端应用中的执行的线程连续地读取的存储段有关的读取和预读请求;
使用所述序列ID,通过丢弃序列ID被确定为比维护的序列ID晚的过时的读取消息中的一个,来过滤所述过时的读取消息;以及
使用所述序列ID来确定要加载到预读高速缓存中的对应的预读数据。
2.如权利要求1所述的方法,其中,所述预读高速缓存在逻辑上被分区为用于数据处理的前面的和后面的在逻辑上连续的缓冲器,并进一步包括将所述预读数据加载到从近似等于前面的缓冲器的容量的偏移开始的后面的缓冲器中。
3.如权利要求1或2所述的方法,进一步包括:初始化用于处理新读取请求的客户端应用读取会话。
4.如权利要求3所述的方法,进一步包括:如果以前的序列ID对于所述读取会话不存在,则将所述维护的序列ID设置为接收到的序列ID。
5.如权利要求3所述的方法,进一步包括:如果接收到的序列ID被确定为比所述维护的序列ID更新,则将维护的最远的偏移值设置为所述新读取请求的末端偏移。
6.如权利要求3所述的方法,进一步包括:如果接收到的序列ID被确定为等于所述维护的序列ID,如果所述新读取请求的末端偏移是小于和等于所述新读取请求的最远的偏移中的一项,则丢弃所述新读取请求。
7.如权利要求6所述的方法,进一步包括:如果接收到的序列ID被确定为等于所述维护的序列ID,则将要读取的数据范围设置为从所述最远的偏移的以前的值加一个字节开始到在所述最远的偏移的新值结束的范围,以及将所述数据范围发送到客户端代理。
8.如权利要求3所述的方法,其中,如果所述预读高速缓存在加载所述预读数据时被确定为不是空的:
如果所述新读取请求的开始和末端偏移在所述预读高速缓存的偏移内,并且所述新读取请求的接收到的序列ID大于所述维护的序列ID,则在第一连续的读取请求上设置指示要发生预读高速缓存的复位的标记,以及
如果所述新读取请求的开始和末端偏移超过所述预读高速缓存的偏移,并且所述新读取请求的接收到的序列ID等于所述维护的序列ID,并且没有设置所述标记,则将所述预读数据加载到所述预读高速缓存中,以及
如果所述新读取请求的开始和末端偏移超过所述预读高速缓存的偏移,并且所述新读取请求的接收到的序列ID超过所述维护的序列ID以及设置了所述标记中有一项成立,则所述后面的以及前面的缓冲器中的一个的开始偏移被设置为所述新读取请求的开始偏移,而所述后面的和前面的缓冲器中的另一个的开始偏移被设置为大致是所述后面的和前面的缓冲器中的所述另一个的末端偏移。
9.一种用于在联网的客户端-服务器体系结构中进行预读处理的系统,包括:
可在所述客户端-服务器体系结构中操作的至少一个处理器设备,其中,所述至少一个处理器设备适用于执行任何一个前述权利要求的步骤的方法。
10.一种用于在联网的客户端-服务器体系结构中通过处理器设备进行预读处理的计算机程序产品,所述计算机程序产品包括其中存储了计算机可读程序代码部分的计算机可读存储介质,所述计算机可读程序代码部分在由计算机执行时,执行如权利要求1到8中的任何一个权利要求的方法步骤。
CN201180057801.6A 2010-12-01 2011-11-16 联网的客户端-服务器体系结构中的预读处理 Active CN103250141B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/958,196 2010-12-01
US12/958,196 US20120144123A1 (en) 2010-12-01 2010-12-01 Read-ahead processing in networked client-server architecture
PCT/EP2011/070285 WO2012072418A1 (en) 2010-12-01 2011-11-16 Read-ahead processing in networked client-server architecture

Publications (2)

Publication Number Publication Date
CN103250141A true CN103250141A (zh) 2013-08-14
CN103250141B CN103250141B (zh) 2015-12-16

Family

ID=44971039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180057801.6A Active CN103250141B (zh) 2010-12-01 2011-11-16 联网的客户端-服务器体系结构中的预读处理

Country Status (5)

Country Link
US (7) US20120144123A1 (zh)
CN (1) CN103250141B (zh)
DE (1) DE112011103276T5 (zh)
GB (1) GB2499946B (zh)
WO (1) WO2012072418A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094701A (zh) * 2015-07-20 2015-11-25 浪潮(北京)电子信息产业有限公司 一种自适应预读方法及装置
CN105653684A (zh) * 2015-12-29 2016-06-08 曙光云计算技术有限公司 分布式文件系统的预读方法和装置
CN107783911A (zh) * 2016-08-31 2018-03-09 杭州华为数字技术有限公司 一种数据过滤方法及终端设备
CN110532199A (zh) * 2018-05-23 2019-12-03 北京忆芯科技有限公司 预读方法及其存储控制器
CN114327299A (zh) * 2022-03-01 2022-04-12 苏州浪潮智能科技有限公司 一种顺序读预读的方法、装置、设备及介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539163B1 (en) * 2010-12-17 2013-09-17 Amazon Technologies, Inc. Speculative reads
US8886880B2 (en) 2012-05-29 2014-11-11 Dot Hill Systems Corporation Write cache management method and apparatus
US9053038B2 (en) 2013-03-05 2015-06-09 Dot Hill Systems Corporation Method and apparatus for efficient read cache operation
US8930619B2 (en) 2012-05-29 2015-01-06 Dot Hill Systems Corporation Method and apparatus for efficiently destaging sequential I/O streams
US9552297B2 (en) 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
US9684455B2 (en) 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
US10210480B2 (en) * 2012-05-31 2019-02-19 Apple Inc. Avoiding a redundant display of a notification on multiple user devices
US9152563B2 (en) 2013-03-04 2015-10-06 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US9465555B2 (en) 2013-08-12 2016-10-11 Seagate Technology Llc Method and apparatus for efficient processing of disparate data storage commands
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
US9134910B2 (en) * 2013-04-30 2015-09-15 Hewlett-Packard Development Company, L.P. Set head flag of request
US9213498B2 (en) 2013-09-03 2015-12-15 Kabushiki Kaisha Toshiba Memory system and controller
KR101694988B1 (ko) 2014-02-26 2017-01-11 한국전자통신연구원 분산 파일시스템에서의 읽기 동작 수행 방법 및 장치
US10255190B2 (en) * 2015-12-17 2019-04-09 Advanced Micro Devices, Inc. Hybrid cache
CN110808956B (zh) * 2019-09-30 2021-09-17 林德(中国)叉车有限公司 一种数据交互方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1109306C (zh) * 1996-08-19 2003-05-21 国际商业机器公司 在用户机-服务器对话系统中执行交互应用的方法、系统及装置
US20040064577A1 (en) * 2002-07-25 2004-04-01 Dahlin Michael D. Method and system for background replication of data objects

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161162A (en) 1993-12-08 2000-12-12 Nec Corporation Multiprocessor system for enabling shared access to a memory
US5752063A (en) 1993-12-08 1998-05-12 Packard Bell Nec Write inhibited registers
US6745194B2 (en) * 2000-08-07 2004-06-01 Alta Vista Company Technique for deleting duplicate records referenced in an index of a database
US7269663B2 (en) 2001-09-28 2007-09-11 Intel Corporation Tagging packets with a lookup key to facilitate usage of a unified packet forwarding cache
US7325051B2 (en) 2001-11-06 2008-01-29 International Business Machines Corporation Integrated storage appliance
EP1349113A3 (en) 2002-03-20 2006-01-11 Ricoh Company Image processor and image processing method
US7542986B2 (en) 2002-03-26 2009-06-02 Hewlett-Packard Development Company, L.P. System and method for maintaining order for a replicated multi-unit I/O stream
US7287068B1 (en) * 2002-12-13 2007-10-23 Bmc Software, Inc. System and method for updating devices that execute an operating system or application program directly from nonvolatile storage
US7334088B2 (en) * 2002-12-20 2008-02-19 International Business Machines Corporation Page descriptors for prefetching and memory management
US7020743B2 (en) * 2003-02-24 2006-03-28 Sun Microsystems, Inc. Atomic remote memory operations in cache mirroring storage systems
US7039747B1 (en) 2003-12-18 2006-05-02 Cisco Technology, Inc. Selective smart discards with prefetchable and controlled-prefetchable address space
US7441087B2 (en) 2004-08-17 2008-10-21 Nvidia Corporation System, apparatus and method for issuing predictions from an inventory to access a memory
JP4088899B2 (ja) 2004-11-17 2008-05-21 ソニー株式会社 記録再生装置および記録再生方法、並びにプログラム
US20060165040A1 (en) 2004-11-30 2006-07-27 Rathod Yogesh C System, method, computer program products, standards, SOA infrastructure, search algorithm and a business method thereof for AI enabled information communication and computation (ICC) framework (NetAlter) operated by NetAlter Operating System (NOS) in terms of NetAlter Service Browser (NSB) to device alternative to internet and enterprise & social communication framework engrossing universally distributed grid supercomputing and peer to peer framework
US20060184718A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7404042B2 (en) 2005-05-18 2008-07-22 Qualcomm Incorporated Handling cache miss in an instruction crossing a cache line boundary
JP2007011523A (ja) 2005-06-29 2007-01-18 Hitachi Ltd データの先読み方法及び計算機システム
US8295475B2 (en) 2006-01-13 2012-10-23 Microsoft Corporation Selective glitch detection, clock drift compensation, and anti-clipping in audio echo cancellation
EP3301871B8 (en) * 2006-04-12 2021-07-07 TQ Delta, LLC Method, apparatus and system for packet retransmission
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US7827331B2 (en) 2006-12-06 2010-11-02 Hitachi, Ltd. IO adapter and data transferring method using the same
US20090063400A1 (en) * 2007-09-05 2009-03-05 International Business Machines Corporation Apparatus, system, and method for improving update performance for indexing using delta key updates
JP4498409B2 (ja) * 2007-12-28 2010-07-07 株式会社エスグランツ データベースのインデックスキー更新方法及びプログラム
US9110796B2 (en) 2009-01-27 2015-08-18 Avago Technologies General Ip (Singapore) Pte Ltd Apparatus and circuitry for memory-based collection and verification of data integrity information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1109306C (zh) * 1996-08-19 2003-05-21 国际商业机器公司 在用户机-服务器对话系统中执行交互应用的方法、系统及装置
US20040064577A1 (en) * 2002-07-25 2004-04-01 Dahlin Michael D. Method and system for background replication of data objects

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094701A (zh) * 2015-07-20 2015-11-25 浪潮(北京)电子信息产业有限公司 一种自适应预读方法及装置
CN105094701B (zh) * 2015-07-20 2018-02-27 浪潮(北京)电子信息产业有限公司 一种自适应预读方法及装置
CN105653684A (zh) * 2015-12-29 2016-06-08 曙光云计算技术有限公司 分布式文件系统的预读方法和装置
CN107783911A (zh) * 2016-08-31 2018-03-09 杭州华为数字技术有限公司 一种数据过滤方法及终端设备
CN107783911B (zh) * 2016-08-31 2021-06-08 华为技术有限公司 一种数据过滤方法及终端设备
CN110532199A (zh) * 2018-05-23 2019-12-03 北京忆芯科技有限公司 预读方法及其存储控制器
CN110532199B (zh) * 2018-05-23 2023-06-20 北京忆芯科技有限公司 预读方法及其存储控制器
CN114327299A (zh) * 2022-03-01 2022-04-12 苏州浪潮智能科技有限公司 一种顺序读预读的方法、装置、设备及介质
WO2023165188A1 (zh) * 2022-03-01 2023-09-07 苏州浪潮智能科技有限公司 一种顺序读预读的方法、装置、设备及介质

Also Published As

Publication number Publication date
GB2499946B (en) 2019-01-16
US8578102B2 (en) 2013-11-05
US9251082B2 (en) 2016-02-02
US20130191602A1 (en) 2013-07-25
US8578101B2 (en) 2013-11-05
US8832385B2 (en) 2014-09-09
WO2012072418A1 (en) 2012-06-07
US20130191448A1 (en) 2013-07-25
GB201310506D0 (en) 2013-07-24
CN103250141B (zh) 2015-12-16
US20120144123A1 (en) 2012-06-07
US20130185518A1 (en) 2013-07-18
US8949543B2 (en) 2015-02-03
DE112011103276T5 (de) 2013-07-18
US20130191490A1 (en) 2013-07-25
US20130205095A1 (en) 2013-08-08
GB2499946A (en) 2013-09-04
US8595444B2 (en) 2013-11-26
US20120239749A1 (en) 2012-09-20

Similar Documents

Publication Publication Date Title
CN103250141A (zh) 联网的客户端-服务器体系结构中的预读处理
US8874877B2 (en) Method and apparatus for preparing a cache replacement catalog
RU2550558C2 (ru) Сравнение и замена позиции таблицы динамической трансляции адреса
CN104025049B (zh) 生成指示寄存器活跃度的编译代码
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
CN102473112B (zh) 关于线程迁移的高速缓存预填充方法、产品与系统
US11461242B2 (en) Integration of application indicated minimum time to cache and maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
JP5569424B2 (ja) 更新装置、更新方法、および更新プログラム
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
US20210133116A1 (en) Integration of application indicated minimum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
CN102906738A (zh) 混合存储服务器中的数据访问管理
KR20150032508A (ko) 고속 질의 응답을 위한 시스템 및 방법
CN107179878A (zh) 基于应用优化的数据存储的方法和装置
US20180081807A1 (en) Restriction of validation to active tracks in non-volatile storage during a warmstart recovery
JP2013530441A5 (zh)
JP7104289B2 (ja) 同期入出を介して生成されたキャッシュ・ヒットに応答してメタデータ・トラックの非同期更新をする方法、システム、コンピュータ・プログラムおよび記憶制御装置
CN110168510A (zh) 用于延长私有高速缓存中的高速缓存行的独占持有的设施
WO2019034976A1 (en) CACHE MEMORY MANAGEMENT
CN109690536A (zh) 将多核指令踪迹从虚拟平台仿真器取到性能模拟模型的方法和系统
JP7003470B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20160170875A1 (en) Managed runtime cache analysis
TWI469044B (zh) 於指令存取前藉由運行標籤查找之隱藏指令快取未命中潛時的技術
Shi et al. Memory/disk operation aware lightweight VM live migration
CN103207763B (zh) 基于xen虚拟磁盘设备的前端缓存方法
Junaid et al. Analyzing the Performance of a DAPP Using Blockchain 3.0

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant