CN1754155A - 使用分布式文件系统进行存储式高速缓存的方法和系统 - Google Patents

使用分布式文件系统进行存储式高速缓存的方法和系统 Download PDF

Info

Publication number
CN1754155A
CN1754155A CNA2004800048842A CN200480004884A CN1754155A CN 1754155 A CN1754155 A CN 1754155A CN A2004800048842 A CNA2004800048842 A CN A2004800048842A CN 200480004884 A CN200480004884 A CN 200480004884A CN 1754155 A CN1754155 A CN 1754155A
Authority
CN
China
Prior art keywords
data file
file
cache
server
data
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.)
Pending
Application number
CNA2004800048842A
Other languages
English (en)
Inventor
帕塔克·希里施·赫曼特
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.)
Tacit Networks Inc
Original Assignee
Tacit Networks Inc
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 Tacit Networks Inc filed Critical Tacit Networks Inc
Publication of CN1754155A publication Critical patent/CN1754155A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

存储式高速缓存方法和系统管理对实时数据文件的共享访问,同时在在计算机网络中保持数据文件的连贯性和一致性,该计算机网络包括多个远程计算机工作站和至少一个文件服务器。该存储式高速缓存系统由与工作站相关联的存储式高速缓存器和与文件服务器相关联的高速缓存服务器来实现,在那里,存储式高速缓存器使用分布式文件系统与高速缓存服务器相连接,以提供远程工作站对实时数据文件的共享访问。

Description

