缓存系统及相关方法技术方案

技术编号:19320131 阅读:26 留言:0更新日期:2018-11-03 10:47
本公开的实施例提供了缓存系统及相关方法。该缓存系统包括第一流水线模块,包括能够执行第一多个操作的第一多个顺序处理阶段。第一多个操作响应于针对持久性存储设备的第一多个类型的输入/输出I/O请求而被执行,并且第一多个操作中每个操作是第一多个类型的I/O请求中的至少两个类型的I/O请求的公共操作。缓存系统还包括控制模块,被配置为确定针对持久性存储设备的第一待处理I/O请求的第一类型,以及响应于第一类型为第一多个类型之一,使得第一流水线模块被执行以处理第一待处理I/O请求。

Cache system and related methods

Embodiments of this disclosure provide caching systems and related methods. The cache system includes a first pipeline module, including a first plurality of sequential processing stages capable of performing the first plurality of operations. The first plurality of operations are executed in response to the first plurality of types of input/output I/O requests for persistent storage devices, and each operation in the first plurality of operations is a common operation of at least two types of I/O requests in the first plurality of types of I/O requests. The cache system also includes a control module configured to determine the first type of the first pending I/O request for a persistent storage device and to enable the first pipeline module to be executed to process the first pending I/O request in response to the first type being one of the first multiple types.

