使用原子多播的快速排序写入的方法和系统技术方案

技术编号:19424540 阅读:22 留言:0更新日期:2018-11-14 10:24
本发明专利技术涉及用于使用原子多播的快速排序写入的方法和系统。总体上来说,本技术的实施例涉及用于在包括多个分离的存储模块的存储设备中执行快速排序写入的方法和系统。更具体地,本技术的实施例使得能够将数据多播到存储设备中的多个存储模块,其中处理写入请求的顺序在存储设备中的所有存储模块上是相同的。

【技术实现步骤摘要】
使用原子多播的快速排序写入的方法和系统
本专利技术涉及用于使用原子多播(atomicmulticast)的快速排序写入的方法和系统。总体上来说,本技术的实施例涉及用于在包括多个分离的存储模块(storagemodule)的存储设备(storageappliance)中执行快速排序写入的方法和系统。更具体地,本技术的实施例使得能够将数据多播到存储设备中的多个存储模块,其中处理写入请求的顺序在存储设备中的所有存储模块上是相同的。
技术介绍
存储设备包括存储介质(storagemedia)并且提供使客户端能够向该存储介质写入数据和从该存储介质读取数据的机制。
技术实现思路
根据本公开的一个方面涉及一种用于处理写入请求的方法。该方法包括:从第一客户端并且由结构(fabric)接收包括第一数据的第一写入请求;由所述结构并且响应于所述第一写入请求,向第一存储模块发送第二写入请求,并且向第二存储模块发送第三写入请求;从第二客户端并且由所述结构接收包括第二数据的第四写入请求;由所述结构并且响应于所述第四写入请求,向所述第一存储模块发送第五写入请求,并且向所述第二存储模块发送第六写入请求;由所述结构向所述第一存储模块发送与所述第二写入请求相关联的第一提交请求和与所述第五写入请求相关联的第二提交请求;由所述结构向所述第二存储模块发送与所述第三写入请求相关联的第三提交请求和与所述第六写入请求相关联的第四提交请求;由所述第一存储模块处理所述第一提交请求和所述第二提交请求,其中,基于顺序,在所述第二提交请求之前处理所述第一提交请求;以及由所述第二存储模块处理所述第三提交请求和所述第四提交请求,其中,基于所述顺序,在所述第四提交请求之前处理所述第三提交请求。根据本公开的另一个方面涉及一种存储设备。该存储设备包括:结构;存储阵列(storagearray),其可操作地连接到所述结构并且包括第一存储模块和第二存储模块。所述结构被编程为:从第一客户端接收包括第一数据的第一写入请求;响应于所述第一写入请求,向所述第一存储模块发送第二写入请求,并且向所述第二存储模块发送第三写入请求;从第二客户端接收包括第二数据的第四写入请求;响应于所述第四写入请求,向所述第一存储模块发送第五写入请求,并且向所述第二存储模块发送第六写入请求;向所述第一存储模块发送与所述第二写入请求相关联的第一提交请求和与所述第五写入请求相关联的第二提交请求;以及向所述第二存储模块发送与所述第三写入请求相关联的第三提交请求和与所述第六写入请求相关联的第四提交请求。所述第一存储模块被配置为处理所述第一提交请求和所述第二提交请求,其中基于顺序,在所述第二提交请求之前处理所述第一提交请求,其中所述顺序由所述结构指定。所述第二存储模块被配置为处理所述第三提交请求和所述第四提交请求,其中基于所述顺序,在所述第四提交请求之前处理所述第三提交请求。附图说明图1A至1C示出了根据本技术的一个或多个实施例的系统。图2、图3、图4A和图4B示出了根据本技术的一个或多个实施例的流程图。具体实施方式在本技术的实施例的以下详细描述中,阐述了许多具体细节以便提供对该技术更透彻的理解。然而,对于本领域的普通技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践该技术。在其他情况下,没有详细描述众所周知的特征以避免不必要地使描述复杂化。在整个申请中,序数(例如,第一、第二、第三等)可以用作元素(即,本申请中的任何名词)的形容词。序数的使用并不意味着或创建任何特定的元素排序,也不限制任何元素仅为单个元素,除非明确地公开,例如通过使用术语“之前”、“之后”、“单个”和其他类似术语。更确切地说,序数的使用是为了区分这些元素。作为示例,第一元素不同于第二元素,并且第一元素可以包含多于一个元素并且在元素的排序中在第二元素之前(或先于)。在以下对图1A至4B的描述中,在本技术的各个实施例中关于附图描述的任何组件可以等同于关于任何其他附图描述的一个或多个相同名称的组件。为了简洁起见,这些组件的描述将不会关于每个图重复。因此,每个附图的组件的每个和每一个实施例通过引用并入并且被假定为可选地存在于具有一个或多个相同命名组件的每个其他附图中。另外,根据本技术的各种实施例,附图的组件的任何描述将被解释为可选的实施例,除了、结合或替代关于任何其他图中的对应相同命名组件描述的实施例,可以实施可选的实施例。总体上来说,本技术的实施例涉及用于在包括多个分离的存储模块的存储设备中执行快速排序写入的方法和系统。更具体地,本技术的实施例使得能够将数据多播到存储设备中的多个存储模块,其中处理写入请求的顺序在存储设备中的所有存储模块上是相同的。该技术的实施例能够实现上述顺序,而不需要客户端协调将数据写入存储设备。具体地,本技术的实施例使用结构(例如,PCIe结构)结合包括全局提交队列(参见例如图4A)或每个客户端提交队列的存储模块来执行写入请求的排序(参见例如,图4B)。在本技术的一个实施例中,排序在存储设备中的存储模块上是一致的,使得存储在各个存储模块(或存储模块的子集)中的数据是相同的。例如,考虑存储设备包括三个存储模块(1、2、3)的情况。此外,假设客户端A发出指定对象和偏移的第一写入请求(A),并且客户端B发出指定相同对象和偏移的第二写入请求(B)。该技术的实施例确保写入请求(A、B)在每个存储模块上以相同的顺序被处理,使得在两个写入请求都已经在三个存储模块(1、2、3)上被处理之后,针对特定对象和偏移存储的数据在三个存储模块(1、2、3)中的每一个上都是相同。图1A示出了根据本技术的一个或多个实施例的系统。参考图1A,该系统包括可操作地连接到存储设备(100)的一个或多个客户端(客户端A(108A)-客户端M(108M))。在本技术的一个实施例中,客户端(108A-108M)可以是任何类型的物理系统,其包括向存储设备(100)发出读取请求和/或向存储设备(100)发出写入请求的功能。虽然在图1A中未示出,但是每个客户端(108A-108M)分别可以包括客户端处理器(未示出)、客户端存储器(memory,未示出)以及实现本技术的一个或多个实施例所需的任何其他软件和/或硬件。在本技术的一个实施例中,客户端(108A-108M)被配置为执行包括文件系统的操作系统(OS)。文件系统提供了用于从存储设备(100)存储和检索文件的机制。更具体地说,文件系统包括执行必要动作以向存储设备(100)发出读取请求和写入请求的功能。文件系统还可以提供编程接口以使得能够创建和删除文件,读取和写入文件,在文件内执行搜索,创建和删除目录,管理目录内容等。另外,文件系统还提供管理接口以创建和删除文件系统。在本技术的一个实施例中,为了访问文件,操作系统(经由文件系统)通常提供文件操作接口以打开、关闭、读取和写入每个文件内的数据和/或操纵相应的元数据。在本技术的另一个实施例中,客户端被配置为执行用于访问存储设备的块驱动程序。在本技术的另一个实施例中,客户端被配置为执行使得客户端能够访问存储设备的应用编程接口(API)。在本技术的一个实施例中,客户端(108A-108M)与存储设备(100)的结构(106)对接以与存储设备(100)通信,如以下在图2中进一步本文档来自技高网...