使用分布式文件系统进行存储式高速缓存的方法和系统
相关申请的参考
本申请要求在2003年1月17日提交的转让给本申请的受让人且通过参考援引在此的美国临时申请No.60/440,750的权益。
技术领域
本发明通常涉及管理对数据文件的共享访问,尤其是,涉及一种存储式高速缓存协议,其在保持数据文件的一致性和连贯性的同时提供给经授权的计算机工作站对实时数据文件的共享访问。
背景技术
在现代计算机系统和网络架构中,作为数据文件存储库的计算机系统一般不是执行数据文件处理的计算机系统。因此,与远程计算机系统相关联的计算机工作站例如膝上型电脑、网络计算机或者桌上型电脑的用户经常希望访问,即观看(读取)或者修改(写入),存储在连接于位于远端的中央数据源计算机系统的存储器的内存、磁盘或连接网络中的数据文件。这样对数据文件的远程访问通过通信信道例如数据总线、通信网络或者因特网来实现,而这一般会在访问数据文件的系统处在呈现数据文件时中引入时延(delay)或者延迟(latency)。延迟基于在访问数据文件的系统与生成或者存储该数据文件的系统之间传送数据的需要。此外,数据文件通常以部分或者块而不是连续流的形式被访问,由于每一个块在传送时都经历了信道延迟因而加重了延迟。
为了减轻信道延迟的影响,多数当前执行分布式系统应用程序(其提供对数据文件的共享访问)的计算机系统实施某些形式的高速缓存技术。在高速缓存技术中,存储在中央源计算机系统中的数据文件的所有或者部分的本地备份被保持在远程系统处建立的高速缓存器中,例如在与远程系统相关联的工作站中的本地存储器中。工作站能够对高速缓存数据文件进行读取或写入,那里高速缓存数据文件镜像存储在中央系统中的所有或部分数据文件。高速缓存器也存储能跟踪对高速缓存数据文件所作的任何改变的数据,该数据由工作站输入且最终合并到存储在文件服务器中的数据文件中。这样,使用高速缓存技术,能够减少信道延迟,并且远程系统的工作站的用户也没有意识到数据文件是来自本地源而不是位于远端的中央源系统。
尽管高速缓存技术可以减少在某些数据文件访问环境中的延迟,但是如果试图访问还没有作为副本被存储(被镜像)在高速缓存器中的数据文件,则仍然存在与从文件服务器取回(retrieve)数据文件的副本相关的延迟,通称高速缓存出错。为了避免高速缓存器出错从而改善分布式文件系统性能,高速缓存系统经常执行提前读取(read-ahead)技术,通称先居住(pre-populating)高速缓存器,在该技术中将要被访问的数据文件被存储在高速缓存器中。
在分布式文件系统(其提供在多个远程系统之间对数据文件的共享访问)中,所实施的高速缓存系统需要保持高速缓存器连贯性(coherence)和高速缓存器一致性(consistency),以避免数据文件的不同版本被各不同远程系统访问。高速缓存器连贯性是保证对高速缓存数据文件的更新和更新的顺序被保存且是安全的。这样,在连贯的分布式文件系统中,存在有保证(i)在更新数据用于更新存储在文件服务器中的相应数据文件之前,远程系统不删除高速缓存数据文件,和(ii)没有其它系统以潜在地兼顾数据文件的更新的方式来更新数据文件,直到使用来自高速缓存器中的更新数据更新服务器中的数据文件为止。高速缓存器一致性是保证由工作站对被打开的高速缓存数据文件所作的更新及时地反映高速缓存数据文件中。当多个远程系统访问相同的数据文件时,高速缓存器连贯性和高速缓存器一致性的性质是同等重要的。在这种情况下,连贯性还确保对对应于存储在文件服务器中的数据文件的任一高速缓存器的更新不会覆盖对应于同一数据文件的另一个高速缓存器所作的更新。高速缓存器一致性还确保由任一高速缓存器所做的对高速缓存数据文件的更新及时地合并到在正在访问同一数据文件的任一其他高速缓存器中的高速缓存数据文件。
在高速缓存系统包括直写体系架构(write-through architecture)(这使得对高速缓存数据文件的所有更新被立即传送到中央计算机系统中)的情况下,易于保持高速缓存器一致性和高速缓存器连贯性。这种立即传送导致对存储在中央系统的文件服务器中的数据文件的立即更新。尽管这种架构改善了与多个高速缓存器执行对来自中央系统的数据文件读取访问相关的性能,但是仍然存在与基于写入访问更新数据文件相关的延迟。因此,这种架构一般仅在数据文件更新不频繁的分布式文件系统执行地很好。从直写架构发展而来的另一种高速缓存架构,通称回写(write-back),试图解决直写体系架构的延迟问题。在回写架构中,高速缓存器在传送(刷新)对高速缓存的更新到中央系统之前,在一段时间存储对高速缓存数据文件的更新。该周期性的刷新更新了高速缓存数据文件,而没有显著的延迟。回写技术的最简单的形式是后写架构(write-behind architecture),在后写架构中,对高速缓存文件的更新不是立即的,换句话说在某些延迟之后,以与对高速缓存数据文件的更新存储在高速缓存器中的顺序相同的顺序传送到中央源。由于在回写高速缓存架构中高速缓存更新对中央源或者其它远程系统都不是立即可用的,这种架构仅当单一的远程系统为了读取或者写入而访问数据文件时是最有用的。
如果打算通过多个远程系统对数据文件进行访问,则回写高速缓存系统使用这些机制增强,这些机制跟踪在所有高速缓存器以及中央源系统中所进行的更新来确保数据文件的一致性。实质上,这些机制一般增加了高速缓存器的复杂性和成本,以至于使得在许多应用中这些高速缓存器不切实际。然而,性能上的优点是重要的,这使得这些高速缓存器对于实现高性能计算,例如通过计算机网络所连接的计算机系统上,非常具有吸引力。
在具有文件共享能力的一般计算机系统架构中,局域计算机网络(“LAN”)通过分布式系统,例如用于UNIXTM的NFS(网络文件系统)或用于Microsoft WindowsTM的CIFS(普通因特网文件系统),远程访问数据文件。这些文件系统将访问存储在中心计算机系统中的数据文件的机制提供给与远程计算机系统相关联的工作站。此外,每一个远程系统使用本地高速缓存技术来增加访问数据文件的效率。一般地,在通常构成四千比特数据块的数据文件页的粒度(granularity)上实现高速缓存。所高速缓存的页的实际数量是合并到或连接到远程系统的工作站中可用于高速缓存的存储器的函数。此外,这些文件系统使用对回写高速缓存技术的一些测量来实现可接受的性能。
尽管对于高速缓存系统来说,高速缓存器一致性和高速缓存器连贯性是重要属性,但是在具有分布式文件系统性能的网络计算机系统中,尤其是如果该系统使用了回写高速缓存技术,这些属性经常很难实现。这样,许多分布式文件系统不能完全满足高速缓存器的一致性和连贯性。在实际实施中,分布式文件系统依靠这一重要的假定,即对相同数据文件的共享是罕见的,因此,当不共享数据文件时在性能和正确性之间作出平衡。例如,NFS当前不是特别适于共享访问,因为(i)它具有弱的一致性保证,即,为第一远程系统对高速缓存数据文件所作的修改不能及时反映在中心系统中,这样,必然将不能镜像在访问来自中央系统的数据文件的另一个远程系统中;以及(ii)它不具有连贯性保证。此外,尽管CIFS具有极好的一致性和连贯性,但是由于在一个以上的远程系统访问任何给定的数据文件的任何时候都使用直写来获得一致性和连贯性,使得共享访问的性能很低。
除了用于保持一致性和连贯性的自动测量外,NFS和CIFS也提供锁定机制,该机制允许文件共享应用程序控制一致性和连贯性方面。特别是,NFS允许共享应用程序互相自愿地合作而不用任何操作系统控制,这通常称为劝告字节范围锁定(advisory byte range locking)。CIFS提供操作系统控制的锁定,称为强制字节范围锁定(mandatory byte range locking),也提供明确的文件共享模式,例如,允许该应用程序控制访问文件的方式以便其它应用程序不能访问该文件。文件共享应用程序能够使用这些机制来改善由现有技术的文件分布式系统所提供的连贯性和一致性属性。例如,即使基础系统例如NFS不具有连贯性和一致性,该应用程序能够使用字节范围锁定技术来提供这些属性。
而且,当通过广域网(“WAN”)进行文件共享时,在局域网上的网络化系统所面对的性能问题(那里一般的延迟很好地在微秒以下)被复合。一个称为Transarc Andrew文件系统(AFS)的现有系统被建立,以克服在地理上较小例如大学校园中的WAN的WAN中存在的延迟。相比于NFS和CIFS(它们使用远程系统的本地存储器例如计算机工作站的存储器来存储文件页),AFS使用磁盘(on-disk)上的本地文件系统作为整个文件的高速缓存器。在AFS中,绝大多数操作发生在文件的本地副本上,从而当请求访问数据文件时不需要从文件服务器中取回数据。当修改并关闭每一个高速缓存数据文件时,更新被传送(刷新)到中央系统来更新在文件服务器中相应的数据文件,然后使得这些更新后的数据文件可用于其它远程位置的访问。
这样,AFS以文件粒度提供对关闭一致性的刷新,换句话说,当数据文件被关闭而不是当它被写入时,对该数据文件的更新立即可用。然而,AFS大大地弱化了连贯性和一致性保证以使得WAN操作可行。尤其是,由于AFS允许多个远程计算机系统同时更新各自的高速缓存数据文件(每一个高速缓存数据文件与单个数据文件相对应),AFS缺乏一致性并且使得最后锁定文件的远程系统是控制对在中央系统的服务器中的数据文件的改变的远程系统。换句话说,这最后的远程系统的修改取代了显然由其它远程系统所作的对数据文件的改变。此外,由于仅当远程系统关闭文件时将修改传送到中央源,因此AFS的一致性较弱。
因此,尽管AFS对校园范围内的共享应用程序是有用的,但当在商业企业环境中实施时会具有多个缺点。例如AFS必须安装在所有计算机中。此外,AFS不能与NFS和CIFs分布式文件系统或者其它作为现有技术的传统系统的系统协力操作。而且AFS的的一致性和连贯性的缺乏使其不适于许多需要多个远程系统共享访问数据文件的实时版本的企业应用程序。
因此,需要有一种通过使用分布式文件系统提供对数据文件的实时共享访问的方法和系统,这里该系统和方法利用了高速缓存技术的优点,同时也提供数据文件的一致性和连贯性和共同操作的简易性,以及与现有的分布式文件系统间的相互连接。
发明内容
根据本发明,存储式高速缓存协议系统与分布式文件系统相连接以使经授权的计算机工作站对存储在文件服务器中的实时数据文件进行共享访问。存储在文件服务器中的数据文件被高速缓存服务器基本上实时地自动更新,以包括文件更新数据,该文件更新数据表示工作站处输入且被合并到相应的高速缓存数据文件(其存储在存储式高速缓存器中)的数据文件修改。因而,高速缓存服务器能够使用数据文件的实时更新版本来响应从工作站对数据文件的访问请求,实时数据文件包括由以前访问数据文件的工作站所输入且被合并到相应高速缓存数据文件(分别存储在与各个工作站相关联的存储式高速缓存器中)的所有数据文件修改。在优选实施例中,文件更新数据作为流数据(streamingdata)传送,以更新存储在文件服务器中的数据文件或存储在存储式高速缓存器中的高速缓存数据文件,更优选地,以压缩形式传送文件更新数据,以及可选择地,使用数据求差技术(data differencing technique)生成文件更新数据。
在优选实施例中,存储式高速缓存协议系统包括至少一个存储式高速缓存器和至少一个高速缓存服务器,它们在通信介质上相互通信地连接。高速缓存服务器与包含数据文件的文件服务器相关联,且存储式高速缓存器与至少一个经授权的计算机工作站相关联。高速缓存服务器将存储在文件服务器中的数据文件副本传送到存储式高速缓存器。存储式高速缓存器将数据文件副本存储为高速缓存数据文件,且将表示对该高速缓存数据文件的修改的文件更新数据传送到高速缓存服务器,该修改由与存储式高速缓器相关联的工作站输入且被合并到该高速缓存数据文件中。高速缓存服务器使用文件更新数据来更新存储在文件服务器中的数据文件,且使用存储在文件服务器中的数据文件的更新版本,响应随后对数据文件的访问请求,例如来自同一个或其它存储式高速缓存器或与存储式高速缓存器不相关联的经授权的计算机工作站的访问请求。在优选实施例中,对访问请求的响应包括服务器文件更新数据,用于更新存储在发出请求的存储式高速缓存器中的相应高速缓存数据文件。
本发明的存储式高速缓存系统优选地根据租用协议来操作,该协议管理对数据文件的访问请求来确保在所有远程计算机系统之间的一致性和连贯性,这些远程计算机系统通过使用分布式文件系统对数据文件共享访问。每一次与存储式高速缓存器相关联的远程计算机系统希望访问即仅观看(读取)或修改(写入)存储在文件服务器中的数据文件时,与远程系统相关联的存储式高速缓存器确定它是否具有对该数据文件的合适的租用,如果没有,则将租用请求传送到高速缓存服务器。如果与包括能够访问数据文件的存储式高速缓存器的其它远程系统的高速缓存器一致性和高速缓存器连贯性能够被保留,则高速缓存服务器准许该租用请求。如果高速缓存服务器拒绝租用请求,远程系统或者禁止所请求的访问或者将该请求传递给文件服务器而没有对数据文件实施高速缓存,这是因为对高速缓存数据文件的更新未被允许。当请求传递给文件服务器时,产生访问请求的工作站仅具有观看权且不能对数据文件实施高速缓存,即具有读者权,这是因为另一个存储式高速缓存器继续对数据文件写入租用。每一次与存储式高速缓存器相关联的工作站被准许读者权时,相应的高速缓存数据文件使用存储在文件服务器中的数据文件被更新,且该高速缓存数据文件不能被工作站修改。
在进一步优选的实施例中,基于(i)是否另一个存储式高速缓存器已经具有租用和存在租用的类型是可以被读取或者写入,或(ii)是否数据文件已经被其它某些机制锁定,例如与现有的分布式文件系统的协议如CIFS和NFS相关联的强制的或劝告的锁定,高速缓存服务器确定是准许还是拒绝接收自第一存储式高速缓存器的数据文件租用请求。基于以下标准处理租用请求:如果读取租用已经存在于第二存储式高速缓存器中或者文件已被锁定用于另一个装置的读取,则不能准许写入租用;如果写入租用已经存在于第二存储式高速缓存器中,则仅准许读者权的通过;以及如果读取租用已经存在于第二存储式高速缓存器中或文件仅被锁定用于读取,则准许另外的读取租用。此外,在准许租用后,高速缓存服务器锁定数据文件来避免其它应用程序以冲突的形式锁定数据文件。这样,高速缓存服务器确保任何被准许的租用与现有的租用或任何已存在的由其它装置作出的对数据文件的锁定相兼容。如果准许写入租用,则基于由相关联的工作站所输入的数据文件修改,第一存储式高速缓存器自发地更新高速缓存数据文件,而没有来自高速缓存服务器的干涉。而且,在准许租用请求或读者权后,高速缓存服务器和第一存储式高速缓存器开始自动更新存储在第一存储式高速缓存器的高速缓存数据文件(如果有的话)。
在另一个优选实施例中,根据租用的力度即读取或者写入租用,写入租用强于或包括与高速缓存服务器以前提供给存储式高速缓存器的读取租用(如果有的话)有关的文件观看权,存储式高速缓存器响应来自相关联的经授权的工作站的对存储在文件服务器中的数据文件的访问请求。在可读取或写入的访问请求与现有的对存储式高速缓存器的租用(如果有的话)相匹配的情况下准许访问请求。此外,在存储式高速缓存器没有足够力度的现有租用以满足该访问请求的情况下,它必须首先获得一租用,因此请求从高速缓存服务器租用数据文件。如果高速缓存服务器确定租用能被准许或者所请求的访问与另一个存储式高速缓存器的现有租用以及任何对数据文件的锁定不会冲突,则准许租用请求。在准许租用请求之后,存储式高速缓存器允许根据该访问请求在工作站中为读取或者写入目打开高速缓存数据文件。如果租用请求被拒绝,则基于存储在文件服务器中的数据文件版本,存储式高速缓存器与高速缓存服务器相互协作以更新高速缓存数据文件并且仅允许读取访问。基于在高速缓存服务器与存储式高速缓存器之间的相互协作,必要时,自动更新在存储式高速缓存器中的高速缓存数据文件。仅当与存储式高速缓存器相关联的所有工作站已经关闭了高速缓存数据文件并且对数据文件的所有待决更新(它们反映在高速缓存数据文件中)从存储式高速缓存器传送到高速缓存服务器时,存储式高速缓存器通常才释放或者撤销租用。
附图说明
从以下详细描述的优选实施例可以清楚了解本发明的其它目的和优点,并结合如图理解实施例的描述,其中相同的参考标记表示相同的部件,其中:
图1是说明根据本发明在分布式系统中实施存储式高速缓存协议的系统框图;
图2是根据本发明存储式高速缓存器的方框图;
图3是根据本发明高速缓存服务器的方框图;
图4A是根据本发明基于从存储式高速缓存器到高速缓存服务器的文件更新数据的传送来更新存储在文件服务器中的数据文件的方法的流程图;
图4B是根据本发明基于由高速缓存服务器传送的服务器文件更新数据来更新存储在存储式高速缓存器中的高速缓存数据文件的方法流程图;
图5是根据本发明响应来自存储式高速缓存器的租用请求的方法流程图;
图6是根据本发明响应存储式高速缓存器所接收的对数据文件的访问请求的方法流程图;
图7是根据本发明用于释放数据文件的租用的方法流程图;
图8是说明根据本发明在具有多个文件服务器的分布式文件系统中实施存储式高速缓存协议的系统框图;
图9是说明根据本发明在分布式文件系统中实施存储式高速缓存协议来提供数据备份的系统框图。
具体实施方式
图1是说明计算机系统网络10的系统框图,该网络10根据本发明的存储式高速缓存协议来操作,该协议允许多个计算机系统对实时数据文件共享访问。网络10包括:存储式高速缓存协议系统12,其与在数据中心计算机系统中工作的分布式文件系统应用程序相连接,用作数据文件的储存库;和远程计算机系统,其通常远离数据中心系统且与计算机工作站相关连,该计算机工作站希望访问,即,只观看(读取)或者修改(写入)存储在数据中心系统的文件服务器中的数据文件。所发明的系统12包括:至少一个存储式高速缓存器,其与相关联的远程系统的工作站相连接;和至少一个高速缓存服务器,其与数据中心系统的文件服务器相连接;在数据中心系统处,存储式高速缓存器和高速缓存服务器使用通信链路,例如在因特网上建立的链路,来传送(i)相关联的工作站想要访问的数据文件的副本,(ii)表示任一数据文件修改的文件更新数据,该修改通过被准许访问该数据文件的工作站输入,以及(iii)与存储式高速缓存协议系统12的工作特点相关的数据。
在对图1中示出的示例网络10中的存储式高速缓存协议系统12的实施中,系统12与远程工作组计算机系统16A和16B以及中央工作组数据中心计算机系统20相连接。远程系统16A包括通过通信信道24A例如以太网等媒介互连的计算机工作站22A和22B。类似的,远程系统16B包括通过通信信道24B互连的计算机工作站22C和22D。每一个工作站22是例如个人计算机、个人数字助理、或者其它包括处理器和存储器且具有通信能力的电子设备。此外,远程系统的工作站与以太网结合形成局部访问网(“LAN”)并且根据传统的现有技术的分布式文件系统例如NFS或者CIFS工作,使得工作站的用户能够访问远离包含该工作站的远程系统的数据文件。
通信网关26将每一个远程系统16的以太网24连接到通信网络28上。该网络28例如可以是广域网(“WAN”)、LAN、因特网或者任何类似的用于在地理上无联系的位置之间提供数据通信链路的方式。网关26例如是具有标准DSL速度的标准VPN因特网连接。在本领域中众所周知,网关26使得数据例如依照现有技术的分布式文件系统如NFS或CIFS可访问的数据文件,可以在工作站和位于远端的文件服务器之间转送。值得注意的是,尽管图1中的网络10显示出网关26和网络28是作为存储式高速缓存系统12的一部分,但是这些构成公知的现有装置的部件并不构成发明特征,即使如下所述需要将它们用于发明系统12的存储式高速缓存器和高速缓存服务器中。
再次参照图1,存储式高速缓存系统12包括存储式高速缓存器30A和30B,它们分别与远程系统16A和16B相关联。每一个存储式高速缓存器30被连接到相关联的远程系统16的以太网24和网关26上。此外,存储式高速缓存系统12包括高速缓存服务器36。高速缓存服务器36连接到还连接至网络28的相关联的网关26C。以太网24C将网关26C和高速缓存服务器36连接到数据中心系统20中所包含的文件服务器38和工作站22E和22F。文件服务器38是传统的文件存储装置,例如NAS,用作数据文件的储存库,并且根据传统的分布式文件系统(其在远程系统16和数据中心20中的经授权的工作站上实施)例如NFS和CIFS的操作,将所储存的数据文件分配到经授权的工作站。为了举例说明,假设在远程系统16中和在数据中心20中的所有工作站22构成经授权的工作站并且依照与服务器38的分布式文件系统相兼容的分布式文件系统工作。
图2是根据本发明存储式高速缓存器30的优选实施例。参照图2,该存储式高速缓存器30包括高速缓存管理器50的模块、译码器52、租用模块54,以及本地租用文件存储器56。高速缓存管理器50连接到译码器52上,用于通过网关和通信网络连接到高速缓存服务器例如如图1所示的高速缓存服务器36。译码器52连接到租用模块54和本地存储器56,用于通过以太网连接线路连接到相关联的远程系统中的工作站。正如以下详细说明的,高速缓存管理器50控制往返于高速缓存服务器36的数据文件、文件更新数据和数据文件租用信息的路径选择。译码器52将所访问的数据文件的副本作为高速缓存数据文件存储在存储器56中,制成可用于相关联工作站(其需要访问与高速缓存数据文件相对应的数据文件)为了读取或写入目的的高速缓存数据文件,并且基于通过工作站输入的数据文件修改或者从高速缓存服务器提供的更新数据,更新高速缓存数据文件。此外,优选地,译码器52能够生成表示第一数据文件的校验和,使用本领域公知的技术来确定另一个数据文件与基于该校验和的该第一数据文件之间的差别。租用模块54,通过与高速缓存服务器36的相互协作,确定是否准许来自相关联工作站的对数据文件的访问请求,在该相关联的工作站处,该访问请求要求将该高速缓存数据文件制成为可用于相关联工作站的读取或者写入目的。在优选实施例中,存储式高速缓存器与每一个远程计算机系统相关联,该远程系统能够通过网络28访问存储在数据中心系统的文件服务器中的数据文件。
图3是根据本发明高速缓存服务器36的优选实施例,该高速缓存服务器通过多个存储式高速缓存器例如高速缓存器30A和30B,也通过存储式高速缓存器不相关联的工作站例如数据中心20的工作站22E和22F,管理对存储在文件服务器中的数据文件的共享访问。高速缓存服务器优选是一个薄的设备,具有可使其与现有的分布式文件系统(其在远程计算机系统和数据中心计算机系统中实施)例如NAS和SAN兼容且容易集成的架构。参见在2001年1月19日提交的美国专利申请系列号No.09/766,526,该申请转让给本申请的受让人并且通过参考援引在此。
参考图3,高速缓存服务器36包括服务器管理器60的模块、译码器62、租用模块64以及本地文件存储器66。服务器管理器60连接到译码器62、租用模块64和存储器66上,并且通过网关26C和网络28也连接到存储式高速缓存器例如存储式高速缓存器30A和30B。译码器62连接到存储器66上,并且通过以太网连接线路连接到相关联的数据中心计算机系统的文件服务器上。译码器62暂时将从文件服务器36中获得的存储在其中的数据文件副本存储在存储器66中,然后使用所存储的数据文件和从存储式高速缓存器中接收的更新数据,来执行处理来生成替换的更新后的数据文件。译码器62也用替换的数据文件来代替存储在文件服务器38中的数据文件。此外,译码器62能够根据本发明的租用协议将存储在文件服务器36中的数据文件的副本提供给与中央系统相关联的工作站例如工作站22E和22F,用于观看的目的,如下面进一步描述的。在优选实施例中,译码器62,类似于译码器52,能够生成表示第一数据文件的校验和,然后使用该校验和确定另一数据文件与第一数据文件之间的差别。此外,租用模块64,通过与系统12所包含的存储式高速缓存器的相互协作,确定是准许还是拒绝来自工作站的对数据文件的访问请求拒绝,该工作站与特定的存储式高速缓存器相关联。
可以理解,执行根据本发明的数据处理操作的每一个存储式高速缓存器30和高速缓存服务器36的每一模块构成软件模块或可选择地,硬件模块或硬件/软件相结合的模块。此外,每一模块适于包含存储器区,例如RAM,用于存储数据和用来根据本发明执行处理操作的指令。可选择地,用于执行处理操作的指令能够存储在一个或多个模块的硬件中。而且,可以理解,在优选实施例中,在每个高速缓存服务器36和存储式高速缓存器30内的模块可以适当地结合成复合模块,并且高速缓存服务器和存储式高速缓存器能够结合成单个设备,该设备既可以为工作站提供高速缓存又可以为存储在中央数据中心计算机系统的文件服务器中的数据文件提供实时更新。
根据本发明,存储式高速缓存系统12中的存储式高速缓存器和高速缓存服务器提供工作站为了读取或写入目的而访问这种数据文件(这种数据文件存储在数据中心的文件服务器中,并且可用于经由传统的现有技术的分布式文件系统分配到经授权的工作站),并且使得当访问该文件时工作站经历最小的延迟,以及使得响应于访问请求提供给工作站的高速缓存的数据文件与该数据文件的实时版本相对应。该系统12的存储式高速缓存器仅将与数据文件(其是访问请求的对象)对应的高速缓存数据文件的当前版本存储在存储器56中,在那里,当工作站访问单个的高速缓存数据文件时,该单个的高速缓存数据文件合并有通过与存储式高速缓存器相关联的工作站输入的所有数据文件修改。与高速缓存数据文件相关联的文件更新数据自动地生成,且优选地以预定间隔生成,然后传送(刷新)到高速缓存服务器。更优选地,该文件更新数据以足够的频率被刷新,以将数据文件的实时更新版本存储在文件服务器中,并且能够被高速缓存服务器使用来响应来自另一个存储式高速缓存器或与存储式高速缓存器不相关联的工作站的访问请求。在优选实施例中,存储式高速缓存器的本地存储器56仅包括与新近所访问的数据文件相对应的高速缓存数据文件。
图4A是说明根据本发明在存储式高速缓存器和高速缓存服务器中执行数据处理操作的高级流程100,用于更新文件服务器中的数据文件。为了说明流程100以及图4B、5、6和7的下述流程,参考网络10和存储式高速缓存系统12的组件对来自远程系统16A或16B(在那里数据文件存储在源系统20的文件服务器36中)的数据文件访问请求所要执行的操作。为了突出流程100的特征,假设存储式高速缓存器30A的存储模块56最初并未包含高速缓存数据文件,该高速缓存数据文件与工作站16A为了写入目的而寻求访问的数据文件相对应。
参照图1、2、3和4A,在步骤102中,译码器62与文件服务器38通信并且生成工作站16A希望访问的数据文件的副本。然后,服务器管理器60经由网关26C、网络28和网关26A将数据文件的副本传送到存储式高速缓存器30A。
在步骤104中,高速缓存管理器50接收从网关26A传送来的数据文件副本并且将该文件作为高速缓存数据文件存储在存储器56中。此外,译码器52与工作站16A的分布式文件系统相互协作,以使得工作站16A能够打开且将数据文件修改而输入(写入)到高速缓存数据文件。当高速缓存数据文件呈现在工作站的用户面前时,也就是说,在用户对相应数据文件的访问请求之后被准许打开高速缓存数据文件时,用户不知道在网络10中获取该文件的位置。用户不知道是否他正在例如存储在本地远程系统存储器中或存储式高速缓存器30A中数据文件的本地副本,或者从远程存储位置例如位于远端的数据中心计算系统20取回的数据文件的副本上进行操作。当用户工作站16A处输入数据文件修改时,译码器52监视该修改并且将这些修改合并到存储器56中的高速缓存数据文件中。换句话说,在存储器56中仅存储高速缓存数据文件的当前版本,该当前版本包括在远程系统16A内任一工作站以前所作的对高速缓存数据文件的所有修改。
步骤106、108、110、112和114阐明以下文件更新操作:存储式高速缓存器26A和高速缓存服务器26C基于对存储在存储式高速缓存器26中的相应高速缓存数据文件的修改,自动地执行而更新存储在文件服务器38中的数据文件版本。基于该自动更新,高速缓存服务器能够响应对随后来自经授权的工作站(那里,工作站可以与或可以不与存储式高速缓存器30A或者作为系统12一部分的另一个存储式高速缓存器相关联)而不是工作站16A的对数据文件的访问请求,传送数据文件的实时更新版本。在流程100的优选实施例中,系统12的组件执行众所周知的现有求差技术作为本发明数据文件自动更新技术的一部分来最小化潜在的延迟。
再次参考图4A,在步骤106中,存储式高速缓存器30A中的高速缓存管理器50将数据文件转送请求传送给高速缓存服务器36。在高速缓存服务器36中,服务器管理器60基于接收的请求,使用本领域公知的技术使译码器62生成当前存储在文件服务器38中的数据文件的校验和。译码器62通过从文件服务器38中取回数据文件副本和必要时将校验和处理所需要的数据例如数据文件副本存储在存储器66中,来生成该校验和。
在步骤108中,服务器管理器60将校验和传送到存储式高速缓存器30A。在步骤110中,高速缓存管理器50从存储器56中取回高速缓存数据文件,译码器52使用该校验和来计算差别数据形式的文件更新数据。差别数据表示在高速缓存数据文件与当前存储在文件服务器中且由校验和表示的数据文件的版本之间的差别。
在步骤112中,高速缓存管理器50将该差别数据传送到高速缓存服务器36。然后在步骤114中,译码器62使用该差别数据生成数据文件的更新替换版本。尤其是,译码器62取回数据文件当前版本的副本(优选地该数据文件当前版本的副本在步骤108中存储在本地文件存储器66中),然后使用该差别数据处理所存储的数据文件的当前版本来生成更新数据文件。译码器62然后用该替换更新的数据文件代替当前存储在文件存储器38中的数据文件。这样,当高速缓存服务器36随后接收到传送自另一个存储式高速缓存器例如存储式高速缓存器30,或者传送自数据中心系统20的工作站22E或22F之一的对数据文件的访问请求时,高速缓存服务器36使用该更新的数据文件来响应该请求。从而,数据文件的实时版本有效地呈现在随后的请求者面前,该数据文件的实时版本基于在工作站16A所作的输入将以前的变化合并到数据文件中。
在一个优选实施例中,在步骤112中,高速缓存管理器50将文件更新数据作为流数据传送到高速缓存服务器36。在另一个优选实施例中,文件更新数据在作为流数据传送到高速缓存服务器之前被压缩,以便最小化在网络28上传送的数据量,因而减少了潜在的延迟。
在流程100的优选操作中,高速缓存服务器36基于从存储式高速缓存器传送来的文件更新数据,持续更新存储在存储器66中的数据文件,并且一旦完成所有文件更新数据的传送且高速缓存服务器已经接收到这些所有已传送的数据,高速缓存服务器接着用更新的数据文件代替存储在文件服务器36中的数据文件。
图4B是说明根据本发明存储式高速缓存器和高速缓存服务器所执行的数据处理操作的高级流程120,使用存储在文件服务器中的相应数据文件来更新在存储式高速缓存器中的高速缓存数据文件。为了突出流程120的特征,假设存储式高速缓存器30A已经接收到来自工作站16A的对数据文件的访问请求,与该数据文件相应的高速缓存数据文件存储在存储模块56中,并且工作站22A和22B以前为了读取或者写入目的访问过该数据文件。在高速缓存数据文件呈现给工作站22A之前,通过响应访问请求来更新该高速缓存数据文件,使得自从工作站22A以前访问了数据文件以来任何对该数据文件的所做的更新被合并到高速缓存数据文件中。例如,工作站22C可以在与该数据文件相对应的存储式高速缓存器30B中已经提前写入高速缓存数据文件,并且表示对该高速缓存数据文件所做的修改的文件更新数据已可以用于更新在文件存储器36中的数据文件,正如上述结合流程100的说明所述的那样,使得在文件存储器36中的数据文件不同于当前存储在高速缓存器30A中的高速缓存数据文件。
参照图4B,在步骤122中,这里为了简化假设这个访问请求将不影响在网络10中的数据文件的连贯性,高速缓存管理器50,在从工作站22A接收了访问请求之后,将数据文件自动传送请求传送到高速缓存服务器36。为了响应该文件转送请求,译码器62从文件服务器取回数据文件,然后服务器管理器60将该数据文件存储在存储器66中。
在步骤124中,译码器52生成用于相应高速缓存数据文件的校验和,然后高速缓存管理器50将该校验和传送到高速缓存服务器36中。为了计算该校验和,译码器52从存储模块56中取回高速缓存数据文件,然后在该高速缓存数据文件上执行众所周知的现有校验和处理技术。
在步骤126中,译码器62使用校验和生成服务器文件更新数据。该服务器文件更新数据优选地表示在当前存储在文件服务器36中的数据文件(其副本在步骤122中存储在存储器66中)与存储在存储式高速缓存器30A中且由校验和表示的高速缓存数据文件的当前版本之间的差别。
在步骤128中,服务器管理器60将服务器文件更新数据传送到存储式高速缓存器30A。然后在步骤30中,译码器52使用服务器文件文件更新数据来生成更新的高速缓存数据文件,其代替存储在存储模块56中的高速缓存数据文件。之后,译码器52使用已经基于与系统12的存储式高速缓存器相关联的其它工作站所做的其它数据文件修改而被更新的高速缓存数据文件,来响应来自工作站22A的访问请求。这样,对所访问的数据文件的用户希望的更新是以单一的当前版本的高速缓存数据文件的形式存储在存储式高速缓器的存储器56中。
与流程100类似,优选地将服务器更新数据作为流数据传送到存储式高速缓存器,此外,更优选地,在将服务器文件更新数据作为流数据传送到存储式高速缓存器之前,将其压缩。
在一个优选实施例中,以预定间隔自动执行用于存储式高速缓器的流程120,以使得在一时间(即,与存储式高速缓存相关联的工作站被预期请求访问该数据文件的时间)之前更新高速缓存数据文件。例如,在本发明的存储式高速缓存协议系统12的企业执行中,在雇员到达工作岗位并且从他们工作站请求访问数据文件之前,存储式高速缓存器清早早已自动执行流程120。在另一个优选实施例(即,没有一个远程系统的工作站访问特定的数据文件的时间大于预定间隔)中,自动执行流程120来更新在存储式高速缓存器中相应的高速缓存数据文件从而最小化延迟。在较优选的实施例中,远程系统的工作站所寻求访问的所有数据文件最初都存储在与远程系统相关联的存储式高速缓存器中。
这样,本发明的存储式高速缓存协议系统构成在远程系统与数据中心系统(其管理对实时数据文件的共享访问)之间的可视界面。有利地,工作站希望对数据文件作出的改变不会在存储式高速缓存器中备份。该希望作出的改变在高速缓存数据文件中表示出来,然后来源于高速缓存数据文件的文件更新数据持续地传送到高速缓存服务器。高速缓存服务器依次使用文件更新数据来更新存储在数据中心系统的文件存储器中的数据文件。因此,远程系统或者存储式高速缓存器不需要大量存储空间来进行文件的本地存储。从而,当与存储式高速缓存器(其与高速缓存服务器共同工作)相关联的每一个远程系统具有最小的本地存储需要时,本发明的与中央数据中心系统相关联的高速缓存服务器的安装在整个计算机网络10中提供了节省存储器的优点并使管理费最小化。这实现了最小存储器的要求。与现有的完整且分离的文件共享系统不同,本发明的存储式高速缓存系统需要存储器小,且能与现有的分布式文件系统技术共同操作,并且如下述所讨论的,当通过工作站访问数据文件时提供在宽的网络范围内的连贯性。而且,本发明的存储式高速缓存协议在整个数据文件上执行读取和写入的共享访问操作,这显著不同于现有的例如通过AFS、NFS和CIFS而使用的操作系统,这些系统每个主要使用数据文件的一部分(数据块)执行读取和写入操作。
有利地,存储式高速缓存系统12能够与已存在的现有的分布式文件系统例如NFS或CIFS一起实施,而不需在已存在于远程系统或者数据中心系统的设备中增加或者修改软件,并且不会影响现存的软件架构。例如,系统12能够作为Windows文件服务器出现Windows用户面前,以及作为Unix文件服务器出现在Unix用户面前。此外,在操作中,系统12中的存储式高速缓存器和高速缓存服务器易于使用传统的网络架构信息初始化,以与工作站和文件服务器相连接。而且,在存储式高速缓存器的初始化配置之后,该存储式高速缓存器不需要任何种类的(例如由工作站的用户所作的)进一步的操纵,备份或任何管理,并且能够被从存储式高速缓存器或者远程控制中心完整地管理、监控、供应和复制。
根据本发明的优选方案,系统12实施确保实时数据文件的连贯性和一致性的租用协议,该实时数据文件可通过网络10的工作站来共享访问,该网络10使用已存在的分布式文件系统来操作。该租用协议允许对数据文件进行多次读取租用,这里对数据文件的第一次读取租用锁定了该数据文件,从而随后的写入租用不被准许。此外,在对数据文件的写入租用被准许之后,其它读取租用都不能被准许直到写入租用关闭为止。而且,在已存在对数据文件的写入租用的情况下,存在对数据文件的多个读者权。对于数据文件的读者权使得工作站(其可以与也可以不与存储式高速缓器相关联)能够观看到例如直接从文件服务器获得的,或者以存储在存储式高速缓存器中的高速缓存数据文件的形式的作为副本的数据文件。
图5是说明根据本发明由高速缓存服务器和存储式高速缓存器所执行的数据处理操作的高级流程150,用于确定是否准许存储式高速缓存器的数据文件租用请求。为了突出由优选的流程150所阐明的租用协议的特征,假设第一个存储式高速缓存器即存储式高速缓存器30A基于从工作站22A所接收到的访问请求,初始化对存储在文件服务器36中的数据文件的租用请求。此外,为了简化和清楚描述,也假设第二存储式高速缓存器即存储式高速缓存器30B是可以准许对数据文件的租用的网络10中仅有的另一个存储式高速缓存器。然而应当理解,租用流程150也可应用到包括两个以上的存储式高速缓存器的网络12中,并且租用流程150将与每个持有对正在讨论中的数据文件的租用的存储式高速缓存器一起执行。
参照图5,在步骤152中,租用模块54使存储式高速缓存器30A的高速缓存管理器50将数据文件租用请求传送到高速缓存服务器36。在步骤154中,租用模块64确定存储式高速缓存器30B是否已租用数据文件。如果在步骤154中确定为是,则在步骤156中租用模块64确定由存储式高速缓器30B持有的租用是否与所请求的租用冲突。基于如上所述的租用协议标准,如果高速缓存器30A的租用请求是读取则不存在冲突。在这种情况下,租用模块执行步骤158以基于分布式文件系统(其控制对文件的共享存在的操作)例如CIFS或NFS确定文件是否已被为读取访问而锁定。如果在步骤158中确定是数据文件已被锁定,然后在步骤160中租用模块64确定该锁定是否与所请求的租用相冲突。如果(i)租用请求是写入租用且存在的锁定是读取或者写入锁定,或者(ii)如果租用请求是读取租用且存在的锁定是写入锁定,则冲突将存在。
如果在步骤160中确定冲突存在,则在步骤162中租用模块64拒绝租用请求并且将读者权提供给寻求访问该数据文件的工作站。当提供读者权时,与工作站连接的存储式高速缓存器执行流程120,来更新对应于数据文件(其是存储式高速缓存器30A传送的租用请求的对象)的高速缓存数据文件(如果有的话)。
参考步骤158和160,如果两个步骤中任一个的确定结果为否,则在步骤164中租用模块62准许该请求,在其存储器中记录存储式高速缓存器30A有租用以及租用的类型,并且锁定文件,使其它与存储式高速缓存器30B连接的工作站不能对数据文件进行写入访问。
再次参照步骤154,如果本步骤中确定为否,则租用模块64前进到步骤158。
再次参照步骤156,如果存在冲突,则在步骤166中租用模块64确定所请求的租用是否是读取。如果是,在步骤168中服务器管理器60基于存储在高速缓存器30B中的高速缓存数据文件更新在服务器36中的数据文件,优选地执行类似于流程100中的步骤108、110、112和114的步骤。如果执行步骤168,高速缓存器30B持有对作为租用请求对象的数据文件的写入租用。
在步骤168之后,在步骤170中,服务器管理器60将租用请求被拒绝和工作站具有对数据文件的读者权的响应传送给存储式高速缓存器30A中的高速缓存管理器50拒绝。作为该响应的一部分,服务器管理器60将数据文件副本传送到存储式高速缓存器30A或者与存储器30A相互协作,优选地执行类似于流程120中的步骤124、126、128和130的步骤。译码器52依次将仅具有读者权的高速缓存数据文件提供给请求访问该数据文件的工作站。
再次参照步骤166,如果确定所请求的租用不是读取,在步骤172中租用模块64确定由存储式高速缓存器30B持有的对数据文件的租用是否是读取。如果是,则在步骤174中租用模块64取消存储式高速缓存器30B的读取租用,存储该信息在其存储器中以备日后用于作出租用决定,并且将表示这个动作的数据传送到存储式高速缓存器30B,使其租用模块能够更新其存储器并采取适当的行动。基于读取租用的取消,存储式高速缓存器30B仅能将读者权提供给寻求访问数据文件的相关联的工作站。在存储式高速缓存器30B已具有对数据文件的读取租用且相关联的工作站基于读取租用正在读取该文件的情况下,对于该工作站,读取观看继续,并且用户不了解从读取租用到读者权的改变了的状态。如上所述,步骤158在步骤174之后执行。
可选择地,如果在步骤172中确定存储式高速缓存器30B的租用是读取,然后如上所述执行步骤162。在这种结果下,所请求的租用是为了写入访问。
图6是说明根据本发明由存储式高速缓存器和高速缓存服务器所执行的数据处理操作的高级流程180,用于确定是否准许与存储式高速缓存器相关联的工作站访问数据文件的请求,这里请求是为了读取或写入目的。为了解释说明,工作站22A试图访问存储在文件服务器36中的数据文件。参照图6,在步骤182中,存储式高速缓存器30A的高速缓存管理器50确定工作站22A已经作出访问存储在文件服务器36中的数据文件的请求。为了响应访问请求,在步骤184中租用模块54确定存储式高速缓存器30A是否已经具有对数据文件足够强的租用。表1显示了在已作出的访问请求的类型与现有的存储式高速缓存器所持有的对数据文件的租用(如果有的话)之间的关系。表1中的条目表示出基于特定的访问请求,现有的存储式高速缓存器所持有的对数据文件的租用(如果有的话)是否足够强,使得在与各存储式高速缓存器相关联的远程系统之间保持数据文件的一致性和连贯性。
表1
  现有的租用
  读取   写入   未租用
  访问请求   读取   是   是   否
  写入   否   是   否