【技术实现步骤摘要】
缓存系统及相关方法
本公开的实施例涉及数据存储领域,并且更具体地,涉及缓存系统及其中方法。
技术介绍
数据存储系统可以在客户端(也被称为主机)与持久性存储设备之间设置缓存存储器(cachememory),用于暂时性存储数据。这样的缓存存储器可以被称为用于持久性存储设备的缓存存储器。与被包含在处理器(例如,中央处理单元(CPU))中用于促进CPU的指令执行的缓存不同,用于持久性存储设备的缓存存储器旨在于提高客户端对持久性存储设备的读写速度。具体地,缓存存储器接收来自客户端的针对持久性存储设备的输入/输出(I/O)请求,并且响应于该请求,将要被写入到持久性存储设备的数据的副本暂时性地存储或者将其缓存的持久性存储设备的数据的副本读取给客户端。当缓存存储器已经存储客户端的数据副本或者向客户端提供其缓存的数据副本,可以认为I/O请求被成功处理。由于缓存存储器的访问速度通常高于持久性存储设备,因此这极大地提高了数据存储系统的读写性能。在常规的缓存存储器中实施有许多机制和线程(thread),用于处理不同类型的I/O请求。线程上下文开销、系统复杂度和可扩展性将是影响缓存存储器的性能的因素。因此,需要对缓存存储器的进一步改进以便提升缓存存储器和数据存储系统的总体性能。
技术实现思路
本公开的实施例提供了一种改进的缓存方案。在本公开的第一方面中,提供了一种缓存系统。该缓存系统包括第一流水线模块,包括能够执行第一多个操作的第一多个顺序处理阶段。第一多个操作响应于针对持久性存储设备的第一多个类型的输入/输出I/O请求而被执行,并且第一多个操作中每个操作是第一多个类型的I/O请求中的至少两个类型的I/O请求的公共操作。缓存系统还包括控制模块,被配置为确定针对持久性存储设备的第一待处理I/O请求的第一类型,以及响应于第一类型为第一多个类型之一,使得第一流水线模块被执行以处理第一待处理I/O请求。在本公开的第二方面中,提供了一种用于缓存系统的方法。缓存系统与持久性存储设备相关联。该方法包括接收针对持久性存储设备的第一待处理输入/输出I/O请求。缓存系统包括第一流水线模块,第一流水线模块包括能够执行第一多个操作的第一多个顺序处理阶段。第一多个操作响应于针对持久性存储设备的第一多个类型的输入/输出I/O请求而被执行,并且第一多个操作中每个操作是第一多个类型的I/O请求中的至少两个类型的I/O请求的公共操作。该方法还包括确定第一待处理I/O请求的第一类型。该方法进一步包括响应于第一类型为第一多个类型之一,使得第一流水线模块被执行以处理第一待处理I/O请求。在本公开的第三方面中,提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令在被执行时使设备执行根据第二方面的方法。提供
技术实现思路
部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。附图说明通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。图1示出了本公开的实施例可以在其中被实现的数据存储场景的示意图;图2示出了常规的缓存系统的结构框图;图3示出了一般流水线模块的示意图;图4示出了根据本公开的一个实施例的缓存系统的结构框图;图5A示出了根据本公开的一个实施例的流水线模块的示意图;图5B示出了根据本公开的一个实施例在流水线模块中的空等阶段的添加的示意图;图6示出了根据本公开的另一个实施例的缓存系统的结构框图;以及图7示出了根据一个实施例的用于缓存系统的过程的流程图。具体实施方式下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。如以上提及的,在数据存储场景中,为了提高客户端对存储设备、特别是持久性存储设备的读写速度,可以在客户端与持久性存储设备之间设置一个或多个缓存系统。在缓存系统中,可以缓存客户端要写入到持久性存储设备的数据的副本或者客户端从持久性存储设备读取出的数据的副本。因为客户端对与持久性存储设备的读写访问是持续过程,这样的读写过程可能会重复地读和/或写某些数据,将这部分数据的副本缓存在具有更高访问速度的缓存系统中有利于加速读写访问速度。图1图示了本公开的实施例可以在其中被实现的数据存储场景100的示意图。如图所示,多个客户端110-1和110-2(以下统称或单独称为客户端110)中的每个可以对持久性存储设备140-1和140-2(以下统称或单独称为持久性存储设备140)中的一个或多个进行读写访问,以向持久性存储设备140写入数据或者从其中读取数据。持久性存储设备140可以在时间上持久和非易失性地存储数据并且在关机后也不会丢失所存储的数据。这样的持久性存储设备140的示例可以包括但不限于数字通用盘(DVD)、蓝光盘(BD)、光盘(CD)、软盘、硬盘、磁带驱动、光学驱动、固态存储器设备(SSD)、磁盘冗余阵列(RAID)或其他持久性存储设备。在一些实施例中,持久性存储设备140可以组成客户端110的专用存储系统。客户端110可以通过输入/输出(I/O)请求来请求对持久性存储设备140的读写访问。I/O请求可以先由被设置在客户端110与持久性存储设备140之间的缓存部分130来处理。缓存部分130包括缓存存储器120-1。缓存存储器120-1具有存储空间用于缓存持久性存储设备140的部分数据。缓存存储器120-1可以是各种可以提供高速缓存能力的存储装置或可读介质。在一些实施例中,缓存存储器120-1可以是多核缓存存储器,用于进一步提高访问速度。在接收到I/O请求之后,如果该I/O请求涉及向持久性存储设备140写入数据,缓存存储器120-1可以首先缓存该数据,并且向客户端110发送写入成功的响应。缓存存储器120-1然后在一段时间后将所缓存的数据写入到持久性存储设备140。如果I/O请求涉及从持久性存储设备140读取数据,缓存存储器120-1可以首先查找要被读取的数据是否被缓存。如果被缓存,则由缓存存储器120-1直接向客户端110提供所要求的数据,而不需要访问持久性存储设备140。如果未被缓存,缓存存储器120-1可以从持久性存储设备140读取数据、将数据提供给客户端设备110并且还可以将该部分数据缓存以供后续的读取。对于缓存存储器120-1而言,持久性存储设备140也可以被称为后端存储设备。在读写客户端与持久性存储设备之间设置缓存存储器可以提升整个数据存储系统的性能,其带来的优势至少可以包括以下方面:首先,由于缓存存储器的响应速度往往高于持久性存储设备,因此可以显著地缩减客户端设备的读写速度。例如,在写数据的操作中,客户端设备可以更快地确认数据是否被成功写入;在读数据的操作中,无需访问持久性存储设备而从缓存存储器更快获得数据。其次,缓存存储器还可以预测客户端设备后续可能会读取的数据,并且在被客户端设备请求之前将该数据从持久性存储设备中读取出来并且缓存。这在例如客户端设备进行顺序读写时将非常有利本文档来自技高网
...