【技术保护点】
1.一种用于处理写入请求的方法,包括:从第一客户端并且由结构接收包括第一数据的第一写入请求;由所述结构并且响应于所述第一写入请求,向第一存储模块发送第二写入请求,并且向第二存储模块发送第三写入请求;从第二客户端并且由所述结构接收包括第二数据的第四写入请求;由所述结构并且响应于所述第四写入请求,向所述第一存储模块发送第五写入请求,并且向所述第二存储模块发送第六写入请求;由所述结构向所述第一存储模块发送与所述第二写入请求相关联的第一提交请求和与所述第五写入请求相关联的第二提交请求;由所述结构向所述第二存储模块发送与所述第三写入请求相关联的第三提交请求和与所述第六写入请求相关联的第四提交请求;由所述第一存储模块处理所述第一提交请求和所述第二提交请求,其中,基于顺序,在所述第二提交请求之前处理所述第一提交请求;以及由所述第二存储模块处理所述第三提交请求和所述第四提交请求,其中,基于所述顺序,在所述第四提交请求之前处理所述第三提交请求。

【技术特征摘要】
2017.04.28 US 15/581,5801.一种用于处理写入请求的方法,包括:从第一客户端并且由结构接收包括第一数据的第一写入请求;由所述结构并且响应于所述第一写入请求,向第一存储模块发送第二写入请求,并且向第二存储模块发送第三写入请求;从第二客户端并且由所述结构接收包括第二数据的第四写入请求;由所述结构并且响应于所述第四写入请求,向所述第一存储模块发送第五写入请求,并且向所述第二存储模块发送第六写入请求;由所述结构向所述第一存储模块发送与所述第二写入请求相关联的第一提交请求和与所述第五写入请求相关联的第二提交请求;由所述结构向所述第二存储模块发送与所述第三写入请求相关联的第三提交请求和与所述第六写入请求相关联的第四提交请求;由所述第一存储模块处理所述第一提交请求和所述第二提交请求,其中,基于顺序,在所述第二提交请求之前处理所述第一提交请求;以及由所述第二存储模块处理所述第三提交请求和所述第四提交请求,其中,基于所述顺序,在所述第四提交请求之前处理所述第三提交请求。2.根据权利要求1所述的方法,还包括:由所述结构接收来自所述第一客户端的第五提交请求;响应于所述第五提交请求,生成所述第一提交请求和所述第三提交请求。3.根据权利要求2所述的方法,还包括:在发送所述第一提交请求之后,从所述第一存储模块接收第一提交回复;在发送所述第三提交请求之后,从所述第二存储模块接收第二提交回复;向所述第一客户端发送所述第一提交回复;以及向所述第一客户端发送所述第二提交回复。4.根据权利要求1所述的方法,其中,所述结构是高速外围组件互连PCIe结构。5.根据权利要求1所述的方法,其中,所述顺序由所述结构指定。6.根据权利要求1所述的方法,其中,所述第一写入请求由所述结构中的叶层交换机接收,并且所述第二写入请求由所述结构中的集线器层交换机发送到所述第一存储模块。7.根据权利要求6所述的方法,其中,所述第四写入请求由所述结构中的第二叶层交换机接收,并且所述第五写入请求由所述集线器层交换机发送到所述第一存储模块。8.根据权利要求6所述的方法,其中,所述叶层交换机向所述集线器层交换机发送所述第一写入请求,其中,所述集线器层交换机响应于从所述叶层交换机接收到所述第一写入请求而生成所述第二写入请求和所述第三写入请求。9.根据权利要求1所述的方法,其中,所述第一存储模块包括相变存储介质。10.根据权利要求1所述的方法,其中,处理所述第一提交请求和所述第二提交请求包括:基于所述顺序将所述第一提交请求和所述第二提交请求存储在全局提交队列中,其中,所述顺序由所述结构中的集线器层交换机指定。11.根据权利要求10所述的方法,其中,基于所述顺序从所述全局提交队列处理所述第一提交请求和所述第二提交请求,其中,处理所述第一提交请求包括将所述第一数据的副本存储在所述第一存储模块中的永久性存储装置中。12.根据权利要求10所述的方法,其中,所述第一提交请求与指定所述第一客户端的第一客户端标识符相关联,并且所述第二提交请求与指定所述第二客户端的第二客户端标识符相关联。13.根据权利要求1所述的方法,其中,处理所述第一提交请求和所述第二提交请求包括:将所述第一提交请求存储在与第一客户端相关联的第一客户端提交队列中,并且将所述第二提交请求存储在与所述第二客户端相关联的第二客户端提交队列中,其中,所述第一提交请求与第一全局排序标签相关联,并且所述第二提交请求与第二全局排序标签相关联,其中,所...

【专利技术属性】
技术研发人员:M·西本遥S·拉加达亚
申请(专利权)人:EMC知识产权控股有限公司
类型:发明
国别省市:美国,US

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

1