如果现有的租用与访问请求的关系足够强,在步骤186中译码器52从存储器56中取回高速缓存数据文件,然后在以太网24A上将高速缓存数据文件传送到工作站22A。从而,在工作站22A处的用户基于访问请求的性质能够为读取或者写入目的打开高速缓存数据文件。例如,如果访问请求是写入,用户能够输入对高速缓存数据文件的数据文件修改,译码器52将监控这些修改,并自动地以工作为基础更新存储在存储模块56中的高速缓存数据文件来合并这些修改。
如果在步骤184中确定存在的租用与访问请求的关系不是足够强,在步骤188中租用模块54使高速缓存管理器50将新的租用请求传送到高速缓存服务器36。参照表1,如果访问请求的与现有租用之间的交叉处为否,则现有租用不够强,举例来说,访问请求是写入且在存储式高速缓存器对数据文件的现有租用是读取。如上所述,基于新的租用请求,高速缓存服务器36执行相同于或基本上类似于流程150的流程来确定是否准许租用。在租用模块64确定是否准许租用和准许何种类型的租用之后,服务器管理器60将该信息传送到存储式高速缓存器30A。
在步骤190中,租用模块54接收和处理对由高速缓存服务器36传送的租用请求的响应,以确定是否租用已被准许。如果是,则在步骤192中,高速缓存管理器50和存储式高速缓存器30A中的译码器52执行例如上述的流程120的流程,以更新在存储模块56中的相应高速缓存数据文件。然后,高速缓存管理器50执行步骤186。
如果在步骤190中确定租用未被准许,在步骤194中租用模块54确定访问请求是否是读取。如果是,执行上述步骤192和186,除非在步骤186中已提供对高速缓存数据文件的读取。
如果在步骤194中确定为否,则在步骤196中租用模块54防止高速缓存数据文件被工作站22A访问。这种结果确保在整个网络10中数据文件的连贯性和一致性。在访问请求是写入且对数据文件的另一个读取或者写入租用存在于与分布式文件系统相连的另一个存储式高速缓存器例如存储式高速缓存器30B中的情况下,执行步骤196。
图7是说明根据本发明由存储式高速缓存器和高速缓存服务器所执行的数据处理操作的高级流程200,用于在已获得对数据文件的租用的存储式高速缓存器不再需要维持该租用有效之后,更新存储在文件服务器中的数据文件。为了突出流程200的特征,假设仅仅是远程系统16A中的工作站22A以前获得了对数据文件的读取或者写入访问并且工作站22A关闭了所访问的高速缓存数据文件,该高速缓存数据文件在其操作系统已经被观看或修改并且与该数据文件(存储式高速缓存器30A持有对该数据文件的写入租用或读取租用)相对应。
参照图7,在步骤202中,高速缓存管理器50监控在译码器52与工作站22A之间的数据传送以确定工作站22A是否已关闭高速缓存数据文件。在高速缓存管理器50确定高速缓存数据文件已关闭之后,在步骤204中译码器52确定工作站22A是否修改了高速缓存数据文件。如果是,在步骤206中,译码器206和高速缓存管理器50执行文件更新流程,优选地包括类似于在流程100中所述的求差数据处理,来更新与工作站22A所关闭的高速缓存数据文件相对应的存储在文件服务器中的数据文件。
在步骤206之后,还接收表示高速缓存数据文件已关闭的传送信息的租用模块54,在步骤208中使高速缓存管理器50将对数据文件的解除租用信号传送到高速缓存服务器36。进一步在步骤208中,在高速缓存服务器36中,租用模块64一旦收到解除租用信号就复位有关数据文件的存储器。如果写入租用被解除,该复位使另一个存储式高速缓存器例如存储式高速缓存器30B能够获得对数据文件的写入租用。
再次参照步骤204,如果确定当工作站访问了高速缓存数据文件时工作站22A没有修改高速缓存数据文件,然后在步骤210中租用模块54确定存储式高速缓存器30A是否持有对相应数据文件的租用。如果是,意味着存储式高速缓存器30A具有对该数据文件的读取租用,租用模块54执行步骤208。换句话说,如果存储式高速缓存器30A没有对数据文件的租用,则不再采取进一步的动作,因为打开文件的工作站22A是读者,即仅能读取文件,并且另一个存储式高速缓存器例如存储式高速缓存器30B已获得对相关联的工作站写入访问权。
这样,本发明的存储式高速缓存系统能够管理分布式文件系统的数据文件,使它们可以用于多个远程系统的连贯且一致的实时共享访问。数据文件能够被处于不同的远程位置的用户访问,且以高速缓存数据文件或者当前存储在文件服务器的数据文件副本的形式呈现给用户,每一个包括所有以前的修改以便包括数据文件的实时更新版本。在存储式高速缓存器与高速缓存服务器之间的文件更新数据和数据文件在作为压缩的流数据的优选传送,使得在工作站处的用户经历了对数据文件基本上是LAN速度的访问,尽管数据文件可以物理性地存储在远离工作站的文件服务器中。
根据本发明优选实施例的包括租用协议的存储式高速缓存协议系统,与存储式高速缓存器相关联的工作站能够访问存储在多个文件服务器的数据文件。图8是网络310的系统框图,该网络包括优选的存储式高速缓存协议系统312,该系统312管理对存储在多个文件服务器上的共享实时数据文件的访问,且根据本发明在网络310中保持数据文件的连贯性和一致性。参照图8,系统312包括:分别与相关联的数据中心系统320A、320B和320C相连接的多个高速缓存服务器336A、336B和336C,以及以与上述用于网络10的同样方式分别与远程系统16A和16B相连接的存储式高速缓存器30A和30B。为了解释说明目的,每一个数据中心320以与网络10的数据中心20的相同或者基本上相同的方式构造和操作。例如,数据中心320A包括以太网324A,其将工作站322A和322B和文件服务器324A连接到高速缓存服务器336A和网关326A上,网关326A连接到网络28上。
参照图8,每一个存储式高速缓存器30能够与任一个高速缓存服务器336通信,且同样位于不同的远程位置,反之亦然。此外,根据本发明存储式高速缓存协议,高速缓存服务器336能够与各相关联的文件服务器339通信,用于从任一存储式高速缓存器30中取回作为访问请求的对象的更新后的数据文件的副本。有利的是,本发明的高速缓存服务器具有软件基础构造来作为标准LAN文件共享协议(NFS和CIFS)的代理程序(client),这使其很容易构造为从网络310中的任一文件服务器338中取回数据文件的副本,或者取代存储在网络310中的任一文件服务器338中的数据文件,在网络310中每一个文件服务器338可具有任一操作系统格式。此外,高速缓存服务器也能够使用标准文件系统AIP访问来自本地文件系统的文件或者取代位于本地文件系统的文件。
在系统312的操作中,当工作站为了读取或者写入目的希望访问数据文件,且本发明的存储式高速缓存系统正确地将访问请求多路传送到适合的高速缓存服务器时,将数据文件的副本呈现给用户的位置对在工作站处的用户来说是未知的。换句话说,用户能够访问和操作可共享的数据文件,而不需要知道、关心或者确认哪一个数据源系统物理性地包括该数据文件。
在进一步优选的实施例中,每一个存储式高速缓存器或服务器能够构造为既操作存储式高速缓存器又操作高速缓存服务器。这样,单个组合存储式高速缓存器和高速缓存服务器能够与远程计算系统或者数据中心系统相关联。在相关联的远程系统的工作站处的用户在某些情况下将不意识到与在同一设备中的高速缓存服务器通信的存储式高速缓存器。
而且,当存储式高速缓存器和高速缓存服务器能够作为简单的构件块来实施非常精密的技术例如团(clique)(在那里,网络中每一个高速缓存器/服务器组合与其它每个高速缓存器/服务器组合相连接)时,本发明的存储式高速缓存协议系统在文件服务器和存储器资源的分配和共享上提供极大的灵活性。
在进一步优选的实施例中,本发明的包括租用协议的存储式高速缓存系统使用存储在存储式高速缓存器中且被工作站的输入修改的高速缓存数据文件、存储在高速缓存服务器的存储器中的数据文件或者存储在文件服务器中的数据文件的版本,来更新数据文件或者高速缓存数据文件,并且在(i)建立在高速缓存服务器与存储式高速缓存器之间的通信链路断开,(ii)高速缓存服务器或存储式高速缓存出现故障,或(iii)工作站无法预料的重新启动的情况下,保持在网络中数据文件的连贯性和一致性。重要的是,不需要用于跟踪文件更新状态的额外数据。图9是根据本发明包括存储式高速缓存协议系统412的进一步优选实施例的网络410的系统框图,该存储式高速缓存协议系统412管理对实时数据文件的共享访问,同时保持数据文件的连贯性和一致性并且备份数据文件。参照图9,系统412包括:高速缓存服务器436A和436B,它们分别与相连的数据中心系统420A和420B相连接;和存储式高速缓存器30A,其以与网络10的相同的方式与远程系统16A相连接。为了解释说明目的,每一个数据中心系统420以基本与网络10的数据中心20相同的方式构造并操作。为了突出该备份协议特征,假设在存储式高速缓存器30A与高速缓存服务器436A之间的通信链路已建立,用于基于对存储在存储式高速缓存器30A中的高速缓存数据文件所作的修改,将文件更新数据传送到的高速缓存服务器436A,在高速缓存服务器436A那里,高速缓存数据文件与存储在文件服务器438A中的数据文件相对应,并且作为用于系统410的主要数据文件存储设备的文件服务器438A和文件服务器438B是备份存储设备。
参考图9,当存储式高速缓存器30A中的高速缓存管理器50检测到例如在网关26上的网络通信失败时,初始化根据本发明的数据文件的备份。高速缓存管理器50依次自动地且定期地试图重建连接到高速缓存服务器436A的通信链路。存储式高速缓存器30A也不中断地持续操作,也就是,持续监控工作站所输入的对高速缓存数据文件的修改,并且在存储器56中仅存储合并这些修改的高速缓存数据文件的当前版本。
而且,当高速缓存服务器436A和436B具有不同且唯一的IP路由地址时,高速缓存管理器50同时试图经由高速缓存服务器436B建立与备份数据中心例如数据中心420B的通信链路。如果该备份链路能够建立,存储式高速缓存器30A执行流程100,用于更新存储在文件服务器420B中的数据文件的备份副本。换句话说,假设数据中心被镜像,存储式高速缓存器30A在发生与高速缓存服务器436A断开的地方,继续更新存储在高速缓存服务器436B中的数据文件的流程。
在断开之后重新建立了与高速缓存服务器436A的连接时,存储式高速缓存器30A通过执行例如流程100中的步骤106、108、110、112和114来恢复用于更新数据文件的流程。换句话说,在步骤110中,在断开发生时,表示存在于高速缓存服务器436A或者文件服务器438A中的数据文件版本的校验和用于计算差别数据。因此,由于仅存储高速缓存数据文件的当前版本且该当前的高速缓存数据文件用于基于从高速缓存服务器传送的校验和更新文件服务器中的数据文件版本,因此存储式高速缓存器30A总是有效地保持文件更新数据。这样,当高速缓存数据文件继续被更新且用于更新当前存储在文件服务器中的数据文件时,存储式高速缓存协议系统有利地使得数据文件的更新的确切状态在断开之前不需要被跟踪或者知道。
因而,如果连接到主数据中心的高速缓存服务器的通信链路出现故障,则存储式高速缓存器能够与多个高速缓存服务器相互协作,从而易于建立与备份数据中心的存储式高速缓存器的通信链路。然而,当主数据中心出现故障时,同时试图重新建立到主数据中心的链路或者到备份数据中心的新的链路并且当最终重新建立了到中央数据中的链路时,在工作站处的终端用户不会经历或者意识到通信链路中断。数据文件的前一状态被自动地从存储器中恢复到存储式高速缓存器和高速缓存服务器中,以确保总是保持着连贯性,并且待决的回写数据在系统重启的情况下不会丢失。
在本发明的包括租用协议的存储式高速缓存系统的优选实施例中,执行用于更好地利用信道的流(用于提前读取)、压缩和求差的组合,以最大可能地实现高速缓存器命中(hit),启动实质的后写入(write-behind),且尽可能有效地实现高速缓存器未命中(miss)。
在进一步优选的实施例,当遇到网络出现故障时,存储式高速缓存器能够试图在不同载体上对同一数据中心以多个IP地址建立通信连接。
在另一个较优选的实施例中,在存储式高速缓存器出现故障时,有故障的存储式高速缓存器可被简单地替换,然后新的存储式高速缓存器能够快速地建立与远程数据中心的高速缓存服务器的连接,而后立即恢复根据流程100和120的高速缓存和更新。
尽管本发明的优选实施例已经得到描述和说明,但是显而易见本领域的技术人员可以在不脱离本发明的精神下作出各种修改。

