用于高速缓存分层的方法和系统的制作方法

文档序号:6484453阅读:146来源:国知局
用于高速缓存分层的方法和系统的制作方法
【专利摘要】一种用于存储数据以供在计算机系统上运行的应用检索的方法和系统,包括:提供包括至少一个高速缓存层和基层的分层高速缓存系统;基于策略将数据存储在所述至少一个高速缓存层和所述基层中的至少一个中;以及通过用于组织数据的装置将所述数据的应用视图呈现给所述应用。本发明可选地提供了附加的溢出层,并优选地包括多个高速缓存层。
【专利说明】用于高速缓存分层的方法和系统
[0001]本申请要求于2010年8月25日提交的美国临时申请N0.61/377,018的优先权,该美国临时申请的全部内容通过引用并入本文。
【技术领域】
[0002]本发明总体涉及计算机数据存储,并且更具体地,涉及用于提供分层高速缓存结构的方法和系统。
【背景技术】
[0003]近来,作为正变得广泛可用且可容易访问的商品存储设备,已出现以下两个具体新类别的存储设备:基于闪存的固态驱动器(SSD)和云存储器。本领域公知这些设备中的每一个在性能和成本上与计算机存储系统中许多年来流行的旋转介质硬盘驱动器清楚区分。从纯数据存储角度来看,每个类别的存储设备具有其自身的特定长处;例如,SSD较快,常规硬驱动器便宜,并且云存储器较灵活。如当前所使用,不同存储设备可由给定计算机系统访问,并且,使用不同数据流来管理与该存储设备的交互。图1示意了与多个类别的存储设备的典型现有技术系统交互。
[0004]不同类别的存储设备之间在特性、性能和成本上的差异一般大于每个类别内的各个产品或技术之间的差异。由此,期望能够在适当时使用所有类别的存储设备来管理数据存储,以最佳地利用其每个长处。当前在本领域中存在使SSD充当存储系统中的常规硬驱动器的高速缓存的新兴趋势,尽管实现方法是原始的并且是利用常规硬驱动器与SSD之间的简化数据流、基于每系统来设计的。
[0005]一些年来到现在,已经使用分层的思想(基于对数据应用的策略将数据置于分离存储设备上)来实现围绕数据管理的商业目的,例如针对成本效率、数据保持或法规遵循。例如,可以对所有数据进行存档,可以对敏感数据进行加密,可以将频繁使用的数据保存在其用户附近等等。这种类型的分层往往主要通过用于这些层的存储设备或数据存储系统而区分。
[0006]本发明的领域中的当前解决方案一般是基于网络的(器械或存储区域网络),使用基于块的高速缓存和/或存储设备(或者在云存储器的情况下,存储服务)选项的固定列表,例如图1所示。
[0007]尽管现有技术系统利用特定类别的存储设备的优势,但是这些系统在其使用上受计算机系统与具体存储设备之间的交互限制。此外,在应用级,通常必须进行适应,以从不同类别的存储设备进行数据检索。此外,从不同存储设备类别的不同优势实现极少(如果有的话)协同效应,并且因此,现有技术系统限于存储设备的物理表现,这是由于现有技术系统将独立地执行,而与系统中的其他不同类别的存储设备无关。
[0008]因此,本发明的目的是提供一种新系统和方法,用于提供分层高速缓存结构,以实现由不同类别的存储设备的比可在独立使用这些不同类别的存储设备时实现的优势高的优势产生的效益。
【发明内容】