【技术保护点】
1.一种缓存系统,所述缓存系统与持久性存储设备相关联并且包括:第一流水线模块,包括能够执行第一多个操作的第一多个顺序处理阶段,所述第一多个操作响应于针对所述持久性存储设备的第一多个类型的输入/输出I/O请求而被执行,所述第一多个操作中每个操作是所述第一多个类型的I/O请求中的至少两个类型的I/O请求的公共操作;以及控制模块,被配置为:确定针对所述持久性存储设备的第一待处理I/O请求的第一类型,以及响应于所述第一类型为所述第一多个类型之一,使得所述第一流水线模块被执行以处理所述第一待处理I/O请求。

【技术特征摘要】
1.一种缓存系统,所述缓存系统与持久性存储设备相关联并且包括:第一流水线模块,包括能够执行第一多个操作的第一多个顺序处理阶段,所述第一多个操作响应于针对所述持久性存储设备的第一多个类型的输入/输出I/O请求而被执行,所述第一多个操作中每个操作是所述第一多个类型的I/O请求中的至少两个类型的I/O请求的公共操作;以及控制模块,被配置为:确定针对所述持久性存储设备的第一待处理I/O请求的第一类型,以及响应于所述第一类型为所述第一多个类型之一,使得所述第一流水线模块被执行以处理所述第一待处理I/O请求。2.根据权利要求1所述的缓存系统,其中所述第一多个操作至少包括与对所述持久性存储设备的访问有关的至少一个操作。3.根据权利要求1所述的缓存系统,其中所述第一多个类型的I/O请求包括以下中的多个请求:读请求、写请求、零填充请求、预取请求和数据移除请求。4.根据权利要求1所述的缓存系统,其中所述控制模块还被配置为:确定针对所述持久性存储设备的第二待处理I/O请求的第二类型;以及响应于确定所述第二类型为所述第一多个类型之一,在所述第一多个顺序处理阶段中的第一顺序处理阶段正在运行的同时,使得所述第一流水线模块被执行以使用所述第一顺序处理阶段之前的第二顺序处理阶段处理所述第二待处理I/O请求。5.根据权利要求1所述的缓存系统,其中所述控制模块被配置为:为所述第一待处理I/O请求选择所述第一多个处理阶段中的至少一个处理阶段;使得所选择的至少一个处理阶段针对所述第一待处理I/O请求而被执行;以及使得所述第一多个处理阶段中的其他处理阶段被跳过。6.根据权利要求1所述的缓存系统,其中所述第一多个顺序处理阶段中的第三顺序处理阶段可操作以响应于所述缓存系统中可用于所述第三顺序处理阶段的缓存资源低于预定阈值而暂停预定时间段,并且响应于所述缓存资源超过预定阈值而被执行。7.根据权利要求1所述的缓存系统,还包括:第二流水线模块,包括够执行第二多个操作的第二多个顺序处理阶段,所述第二多个操作响应于针对所述持久性存储设备的第三类型的I/O请求而被执行,并且其中所述控制模块还被配置为:确定所述缓存系统接收到的第三待处理I/O请求的类型,以及响应于所确定的类型为所述第三类型,使得所述第二流水线模块被执行以处理所述第三待处理I/O请求。8.根据权利要求7所述的缓存系统,其中所述控制模块还被配置为:在所述第一流水线模块正在执行所述第一待处理I/O请求的同时,使得所述第二流水线模块被执行。9.根据权利要求8所述的缓存系统,其中所述控制模块还被配置为:基于所述第一流水线模块和所述第二流水线模块的相应优先级,为所述第一流水线模块和第二流水线模块分配所述缓存系统的缓存资源。10.一种用于缓存系统的方法,所述缓存系统与持久性存储设备相关联,所述方法包括:接收针对所述持久性存储设备的第一待处理输入/输出I/O请求,所述缓存...

【专利技术属性】
技术研发人员:杨利锋徐鑫磊高健李雄成奉昌玉
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1