Claims (22)

1.一种管理通过多个经授权的计算机工作站对存储在文件服务器中的数据文件共享访问的方法,该方法包括:
将高速缓存服务器从文件服务器中取回的数据文件的副本提供给第一存储式高速缓存器,用于读取或者更新,其中,第一存储式高速缓存器与至少第一经授权的计算机工作站相关联且将该数据文件的副本存储为高速缓存数据文件;
在第一存储式高速缓存器中,将第一工作站输入的数据文件修改合并到该高速缓存数据文件中;
将文件更新数据从第一存储式高速缓存器自动传送到高速缓存服务器,其中该文件更新数据是已合并到该高速缓存数据文件中的该数据文件修改的函数;以及
在高速缓存服务器中,基于该文件更新数据生成存储在文件服务器中的该数据文件的替换版本。
2.如权利要求1所述的方法,还包括:
在高速缓存服务器中,如果该数据文件被第一存储式高速缓存器访问用于更新,则保护存储在文件服务器中的该数据文件免于被其它存储式高速缓存器更新,直到所有来自第一存储式高速缓存器的该文件更新数据已被合并到该数据文件的替换版本中并且该替换版本已经替换了存储在文件服务器中的该数据文件为止。
3.如权利要求2所述的方法,其中当来自第一存储式高速缓存器的该文件更新数据传送到高速缓存服务器中时,该保护包括保护存储在文件服务器中的该数据文件免于被其它存储式高速缓存器更新。
4.如权利要求1所述的方法,还包括:
用该数据文件的替换版本代替存储在文件服务器中的该数据文件;以及
使用该数据文件的替换版本,响应随后传送到高速缓存服务器的来自第二存储式高速缓存器和经授权的工作站中至少一个对该数据文件的访问请求。
5.如权利要求1所述的方法,其中该文件更新数据作为流数据传送到高速缓存服务器。
6.如权利要求1所述的方法,还包括:
在该文件更新数据传送到高速缓存服务器之前压缩该文件更新数据。
7.如权利要求1所述的方法,其中该文件更新数据包括差别数据,其中该差别数据表示在第一存储式高速缓存器中的该高速缓存数据文件与当前存储在文件服务器或高速缓存服务器中的该数据文件的版本之间的差别。
8.如权利要求1所述的方法,其中高速缓存服务器包括多个子高速缓存服务器,其中在至少一个子高速缓存服务器中生成该数据文件的替换版本。
9.如权利要求8所述的方法,其中当第一子高速缓存服务器与第一存储式高速缓存器之间的通信连接失败时,第一存储式高速缓存器自动试图建立与第一子高速缓存服务器和第二子高速缓存服务器中至少一个的通信连接。
10.如权利要求1所述的方法,其中以预定间隔将该文件更新数据自动传送到高速缓存服务器。
11.一种管理通过多个经授权的计算机工作站对存储在文件服务器中的数据文件共享访问的方法,该方法包括:
响应工作站对存储在与高速缓存服务器相关联的文件服务器中的数据文件的访问请求,将文件更新数据从高速缓存服务器自动传送到第一存储式高速缓存器,其中该文件更新数据是当前存储在文件服务器或高速缓存服务器中的数据文件与存储在第一存储式高速缓存器中且对应于该数据文件的高速缓存数据文件之间的差别的函数;以及
将该文件更新数据合并到第一存储式高速缓存器中的该高速缓存数据文件,使该高速缓存数据文件更新为与当前存储在文件服务器或高速缓存服务器中的该数据文件相同。
12.如权利要求11所述的方法,其中该文件更新数据作为流数据传送到第一存储式高速缓存器。
13.如权利要求11所述的方法,还包括:
在该文件更新数据传送到第一存储式高速缓存器之前压缩该文件更新数据。
14.如权利要求11所述的方法,其中自动传送以及合并步骤以预定间隔执行。
15.一种管理通过多个经授权的计算机工作站对存储在文件服务器中的数据文件共享访问的系统,该系统包括:
高速缓存服务器,用于取回存储在文件服务器中的数据文件的副本;
与至少一个经授权的计算机工作站相关联的至少一个第一存储式高速缓存器,其中第一存储式高速缓存器将取回的该数据文件的副本作为高速缓存数据文件存储在本地存储器中,并且将第一工作站输入的数据文件修改合并到该高速缓存数据文件中;
其中第一存储式高速缓存器自动生成文件更新数据并将其作为流数据自动传送到高速缓存服务器,其中该文件更新数据是已合并到该高速缓存数据文件的该数据文件修改的函数;
其中高速缓存服务器基于该文件更新数据生成该数据文件的替换版本,并且使用该数据文件的替换版本,响应随后传送到高速缓存服务器的来自第二存储式高速缓存器和经授权的工作站中至少一个对数据文件的访问请求。
16.如权利要求15所述的系统,其中高速缓存服务器生成表示存储在第一存储式高速缓存器中的该高速缓存数据文件与当前存储在文件服务器中的该数据文件的替换版本之间的差别的服务器更新文件数据,其中,高速缓存服务器响应由第一存储式高速缓存器所传送的数据文件请求,将该服务器文件更新数据自动传送到第一存储式高速缓存器。
17.一种管理通过多个经授权的计算机工作站对存储在文件服务器中的数据文件共享访问的系统,该系统包括:
高速缓存服务器,用于与文件服务器相连接;
多个存储式高速缓存器,用于通过建立与高速缓存服务器的通信连接来访问存储在文件服务器中的数据文件,
其中高速缓存服务器包括租用模块,其中租用模块基于对数据文件的租用是否有、以及何种类型的租用已存在、或数据文件是否已被锁定,来确定是否准许或拒绝接收自第一存储式高速缓存器的对该数据文件的租用请求,其中根据标准来作出该确定,该标准为:如果读取租用已经存在则不准许写入租用,如果写入租用已经存在则仅准许读者权,以及如果读取租用已经存在则准许另外的读取租用;
其中如果准许读者访问权或读取租用,则高速缓存服务器自动执行更新第一存储式高速缓存器中的该高速缓存数据文件的步骤。
18.一种管理通过多个经授权的计算机工作站对存储在文件服务器中的数据文件共享访问的系统,该系统包括:
高速缓存服务器,用于与文件服务器相连接;和
多个存储式高速缓存器,用于通过建立与高速缓存服务器的通信连接访问存储在文件服务器中的数据文件,其中每一个存储式高速缓存器包括租用模块,用于控制是准许还是拒绝来自相关联的工作站的对数据文件的访问请求拒绝,其中该访问请求是对存储在文件服务器中的数据文件的读取或写入请求,其中租用模块在接收到该访问请求后执行以下步骤:
确定存在于存储式高速缓存器中的该数据文件的租用状态,其中该租用状态是读取、写入或者未租用中的一种状态;
如果该访问请求是读取且现有的租用是读取或者写入,或者如果该访问请求是写入且租用状态是写入,则准许该访问请求;
如果该访问请求是读取且租用状态是未租用,或者如果该访问请求是写入且租用状态是读取或未租用,则从高速缓存服务器中请求新的租用;
基于对数据文件的租用是否有、以及何种类型的租用已存在、或数据文件是否已被锁定,在高速缓存服务器中确定是否准许对数据文件的租用,其中根据标准来作出该确定,该标准为,如果读取租用已经存在则不准许写入租用,如果写入租用已经存在则仅准许读者权,以及如果读取租用已经存在则准许另外的读取租用;以及
如果租用被准许或该访问请求是读取,则基于存储在文件服务器中的数据文件的当前版本,执行自动更新存储式高速缓存器中的高速缓存数据文件的步骤,否则,拒绝该访问请求拒绝。
19.如权利要求18所述的系统,其中自动更新步骤包括基于存储在一个存储式高速缓存器中的高速缓存数据文件,更新存储在文件服务器中的数据文件。
20.如权利要求18所述的系统,其中当第一存储式高速缓存器中的租用模块确定在与第一存储式高速缓存器相关联的工作站中不再能打开与存储在文件服务器中的数据文件相应的高速缓存数据文件时,该租用模块执行下述步骤:
当高速缓存数据文件被打开时,确定是否基于工作站所作出的输入修改该高速缓存数据文件的副本;
如果修改该高速缓存数据文件的副本,则将文件更新数据自动传送到高速缓存服务器;以及
释放对该数据文件的任何租用;以及
其中高速缓存服务器使用文件更新数据更新存储在文件服务器中的该数据文件的版本。
21.如权利要求20所述的系统,其中文件更新数据是以流动且被压缩数据的形式传送。
22.如权利要求20所述的系统,其中文件更新数据是以被压缩数据的形式传送。
CNA2004800048842A 2003-01-17 2004-01-13 使用分布式文件系统进行存储式高速缓存的方法和系统 Pending CN1754155A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US44075003P 2003-01-17 2003-01-17
US60/440,750 2003-01-17