[0009]本发明提供了一种新系统和方法,用于透明地将不同类别的存储设备集成在单个装置内以组织数据,从而实现使用这些不同类别的存储设备的协同效益,该协同效益扩展超过独立地且利用每一个自身的用于组织数据的装置进行操作的每个类别的存储设备的优势。本发明提供了一种推广的高速缓存系统和方法,可以将任何类别的存储设备高速缓存在任何其他类别的存储设备上,并可选地在多个类别和类型的存储设备当中以集成的方式提供这种高速缓存。
[0010]根据本发明的一个实施例,提供了一种用于存储数据以供在计算机系统上运行的应用检索的方法,包括:提供包括至少一个高速缓存层和基层的分层高速缓存系统;基于策略将数据存储在所述高速缓存层和所述基层中的至少一个中;以及通过用于组织数据的装置将所述数据的应用视图呈现给所述应用。优选地,所述用于组织数据的装置包括至少一个高速缓存层中的每一个所述基层的元数据信息。此外,所述至少一个高速缓存层中的每一个和所述基层布置在不同存储资源上,并且所述用于组织数据的装置包括所述不同存储资源中的每一个的元数据信息。
[0011]根据本发明的一方面,所述方法包括:提供至少一个溢出层,其中,所述溢出层布置在与所述至少一个高速缓存层中的每一个和所述基层不同的存储资源上;以及其中,所述用于组织数据的装置包括所述溢出层的元数据信息。
[0012]根据本发明的另一方面,所述至少一个高速缓存层包括多个分层的高速缓存层。所述至少一个高速缓存层可以是结合操作系统而使用的操作系统文件缓冲高速缓存。
[0013]根据本发明的另一方面,所述多个高速缓存层中的每一个是在固态驱动器上提供的,所述基层是在硬盘驱动器上提供的,并且所述溢出层是在云存储资源上提供的。
[0014]根据本发明的另一方面,所述用于组织数据的装置存储在所述硬盘驱动器上。
[0015]根据本发明的另一方面,所述方法还包括:将所述数据存储在所述基层上;以及将所述数据高速缓存在所述多个高速缓存层中的一个或多个上,其中,较高级别高速缓存层将数据高速缓存在较低级别高速缓存层上。
[0016]根据本发明的另一方面,每个高速缓存层级别包括两个或更多个存储资源。
[0017]根据本发明的另一方面,所述用于组织数据的装置对正在使用的特定存储设备不可知(agnostic)。
[0018]根据本发明的另一方面,步骤:通过拦截系统来拦截要执行的用于组织数据的装置的操作或者与所述用于组织数据的装置无关地处理的操作。
[0019]根据本发明的另一方面,所述方法还包括以下步骤:根据所述策略将输入/输出操作不相关联,使得操作的至少一部分被所述拦截系统拦截并根据所述策略而处理。
[0020]根据本发明的另一方面,所述策略由策略模块提供。
[0021]根据本发明的另一方面,所述策略模块与所述拦截系统构成一个整体。
[0022]根据本发明的另一方面,所述策略模块与所述用于组织数据的装置构成一个整体。
[0023]根据本发明的另一方面,拦截步骤还包括以下各项之一:(a)将被拦截的操作传递至在存储资源与所述拦截系统之间提供的数据变换引擎;(b)将被拦截的操作的完成记入日志;以及(C)改变被拦截的操作并将其继续传递至所述用于组织数据的装置。
[0024]根据本发明的另一方面,所述方法还包括:在所述拦截系统与所述存储资源之间提供数据变换引擎。
[0025]根据本发明的另一方面,所述方法还包括以下步骤:在所述用于组织数据的装置外执行策略;所述执行策略的步骤由所述数据变换引擎执行。
[0026]根据本发明的另一方面,所述数据变换引擎还包括:读取高速缓存模块,用于执行读取操作,以找到其上存在数据的最高高速缓存层并检索所述数据。
[0027]根据本发明的另一方面,所述数据变换引擎还包括:写入高速缓存模块,用于向不同高速缓存层级别执行写入操作。
[0028]根据本发明的另一方面,所述数据变换引擎还包括:加密模块,用于在数据经过所述用于组织数据的装置之前对数据进行加密和解密。
[0029]根据本发明的另一方面,所述数据变换引擎还包括:完整性模块,用于将数据的属性与元数据信息中存储的属性进行比较。
[0030]根据本发明的另一方面,所述数据变换引擎还包括:重复删除模块,用于执行重复删除步骤。
[0031]根据本发明的另一方面,所述数据变换引擎还包括:溢出模块,用于响应于失败的写入操作,将数据写入至溢出高速缓存层。
[0032]根据本发明的另一方面,所述方法还包括:提供数据存储接口,所述数据存储接口用于在所述存储资源与所述数据变换引擎之间提供操作接口。
[0033]根据本发明的另一方面,所述方法还包括以下步骤:抽象数据存储资源信息,使得每个数据存储资源对所述数据变换引擎来说统一地出现。
[0034]根据本发明的另一方面,所述方法还包括以下步骤:对至少两个或更多个数据存储资源成池(pool)。
[0035]根据本发明的另一实施例,提供了一种用于存储数据以供在计算机系统上运行的应用检索的系统,包括:分层高速缓存系统,包括至少一个高速缓存层和基层,其中,所述数据是基于策略而存储在所述至少一个高速缓存层和所述基层中的至少一个中的;以及用于组织数据的装置,用于将所述数据的应用视图呈现给所述应用,其中,所述用于组织数据的装置包括至少一个高速缓存层中的每一个和所述基层的元数据信息。
[0036]根据该实施例的一方面,所述至少一个高速缓存层中的每一个和所述基层布置在不同存储资源上;以及此外,其中,所述用于组织数据的装置包括所述不同存储资源中的每一个的兀数据信息。
[0037]根据该实施例的另一方面,所述系统还包括:至少一个溢出层,其中,所述溢出层布置在与所述至少一个高速缓存层中的每一个和所述基层不同的存储资源上;以及其中,所述用于组织数据的装置包括所述溢出层的元数据信息。
[0038]根据该实施例的另一方面,所述至少一个高速缓存层包括多个分层的高速缓存层。
[0039]根据该实施例的另一方面,其中,所述多个高速缓存层中的每一个是在固态驱动器上提供的,所述基层是在硬盘驱动器上提供的,并且所述溢出层是在云存储资源上提供的。[0040]根据该实施例的另一方面,所述用于组织数据的装置存储在所述硬盘驱动器上。
[0041]根据该实施例的另一方面,所述数据存储在所述基层上以及高速缓存在所述多个高速缓存层中的一个或多个上,其中,较高级别高速缓存层将数据高速缓存在较低级别高速缓存层上。
[0042]根据该实施例的另一方面,每个高速缓存层级别包括两个或更多个存储资源。
[0043]根据该实施例的另一方面,所述用于组织数据的装置对正在使用的特定存储设备不可知。
[0044]根据该实施例的另一方面,还包括:拦截系统,用于拦截要执行的用于组织数据的装置的操作或者与所述用于组织数据的装置无关地处理的操作。
[0045]根据该实施例的另一方面,其中,所述拦截系统适于根据所述策略将输入/输出操作不相关联,使得操作的至少一部分被所述拦截系统拦截并根据所述策略而处理。
[0046]根据该实施例的另一方面,所述系统还包括用于提供所述策略的策略模块。
[0047]根据该实施例的另一方面,所述策略模块与所述拦截系统构成一个整体。
[0048]根据该实施例的另一方面,所述策略模块与所述用于组织数据的装置构成一个整体。
[0049]根据该实施例的另一方面,所述拦截系统包括以下至少一项:(a)用于将被拦截的操作传递至在存储资源与所述拦截系统之间提供的数据变换引擎的装置;(b)用于将被拦截的操作的完成记入日志的装置;以及(C)用于改变被拦截的操作并将其继续传递至所述用于组织数据的装置的装置。
[0050]根据该实施例的另一方面,在所述拦截系统与所述存储资源之间提供数据变换引擎。
[0051]根据该实施例的另一方面,所述数据变换引擎还包括:读取高速缓存模块,用于执行读取操作,以找到其上存在数据的最高高速缓存层并检索所述数据。
[0052]根据该实施例的另一方面,所述数据变换引擎还包括:写入高速缓存模块,用于向不同高速缓存层级别执行写入操作。
[0053]根据该实施例的另一方面,所述数据变换引擎还包括:加密模块,用于在数据经过所述用于组织数据的装置之前对数据进行加密和解密。
[0054]根据该实施例的另一方面,所述数据变换引擎还包括:完整性模块,用于将数据的属性与元数据信息中存储的属性进行比较。
[0055]根据该实施例的另一方面,所述数据变换引擎还包括:重复删除模块,用于执行重复删除步骤。
[0056]根据该实施例的另一方面,所述数据变换引擎还包括:溢出模块,用于响应于失败的写入操作,将数据写入至溢出高速缓存层。
[0057]根据该实施例的另一方面,所述系统还包括:数据存储接口,用于在所述存储资源与所述数据变换引擎之间提供操作接口。
[0058]根据该实施例的另一方面,对至少两个或更多个数据存储资源成池。
【专利附图】

【附图说明】
[0059]现在将参照附图,仅作为示例,描述实施例,在附图中: 图1示出了计算机的现有技术存储模型,其中,在管理和互连数据流两方面,每个存储资源或数据存储系统均分离。
[0060]图2示出了根据本发明的存储模型。
[0061]图3示出了根据本发明的一个实施例的一般存储分层模型。
[0062]图4示出了图3的存储模型的改善版本。
[0063]图5示出了根据本发明的一个实施方式的框图。
[0064]图6示出了用作复合存储资源的min-OR存储树的示例,对4路RAIDO配置进行仿真。
[0065]图7示出了用作复合存储资源的示例min-OR存储树,其示出了与作为RAID6等效配置的镜之一成镜像的更复杂3路RAIDl。
[0066]图8示出了可实现本发明的推广计算机系统。
[0067]图9示出了与本发明一起使用的代表性数据变换引擎。
【具体实施方式】
[0068]本发明提供了一种新系统和方法,用于透明地将不同类别的存储设备集成在单个文件系统内,从而实现使用这些不同类别的存储设备的协同效益,该协同效益扩展超过独立地且利用每一个自身的文件系统进行操作的每个类别的存储设备的优势。考虑到以下描述,对本领域技术人员来说将变得显而易见,本发明提供了一种推广的高速缓存系统和方法,可以将任何类别的存储设备高速缓存在任何其他类别的存储设备上,并可选地在多个类别和类型的存储设备当中以集成的方式提供这种高速缓存。尽管关于文件系统描述了本发明以便于理解,但是将意识到,可以使用任何用于组织数据的装置,包括但不限于数据库,以及特别地,对象数据库、键值存储器、一些网络协议和一些共享数据系统。
[0069]在实现上述功能时, 申请人:面临着以下问题:(a)如何透明地集成不同存储设备,使得存储用户体验到本文描述的效益,而无需改变其应用或操作系统;(b)如何对可用的许多选项当中存储设备的选择不可知,使得在新技术出现时可以实现本发明;(c)如何在总体级别上提供存储设备的安全性和完整性;以及(d)如何应付较慢或遥远的存储设备的延迟问题。以下是对如何解决这些问题以得到本发明的简要的顶级描述。对实施本发明的更详细描述将紧随其后。
[0070]已经发现,可以通过保留对主数据存储系统(例如,文件系统中的文件系统元数据)的现有用户可见组织并使数据放置在独立控制的相同或其他存储设备上,解决透明集成问题。这将如图1所示的现有技术系统的数据流和组织改变为如图2所示的数据流和组织,在图2中,根据本发明,存储器的每个层级或层是更低层级的前端。
[0071]关于不可知问题,已经发现,将系统中的每个存储设备用作一般数据存储资源,并抽象掉潜在存储机制以提供针对看起来相同并因此被不可知地对待的每个类别的存储设备而允许的所有设备的统一接口,同时仍保留从特定类别的存储设备可用的固有物理优势。
[0072]通过提供对经过系统的所有数据的基于策略的处理,解决了安全性和完整性问题,该数据包括在用户/拥有者的控制之外某处存储的数据,如云存储器的情况中可能的那样。此外,这是提供所有设备的统一接口的另一优势,提供统一接口使得这些设备可以被不可知地对待,并因此同时使其上的数据受到基于策略的处理,而不论存储设备类别或者数据所驻留于的特定存储设备如何。
[0073]通过以下方式来解决延迟问题:使用多个存储设备的透明集成来提供存储层的高速缓存级联,以优化性能。即,可以应用规则以使得当确定在哪个类别上存储数据时,可以说明特定类别的数据存储器的物理特性。可替换地,可以一开始就应用系统级设计,从而给更高级别的层提供更快的存储器类别。
[0074]本发明一般在计算机系统的上下文内操作,并用于提供对一般已知计算机系统来说可用的数据存储能力的改进,该一般已知计算机系统的示例性系统在图8中示出。如图所示,计算机系统20具有多个物理和逻辑组件,包括中央处理单元(“CPU”)24、随机存取存储器(“RAM”)28、输入/输出(“I/O”)接口 32、网络接口 36、非易失性存储器40和局部总线44,局部总线44使CPU 24能够与其他组件通信。CPU 24执行操作系统和多个软件系统。RAM 28给CPU 24提供反应相对灵敏的易失性存储器。I/O接口 32允许从一个或多个设备(例如键盘、鼠标等)接收输入,并将信息输出至输出设备(例如显示器和/或扬声器)。网络接口 36允许与其他系统进行通信。非易失性存储器40存储操作系统和程序。在计算机系统20的操作期间,可以从非易失性存储器40检索操作系统、程序和数据,并将其置于RAM28中以便于执行。
[0075]图2的示例示出了本发明的一个顶级实施方式,其中,计算机系统200从分层高速缓存结构访问数据,其中,该高速缓存结构包括利用SSD实现的高速缓存层210、利用常规硬驱动器实现的基层220和利用云存储服务实现的溢出层230。如图所示,文件系统240仍可以驻留于基层220上,S卩,驻留于硬盘驱动器上,其中,其通常驻留于已知计算机系统中。
[0076]现在参照图3,示出了根据本发明的顶级数据流模型。文件系统340是数据存储系统的扩展,并可以位于计算机300可访问的任何存储设备上。示出了一系列高速缓存层310,还示出了一个基层320和溢出层330。每个高速缓存层可以包括分别处于如所示的相应层内的任何数目的存储资源311、321和331。根据本发明,较高级别的层将来自其他层的数据较低地高速缓存在堆栈中。在高速缓存层310上,存在以下层级:该层级使得较高级别高速缓存层310将来自高速缓存层的数据高速缓存在较低级别310a上。基层320是数据的硬源,并且在该级别处完成存储。溢出层330是在基层320为满的情况下数据所处的位置。
[0077]—般地,存在一个或多个高速缓存层310、单个基层320,溢出层330是可选地提供的,尽管可以存在多个溢出层330。可以使用任何类别的数据存储设备,并可以针对多于一个层使用任何类别的数据存储设备。优选地,在每个层上使用的特定类别的存储器是如图2所示的存储器,但是,还可想到其他类别的存储器。例如,可以在优选地结合操作系统使用的操作系统文件缓冲高速缓存上实现多个高速缓存层。在该示例中,本发明与操作系统协作使用文件缓冲高速缓存,但是文件缓冲器不用作专用资源。即,尽管低于文件缓冲高速缓存的高速缓存将隐式地使用文件缓冲高速缓存,但是本发明可想到的多于此,其中,存在对某内容是否进入文件缓冲高速缓存中的显式控制,并且本发明以超出在现有系统中对文件缓冲高速缓存的典型使用的方式进行操作。
[0078]本发明还允许文件系统340元数据存储在任何存储资源上,该存储资源包括还用于其他目的的存储资源。实际上,将通过计算机系统300来移动所有数据,此时,将所有数据从一层布置或移动至下一层。即,计算机系统300负责基于处于其上的用于执行本发明的指令和基于文件系统340元数据,在本发明的层高速缓存级别之间传送数据。
[0079]尽管图3示出了本发明的特定顶级实施方式,但是图3所示的数据具有单个类型。参照图4,示出了并入有多种类型的数据450a、450b、450c和450n的本发明的推广实施方式。例如,数据类型450a存在于两个高速缓存层410a和410b上以及基层420上。数据类型450b和450c存在于不同高速缓存层上,但存在于相同基层和溢出层上。存储资源411、421和431分别存在于高速缓存层410、基层420和溢出层430上。如本领域技术人员将意识到,本发明可想到存储在任何高速缓存层上和任何特定类型的存储资源上的任何类型的数据,如图4的推广情况所示。对于每种类型的数据,如以下将描述的策略所确定,存在分层堆栈,具有所有高速缓存层和溢出层选项,并且仅需要基层。数据按顺序流经其分层堆栈。由于显式地处于存储资源的名字空间中的数据分离特征或者隐式地由于针对所存储的数据的命名算法,相同存储资源可以无冲突地出现在多个分层堆栈中。以下描述这些特征的实现的细节。如本领域技术人员将意识到,本发明提供了一种新范例,通过该范例,可以在多个类别的存储资源上管理和存储数据。
[0080]尽管图3和4已被描述为包括存储资源,但是这些存储资源也可以是在物理资源自身上方并入有其他组织信息的数据存储系统。本发明还提供了用于在每个层上组织存储资源的结构。还可以将图3和4中的每个存储资源作为数据存储树进行组织。如果树中的特定节点是叶子,则在本发明的某级实施方式处,其为具有统一接口的数据存储资源。如果特定节点是内部节点,那么针对该节点存储数据表示针对其最小数目的子节点存储数据。相应地,这种存储树的内节点是该特定分支的顶存储层级,并对文件系统来说作为包括用于管理源自内部节点的叶子存储资源的语义的单个存储资源而出现。此外,本发明可想到对包括原始块存储器(例如,盘设备)、文件系统和键值存储器的多种形式的数据存储系统或存储资源的支持。这些存储资源中的每一个还可以具有复杂结构,并包括例如来自分离盘的块,但是,提出了向本发明的文件系统340、440的唯一输出,以实现本发明并随后将视图提供给对存储资源的这种潜在细节不可知的使用的应用或操作系统。考虑到以下描述,这些特征的实现的细节将变得显而易见。
[0081]总的来说,本发明具有以下非限制性的各自独特的特征:
a)本发明使用一般高速缓存分层存储模型,其中,每个(策略确定的)类别的数据具有其自身的层堆栈;
b)本发明对正在使用的特定存储设备不可知;
c)本发明对用户来说透明,这是由于其可以作为现有数据存储系统的扩展(例如,文件系统)而创建;
d)本发明基于对数据存储系统的用户可见组织,而不是潜在的实现,因此,例如对于文件系统,本发明是基于文件的,而不是基于块的;
e)本发明可以被布置为现有操作系统安装的增加设施或者被封装为网络器械。
[0082]此外,本发明能够针对提供高于实际存储资源的更高级抽象作为其主接口的除文件系统外的数据存储系统(例如,数据库,以及特别地,对象数据库、键值存储器、一些网络协议和一些共享数据系统)提供这些特征。
[0083]现在已描述本发明的结果的优势和顶级细节,现在将特别参照图5来描述用于使本领域技术人员能够实施本发明的优选系统和方法,在图5中,示出了本发明的优选实施例。在图5中,示出了文件系统540,文件系统540呈现面向计算机系统上的应用510的接口,并与拦截系统560进行通信。拦截系统560按来自策略模块570的指令进行操作,以拦截在提供根据本发明的高速缓存分层存储系统时使用的各个数据存储设备590之间移动的数据。提供了数据变换引擎580和数据存储接口 585,以在拦截系统560或文件系统540在数据上执行操作之前处理数据,如下所述。
[0084]文件系统
本发明需要使用文件系统540。本领域公知,文件系统540、其一般性质和功能是操作系统/应用与数据存储系统之间的接口。优选地,文件系统540呈现面向应用的、应用能够在未被修改的情况下使用的文件系统接口。以这种方式,文件系统540可以是以优化的方式利用和使用本发明教导的新型文件系统,其可以是现有文件系统的修改版本,或者其可以是现有文件系统的扩展版本。在每一种情况下,保留全部文件系统功能,使得可以将数据存储在文件系统中,但是,通过将与选择策略相匹配的文件系统操作重定向至被称为拦截系统560的模块,来以与现有技术文件系统操作不同的方式处理这些文件系统操作。在扩展现有文件系统的情况下,在 申请人:的名称为“System and Method For Extending DataStorage System Functions”的、申请号为PCT/CA2011/050514的共同待审PCT申请中公开了一种用于实现向拦截系统560的这种重定向的特定系统和方法,该PCT申请的内容通过引用并入本文。
[0085]对于不提供文件系统接口的数据存储系统,本发明将提供该数据存储系统的优选接口,并且相同原理将以与如下操作类似方式适用:按照针对文件系统而进行的情况,修改其他数据存储系统的数据流。
[0086]拦截系统
为了利用本发明的增加功能的实现来扩展正常文件系统功能,提供了拦截系统560。拦截系统560适于适当地拦截文件系统操作,并允许在文件系统自身外透明地处理这些操作。可选地,拦截系统560可以是文件系统自身的扩展,或者可以通过利用内置操作系统功能来提供拦截系统560,或者可以以其他方式(例如,通过本领域中当前可用的商业产品)提供拦截系统560。本发明不限于拦截系统560的特定实现。
[0087]出于本发明的目的,提供了拦截系统560,以根据策略将数据存储系统中的输入/输出操作不相关联,使得一个操作集合按对数据存储系统来说正常的方式进行,并且另一集合由拦截系统根据策略来解释。这样,数据存储系统保留允许以下各项的其原始功能:
(a)由于其语义被保留而一般对数据存储系统的用户来说透明的拦截系统560的操作;(b)拦截系统所要扩展的数据存储系统的语义;以及(c)拦截系统在实现其策略时可用作资源的数据存储系统自身。
[0088]在不脱离本发明的一般性质和教导的前提下,本发明可想到从以上功能的变型和偏差。例如,在实现包括根据上下文不同地出现的数据(数据多态性)的策略的情况下,可以不保留数据存储系统的语义,并且拦截系统可以盖写数据存储系统的语义。这也是一种按照上述(b)扩展文件系统语义的方式。
[0089]关于上述(C),可以想到,策略可以规定:应当对特定文件进行加密,但在其他方面却以与这些文件要不然将是的情况相同的方式将其存储在相同文件系统上,或者,拦截系统可以维持文件系统上的数据库,以辅助其工作,或者,文件系统可以保持负责所有元数据,并且拦截系统可以接管对一些或所有数据的责任,如本发明的优选实施例中的情况那样。
[0090]相应地,拦截系统560在分层高速缓冲存储器的潜在结构与在应用级呈现的文件系统540之间提供接口。应当注意,文件系统自身可以是例如复杂复合文件系统,以允许元数据物理分布,该文件系统提供分布式高速缓存和加锁管理,以确保数据完整性。
[0091]利用如上所述的拦截系统,不论拦截系统决定如何放置数据,对数据存储系统的用户可见组织都清楚地不变。这是提供对不同存储设备的透明集成的问题的一个解决方案,如前所讨论。然而,给定存储设备的不同特性和类别,则用户体验还受拦截系统可进行的数据放置的选择的性能特性影响。解决该问题的典型方式是利用高速缓存,并且,给定拦截系统将数据放置在任何位置的能力,则如上所述,本发明应用高速缓存分层存储模型,以辅助针对用户及其应用优化性能。
[0092]策略
本发明还提供了策略模块570,或者可替换地,可以将策略内置于拦截系统中,或者作为文件系统的扩展而提供策略。优选地,策略及其执行规定了本发明的所有其他主要模块的操作。优选地,策略模块包含策略存储功能和用户接口功能。
[0093]一般地,策略是与动作相关联的上下文模式或者借以执行对数据的存储和处理的特定规则。例如,策略可以规定:对于具有avi”扩展且大于I兆字节的任何文件,不通过内核文件高速缓存来对文件进行缓冲,或者对于在所允许的工作时间外访问文件数据的任何用户“Joe”,其不执行操作,或者始终将新数据复制至被命名为“异地存储器”的数据存储器,或者在不存在足够空间供该操作完成的情况下,使用“云存储器”上的存储器。提供这些示例仅为了示意可通过策略而应用的许多种规则。策略模块570可以在应用本发明教导时实现各种其他策略。
[0094]可选地,可以提供用于将这些策略传送至策略模块570的用户接口。例如,这可以是在首次将根据本发明的分层高速缓存与现有计算机系统集成时运行的应用,或者可替换地,这可以是对本发明的管理员来说可访问的应用。关于策略模块570,将模式定义为观察、所请求的动作或数据状态,响应于此,策略模块570执行动作或者为本发明的任何其他元件执行动作做准备。以下描述策略模块570与本发明的每个其他元件的交互。
[0095]通过策略模块570,策略控制拦截系统540将拦截哪些文件系统操作以及一旦被拦截时利用这些文件系统操作做什么。通过将上下文模式相匹配来控制拦截,这是由于上下文对拦截系统540来说可用。本文将上下文更宽地定义为文件系统所具有的、对文件系统来说可用的、与由应用发起的特定操作有关的任何信息。该信息的示例包括但不限于:Ca)请求操作的过程的标识;(b)请求操作的过程的拥有者的标识;(C)所涉及的文件的名称;(d)所请求的操作;(d)所请求的操作的参数;(e)操作中涉及的文件的个体属性,包括但不限于大小、创建日期/时间、最后修改时间;(f) 一般上下文信息,例如日期和时间、系统状态、系统资源使用率等;(g)应用是本地的还是远程的;以及(h)文件是本地的还是远程的。该描述可互换地指代策略和策略模块。实际上,策略是由策略模块执行或传达的任何指令集。
[0096]响应于来自策略模块570的适配策略,拦截系统540可以采取以下三个动作之一:(i )将被拦截的操作传递至数据变换引擎580,并等待被数据变换引擎告诉向文件系统传达什么;(ii)记录出现了被拦截的操作(可能作为状态改变或记入日志功能的一部分);以及
(iii)改变被拦截的操作,并立即在文件系统内继续传递该操作。策略模块570适于指示拦截系统540 —旦其辨别出具体上下文模式时做什么。
[0097]策略模块包含实现上述分层高速缓存模型的规则,该分层高速缓存模型用于自适应地将数据存储在不同存储资源上的不同高速缓存层中,如上所述。
[0098]数据变换引擎
策略精确地确定在给定优选地形成数据变换引擎580的一部分或与数据变换引擎580通信的功能模块的集合的情况下如何处理每个被拦截的操作。可选地,该策略还提供功能模块的参数,使得可以基于上下文、以不同的具体方式执行相同动作。优选地,数据变换引擎580负责在文件系统的操作流程外执行策略。数据存储接口 585 (以下描述其细节)在数据变换引擎580与在提供本发明的分层高速缓存组织时使用的数据存储资源之间提供接口。
[0099]根据本发明,策略模块将如数据变换引擎580所使用的数据存储器标签与用于在给定该数据存储器标签的情况下执行输入/输出操作的算法相关联。
[0100]优选地,数据变换引擎580包括针对每个策略动作而组装至处理指令集中的多个功能模块。简单动作可以由利用每个功能模块的I个输入和I个输出布置的功能模块原始集合表示。因此,最简单类型的数据变换引擎580将具有固定策略,并因此使用彼此具有固定连接的功能模块,其中每个功能模块具有一个输入和一个输出。实际上,功能模块必须实际上在更低级别模块执行之前和之后都能够执行操作,因此,概念性的单输入单输出模块事实上具有2个输入和2个输出,以允许例如数据变换引擎580内的每个功能模块之间的迭代交互。
[0101]数据变换引擎580的作用是:通过该处理流程来发送被拦截的操作,并将信息返回至拦截系统540,使得拦截系统540可以适当地完成其对文件系统和使用该文件系统的应用透明地处理被拦截的操作的责任。功能模块被创建以提供本发明的具体可见功能。具体关于本发明,功能模块具体地与高速缓存分层模型相关,但是,还可以在该级别处实现其他功能模块,以提供附加功能。
[0102]参照图9,优选地,提供了用于实现根据本发明的高速缓存分层的以下模块。
[0103]可以提供读取高速缓存模块905,用于执行读取操作,以找到其上存在数据的最高高速缓存层并检索该数据。如果该数据未高速缓存在最高层处,则读取高速缓存模块805可以排队写入高速缓存模块要针对该特定数据向最高高速缓存层执行的写入操作。
[0104]可以提供写入高速缓存模块910,用于执行写入操作,例如以便将数据写入至最高高速缓存层并对向该高速缓存层之下的下一级别或向基层的写入进行排队。优选地,关于将特定数据存储在不同高速缓存级别上的数据存储规则由策略规定。
[0105]可以提供加密模块915,用于针对写入操作对数据进行加密并针对读取操作对数据进行解密。加密的方法或类型不受本发明限制,并且因此,可以使用任何类型的加密模块和/或方法。
[0106]可以提供完整性模块920,用于在数据上计算内容散列或校验和,并将其与元数据中存储的值进行比较,以及在读取操作或可替换地写入操作出现差错时采取适当动作,以在数据上计算内容散列或校验和并将值存储在元数据中。
[0107]可以提供重复删除模块925,使得在执行写入操作时,如果写入进行至如此指定的数据存储器(例如,云存储器),则删除重复的写入,即,仅当数据尚未存在于数据存储器上时写入该数据。
[0108]可以提供溢出模块930,使得在观察到向存储资源上的不足数据空间的失败写入时,将写入操作重定向至不同存储资源。在本发明的情况下,优选地,这是重定向至溢出层。
[0109]本领域技术人员将理解,这些模块中的每一个由活动策略进行参数化,例如在内容散列或校验和的具体选择中、在针对溢出的交替数据存储中、在加密机制的选择中等等。策略的细节不受本发明限制,而是受在本文定义的分层高速缓存系统的上下文中这种模块的布置限制。此外,可以给这些模块提供执行操作(例如,完成排队写入、维持高速缓存和执行抢占式或预测性计算)的辅助进程和/或线程。功能模块还可以关于流经这些功能模块的操作和数据访问其自身共享的元数据,并且该元数据可以存储在文件系统中或者存储在数据库或某其他共享数据结构中。
[0110]功能模块还能够使用拦截系统来影响经过文件系统的操作流。例如,加密模块可以通过简单地请求文件系统对经过的数据执行其缺省加密动作来进行操作。其他功能利用该架构是可能的,包括复制、压缩、版本控制、名称虚拟化、一般数据虚拟化、数据多态性和许多其他功能。
[0111]数据存储接口
提供了数据存储接口 585,优选地,在充当数据变换引擎580与在如本文描述的不同分层高速缓存级别上使用的潜在存储资源之间的操作接口时,执行两个主要操作。
[0112]首先,数据存储接口 585执行抽象功能,使得每个数据存储资源对数据变换引擎来说统一地出现。其次,数据存储接口提供成池功能,成池功能用于将如数据变换引擎580所请求的输入/输出操作转换为如策略所规定的复合操作。
[0113]数据存储机制的抽象是处置许多基本上类似但具体不同的数据存储系统或存储资源以简化使用存储资源的元件(在这种情况下,数据变换引擎580及其功能模块)的逻辑的方式。
[0114]尽管实现抽象过程的各种方法是可能的,但是根据优选实施例,基本存储抽象模型是键值存储器。利用具体键(名称或标签)来存储数据的具体段,使得可以通过将相同键提供给数据存储器来检索该具体段。例如,将盘上存储的数据块存储在特定位置(其键)处,并稍后以相同方式或通过使用盘的其他语义(键形成邻接空间,并且不同大小的数据块在该键空间中重叠)来检索该数据块。另一示例是云存储器,典型地,云存储器呈现基本键值存储接口。由于本发明支持文件系统作为数据存储器,并且在文件系统中,存在指定先前存储的值的子集的能力,因此本发明的优选实施例将文件接口模型用作对数据变换引擎580呈现的抽象。在该抽象中,利用具体键和位置(以及隐式地,数据的大小)来存储数据的具体段,并且对于每个键,典型文件(或者盘,如以上示例中那样)语义关于位置信息和重叠数据适用。这允许将文件系统简单地集成至抽象中,但将实现方式中的下一层容易地映射至键值存储抽象,这使得对应地容易集成云存储器和其他类似键值存储器。
[0115]由于本发明被指派有数据存储系统或存储资源以供使用,因此能够创建利用多个更原始的数据存储系统或存储资源的复合数据存储器是有用的。这种复合存储资源的非常普遍的示例是RAID阵列,其将多个原始独立盘聚集成单个复合虚拟盘。本发明通过存储资源成池机制来实现这一点。
[0116]在本发明中,对数据存储系统和存储资源进行分类(其为什么类型的存储器、如何与其进行通信)、参数化(使用其仅这么多、在其上的该位置处、利用这些证书)和加标签(并对其给出该名称:“…”)。这些可以是缺省的,因此,在用户接口中暴露的内容不必处于该完整级别。本发明允许但不需要创建由策略在其他数据存储系统、存储资源或其他成池存储器的非零集合的方面定义的成池存储器,以及作为在写入操作被视为继续之前必须确认写入操作的集合的元件的最小数目的数目,本文将该数目称为复制数目。
[0117]该结构被称为min-OR树。图6和图7示意了具有在节点内示出的复制数目(仅与内节点相关)的min-OR树。这种结构可以用于表达与传统地已使用RAID级别而表达的内容类似的多个数据存储和数据冗余策略。例如,图6中的结构与4路RAIDO配置的相似之处在于:当向任一个子节点的写入操作成功时,根节点处的写入操作成功。本发明可想到子节点中的数据放置的三种性质上不同的语义,以完成复制数目需求:
随机放置:将数据实质上随机放置在子节点上。
[0118]有序放置:将数据放置在节点的有序序列上(例如,“最左侧”),这是提供溢出保护的方式。
[0119]算法放置:根据利用外部信息的算法来放置数据,以优化特定操作或参数,例如,包装(尝试填充节点)、损耗均衡(尝试将所有节点保持在相同填充级别处)、负载感知(尝试将所有节点保持为同等忙碌)、高可用性(尝试最大化可用性/成本函数)、能量(尝试最小化能量使用率)、亲近性(尝试使用与某内容“接近”的节点)、服务器(尝试使用附着至优选服务器的节点)和拓扑(尝试使用彼此靠近的节点)。
[0120]另一示例是图7所示的示例,图7示出了涉及两个级别的配置,其中,顶级别充当3路RAIDl镜(在实际情形中,这 可能对应于“将所有内容写入至我的快本地存储器、我的慢站点档案和远程公司云档案”),并且子节点之一自身是使用如“写入至这5个节点中的任意3个”中的复制而创建的冗余配置,“写入至这5个节点中的任意3个”在2个节点失败的情况下创建了生存性(这满足被称为RAID6的标准)。
[0121]本发明可以支持该结构的任何数目的级别,包括没有级别(即,仅简单存储资源),并且该结构的每个节点可以独立地作为复杂数据存储系统或存储资源。
[0122]由于冗余由复制提供,因此移除活动节点包括:确保通过在子节点之间适当地拷贝数据来维持父节点的复制策略。因此,存在具有对在何处存储数据的记录的分离地维持的元数据,以帮助实现min-OR存储树上的所有操作。如果复制数目为1,则无法在不通知的情况下非破坏性地进行移除子节点,而是可以在通知在移除或失败之前可以将对子来说唯一的数据拷贝下来至其他节点的情况下进行。通知将语义定义为使得数据必须至少复制次数地存在于不同子节点上,但是始终允许更高程度的复制。
[0123]以这种方式创建的存储结构与传统RAID实现方式的不同之处在于(尽管不是定义):不维持扇区对应性(在RAIDl的情况下);不针对冗余使用奇偶校验(在RAID6的情况下);以及不针对条带化使用固定块(在RAIDO的情况下),然而,该功能适于执行本发明。
[0124]该优选成池机制是有用的,这是由于其提供了强大且一致的复制模型,在功能上等效于多个传统RAID级别,允许容易地表达复杂存储策略,并允许简单地管理存储资源的较大池。
[0125]例如,可以利用盘来填充架,声明所有这些盘以用作根据本发明的层内的存储资源,并指定设置复制数目(在该示例中,设置为4)的期望冗余级别(“经历3个盘的同时失败后仍生存”),并且,数据存储接口将根据该策略来管理针对数据变换引擎存储和检索数据。
[0126]另一方面,平凡min-OR树是单个原始节点,例如盘或文件系统。可以通过将min-OR树扩展为精确地仿真传统RAID实现方式(通过将最小奇偶校验复制参数添加至内节点)或其他内容分散方法(例如,通过添加复制类型参数,例如“reed-solomon分散”),扩展该成池概念。
[0127]在不脱离以下权利要求中限定的本发明的精神和范围的前提下,可以想到对本发明的各种修改。尽管本文已经使用各个步骤和计算机组件,但是应当对这些步骤和计算机组件给出本领域将公知的其普通定义,除非明确限制或本文以其他方式定义。
[0128]上述实施例意在作为本发明的示例,并且在不脱离由所附权利要求唯一限定的本发明的范围的前提下,本领域技术人员可以对上述实施例进行更改和修改。
【权利要求】
1.一种用于存储数据以供在计算机系统上运行的应用检索的方法,包括: a.提供包括至少一个高速缓存层和基层的分层高速缓存系统; b.基于策略将数据存储在所述至少一个高速缓存层和所述基层中的至少一个中;以及 c.通过用于组织数据的装置将所述数据的应用视图呈现给所述应用;其中,所述用于组织数据的装置包括至少一个高速缓存层中的每一个和所述基层的元数据信息。
2.根据权利要求1所述的方法,其中,所述至少一个高速缓存层中的每一个和所述基层布置在不同存储资源上;以及此外,其中,所述用于组织数据的装置包括所述不同存储资源中的每一个的元数据信息。
3.根据权利要求2所述的方法,还包括:提供至少一个溢出层,其中,所述溢出层布置在与所述至少一个高速缓存层中的每一个和所述基层不同的存储资源上;以及其中,所述用于组织数据的装置包括所述溢出层的元数据信息。
4.根据权利要求2所述的方法,其中,所述至少一个高速缓存层包括多个分层的高速缓存层。
5.根据权利要求4所述的方法,其中,所述多个高速缓存层中的每一个是在固态驱动器上提供的,所述基层是在硬盘驱动器上提供的,并且所述溢出层是在云存储资源上提供的。
6.根据权利要求5所述的方法,其中,所述用于组织数据的装置存储在所述硬盘驱动器上。
7.根据权利要求5所述的方法,还包括:将所述数据存储在所述基层上;以及将所述数据高速缓存在所述多个高速缓存层中的一个或多个上,其中,较高级别高速缓存层将数据高速缓存在较低级别高速缓存层上。
8.根据权利要求7所述的方法,其中,每个高速缓存层级别包括两个或更多个存储资源。
9.根据权利要求1所述的方法,其中,所述用于组织数据的装置对正在使用的特定存储设备不可知。
10.根据权利要求2所述的方法,还包括以下步骤:通过拦截系统来拦截要执行的用于组织数据的装置的操作或者与所述用于组织数据的装置无关地处理的操作。
11.根据权利要求10所述的方法,还包括以下步骤:根据所述策略将输入/输出操作不相关联,使得所述操作的至少一部分被所述拦截系统拦截并根据所述策略而处理。
12.根据权利要求1所述的方法,其中,所述策略由策略模块提供。
13.根据权利要求12所述的方法,其中,所述策略模块与所述拦截系统构成一个整体。
14.根据权利要求12所述的方法,其中,所述策略模块与所述用于组织数据的装置构成一个整体。
15.根据权利要求10所述的方法,其中,所述拦截步骤还包括以下各项之一:(a)将被拦截的操作传递至在存储资源与所述拦截系统之间提供的数据变换引擎;(b)将被拦截的操作的完成记入日志;以及(C)改变被拦截的操作并将其继续传递至所述用于组织数据的装置。
16.根据权利要求10所述的方法,还包括:在所述拦截系统与所述存储资源之间提供数据变换引擎。
17.根据权利要求16所述的方法,还包括以下步骤:在所述用于组织数据的装置外执行策略;所述执行策略的步骤由所述数据变换引擎执行。
18.根据权利要求16所述的方法,其中,所述数据变换引擎还包括:读取高速缓存模块,用于执行读取操作,以找到其上存在数据的最高高速缓存层并检索所述数据。
19.根据权利要求16所述的方法,其中,所述数据变换引擎还包括:写入高速缓存模块,用于向不同高速缓存层级别执行写入操作。
20.根据权利要求16所述的方法,其中,所述数据变换引擎还包括:加密模块,用于在数据经过所述用于组织数据的装置之前对所述数据进行加密和解密。
21.根据权利要求16所述的方法,其中,所述数据变换引擎还包括:完整性模块,用于将所述数据的属性与元数据信息中存储的属性进行比较。
22.根据权利要求16所述的方法,其中,所述数据变换引擎还包括:重复删除模块,用于执行重复删除步骤。
23.根据权利要求19所述的方法,其中,所述数据变换引擎还包括:溢出模块,用于响应于失败的写入操作,将数据写入至溢出高速缓存层。
24.根据权利要求16所述的方法,还包括:提供数据存储接口,所述数据存储接口用于在所述存储资源与所述数据变换引擎之间提供操作接口。
25.根据权利要求24所述的方法,还包括以下步骤:抽象数据存储资源信息,使得每个数据存储资源对所述数据变换引擎来说统一地出现。
26.根据权利要求24所述的方法,还包括以下步骤:对至少两个或更多个数据存储资源成池。
27.根据权利要求4所述的方法,其中,所述多个高速缓存层包括操作系统文件缓冲高速缓存。
28.根据权利要求1所述的方法,其中,所述用于组织数据的装置包括文件系统。
29.根据权利要求1所述的方法,其中,所述用于组织数据的装置选自包括对象数据库、键值存储器、网络协议和共享数据系统的组。
30.一种用于存储数据以供在计算机系统上运行的应用检索的系统,包括: a.分层高速缓存系统,包括至少一个高速缓存层和基层,其中,所述数据是基于策略而存储在所述至少一个高速缓存层和所述基层中的至少一个中的; b.用于组织数据的装置,用于将所述数据的应用视图呈现给所述应用;其中,所述用于组织数据的装置包括至少一个高速缓存层中的每一个和所述基层的元数据信息。
31.根据权利要求30所述的系统,其中,所述至少一个高速缓存层中的每一个和所述基层布置在不同存储资源上;以及此外,其中,所述用于组织数据的装置包括所述不同存储资源中的每一个的元数据信息。
32.根据权利要求31所述的系统,还包括:至少一个溢出层,其中,所述溢出层布置在与所述至少一个高速缓存层中的每一个和所述基层不同的存储资源上;以及其中,所述用于组织数据的装置包括所述溢出层的元数据信息。
33.根据权利要求32所述的系统,其中,所述至少一个高速缓存层包括多个分层的高速缓存层。
34.根据权利要求33所述的系统,其中,所述多个高速缓存层中的每一个是在固态驱动器上提供的,所述基层是在硬盘驱动器上提供的,并且所述溢出层是在云存储资源上提供的。
35.根据权利要求34所述的系统,其中,所述用于组织数据的装置存储在所述硬盘驱动器上。
36.根据权利要求34所述的系统,其中,所述数据存储在所述基层上以及高速缓存在所述多个高速缓存层中的所述一个或多个高速缓存层上,其中,较高级别高速缓存层将数据高速缓存在较低级别高速缓存层上。
37.根据权利要求36所述的系统,其中,每个高速缓存层级别包括两个或更多个存储资源。
38.根据权利要求30所述的系统,其中,所述用于组织数据的装置对正在使用的特定存储设备不可知。
39.根据权利要求30所述的系统,还包括:拦截系统,用于拦截要执行的用于组织数据的装置的操作或者与所述用于组织数据的装置无关地处理的操作。
40.根据权利要求39所述的系统,其中,所述拦截系统适于根据所述策略将输入/输出操作不相关联,使得所述操作的至少一部分被所述拦截系统拦截并根据所述策略而处理。
41.根据权利要求39所述的系统,还包括用于提供所述策略的策略模块。
42.根据权利要求41所述的系统,其中,所述策略模块与所述拦截系统构成一个整体。
43.根据权利要求41所述的系统,其中,所述策略模块与所述用于组织数据的装置构成一个整体。
44.根据权利要求40所述的系统,其中,所述拦截系统包括以下至少一项:(a)用于将被拦截的操作传递至在存储资源与所述拦截系统之间提供的数据变换引擎的装置;(b)用于将被拦截的操作的完成记入日志的装置;以及(c)用于改变被拦截的操作并将其继续传递至所述用于组织数据的装置的装置。
45.根据权利要求40所述的系统,还包括所述拦截系统与所述存储资源之间的数据变换引擎。
46.根据权利要求45所述的系统,其中,所述数据变换引擎还包括:读取高速缓存模块,用于执行读取操作,以找到其上存在数据的最高高速缓存层并检索所述数据。
47.根据权利要求45所述的系统,其中,所述数据变换引擎还包括:写入高速缓存模块,用于向不同高速缓存层级别执行写入操作。
48.根据权利要求45所述的系统,其中,所述数据变换引擎还包括:加密模块,用于在数据经过所述用于组织数据的装置之前对所述数据进行加密和解密。
49.根据权利要求45所述的系统,其中,所述数据变换引擎还包括:完整性模块,用于将所述数据的属性与元数据信息中存储的属性进行比较。
50.根据权利要求45所述的系统,其中,所述数据变换引擎还包括:重复删除模块,用于执行重复删除步骤。
51.根据权利要求48所述的系统,其中,所述数据变换引擎还包括:溢出模块,用于响应于失败的写入操作,将数据写入至溢出高速缓存层。
52.根据权利要求45所述的系统,还包括:数据存储接口,用于在所述存储资源与所述数据变换引擎之间提供操作接口。
53.根据权利要求45所述的系统,其中,每个数据存储资源对所述数据变换引擎来说统一地出现。
54.根据权利要求30所述的系统,其中,对至少两个或更多个数据存储资源成池。
55.根据权利要求33所述的系统,其中,所述多个高速缓存层包括操作系统文件缓冲高速缓存。
56.根据权利要求30所述的系统,其中,所述用于组织数据的装置选自包括对象数据库、键值存储器、网络协议和`共享数据系统的组。
【文档编号】G06F17/30GK103493024SQ201180051518
【公开日】2014年1月1日 申请日期:2011年8月24日 优先权日:2010年8月25日
【发明者】R.扎查里亚森, S.兰布 申请人:内维克斯虚拟技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1