Publications (1)

Publication Number Publication Date
CN1754155A true CN1754155A (zh) 2006-03-29

Family

ID=32825140

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004800048842A Pending CN1754155A (zh) 2003-01-17 2004-01-13 使用分布式文件系统进行存储式高速缓存的方法和系统

Country Status (7)

Country Link
US (2) US7103617B2 (zh)
EP (1) EP1584036A4 (zh)
JP (1) JP2006516341A (zh)
CN (1) CN1754155A (zh)
AU (1) AU2004207357A1 (zh)
CA (1) CA2513503A1 (zh)
WO (1) WO2004068469A2 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146127B (zh) * 2007-10-30 2010-06-09 金蝶软件(中国)有限公司 一种分布式系统中客户端缓存更新的方法和装置
CN101499073B (zh) * 2008-01-29 2011-10-12 国际商业机器公司 基于访问频率的连续存储数据的存储管理方法和系统
CN102325169A (zh) * 2011-08-22 2012-01-18 盛乐信息技术(上海)有限公司 支持共享和协作的网络文件系统及方法
CN102333108A (zh) * 2011-03-18 2012-01-25 北京神州数码思特奇信息技术股份有限公司 分布式缓存同步系统及方法
CN101470645B (zh) * 2007-12-29 2012-04-25 华为技术有限公司 一种高速缓存数据恢复的方法和装置
WO2012126229A1 (zh) * 2011-03-23 2012-09-27 中兴通讯股份有限公司 一种分布式缓存系统数据存取的方法及装置
CN103034669A (zh) * 2011-10-06 2013-04-10 迷你吉特有限公司 利用网络文件系统提供用户数据存储环境的系统
CN103136080A (zh) * 2013-03-12 2013-06-05 青岛中星微电子有限公司 一种缓存锁定功能的测试方法和装置
CN101997902B (zh) * 2009-08-28 2015-07-22 云端容灾有限公司 基于驿站分段传输的远程在线备份系统和方法
CN105975521A (zh) * 2016-04-28 2016-09-28 乐视控股(北京)有限公司 一种流式数据上传方法及装置
CN107223240A (zh) * 2015-03-12 2017-09-29 英特尔公司 与文件高速缓存的上下文感知管理相关联的计算方法和装置
CN108427703A (zh) * 2017-02-15 2018-08-21 谷歌有限责任公司 提供对存储在数据存储系统的数据文件访问的系统和方法

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
US8364815B2 (en) 2005-03-18 2013-01-29 Riverbed Technology, Inc. Reliability and availability of distributed servers
US7103617B2 (en) * 2003-01-17 2006-09-05 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system
JP4131514B2 (ja) * 2003-04-21 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、データ処理方法及びプログラム
US7409389B2 (en) * 2003-04-29 2008-08-05 International Business Machines Corporation Managing access to objects of a computing environment
US7480699B2 (en) * 2004-01-20 2009-01-20 International Business Machines Corporation System and method for replacing an application on a server
US20050240489A1 (en) * 2004-03-12 2005-10-27 Onfolio, Inc. Retaining custom item order
US20050216886A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Editing multi-layer documents
US7702678B2 (en) * 2004-03-12 2010-04-20 Microsoft Corporation Search capture
US20050216837A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Unread-state management
US20050216825A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Local storage of script-containing content
US7434107B2 (en) * 2004-07-19 2008-10-07 Dell Products L.P. Cluster network having multiple server nodes
US8005710B2 (en) 2004-09-28 2011-08-23 Microsoft Corporation Methods and systems for caching and synchronizing project data
CN100336343C (zh) * 2004-10-10 2007-09-05 中兴通讯股份有限公司 分布式系统中保持多个数据副本一致性的方法
US7321655B2 (en) 2005-02-07 2008-01-22 Adomo, Inc. Caching user information in an integrated communication system
US7808980B2 (en) 2005-02-07 2010-10-05 Avaya Inc. Integrated multi-media communication system
US7724880B2 (en) 2005-02-07 2010-05-25 Avaya Inc. Networked voicemail
US8059793B2 (en) 2005-02-07 2011-11-15 Avaya Inc. System and method for voicemail privacy
US7330537B2 (en) 2005-02-07 2008-02-12 Adomo, Inc. Integrating messaging server directory service with a communication system voice mail message interface
US8559605B2 (en) 2005-02-07 2013-10-15 Avaya Inc. Extensible diagnostic tool
US8175233B2 (en) * 2005-02-07 2012-05-08 Avaya Inc. Distributed cache system
US8233594B2 (en) 2005-02-07 2012-07-31 Avaya Inc. Caching message information in an integrated communication system
JP4332126B2 (ja) 2005-03-24 2009-09-16 富士通株式会社 キャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法
JP4756914B2 (ja) * 2005-05-30 2011-08-24 キヤノン株式会社 遠隔協調作業支援システム及びその制御方法
US20070008940A1 (en) * 2005-06-21 2007-01-11 Gideon Eden Instrumentation network data system
US20070100902A1 (en) * 2005-10-27 2007-05-03 Dinesh Sinha Two way incremental dynamic application data synchronization
US8458295B1 (en) * 2005-11-14 2013-06-04 Sprint Communications Company L.P. Web content distribution devices to stage network device software
KR100825721B1 (ko) 2005-12-08 2008-04-29 한국전자통신연구원 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
US8122070B1 (en) * 2005-12-29 2012-02-21 United States Automobile Association (USAA) Document management system user interfaces
US8577940B2 (en) * 2006-03-20 2013-11-05 Parallels IP Holdings GmbH Managing computer file system using file system trees
US8117153B2 (en) * 2006-03-28 2012-02-14 Oracle America, Inc. Systems and methods for a distributed cache
US8463843B2 (en) * 2006-05-26 2013-06-11 Riverbed Technology, Inc. Throttling of predictive ACKs in an accelerated network communication system
JP2007328489A (ja) * 2006-06-07 2007-12-20 Fuji Xerox Co Ltd 文書管理装置及びプログラム
US8001385B2 (en) * 2006-06-21 2011-08-16 Intel Corporation Method and apparatus for flash updates with secure flash
CN101127625B (zh) * 2006-08-18 2013-11-06 华为技术有限公司 一种对访问请求授权的系统及方法
US9141627B2 (en) * 2006-09-26 2015-09-22 Sony Corporation Providing a user access to data files distributed in a plurality of different types of user devices
US9489456B1 (en) 2006-11-17 2016-11-08 Blue Coat Systems, Inc. Previewing file information over a network
JP4763587B2 (ja) * 2006-12-11 2011-08-31 株式会社ソニー・コンピュータエンタテインメント キャッシュサーバ、キャッシュサーバの制御方法、プログラム及び情報記憶媒体
GB0625330D0 (en) 2006-12-20 2007-01-24 Ibm System,method and computer program product for managing data using a write-back cache unit
WO2008082441A1 (en) * 2006-12-29 2008-07-10 Prodea Systems, Inc. Display inserts, overlays, and graphical user interfaces for multimedia systems
US20080177907A1 (en) * 2007-01-23 2008-07-24 Paul Boerger Method and system of a peripheral port of a server system
US8160212B2 (en) 2007-02-21 2012-04-17 Avaya Inc. Voicemail filtering and transcription
US8107598B2 (en) 2007-02-21 2012-01-31 Avaya Inc. Voicemail filtering and transcription
US8064576B2 (en) 2007-02-21 2011-11-22 Avaya Inc. Voicemail filtering and transcription
US20080243847A1 (en) * 2007-04-02 2008-10-02 Microsoft Corporation Separating central locking services from distributed data fulfillment services in a storage system
US8433693B2 (en) * 2007-04-02 2013-04-30 Microsoft Corporation Locking semantics for a storage system based on file types
US20080270480A1 (en) * 2007-04-26 2008-10-30 Hanes David H Method and system of deleting files from a remote server
US8005993B2 (en) 2007-04-30 2011-08-23 Hewlett-Packard Development Company, L.P. System and method of a storage expansion unit for a network attached storage device
US8488751B2 (en) 2007-05-11 2013-07-16 Avaya Inc. Unified messenging system and method
US20090037915A1 (en) * 2007-07-31 2009-02-05 Rothman Michael A Staging block-based transactions
US8849940B1 (en) * 2007-12-14 2014-09-30 Blue Coat Systems, Inc. Wide area network file system with low latency write command processing
US8458127B1 (en) 2007-12-28 2013-06-04 Blue Coat Systems, Inc. Application data synchronization
US7921179B1 (en) * 2008-01-15 2011-04-05 Net App, Inc. Reducing latency of access requests in distributed storage systems having a shared data set
EP2111011A1 (en) 2008-04-16 2009-10-21 Thomson Telecom Belgium Device and method for sharing files
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8171111B1 (en) * 2008-08-07 2012-05-01 United Services Automobile Association (Usaa) Systems and methods for non-specific address routing
US8706878B1 (en) 2008-08-21 2014-04-22 United Services Automobile Association Preferential loading in data centers
US8185566B2 (en) * 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
US8271623B2 (en) * 2009-01-15 2012-09-18 Microsoft Corporation Performing configuration in a multimachine environment
US8799409B2 (en) * 2009-01-15 2014-08-05 Ebay Inc. Server side data cache system
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US9152489B2 (en) * 2009-12-29 2015-10-06 Cleversafe, Inc. Revision synchronization of a dispersed storage network
EP2363795A1 (en) * 2010-03-05 2011-09-07 Sven Dunker A method and a system for providing a user with a virtual external storage
US8589553B2 (en) * 2010-09-17 2013-11-19 Microsoft Corporation Directory leasing
US8572340B2 (en) 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
CN101980198B (zh) * 2010-11-01 2012-06-06 福州星网视易信息系统有限公司 一种实现k歌随身带的方法
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8954446B2 (en) * 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
WO2012101855A1 (ja) * 2011-01-28 2012-08-02 株式会社日立製作所 通信システム、通信装置、通信制御方法
US8244831B1 (en) * 2011-05-23 2012-08-14 Ilesfay Technology Group, LLC Method for the preemptive creation of binary delta information within a computer network
WO2012106923A1 (zh) * 2011-07-25 2012-08-16 华为技术有限公司 对象调整方法、迁移控制设备、节点设备及存储系统
US9122535B2 (en) * 2011-11-22 2015-09-01 Netapp, Inc. Optimizing distributed data analytics for shared storage
US9110807B2 (en) * 2012-05-23 2015-08-18 Sybase, Inc. Cache conflict detection
US9218374B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Collaborative restore in a networked storage system
GB2503266A (en) * 2012-06-21 2013-12-25 Ibm Sharing aggregated cache hit and miss data in a storage area network
AT513242B1 (de) * 2012-07-02 2018-07-15 Frequentis Ag Verfahren zur Synchronisation von Daten in einem Computernetzwerk
US10095663B2 (en) 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9418072B2 (en) 2013-03-04 2016-08-16 Vmware, Inc. Cross-file differential content synchronization
US9355116B2 (en) 2013-03-04 2016-05-31 Vmware, Inc. Cross-file differential content synchronization using cached patches
JP6186433B2 (ja) * 2013-03-04 2017-08-23 ヴイエムウェア インコーポレイテッドVMware,Inc. ファイル間差分コンテンツ同期
US9514007B2 (en) * 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US9460296B2 (en) 2013-07-19 2016-10-04 Appsense Limited Systems, methods and media for selective decryption of files containing sensitive data
US9398111B1 (en) * 2013-08-30 2016-07-19 hopTo Inc. File caching upon disconnection
TWI502372B (zh) * 2013-09-27 2015-10-01 Acer Inc 網路儲存系統及檔案快取方法
WO2015062624A1 (en) * 2013-10-28 2015-05-07 Longsand Limited Instant streaming of the latest version of a file
JP6244916B2 (ja) * 2014-01-06 2017-12-13 富士通株式会社 演算処理装置,演算処理装置の制御方法及び情報処理装置
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US9720888B1 (en) 2014-05-22 2017-08-01 Amazon Technologies, Inc. Distributed browsing architecture for the delivery of graphics commands to user devices for assembling a plurality of layers of a content page
US9563929B1 (en) 2014-05-22 2017-02-07 Amazon Technologies, Inc. Caching of content page layers
US10042521B1 (en) 2014-05-22 2018-08-07 Amazon Technologies, Inc. Emulation of control resources for use with converted content pages
US9563928B1 (en) 2014-05-22 2017-02-07 Amazon Technlogies, Inc. Bandwidth reduction through delivery of hardware-independent graphics commands for portions of content pages
US9922007B1 (en) 2014-05-22 2018-03-20 Amazon Technologies, Inc. Split browser architecture capable of determining whether to combine or split content layers based on the encoding of content within each layer
WO2015180070A1 (zh) * 2014-05-28 2015-12-03 北京大学深圳研究生院 一种用于分布式存储系统的数据缓存方法及装置
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
US9373003B2 (en) * 2014-06-27 2016-06-21 Appsense Limited Systems and methods for automatically handling multiple levels of encryption and decryption
CN105338026B (zh) * 2014-07-24 2018-10-09 阿里巴巴集团控股有限公司 数据资源的获取方法、装置和系统
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10313243B2 (en) 2015-02-24 2019-06-04 Commvault Systems, Inc. Intelligent local management of data stream throttling in secondary-copy operations
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US10248314B2 (en) * 2015-06-04 2019-04-02 Quest Software Inc. Migrate nickname cache for email systems and devices
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10298680B1 (en) 2015-09-23 2019-05-21 Cohesity, Inc. Dynamic throughput ingestion of backup sources
US20170192868A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. User interface for identifying a location of a failed secondary storage device
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
CN105955983A (zh) * 2016-04-18 2016-09-21 国电南瑞科技股份有限公司 一种用于超大规模电网调控系统的历史采样数据缓存方法
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
CN106352247B (zh) * 2016-08-31 2018-05-01 哈尔滨圣昌科技开发有限公司 一种管网监测控制系统及采用该系统实现的监测控制方法
CN107885752A (zh) * 2016-09-30 2018-04-06 阿里巴巴集团控股有限公司 数据处理和查询方法及装置
CN106352243B (zh) * 2016-10-20 2018-06-26 山东科技大学 一种基于声波法的输气管道泄露检测系统
CN106802950A (zh) * 2017-01-16 2017-06-06 郑州云海信息技术有限公司 一种分布式文件系统小文件写缓存优化的方法
US10303401B2 (en) 2017-01-26 2019-05-28 International Business Machines Corporation Data caching for block storage systems
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
JP6891603B2 (ja) * 2017-03-31 2021-06-18 日本電気株式会社 バックアップシステム、ストレージ装置、データ転送方法及びプログラム
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
CN110247937B (zh) * 2018-03-07 2021-08-13 中移(苏州)软件技术有限公司 弹性存储系统共享文件管理、访问方法及相关设备
US10976966B2 (en) 2018-06-29 2021-04-13 Weka.IO Ltd. Implementing coherency and page cache support in a distributed way for files
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US10922018B2 (en) * 2019-03-04 2021-02-16 Verizon Media Inc. System and method for latency aware data access
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11677624B2 (en) 2019-04-12 2023-06-13 Red Hat, Inc. Configuration of a server in view of a number of clients connected to the server
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US6026452A (en) 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5611049A (en) * 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
US5452447A (en) * 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5689706A (en) * 1993-06-18 1997-11-18 Lucent Technologies Inc. Distributed systems with replicated files
US5581704A (en) * 1993-12-06 1996-12-03 Panasonic Technologies, Inc. System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5634122A (en) * 1994-12-30 1997-05-27 International Business Machines Corporation System and method for multi-level token management for distributed file systems
US5805809A (en) * 1995-04-26 1998-09-08 Shiva Corporation Installable performance accelerator for maintaining a local cache storing data residing on a server computer
US5594863A (en) * 1995-06-26 1997-01-14 Novell, Inc. Method and apparatus for network file recovery
US6012085A (en) * 1995-11-30 2000-01-04 Stampede Technolgies, Inc. Apparatus and method for increased data access in a network file object oriented caching system
US5740370A (en) * 1996-03-27 1998-04-14 Clinton Battersby System for opening cache file associated with designated file of file server only if the file is not subject to being modified by different program
US5864837A (en) * 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
US5717897A (en) * 1996-09-09 1998-02-10 Unisys Corporation System for coordinating coherency of cache memories of multiple host computers of a distributed information system
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US5878218A (en) * 1997-03-17 1999-03-02 International Business Machines Corporation Method and system for creating and utilizing common caches for internetworks
US6243760B1 (en) * 1997-06-24 2001-06-05 Vistar Telecommunications Inc. Information dissemination system with central and distributed caches
US6122629A (en) * 1998-04-30 2000-09-19 Compaq Computer Corporation Filesystem data integrity in a single system image environment
US6397307B2 (en) * 1999-02-23 2002-05-28 Legato Systems, Inc. Method and system for mirroring and archiving mass storage
US6453404B1 (en) * 1999-05-27 2002-09-17 Microsoft Corporation Distributed data cache with memory allocation model
US6597956B1 (en) * 1999-08-23 2003-07-22 Terraspring, Inc. Method and apparatus for controlling an extensible computing system
US6826580B2 (en) * 2000-01-20 2004-11-30 Emc Corporation Distributed storage resource management in a storage area network
US6587921B2 (en) * 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
US7103617B2 (en) * 2003-01-17 2006-09-05 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system
JP4257785B2 (ja) * 2003-04-22 2009-04-22 株式会社日立製作所 キャッシュストレージ装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146127B (zh) * 2007-10-30 2010-06-09 金蝶软件(中国)有限公司 一种分布式系统中客户端缓存更新的方法和装置
CN101470645B (zh) * 2007-12-29 2012-04-25 华为技术有限公司 一种高速缓存数据恢复的方法和装置
CN101499073B (zh) * 2008-01-29 2011-10-12 国际商业机器公司 基于访问频率的连续存储数据的存储管理方法和系统
CN101997902B (zh) * 2009-08-28 2015-07-22 云端容灾有限公司 基于驿站分段传输的远程在线备份系统和方法
CN102333108A (zh) * 2011-03-18 2012-01-25 北京神州数码思特奇信息技术股份有限公司 分布式缓存同步系统及方法
WO2012126229A1 (zh) * 2011-03-23 2012-09-27 中兴通讯股份有限公司 一种分布式缓存系统数据存取的方法及装置
CN102325169A (zh) * 2011-08-22 2012-01-18 盛乐信息技术(上海)有限公司 支持共享和协作的网络文件系统及方法
CN103034669A (zh) * 2011-10-06 2013-04-10 迷你吉特有限公司 利用网络文件系统提供用户数据存储环境的系统
CN103136080A (zh) * 2013-03-12 2013-06-05 青岛中星微电子有限公司 一种缓存锁定功能的测试方法和装置
CN103136080B (zh) * 2013-03-12 2016-07-13 青岛中星微电子有限公司 一种缓存锁定功能的测试方法和装置
CN107223240A (zh) * 2015-03-12 2017-09-29 英特尔公司 与文件高速缓存的上下文感知管理相关联的计算方法和装置
CN105975521A (zh) * 2016-04-28 2016-09-28 乐视控股(北京)有限公司 一种流式数据上传方法及装置
CN108427703A (zh) * 2017-02-15 2018-08-21 谷歌有限责任公司 提供对存储在数据存储系统的数据文件访问的系统和方法
US11232080B2 (en) 2017-02-15 2022-01-25 Google Llc Systems and methods for providing access to a data file stored at a data storage system

Also Published As

Publication number Publication date
WO2004068469A3 (en) 2005-03-03
EP1584036A2 (en) 2005-10-12
US20070198685A1 (en) 2007-08-23
WO2004068469A2 (en) 2004-08-12
EP1584036A4 (en) 2008-06-18
US7103617B2 (en) 2006-09-05
CA2513503A1 (en) 2004-08-12
AU2004207357A1 (en) 2004-08-12
US20040186861A1 (en) 2004-09-23
JP2006516341A (ja) 2006-06-29

Similar Documents

Publication Publication Date Title
CN1754155A (zh) 使用分布式文件系统进行存储式高速缓存的方法和系统
US11647097B2 (en) Providing access to managed content
JP5193056B2 (ja) 無線装置の最新データを維持するための方法及びシステム
CN1132109C (zh) 在一个分布式文件系统中高效高速缓存的系统与方法
US7581025B2 (en) System and method for synchronizing copies of data in a computer system
US7254578B2 (en) Concurrency classes for shared file systems
CN109074362B (zh) 分布式系统中的拆分和移动范围
US9959280B1 (en) Garbage collection of data tiered to cloud storage
US6925515B2 (en) Producer/consumer locking system for efficient replication of file data
CN101697168B (zh) 一种分布式文件系统动态元数据管理方法及系统
US7774568B2 (en) Clustered snapshots in networks
US7870116B2 (en) Method for administrating data storage in an information search and retrieval system
CN105393243A (zh) 事务定序
US9442850B1 (en) Efficient directory refresh operations in wide area file systems
CN1703677A (zh) 存储管理桥
US20160055167A1 (en) Composite Execution of Rename Operations in Wide Area File Systems
US20220043749A1 (en) System and method for broadcast cache invalidation
JP2004227169A (ja) 分散型データベースシステム
CN109656886B (zh) 基于键值对的文件系统实现方法、装置、设备和存储介质
US10936590B2 (en) Bloom filter series
US10387384B1 (en) Method and system for semantic metadata compression in a two-tier storage system using copy-on-write
CN104021137A (zh) 一种基于目录授权的客户端本地开闭文件的方法及系统
US7962600B2 (en) WAFS disconnected-mode read-write access
US10628391B1 (en) Method and system for reducing metadata overhead in a two-tier storage architecture
JP4855537B2 (ja) データベース並行編集方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication