CN1322449C - 无服务器的分布式文件系统 - Google Patents

无服务器的分布式文件系统 Download PDF

Info

Publication number
CN1322449C
CN1322449C CNB021078505A CN02107850A CN1322449C CN 1322449 C CN1322449 C CN 1322449C CN B021078505 A CNB021078505 A CN B021078505A CN 02107850 A CN02107850 A CN 02107850A CN 1322449 C CN1322449 C CN 1322449C
Authority
CN
China
Prior art keywords
group
file
file system
catalogue
byzantium
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.)
Expired - Fee Related
Application number
CNB021078505A
Other languages
English (en)
Other versions
CN1379339A (zh
Inventor
阿图尔·阿迪亚
威廉·J·博洛斯凯
杰拉尔德·塞尔马克
约翰·R·道塞尔
马文·M·泰墨
罗伯特·P·瓦藤霍弗
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1379339A publication Critical patent/CN1379339A/zh
Application granted granted Critical
Publication of CN1322449C publication Critical patent/CN1322449C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/953Organization of data
    • Y10S707/956Hierarchical
    • 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
    • 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

Abstract

一个无服务器的分布式文件系统使用一个或多个目录组来管理各文件和备目录的存储。可以使用拜占廷容错组来管理各目录,而不用拜占廷容错组来管理各文件。此外,该文件系统可以使用一个分层的名称空间来存储文件。而且,目录组可以使用多个锁来控制对在每一个目录中的各对象(例如,文件和目录)的访问。

Description

无服务器的分布式文件系统
相关的申请
本请求书要求属于由Atul Adya,Gerald Cermak,John R.Douceur,Marvin Theimer,Roger Wattenhofer以及William J.Bolosky等人于2001年3月26日申请的美国临时申请第60/278,905号的题为“在不可信环境中的无服务器的分布式文件系统”的优先权,上述申请已作为参考文献被收入本文。
技术领域
本发明涉及计算机网络和文件系统,特别是涉及无服务器的分布式文件系统。
背景技术
文件系统管理存储于计算机系统的文件和其他数据对象。最初在计算机的操作系统中建立文件系统是为了便于对以本地方式存储在驻留的存储介质之中的文件进行访问。随着计算机连成网络,某些文件存储能力已经从个别用户的机器转移到能够替用户机器存储大量文件的专用存储服务器上来。当需要一个文件时,用户机器只要简单地向服务器请求该文件即可。在这种基于服务器的体系结构中,文件系统被扩展以便于通过网络对远程存储在存储服务器之中的各种文件进行管理和访问。
今天,文件存储逐渐演变为这样一种模型,在其中,文件被存储在各种连成网络的计算机上,而不是一部中心存储服务器之中。无服务器的体系结构向文件系统提出新的挑战。一种特定的挑战涉及对分布于若干不同的计算机的文件进行管理,以使得即使有些计算机在给定的时间内是不可访问的,也能可靠地存储和访问各种文件,同时防止未经授权的用户访问这些文件。
本发明迎接这些挑战,并提供用于无服务器的分布式文件系统的有效的解决方案。
发明内容
本文说明一种无服务器的分布式文件系统。
根据本发明的一个方面,以不同方式在无服务器的分布式文件系统中管理文件和目录。使用拜占廷容错(Byzantine-fault-tolerant)组来管理目录,但不使用拜占廷容错组管理文件。作为存储文件的拷贝数小于对应的目录条目拷贝数的结果,这将导致性能上的改进。
根据另一个方面,本文件系统使用分层的名称空间来存储文件。这些文件被分布于多部计算机之中,其中,每一部计算机既可以用作客户计算机,又可以用作服务器计算机,并且每一部计算机都不需要信任其他计算机。
根据另一个方面,在文件系统中管理一个或多个目录的责任被分配到一个目录组。该目录组的每一个成员都是参与该系统的一部计算机,并且该目录组使用许多锁来控制对每一个目录中的各对象(例如,文件和目录)的访问。这些锁包括第1组锁,用以控制对象的打开,以及第2组锁,用来控制对各对象中的数据的访问。
本发明提供一种用于管理具有多个计算机的无服务器分布式文件系统的方法,本方法包括:使用所述多个计算机的计算机拜占廷组来存储文件系统的目录信息;以及不使用所述多个计算机的计算机拜占廷组,存储文件系统的目录中的文件。
本发明提供一个无服务器的分布式文件系统,包括:多个计算机;多个计算机中的第1组,用以为文件系统存储目录信息,其中第1组中的每个计算机都是拜占廷组的一部分;以及多个计算机中的第2组,用以在文件系统中存储文件的复本,其中对于被存储在文件系统中的每一个文件,在第2组计算机上存储该文件的多个复本,并且其中复本的数量少于在拜占廷组中的计算机的数量。本发明提供一种方法,包括:产生对应于待存储到无服务器的分布式文件系统之中的文件的目录条目;将该目录条目存储到作为拜占廷容错组的一部分的无服务器分布式文件系统的第1组多个计算机中的每一个,以及将文件保存到无服务器分布式文件系统的第2组多个计算机中的每一个,其中第2组多个计算机少于第1组多个计算机,并且其中第2组多个计算机中的至少一个不是拜占廷容错组的一部分。
本发明提供在无服务器的分布式文件系统的计算装置上实施的一种方法,本方法包括:检查在本地高速缓冲存储器中的路径名对拜占廷容错目录组的映射,以确定针对所需路径名的最长前缀的映射;以及若使用该本地高速缓冲存储器将整个路径名都映射到无服务器分布式文件系统的拜占廷容错目录组,则访问拜占廷容错目录组的成员,以确定从何处找到对应于该路径名的文件,否则,重复执行下列动作,直到整个路径名都被映射到拜占廷容错目录组为止,从对应于所需路径名的最长前缀的拜占廷容错目录组的成员获得针对来自最长前缀的相关子树的映射,以及若没有使用来自最长前缀的相关子树将整个路径名映射到拜占廷容错目录组,则重复进行该获得步骤,其中最长前缀有相关子树与之相连。
附图说明
本文从头到尾都使用相同的数字来加注于相同的部件和/或特征。
图1表示支持无服务器的分布式文件系统的示例性的网络环境。
图2表示示例性的计算装置的各逻辑部件,该计算装置是图1中参与分布式文件系统的任何一种装置的代表。
图3表示一种更一般的计算机环境,它被用来实现图1的分布式文件系统。
图4表示示例性的分层的名称空间,包括含有多个子树的名称空间根。
图5是一份流程图,表示将一个子树的管理责任委托给另一个目录组的一个示例性过程。
图6是一份流程图,表示对负责管理一个特定路径名的目录组进行查找的一个示例性过程。
图7表示在无服务器的分布式文件系统中,一个文件和对应的目录条目的存储实例。
图8是一份流程图,表示在无服务器的分布式文件系统中,存储一个文件的示例性过程。
图9是一份流程图,表示确定是否允许打开一个特定对象的示例性过程。
具体实施方式
下面的讨论针对一种共生的、无服务器的、分布式文件系统,它运行于多部连成网络的计算机之上,并将文件存储在多部计算机之中,而不是存储于一部中心服务器或服务器群之上。共生的性质意味着各部机器共同合作,但是不完全地互相信任。文件系统并不直接地管理磁盘存储,而是依赖在本地机器上的现有的文件系统,例如那些被集成到操作系统(例如,Windows NT文件系统)的文件系统。
本文的讨论参照于公共密钥加密技术、加密和数字签名。一般地说,公共密钥加密技术指的是使用公共和私有密钥,统称为密钥对。一个实体(例如,一个用户,一段软件应用程序,等等)对私有密钥进行保密,但允许他人使用公共密钥。可以使用一种加密算法和公共密钥对数据,典型地是指纯文本,来进行加密,使得在不知道相关的私有密钥的情况下,不能容易地对加密结果(典型地称为密文)进行解密,但是在知道相关的私有密钥的情况下,就能相对容易地进行解密。类似地,可以使用一种加密算法和私有密钥对数据进行数字签名,使得用相关的公共密钥就能容易地验证该签名,但是如果没有私有密钥,就不能容易地产生签名。本文的讨论假定读者对密码学已有基本的了解。为了得到关于密码学的基本介绍,读者可以直接参阅BruseSchneier所写的题为《应用程序密码学:协议,算法,和C语言源代码》一书,该书由John Willey & Sons公司出版,著作权从1994年起算(或者第2版,著作权从1996年起算)。
无服务器的分布式文件系统
图1举例说明支持无服务器的分布式文件系统的网络环境100。有4台客户计算装置102、104、106和108通过一个数据通信网络110被连接在一起。虽然举例说明的是4部计算装置,但这个网络环境100可以包括不同数量的(多于或少于4台)装置。
网络110代表种类广泛的数据通信网络当中的一种。网络110可以包括公共部分(例如因特网),个人部分(例如公司内部的局域网(LAN))以及公共部分与个人部分的组合。网络110的实现可以使用一种或多种的类型广泛的常规通信介质,包括有线和无线的介质。多种多样的通信协议可以用于经由网络110交流数据,包括公用的和专用的协议。这些协议例如TPC/IP,IPX/SPX,NetBEUI,等等。
计算装置102-108代表类型广泛的计算装置中的任何一种,每台装置可以是相同的也可以是不同的。作为例子,装置102-108可以是台式计算机,膝上型计算机,手持或袖珍型计算机,个人数字助理(PDA),蜂窝式电话,因特网电器,消费类电子装置,游戏机控制台,等等。
装置102-108中的两部或多部执行操作以实现无服务器分布式文件系统的操作。参与无服务器分布式文件系统的装置可以随时改变,允许新的装置加入系统,以及其他的装置可以从系统中撤出。每台实现(参与)无服务器分布式文件系统的装置102-106都有它的大容量存储装置(例如硬盘驱动器),被分配用于本地存储或分布式存储。本地存储用于存储用户希望存入他自己的本地机里面而不是存入分布式文件系统结构内的那些数据。分布式存储部分用于存储本装置(或其他装置)的用户希望存入分布式文件系统结构内的那些数据。
在图1的例子中,某些连接至网络110的装置拥有一个或多个大容量存储装置,包括分布式部分和本地部分。分配于分布式存储或本地存储的量在这些装置之间是不同的。例如,装置102分配给分布式系统部分120的百分比大于本地部分122;装置104包括一个分布式系统部分124,它的大小接近本地部分126;而装置106分配给分布式系统部分128的百分比小于本地部分130。可以以每一个存储装置为基础将存储分为多个部分(例如,一个硬盘驱动器被指定用于分布式系统,而另外一个被指定仅用于本地),和/或在一个单独的存储装置内将存储分为多个部分(例如,一个硬盘驱动器的一部分被指定用于分布式系统,而另外的部分被指定仅用于本地)。分配给本地存储或分布式存储的容量可以随时间改变。连接至网络110的其他装置,例如计算装置108,也许不实现任何分布式文件系统,因此其任何大容量存储装置都不分配给分布系统使用。因此计算装置108仅有一个本地部分132。
分布式文件系统150在不同的计算装置102-106中存储文件的一个或多个拷贝。当一个新的文件被一个计算机用户生成之后,他可以选择把文件存储在计算装置的本地部分或者存储在分布式文件系统中。如果文件被存储在分布式文件系统150之中,那么文件将被存入一个或多个的装置102-106中的大容量存储装置的分布式系统部分。生成该文件的用户通常不能控制该文件被存储到装置102-106中的哪一个,也不知道该文件到底存入了装置102-106中的哪一个。此外,典型地,文件的复制拷贝将被保存,允许用户随后能检索到该文件,即使在计算装置102-106中保存该文件的那一部装置是不可用的(例如,掉电,出现故障等)。
分布式文件系统150是通过装置102-106中的每一个的一个或多个部件来实现的,因此不要求由集中的服务器来协调文件系统。这些部件通过操作来确定特定的文件被存入哪里,生成了该文件的多少份拷贝以存入不同的装置之中,等等。具体哪一部装置存储哪些文件取决于若干因素,包括在分布式文件系统中的装置数目,由每一部装置提供给文件系统的存储空间,要保存多少文件拷贝,一个加密安全随机数,在装置上已存储的文件数量,等等。这样,分布式文件系统允许用户生成文件和访问文件(以及文件夹或目录),而不必了解该文件被存入哪一部具体的计算装置之中。
分布式文件系统150被设计为可伸缩的,以支持在系统150中大量的计算机。在系统150中各装置的组件所使用的各种协议和数据结构被设计成这样,使得不与系统中的计算机的数目成正比,因此允许它们随时适应于大量的计算机。
文件系统150所存储的文件被分布在不同的装置102-106之中,并且是以加密的形式存储的。当有一个新的文件建立时,在建立该文件的装置上先加密文件,然后再把文件传递至其他装置去存储。新文件的目录条目(包括文件名)也传递至其他装置去存储,但不一定是(典型地将不是)存有加密文件的那个(那些)装置上。另外,如果有新的文件夹或目录被建立,目录条目(包括文件夹名和目录名)也被传递至其他装置去存储。如本文所使用的那样,目录条目指的是,可以被添加到文件系统目录的任何条目,既包括文件名也包括目录名(或文件夹名)。
分布式文件系统150的设计是阻止未经授权的用户去读取存储在装置102-106中的数据。这样,由装置102生成并存储在装置104上的文件不能被装置104的用户读取(除非该用户被授权这样做)。为了实现这样的安全防护措施,文件的内容以及在目录条目中所有文件和目录的名称都被加密,而且只有已授权的用户才给以解密密钥。从而,虽然装置104可以存储由102建立的文件,若装置104的用户不是文件的授权用户,则装置104的用户不能解密(从而不能读)在目录条目中的文件内容或文件名。
分布式文件系统150采用分层的存储结构,有一个或多个名称空间根,以及在每个根下面的多个子树。不同子树的管理可以委托给不同的计算机组,由此防止管理名称空间根或具体的子树的计算机出现负担过重现象。
分布式文件系统150还以不同方式管理文件和与这些文件相应的目录条目的存储。一个存入文件系统150中的文件被复制,并存储在系统内的多部计算机上。此外,针对该文件产生一个目录条目,它也被保存到系统内多部不同的计算机之中。目录条目拷贝的存储数量大于文件拷贝的存储数量。在一种实施方案中,存储目录条目的计算机是拜占廷容错组的一部分,详细讨论如下。
分布式文件系统150也采用目录和文件加锁机制,对于由谁可以读或写目录和文件实施控制。在与拜占廷容错组中的计算机一同使用时,所用的加锁机制力求通过增加可本地执行而不需要目录组参与的操作数量提高性能,详细讨论如下。
在分布式文件系统150中的每一台计算机102-106可能有3种功能:它可以是本地用户的客户机,它可以是系统中存储文件的加密拷贝的存储库,它可以是保存一个或多个目录的计算机组的一个成员。
通常,当计算机102-106上的用户在给定的目录中打开文件时,计算机向一组计算机发送一项请求,这些计算机使用拜占廷容错协议集中管理目录(称为“拜占廷组”或“目录组”)。拜占廷组将文件锁授予该计算机,允许对文件进行本地更新(如果是写锁),随后把这些更新返回至拜占廷组。如果最近这个计算机已经访问过该文件,它大概会在本地高速缓冲存储器内留有文件内容的加密拷贝,那么它仅需检索已存入高速缓冲存储器的拷贝并加以解密,此后就可以开始读或写文件。如果最近该文件当前版本没有被访问过,计算机就从一台存有该文件的计算机中检索该文件的加密拷贝。有关哪些计算机保存当前拷贝的信息由拜占廷组连同锁的授予一起提供;如果有一台或多台文件存储计算机宕机,计算机可从别的计算机上检索该文件。拜占廷组也提供文件内容的密码散列,被计算机用以证实它提取的文件。
文件加密
文件加密使用的是称为“汇聚加密”(convergent encryption)的技术。汇聚加密有如下两个特性。第一,如果两个或更多的可加密的对象是相同的,那么即使采用不同的加密密钥来对它们进行加密,以提供个别的加密对象,人们也不需要得到任何的加密密钥,便可通过检查加密对象来确定这些可加密对象是相同的。第二,如果两个或两个以上的可加密对象是相同的,而且用不同的加密密钥进行加密,那么存储所有加密对象所需要的总空间是与存储单个可加密对象所需的空间成正比的,加上一个用于存储各个不同加密密钥所需的常量。
通常,根据汇聚加密技术,一个文件F(或其他任何类型的可加密对象)最初使用单程散列函数h(例如,SHA,MD5,等)进行散列来产生一个散列值h(F)。然后,使用对称密码(例如,RC4,RC2,等),并以散列值作为密钥,或Eh(F)(F),对文件F进行加密。其次,为已被授予对加密文件的读访问权的每一个授权用户建立读访问控制条目。写访问控制是由存储该文件的目录条目的目录服务器管理的。读访问控制条目是通过用任意数目的密钥K1,K2,...Km对文件的散列值h(F)进行加密来形成的,以产生Ek1(h(F)),Ek2(h(F)),...,Ekm(h(F))。在一种实施方案中,对于非对称的密码(例如,RSA)而言,每个密钥K是公共密钥/个人密钥对中的用户公共密钥。
对于汇聚加密而言,文件的一个加密版本在无服务器的分布式文件系统150中被存储和复制。跟文件加密版本一起被存储的还有一个或多个访问控制条目,视拥有访问权的授权用户数目而定。因此,在无服务器的分布式文件系统150中的文件有下面的结构:
[Eh(F)(F),<Ek1(h(F)),<Ek2(h(F)),...,<Ekm(h(F))>]
汇聚加密的一个优点是,可以由文件系统对已加密的文件进行评估,用以在不要求解密(因而不知道密码密钥)的条件下即可确定它与另一个文件是否相同。通过将已授权的用户的访问控制条目添加到其余的文件之中,就能去除不想要的复制文件。另一个优点就是,访问控制条目的大小很小,处于字节的量级上,而对于一个加密的文件来说,可能要数千兆字节。结果,存储到每个文件之中的开销信息量是很小的。这才能使存储文件所用的总空间与存储单个加密文件所需的空间成比例,再增加一个常量用于存储该文件的每个附加的授权读者。
关于汇聚加密的更多的信息,读者可以去查阅共同未决的美国专利申请系列号第09/565,821号,题为“Encryption System and Methodsfor Identifying and Coalescing Identical Objects Encrypted withDifferent Keys”,申请日期为2000年5月5日,申请人为Douceur等,该申请已共同转让给微软公司。该申请引用在此,以供参考。
目录条目加密
目录条目里面的文件和目录的名称是被加密的,使用的是“排他加密”法。排他加密允许目录条目内的文件和目录名称以加密的形式存储,因此阻止非法用户基于文件名或目录名不适当地获得任何信息。此外,排他加密具有下面3个特点。第一,在一个目录中不会有两个已加密的条目会被解密成同一个名称。第二,在目录中所有加密的条目都被解密成符合句法的名称。第三,保持目录的目录组不能访问条目的纯文本名称。这样,文件系统150能确保在目录中没有两个条目是同一名称的加密,能确保目录中所有的目录条目是用合乎句法的名称加密的,而同时确保维护目录的装置不能访问条目的纯文本名称。
通常,依照排他加密法,一个纯文本名称(在目录条目中的文件或目录名)被映射到一个新的名称。映射过的名称可以是大小写敏感的并有相应的大小写信息,允许复制名称检测是大小写敏感的。这样,映射过(且可以是大小写敏感)的名称随后编码并加密。这个加密的名称(和可选地随附的大写小写信息)被发送至目录组,目录组是负责管理目录条目的(例如,以路径名为基础,像下面详细讨论的那样。)
关于排他加密法的更多资料,读者可查询美国专利申请系列号第09/764,962号,题为”Exclusive Encryption for a Secure DirectoryService”,在2001年1月17日由Douceur等申请,并共同转让给微软公司。该申请被引用于此,以供参考。
文件格式
对于图1表示的无服务器分布式文件系统150的文件格式是由两部分构成:基本数据流和元数据流。基本数据流包含一个被分成多重块的文件。每个块使用对称密码加密(例如,RC4),块的散列作为加密密钥。元数据流包括一个数据头,一个把基本数据流中的加密块编入索引的结构,和少许用户信息。
索引树结构对每个块规定出叶节点。每个叶节点包括一个访问值用于破解有关块的密码,和一个验证值用于独立于其他块核实该加密块。在一种实施方案中,访问值是通过对文件块进行散列和使用非对称密码及随机产生的密钥加密得到的散列值而形成的。该密钥然后被加密,使用非对称密码(例如,RSA)和用户公共密钥作为密钥。验证值的形成是通过使用单程散列函数(例如,SHA)散列相关的加密块实现的。
视文件的大小,索引结构可以包括一些中间节点,这些中间节点产生是通过把叶节点编组成树状块并计算出每个树状块的散列值来实现的。这些中间节点可以再分段成一些块并且每个块被散列以形成接下来的节点。这可以根据需要重复很多次,直至到达根节点为止。然后根节点被散列,散列的值同元数据头与用户信息一起使用,以为整个文件产生验证值。在一种实施方案中,整个文件的验证值用用户签名来签名。做为选择,一个文件可以不要这种签名而被建立。
文件格式支持单独的文件块的验证而不需要了解随机产生的密钥或用户密钥。为了验证一个文件块,文件系统可选地评估在整个文件验证值上的签名(如果它存在的话),检查整个文件验证值是否与根块的散列、元数据头和用户信息匹配,然后遍历树以到达适当的与要验证的目标块相关联的叶节点。文件系统对目标块进行散列,若是散列值与包含在叶节点中的访问值相匹配,那么这个块便是真正的。
该文件格式进一步支持对各单独块的读出和写入而不影响其他块。该文件格式对于拥有庞大的非数据区的那些稀疏文件(sparse file)也是有益的。
该有关文件格式的进一步资料,读者可去查阅共同未决的美国专利申请第09/814,259号,题为“On-Disk File Format for a ServerlessDistributed File System”,由Bolosky等于2001年3月21日申请,并且共同转让给微软公司。此项申请已作为参考文献被收入本文。
计算装置的体系机构
图2阐明一部可仿效的计算装置200的各个逻辑部件,装置200代表图1中参与分布式文件系统150的任一个装置102-106。计算装置200包括一个服务器部件202,一个客户部件204,一个存储器206,大容量存储装置208,和分布式文件系统接口210。计算装置200典型地还包括一些附加的组件(如,处理器),然而这些附加的组件未表示在图2上,以不使图面混乱。带有各种软件和硬件的计算机体系结构的更全面的图解描述如下,参考图3。
存储器206可以是任何一种传统的易失性的与/或非易失性的存储器,如RAM,ROM,闪烁存储器,等等。大容量存储装置208可以是任何一种传统的非易失性的存储器件,如磁盘,光盘,闪烁存储器,等等。大容量存储装置208被划分成分布式系统部分和本地部分。虽然在图2中阐明的只是一个大容量存储装置208,但是计算装置200可以包括多个存储装置208(不同类型的,要么,都是同一类型的)。
计算装置200预期用于无服务器的分布式文件系统,照此,既包括服务器部件202,也包括客户部件204。当计算装置200响应涉及对存储(或要存储)在大容量存储装置208中的文件或目录条目的请求时,这些请求则由服务器部件202处理,而客户部件204处理由计算装置200发布的对存入分布式文件系统内的文件或目录条目的请求。客户部件204和服务器部件202彼此独立操作。这样,会有一些情况出现,其中无服务器的分布式文件系统150使得由客户部件204存储的文件被服务器部件202存入大容量存储装置208。
客户部件204包括一个存储和检索控制模块220,它同接口210一起管理对无服务器的分布式文件系统150的访问,用于代表计算装置150进行文件和目录的建立,存储,检索,读,写,修改,和验证。控制模块220使用目录组查找模块222去识别负责管理一个特别的文件或目录的一个目录组,用一个文件加密模块226给文件加密,用一个目录加密模块228给目录条目中的文件和目录的名称加密。这些模块的操作在下面有更详细的讨论。
服务器部件202包括一个分布式系统控制模块250,一个复制标识符252,和一个子树委托模块254。分布式系统控制模块250管理对加密文件240的访问。它与大容量存储装置208通讯,存入和检索加密文件240。分布式系统控制模块250还在存储器206与/或大容量存储装置208中维护目录条目的记录(未显示),这些目录条目被存储在计算装置200内(要么,存储在无服务器的分布式文件系统中的别处)。子树委托模块254操作以把子树委托给其他目录组,详细讨论如下。
复制标识符252帮助识别在分布式文件系统中的相同的那些加密文件。当复制标识符252发现一个副本时,而该副本不是为容错目有意复制的,则复制标识符252通知分布式系统控制模块250,然后控制模块250把该副本删掉同时把对该删除文件的访问控制条目加到剩余的文件上。
图3阐明一个更一般的计算机环境300,用于执行分布式文件系统。计算机环境300只是计算环境的一个例子而已,不意味着对计算机和网络体系结构的使用范围或功能性有什么限制。也不应认为计算机环境300对涉及示范计算机环境300中所示的任何组件的包括(或排除)以及组件的耦合或组合有任何限制。
计算机环境300包括一部像计算机302这种形式的通用计算装置。计算机302部件包括,但不限于,一个或更多的处理器或处理单元304,一个系统存储器306,一个系统总线308,系统总线把包括处理器304在内的各种系统部件都与系统存储器306耦合在一起。
系统总线308表示几个类型的总线结构中的一种或多种,包括一个存储器总线或存储控制器,一个外围装置总线,一个图形加速端口,以及一处理器或使用各式各样总线体系机构的局部总线。例如,这样的体系机构可以包括一个工业标准体系机构(ISA)总线,微通道体系结构(MCA)总线,一个增强型的ISA(EISA)总线,一个视频电子技术标准协会(VESA)局部总线,一个外设部件互连(PCI)总线也叫Mezzanine总线。
计算机302典型的包括各种计算机可读的介质。这样的介质可以是任何一种可得到的可由计算机302访问的介质,包括易失性的和非易失性的介质,可移除的和不可移除的介质。
系统存储器306包括的计算机可读介质有易失性的存储器,如随机存取存储器(RAM)310,与/或非易失性的存储器,如只读存储器(ROM)312。基本输入/输出系统(BIOS)314存储在只读存储器(ROM)312中,包含一些基本例程用以在计算机302内的各组件间传送信息,如在计算机起动期间。RAM310通常容纳可立即被处理器304访问和/或当前正对其进行操作的数据与/或程序模块。
计算机302也许还包括其他的可移除的/不可移除的,易失性的/非易失性的计算机存储介质。举例说,图3说明一个硬盘驱动器用于读出和写入不可移除的,非易失性的磁性介质(未示出),一个磁盘驱动器318,用于读出和写入一个可移除的,非易失性的磁盘320(如,软盘),以及一个光盘驱动器322,用于读出和/或写入可移除的,非易失性的光盘324,例如CD-ROM,DVD-ROM,或其他光学介质。硬盘驱动器316,磁盘驱动器318和光盘驱动器322每个都通过一个或更多的数据介质接口326与系统总线308相接,或者硬盘驱动器316、磁盘驱动器318和光盘驱动器322可通过一个或更多的接口(未显示)与系统总线308相连。
盘驱动器及其相关的计算机可读的介质为计算机302提供计算机可读指令,数据结构,程序模块,以及其它数据的非易失性的存储。虽然在举例中说的是硬盘驱动器316,可移除的磁盘320,可移除的光盘324,但应理解,还有其他类型的可由计算机访问、可存储数据的计算机可读介质,例如盒式磁带或其他磁存储器件,闪烁存储器卡,CD-ROM,DVD或其他光存储器,随机存取存储器(RAM),只读存储器(ROM),电可擦除可编程只读存储器(EEPROM)等都可以用于实施例中的计算系统和环境。
任一数量的程序模块可被存储在硬盘316,磁盘320,光盘324,ROM312,与/或RAM310,这些程序模块举例说包括操作系统326,一个或更多的应用程序328,其他程序模块330,以及程序数据332。每个这样的操作系统326,一个或更多的应用程序328,其他程序模块330,和程序数据332(或其特定的组合)可以实现支持分布式文件系统的整个或部分常驻部件。
用户可以把各种命令和信息经由输入装置,如键盘334和定点装置336(如,鼠标)送入计算机302。其它输入装置338(未明确的显示出)可能包括麦克风,游戏板,碟形卫星天线,串行端口,扫描仪,以及诸如此类。这些和其他的输入装置经由与系统总线308耦合在一起的输入/输出接口340连接到处理单元304,但是也可以通过其他的接口和总线体系结构连接,如,并行端口,游戏端口,通用串行总线(USB)。
监视器342或其他类型的显示装置也可以经由像视频适配器334那样的接口接至系统总线308。除监视器342外,其他输出外设可以包括如扬声器和打印机346之类的组件,它们可以通过输入/输出接口340接至计算机302。
计算机302可以在网络环境下工作,使用与一个或多个远程计算机,如远程计算装置348,的逻辑连接在联网环境中操作。举例说,远程计算装置348可以是一台个人计算机,便携式的计算机,服务器,路由器,网络计算机,对等装置,或其他公用的网络节点,以及同类装置。远程计算装置348被显示为像一台便携式的计算机,可能包括很多或整个与计算机302相关的元部件和特点。
在计算机302和远程计算机348间的逻辑连接被描述为局域网(LAN)350和通用广域网(WAN)352。这种网络环境在办公室企业级计算机网络,企业内部网,以及因特网中是平常的事。
在局域网(LAN)环境中实现时,计算机302经由网络接口或适配器354连接至局域网(LAN)350。在广域网联网环境中实现时,计算机302典型的要包括调制解调器356或其他用于通过广域网352建立通信的装置。调制解调器356,它可以在计算机302的内部或外部,可以经由输入/输出接口340或其他的适当的机制与系统总线308相联。应理解,详细说明的网络连接是范例,其他的在计算机302和348之间建立通信链路的各种装置都可以被采用。
在一个联网的环境,例如像说明过的计算环境300中,相对于计算机302说明的程序模块,或其某些部分,可以被存储在远程的存储器装置内。通过例子,远程应用程序358驻留在远程计算机348的存储装置中。为了说明起见,这些应用程序和其他可执行程序组件如操作系统在这里作为离散块说明,虽然人们了解这种程序和组件在不同的时间驻留在计算装置302的不同存储组件中,并由计算机的数据处理器执行。
分布式文件系统150的实现可以在可由一个或多个计算机或其它装置执行的计算机可执行指令的一般环境中描述,可执行指令如程序模块。一般说来,程序模块包括执行特别的任务或实现特别的抽象的数据类型的例程,程序,对象,组件,数据结构等。通常,程序模块的功能性在不同实施例中可根据需要组合或分布。
对于加密文件的文件格式的实施可以在计算机可读的某些介质上存储或经由其传送。计算机可读的介质可以是任何一种可由计算机存取的可用的介质。通过例子,并没限制,计算机可读的介质可以包含“计算机存储介质”和“通信介质”。
“计算机存储介质”包括用任何方法或技术实现的易失性的和非易失性的,可移除的和不可移除的信息存储的介质,所述信息有计算机可读的指令,数据结构,程序模块,其他数据。计算机存储介质包括,但不限于,RAM,ROM,EEPROM,闪烁存储器,或其他存储技术,CD-ROM,数字化视频光盘(DVD),或其他光存储装置,盒式磁带,磁带,磁盘存储装置或其它磁存储装置,或任何其他可以用于存储所希望的信息并能由计算机存取的介质。
“通信介质”典型地包含计算机可读指令、数据结构、程序模块,或者在已调制的数据信号中的其他数据,例如载波或其他传送机制。通信介质也包括任何信息传送介质。名词“已调制的数据信号”指的是,一个信号的一个或多个特性被被置或改变,以便对信号中的信息进行编码。借助于实例,并且不受其限制,通信介质包括有线介质,例如有线网络或直接的有线连接,以及无线介质,例如声音、射频、红外线,以及其他无线介质。上述各项的任何组合都被纳入计算机可读介质的范围内。
分层的存储结构
分布式文件系统150使用分层的文件存储结构,包括一个或多个名称空间根,其中的每一个都支持目录或文件夹的一个或多个子树,并且每一个子树能够支持一个或多个附加的子树。一个目录可以被视为一个仿真的文件夹,它能够保存0个或多个文件和/或0个或多个其他目录。一个子树指的是一个或多个目录,并且包括一个根(它还可以包括一个名称空间根),并且具有这样的特性,即,从子树根到该子树的所有成员的路径都处于该子树本身的范围内。图4表示一个示例性的分层的名称空间400,它包括一个名称空间根,后者又有多个子树,包括各目录A、B、C、D、E、F、G、IH、J、I、M、K和L。虽然一个名称空间根的各子树典型地包括更多的目录,但是为了便于说明,在图4中仅示出了其中的几个。
由被称为一个目录组的一部或多部计算机的组来管理每一个子树。虽然本文主要是作为管理各子树的目录组讨论一个或多个目录组,但是,可供选择地,一个或多个目录组也可以管理在名称空间范围内的一个任意的目录集。计算机的一个或多个模块负责实现目录服务,以管理分配给它的子树,例如图2的控制模块250。在一个实施方案中,每一个目录组都是一个拜占廷容错组(或者简称为拜占廷组),这将在下面作更详细的讨论。然而,各目录组不需要是一个拜占廷容错组,可以使用其他的分组方法。
图4的实线表示各目录之间的关系,表明哪一个目录是其他目录的子目录。例如,目录C是目录B的子目录。一个目录还可以被称为其任何子目录的“父“目录。例如,目录B可以被称为目录C的父目录。
图4中的每一个虚线框表示一个目录组,它管理着被包括在特定的虚线框以内的各目录。因此,在示例性的名称空间400中,根名称空间受目录组402的管理,各目录A、B、C、F和G受目录组404的管理,各目录D和E受目录组406管理,各目录H和J受目录组408管理,各目录K、I、L、和M受目录组410管理。
管理一个特定目录或名称空间的目录组负责为存储在该目录中的每一个文件保存一个目录条目,以及为该目录中的每一个子目录保存一个目录条目。针对一个文件的每一个目录条目标识在存有该文件的分布式文件系统150中的一部或多部计算机。针对一个子目录的每一个目录条目标识负责管理该子目录的目录组。目录条目还可以包含附加的信息,例如:生成、修改和访问的时间戳记;读和写的访问控制列表;复本位置的集合;文件大小;等等。
每一个目录组负责管理一个名称空间根和/或在该名称空间的内的一个或多个子树。每一个目录组还能够标识一个或多个附加的子树,并且将那些附加的子树的管理责任委托给另一个目录组。例如,各目录D和E本来受目录组404的管理,但是随后被委托给目录组406。
一个目录组可以在任何时间决定将一个子树委托给另一个目录组。在一个实施方案中,基于工作负荷来作出这种决定,并且当该目录组确定它正在变为过负载时,该目录组就决定将一个子树委托出去。目录组在确定它何时变为过负载时,可以使用各种因素,并且在一个示例性的实施方案中,每一个目录组都试图管理这样一个子树,其大小接近等于每一部机器所期望的平均目录数(例如,处于1万个目录的量级)。
可以用多种方式来确定将该子树委托给哪一个目录组。在一个实施方案中,执行委托的目录组从处于分布式文件系统150之中的其所知晓的各计算机中随机地选择,并且使用那些已选定的各计算机作为接受委托去管理子树的目录组。在选择过程中,还可以衡量各种其他因素(例如,不选择那些具有低的可用性的计算机,不选择那些最近曾经被委托去管理一个子树的计算机,等等)。
通过产生由该目录组的一个或多个成员进行数字签名的委托证书,一个目录组就能委托一个特定的子树。在多个成员签署一份委托证书的情况下,签名过程可以采取不同的形式。在一个实施方案中,每一个成员在属于它自己的委托证书的拷贝上签名。在另一个实施方案中,以轮流方式在委托证书上签名(例如,先由一个成员在委托证书上签名,然后由另一个成员在数字签名的证书上签名,等等)。不同成员轮流签名的顺序并不重要,只要验证者在验证数字签名时知道该顺序即可(例如,验证人可以对签名顺序进行预先编程,或者在证书中包括标识这种顺序的信息)。下面说明由4个签名者在示例性的证书上进行轮流签名的情形:
σS4S3S2S1(DC))))
其中,DC表示被数字签名的委托证书,以及σSi()表示已经由签名者i对()的内容进行数字签名。
在一个实施方案中,一个目录组的成员(计算机)数目取决于设计者所期望的能容忍的出错计算机的数目。如本文所使用的那样,一部出错计算机指的是一部不可访问的计算机(例如该计算机已经关闭电源或者发生故障),或者该计算机已损坏(例如,恶意的用户或程序已经进入该计算机,并且对查询作出不适当的响应,例如不给出适当的响应或者给出不适当的数据)。在一个特定的实例中,为了能容忍f部出错的计算机,一个目录组要包括3f+1部计算机。此外,在本例中,至少有f+1部计算机对委托证书进行数字签名。
每一个名称空间根都有一个从证书授权机构(CA)获得的证书与其有关。证书授权机构是一个可信的授权机构,它对名称空间的生成进行验证。跟一个子树相关的每一份委托证书包括一条证书链,它从当前子树开始向上,通过0个或更多的其他子树,直到由CA签名的名称空间根。因此,每一份委托证书都有多份委托证书与之有关,这些证书能证明它是用于管理该子树的已授权的目录组(建立一条回到由CA签名的证书的证书链)。
委托证书可以包括不同的部分,并且在一个实施方案中,该委托证书包括:(1)被委托的路径的标识,该路径在受进行委托的目录组管理的子树的根下面;(2)被委托给进行委托的目录组的子树的根的标识;(3)被委托的子树的标识;4)接受委托管理子树的目录组成员的标识。子树和路径成员的这些标识可以不同,并且可以是实际的目录名(例如,各目录A、B、C、D等的名称),或者,也可以是标识号码[例如,全局唯一标识符(GUID)]。在目录名发生改变的情况下,标识号码可以被用来避免需要重新生成委托证书。
参照图4,可以看到委托证书的一个实例。目录组402从CA那里获得一份证书,证明该组402有权管理名称空间根。这份证书采取下列形式:
σOurCA(“Root”,GUIDRoot,DG402)    (1)
式中,σOurCA表示该证书已经由名为“OurCA”的CA加以签署。“ROOT”是名称空间根的名称,GUIDRoot是用于该名称空间根的全局唯一标识符,并且DG402表示目录组402的各成员的名称(或其他标识符)。
当目录组402决定将从目录A开始的子树委托给目录组404时,目录组402就产生一份委托证书,以便送往目录组404的各成员。这份委托证书包括上面的证书(1),以及下列证书:
σDG402(GUIDRoot/A,GUIDA,DG404)    (2)
式中,σDG402表示目录组402的各成员已经在该证书上签名,GUIDRoot/A是委托给目录组402的子树的根的GUID(GUIDRoot),连同被委托到目录组404的路径(/A),GUIDA是被委托的子树的全局唯一标识符(这就是说,该子树开始于目录A),以及DG404表示目录组404的各成员的名称(或其他标识符)。
类似地,当目录组404决定将开始于目录D的子树委托给目录组406时,目录组404产生一份委托证书,准备送给目录组406的各成员。这份委托证书包括上述的证书(1)和(2),以及下列证书:
σDG404(GUIDA/B/C/D,GUIDD,DG406)    (3)
式中,σDG404表示目录组404的各成员已经在该证书上签名,GUIDA/B/C/D是委托给目录组404的子树的根的GUID(GUIDA),连同被委托到目录组406的路径(/B/C/D),GUIDD是被委托的子树的全局唯一的标识符(这就是说,该子树开始于目录D),以及DG406表示目录组406的各成员的名称(或其他标识符)。
在所说明的实例中,在各委托点处,而不是针对一个特定子树的每一个目录,发出委托证书。例如,委托证书颁发给A(子树中的顶级目录),而不是给/A/B或/A/B/C。
图5是一份流程图,说明一个示例性的过程500,用于把一个子树的管理责任委托给另一个目录组。过程500的执行是通过处于为该子树委托管理责任的目录组之中的计算机的子树委托模块254完成的。开始,把要将子树委托于其的计算机组识别出来(步骤502)。子树委托证书被生成(步骤504)并由一个或更多的委托组成员进行数字签名(步骤506)。然后,将经过数字签名的委托证书发给被委托承担子树管理责任的计算机组(步骤508)。
返回图4,在分布式文件系统150中,每一部计算机都保持一个本地高速缓冲存储器(例如,图2的高速缓冲存储器260),它把名称空间里的路径名的某些子集映射到管理那个路径名的目录组中去。例如,一个特定的计算机高速缓冲存储器可以包括每个路径名/A,/A/B,/A/B/C,/A/F,以及/A/F/G到目录组404的映射。不同的计算机在它的高速缓冲存储器内含有不同的映射,但是典型地每一部至少都包括从名称空间根到它的管理目录组(目录组402)的映射。
保持路径名到管理目录组的映射允许计算机起码能自己在本地实现某些目录组查找过程,而不是总是要求访问管理名称空间根的目录组(或许其他目录组)。例如,设想一台计算机请求访问具有路径名/A/B/foo.tx的、名为“foo.txt”的文件,并且计算机在它的本地高速缓冲存储器内存在路径名到目录组404的映射。在这个例子中,计算机用它自己的本地高速缓冲存储器容易地识别管理目录B中文件的目录组404的成员,从而也就找到文件foo.txt。因而,为了确定文件foo.txt的位置而需要访问哪些计算机(这就是说,哪些计算机管理针对路径名/A/B的目录条目)的决定是由计算机根据它的高速缓冲存储器内的信息来完成的,不必为了作出决定而访问目录组402或404。
若计算机在它的本地高速缓冲存储器中没有足够的信息以便把整个的路径名映射到一个目录组,则计算机要在其高速缓冲存储器中查找在路径名中最长前缀的映射。然后,计算机访问管理该最长前缀中的最后一个目录的目录组,以确定能尽可能多地管理其余路径名和它们的委托证书的那些目录组。访问目录组以及获取委托证书的过程继续进行到适当的映射被找到为止。
例如,假设计算机要求访问的文件,名叫”foo2.txt”,其路径名为/A/B/C/D/foo2.txt,计算机在其本地高速缓冲存储器内含有路径名对目录组404的映射但没有对目录组406的映射。计算机察看路径名并在其高速缓冲存储器中查找到路径名中的最长前缀的映射(/A/B/C),然后访问负责管理那个目录的目录组,即目录组404。计算机查询目录组404的成员,以便找到针对路径名/A/B/C/D/foo2.txt的相关子树的委托证书,它是针对目录组406的委托证书。目录组404的成员把这个委托证书返回给查询的计算机,后者可以验证委托证书(例如,基于进行签名的计算机的公共密钥会)。被接收的委托证书识别负责管理目录/D的目录组,  因而计算机知道去访问那个目录组以便确定文件”foo2.txt”位于何处。因此,虽然作出访问哪一部计算机以确定文件foo2.txt的位置的确定涉及访问目录组404的一个成员,但是作出此确定不需要访问目录组402的一个成员。
图6是一份流程图,它说明一个示例性的过程600,用于查找负责管理特定路径名的目录组。过程600的执行是通过图2的希望访问被查找的路径名的计算机的目录组查找模块222而实现的。开始,到目录组的映射的本地高速缓冲存储器被访问(步骤602),然后路径名中的最长前缀的映射在高速缓冲存储器内被找到(步骤604)。然后,基于整个路径名是否都已被映射,来决定过程是否继续进行下去(步骤606)。如果整个路径名都已被映射,那么路径名查找过程就完成了(步骤608)。然而,如果整个路径名未被映射,那么从管理路径名中最后一个映射的前缀的目录组成员那里获得相关子树的委托证书(步骤610)。接着,收到的委托证书被验证(步骤612)。如果委托证书没有正确验证,或不能获得,那么过程返回到步骤610,然后选择不同的目录组成员进行询问。只要管理最后映射的前缀的组中至少有一个能正确地起作用的目录组成员在线,这个过程最后将是成功的。如果管理最后映射的前缀的组中没有一个能正确地起作用的目录组成员存在,那么过程就寻找一个依然是有效的较短的前缀,不然可返回到名称空间根。一旦委托证书链通过验证,来自委托证书的路径名映射信息就被添加到本地高速缓冲存储器(步骤614)。然后过程返回到步骤606,现在的最长前缀为先前的最长前缀与新的相关的子树信息连成一串(例如,若路径名是/A/B/C/D/E/F,先前的最长前缀是/A/B,新的相关的子树是/C/D,则新的最长前缀应是/A/B/C/D)。然后,步骤606,610,612,和614被重复执行,直至整个路径名被映射为止。通过将不同目录的管理分开到不同的目录组中去,管理责任就被分散到多部不同的计算机那里。这就减轻了特定的计算机,尤其是那些处于名称空间根处和最靠近它的目录组中的计算机,的管理负担。例如,一个特定的路径名不需要从根节点开始进行语法分析,而更合适地可以经由本地高速缓冲存储器半途从路径名中检出。
目录和文件的复制与存储
图1的分布式文件系统150以不同方式来管理目录条目的存储和对应于这些条目的文件的存储。存储在系统150的文件被复制,并且被保存到系统150里面的多部不同的计算机之中。此外,文件的目录条目被产生,然后也被保存到系统150里面的多部不同的计算机之中,它们是拜占廷容错组的一部分。保存目录条目的计算机比保存文件的计算机多,详细讨论如下。
这里所描述的对于文件的和目录条目的存储的不同处理可以跟上面讨论过的分层存储结构结合使用。然而,这里所描述的对于文件和目录条目的存储的不同处理也可以在不采用分层存储结构的系统中使用。
拜占廷容错组是这样的一组计算机,它们可以用于存储信息和/或执行其他动作,即使这些计算机中有一定数量的成员是出错的(被损坏的或以其它方式不可用)。计算机可能受到各种不同方式的损坏,如,恶意的用户操作计算机,恶意的程序运行在计算机上,等。从被损坏的计算机中可以观察到任何类型的行为,例如,拒绝响应请求,有意地用不正确的或垃圾信息来响应请求,等。尽管有这样受损坏的计算机存在,拜占廷容错组仍然能够准确地存储信息和/或执行其他动作。拜占廷容错组已为专业人士所熟知,因此,除了跟本发明有关的部分以外,将不作进一步的讨论。
为专业人士所熟知的是,对于某些类型的计算来说,为了实现在尽管有f台计算机出错的情况下仍能正确地进行操作(出错的计算机或许是受到损坏,或是以其它方式不可用,例如断电),拜占廷容错组至少应当包括3f+1部计算机。在分布式文件系统150中,目录条目被存储在拜占廷容错组的3f+1部计算机上,而文件本身则存储在f+1部计算机上(可能是与存放目录条目的计算机相同的一部或多部计算机)。
图7说明在无服务器的分布式文件系统中文件和相应的目录条目的示例性的存储。文件系统700(举例来说,图1的无服务器的分布式文件系统150)包括12部计算机702,704,706,708,710,712,714,716,718,720,722,和724。假设,系统700的设计者希望能够容许两部计算机出错,那么拜占廷容错组至少应包括7(即3*2+1)部计算机。拜占廷容错组726被说明为包括计算机702-714。
当准备将文件728存储到文件系统700之中时,计算机就将相应的目录条目730存储到适当的目录组(负责管理在其中存储了文件的目录的目录组,以文件728的路径名为基础)。目录条目730的目录组(在图7中)是拜占廷容错组726,因此目录条目730被存储在拜占廷容错组726中的每一部正确运行的计算机702-714上。这样,目录条目730被存储在多达7台的不同的计算机上。另一方面,文件728被复制并存储在3部计算机(计算机716,720,和724)中的每一部之中。如说明的那样,存储文件728的计算机不需要是,并且典型地不是拜占廷容错组726的成员(虽然,可选地,存有文件728的一部或多部计算机可能是处于拜占廷容错组726里面的)。
每个目录条目包括相应的文件的名称,文件存储于其中的计算机的标识,和文件验证数据,这个数据允许文件的内容被验证为对应于目录条目。文件验证数据可以采取各种不同的形式,并且在一种实施方案中,是一个散列值,它是通过向该文件应用程序加密的安全散列函数而产生的,后者例如:MD5(消息汇编5),SHA-1(保密的散列算法-1),等等。当从存储器中检索文件时,进行检索的计算机可以再生该散列值,并将它跟目录条目中的散列值进行比较,以验证计算机是否接收了正确的文件。在另一个实施方案中,文件验证数据是下列各项的组合:文件的标识号码(举例来说,文件的一个唯一的标识符),文件版本号码,其签名在文件上的用户的名称。
图8是一份流程图,说明在无服务器的分布式文件系统中存储文件的示例性的过程。开始,在客户计算装置上接收到一项新文件存储请求(步骤802)。客户机对文件和文件名进行加密,并生成文件内容散列值(步骤804)。客户机把已加密的文件名和文件内容散列值,连同一项创建目录条目的请求一起,送往适当的拜占廷容错目录组(步骤806)。该目录组对该项请求进行验证(步骤808),例如,通过验证这个文件名称是否与现有的名称相冲突,以及该客户是否被允许去做他所要做的事情。如果该项请求未被批准,那么该项请求宣告失效(步骤810)。然而,如果请求被批准,那么目录组就产生针对这个新文件的目录条目(步骤812)。目录组也确定新文件的复本组,并把复本组添加到新产生的目录条目(步骤814)。文件的复本也被产生(步骤816),并且被保存到文件系统150的多部计算机之中(步骤818)。
通过把目录条目存入拜占廷容错组内并且在条目中包括文件验证数据,容错功能将得以保持(容许f部失效的计算机)。然而,通过将文件跟目录分开存储,并且不使用拜占廷操作去访问它们,降低了对存储空间的需求和减少拜占廷操作。例如,目录条目可能处于百字节的量级上,但是文件本身可能是处于数千甚至数十亿字节的量级上。
目录和文件加锁机制
在图1的分布式文件系统150中,每一个对象(例如,目录和文件)都有一组出租的锁与之相关。这些锁被用来,基于一个应用程序希望执行的操作类型,确定该应用程序是否可打开一个目录或文件以执行该项操作。一个锁可以被视为在一个特定时长内的租借,该时长取决于锁的类型以及竞争的水平。例如,一个写锁的时长可以是几分钟,而一个读锁的时长可以长达几天。当一项应用程序希望对一个对象执行一项或多项操作时,执行该项应用程序的客户计算机察看它是否有所需的锁去执行操作。若没有,则它向负责管理该对象的目录组请求适当的锁。一旦该项应用程序完成了对所需操作的执行,它就能可选地释放它所得到的锁,或者保存它,直到它自动地过期,或者由实施管理的目录组把它解除。
对一个特定的目录来说,实现该目录的拜占廷容错组控制用于下列各项的锁:目录中的所有文件;目录中任何子目录的名称;以及对目录本身的删除权限。加锁机制尝试向提出请求的客户计算机授予对适当的文件和目录的宽范围的(粗的个粒度)锁,使得该客户计算机能通过获得一个单独的拜占廷锁来处理许多读出和/或更新,而不需要多个拜占廷消息用于锁的获取。
在所示的实例中,加锁机制使用十种不同的锁:读、写、打开读、打开写、打开删除、非共享读、非共享写、非共享删除、插入和排他。读和写锁被用来控制对对象中数据(例如,文件的内容)的访问。打开读、打开写、打开删除、非共享读、非共享写和非共享删除等各锁被用来控制各对象的打开。插入锁和排他锁是专用的锁。下面将详细地讨论这10种锁。取决于一项应用程序需要执行的操作,由该应用程序去请求其中适当的锁。
读锁。一项应用程序请求读锁,以使该项应用程序能读出相关的文件。读锁,与写锁相结合,允许目录组保持文件中的数据的一致性。
写锁。一项应用程序请求写锁,以使该项应用程序能写入(也称为更新)相关的文件。写锁,与读锁相结合,允许目录组保持文件中的数据的一致性。
当一项应用程序需要打开一个对象时,目录组执行两项检查:(1)该项应用程序正在请求的模式是否跟已经打开该对象的另一项应用程序发生冲突;以及(2)该项应用程序希望为其共享对象的操作是否跟另一项应用程序已经为其打开该对象并且表明希望为其共享该对象的操作发生冲突。10种锁中的6种被安排支持此项检查,它们是:打开读、打开写、打开删除、打开非共享读、打开非共享写和打开非共享删除。这些锁被用来授予一项应用程序以打开一个对象的能力,但是不一定保证能获得针对该对象的数据(获得读锁或写锁(取决于该项应用程序希望执行的操作的类型)以访问数据)。
打开读锁。一项应用程序请求打开读锁,以允许该项应用程序去打开相关的对象以便进行读出。
打开写锁。一项应用程序请求打开写锁,以允许该项应用程序去打开相关的对象以便进行写入。
打开删除锁。一项应用程序请求打开删除锁,以允许该项应用程序去打开相关的对象以便进行删除。
打开 非共享读锁。当一项应用程序不希望跟任何其他应用程序一起共享读取对象的能力时,由该项应用程序请求打开非共享读锁。
打开 非共享写锁。当一项应用程序不希望跟任何其他应用程序一起共享写入对象的能力时,由该项应用程序请求打开非共享写锁。
打开 非共享删除锁。当一项应用程序不希望跟任何其他应用程序一起共享删除对象的能力时,由该项应用程序请求打开非共享删除锁。
被支持的其他两种锁是插入锁和排他锁。
插入锁。由一项应用程序请求插入锁,以便为目录中的一个对象生成一个特定的名称。授予插入锁许可应用程序生成具有特定名称的对象。插入锁跟具有相同对象名的另一插入锁,以及跟目录中的排他锁发生冲突。
排他锁。由一项应用程序请求排他锁,以获得前面讨论的所有9种锁,包括在目录中可能存在(但不是已经存在)的每一个可能的名称上的插入锁。在目录上的排他锁并不意味着对在该目录中的各文件或各子目录的排他锁,而是仅限于在该目录的名称空间上。排他锁跟前面讨论的9种锁中的每一种都发生冲突。
在各种不同锁之间存在各种冲突。表I是一个冲突矩阵,它表示在一个示例性的实施方案中,介于各种锁之间的冲突情形。在表I中使用下列的缩写:Ins(插入),Excl(排他),O-R(打开读),O-W(打开写),O-D(打开删除),O-!R(打开非共享读),O-!W(打开非共享写),以及O-!D(打开非共享删除)。表I中的一个单元格中的“X”,表示介于对应的两个锁之间的冲突—例如,打开读跟打开非共享读发生冲突,但跟打开非共享写不发生冲突。
[表I]
  Ins   读   写  Excl  O-R  O-W  O-D  O-!R  O-!W  O-!D
  Ins   X   X   X   X
  读   X   X   X
  写   X   X   X   X
  Excl   X   X   X   X   X   X   X   X   X   X
  O-R   X   X
  O-W   X   X
  O-D   X   X
  O-!R   X   X
  O-!W   X   X
  O-!D   X   X
图9是一份流程图,表示确定是否允许打开一个特定对象的示例性过程。通过负责管理该特定对象的目录组来实现图9的过程。在图9的过程中,假定请求打开特定对象的客户机没有所需的锁使他能随意地打开该对象。开始,接收到一项关于用已标识的特定锁去访问一个对象的请求(步骤902)。目录组进行检查,以确定已选定的锁所表示的模式是否跟已经授予一个不同客户的锁发生冲突(步骤904)。例如,若该项请求是打开一个对象以供读出的请求,而另一项应用程序已经用非共享读锁打开该对象,则已选定的锁所表示的模式(打开读)跟已经打开该对象的另一项应用程序发生冲突。由于目录组只知道它是否已向一个客户机发出了一个冲突的锁,但是不能肯定该客户当前是否用这个锁来允许一项应用程序去访问一个对象,在某些情况下,在步骤904中进行检查要求让当前持有一个锁的客户放弃该锁。
若在步骤904中的检查确认没有冲突,则授予所请求的锁,允许该项应用程序用已选定的锁去打开文件(步骤906),这样,在步骤902中的请求被答应。然后,这些锁已经被授予的事实以及其被授予到的客户机被存入目录组(步骤908),使得它们可以被用来确定后继的请求是否有冲突,并且在必要时可以被用来尝试进行锁的解除。
然而,若在步骤904中的检查确认有冲突,则向持有有冲突的锁的客户机发出请求,要求归还这些锁(步骤910)。然后进行一项检查,以确定是否所有要求归还的锁都已被归还(步骤912)。若所要求的锁都已被归还,则授予所请求的锁,以便允许该项应用程序用已选定的锁去打开文件(步骤906),并且这些锁被记录(步骤908)。另一方面,若并非所有被要求的锁都归还,则目录组拒绝打开的请求(步骤914)。
当只有一部客户计算机访问名称空间的某些区域时,为了改进性能,在假定该项应用程序(或客户机)可能在近期请求附加的有关的锁的情况下,文件系统150可以在比执行客户请求的一项应用程序更宽的范围内发出锁。例如,若一项应用程序打开文件/A/B/C/foo.txt,则该客户机请求一个用于这个文件的锁。若目录组授予该锁,则它可以将这个锁升级为在/A/B/C上的一个目录锁(例如,基于以往的性能,目录组确定在目录上发生冲突的情形是罕见的)。若该项应用程序随即打开在同一目录下的另一个文件,则客户机不必向目录组请求另一个锁,就能打开该文件。
若一个客户机对锁的请求跟一个已授予另一个客户机的锁发生冲突,则在步骤910,目录组可以尝试将早先发出的锁进行降级,使之不跟新的请求发生冲突(例如,不像在步骤914那样,拒绝该项请求)。由于锁的降级导致各客户机持有他们不曾请求的锁,所以锁的降级典型地具有很大的成功的可能性。若锁的解除失败,则拒绝该项请求。
在文件系统中,可以对各对象进行各种操作。下面的表II说明几种更普通的操作,以及为了执行该项操作,一项应用程序要请求什么样的锁。
[表II]
操作                     说明
读出对象 请求读出一个目录或文件。需要一个打开读锁用于该对象,其后跟随一个读锁.可选地,必要时,该项应用程序可以请求任何一种打开非共享锁。
写入/更新对象 请求写入一个文件。需要一个打开写锁用于该对象,其后跟随一个写锁。可选地,必要时,该项应用程序可以请求任何一种打开非共享锁。
删除文件 请求删除目录中的一个文件。需要打开删除和写锁。通常,该项应用程序也将请求所有的打开非共享锁。
删除目录 请求删除一个目录。需要一个排他锁,用于该目录。仅当目录为空时才能删除。
重命名目录 请求对一个目录进行重命名。需要在父目录(被重命名的目录对它来说是子目录)上使用排他锁,以及一个插入锁用于在目标目录中的新目录名。若重命名是跨目录的,则需要插入锁用于新的父目录。
重命名文件 请求对目录中的一个文件进行重命名。需要对该文件使用一个写锁,以及一个插入锁用于在该目录中的新名称(若重命名是跨目录的,则它可以是一个不同的目录)。
创建对象 请求创建一个新文件或目录。需要一个插入锁,用于新名称。
对一个文件作出的任何修改均由计算机在本地进行,并且随后该文件(在被加密以后)被送回负责管理该文件的目录组。此项信息被存储到在该目录组中的各计算机,并且已更新的文件被存储到适当的计算机中去。
结论
虽然在以上的说明中使用了专用于结构特征和/或方法学动作的语言,但是,应当理解,在所附的权利要求书中所规定的本发明并不局限于已说明的专门特征或动作。各项专门特征或动作被公开为实施本发明的示例性形式。

Claims (19)

1.一种用于管理具有多个计算机的无服务器分布式文件系统的方法,本方法包括:
使用所述多个计算机的计算机拜占廷组来存储文件系统的目录信息;以及
不使用所述多个计算机的计算机拜占廷组,存储文件系统的目录中的文件。
2.根据权利要求1所述方法,还包括:将文件的复本保存到所述多个计算机中比存在于计算机拜占廷组内的计算机数量少的计算机中。
3.根据权利要求1所述方法,其中文件系统的每个目录都包括对应于一个或多个文件的一个或多个目录条目,并且其中每个目录条目都包括:
文件的标识;
存有文件复本的多个计算机中的特定计算机的标识;以及
文件验证数据。
4.根据权利要求3所述方法,其中文件验证数据包括通过向文件施加采取密码方式的安全散列函数来产生的散列值。
5.根据权利要求3所述方法,其中文件验证数据包括文件标识号码,文件版本号码,以及在文件上签名的用户的名称。
6.根据权利要求1所述方法,其中使用分层名称空间来管理文件系统的目录。
7.根据权利要求1所述方法,其中在无服务器的分布式文件系统中的多个计算机中的每个不需要信任多个计算机中的其他计算机。
8.一个无服务器的分布式文件系统,包括:
多个计算机;
多个计算机中的第1组,用以为文件系统存储目录信息,其中第1组中的每个计算机都是拜占廷组的一部分;以及
多个计算机中的第2组,用以在文件系统中存储文件的复本,其中对于被存储在文件系统中的每一个文件,在第2组计算机上存储该文件的多个复本,并且其中复本的数量少于在拜占廷组中的计算机的数量。
9.根据权利要求8所述的无服务器的分布式文件系统,其中多个计算机中的一个或多个同时处于第1组和第2组之中。
10.根据权利要求8所述的无服务器的分布式文件系统,其中目录信息包括多个目录条目,并且其中在第1组计算机中的每一个目录条目都包含一个指示,指示对应于该目录条目的文件的拷贝所在的第2组中的每个计算机。
11.根据权利要求8所述的无服务器的分布式文件系统,其中复本都包括被存储的文件的已加密版本。
12.一种方法,包括:
产生对应于待存储到无服务器的分布式文件系统之中的文件的目录条目;
将该目录条目存储到作为拜占廷容错组的一部分的无服务器分布式文件系统的第1组多个计算机中的每一个,以及
将文件保存到无服务器分布式文件系统的第2组多个计算机中的每一个,其中第2组多个计算机少于第1组多个计算机,并且其中第2组多个计算机中的至少一个不是拜占廷容错组的一部分。
13.根据权利要求12所述的方法,还包括:
在将文件保存到第2组多个计算机中的每一个之前,以加密形式接收该文件。
14.根据权利要求12所述的方法,还包括:
在产生目录条目之前,接收该文件的已加密的文件名。
15.根据权利要求12所述的方法,其中第2组多个计算机中的至少一个是拜占廷容错组的一部分。
16.在无服务器的分布式文件系统的计算装置上实施的一种方法,本方法包括:
检查在本地高速缓冲存储器中的路径名对拜占廷容错目录组的映射,以确定针对所需路径名的最长前缀的映射;以及
若使用该本地高速缓冲存储器将整个路径名都映射到无服务器分布式文件系统的拜占廷容错目录组,则访问拜占廷容错目录组的成员,以确定从何处找到对应于该路径名的文件,否则,重复执行下列动作,直到整个路径名都被映射到拜占廷容错目录组为止,
从对应于所需路径名的最长前缀的拜占廷容错目录组的成员获得针对来自最长前缀的相关子树的映射,以及
若没有使用来自最长前缀的相关子树将整个路径名映射到拜占廷容错目录组,则重复进行该获得步骤,其中最长前缀有相关子树与之相连。
17.根据权利要求16所述的方法,其中通过由该拜占廷容错目录组的一个或多个成员进行数字签名的委托证书,从该拜占廷容错目录组的成员获得映射。
18.根据权利要求16所述的方法,还包括将针对相关子树的映射添加到本地高速缓冲存储器之中。
19.根据权利要求16所述的方法,其中最长前缀除包括名称空间根以外还包括一个或多个目录。
CNB021078505A 2001-03-26 2002-03-22 无服务器的分布式文件系统 Expired - Fee Related CN1322449C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US27890501P 2001-03-26 2001-03-26
US60/278,905 2001-03-26
US10/005,629 2001-12-05
US10/005,629 US7062490B2 (en) 2001-03-26 2001-12-05 Serverless distributed file system

Publications (2)

Publication Number Publication Date
CN1379339A CN1379339A (zh) 2002-11-13
CN1322449C true CN1322449C (zh) 2007-06-20

Family

ID=26674567

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021078505A Expired - Fee Related CN1322449C (zh) 2001-03-26 2002-03-22 无服务器的分布式文件系统

Country Status (7)

Country Link
US (4) US7062490B2 (zh)
EP (3) EP2085884B1 (zh)
JP (1) JP4263421B2 (zh)
CN (1) CN1322449C (zh)
AT (3) ATE468561T1 (zh)
DE (3) DE60232424D1 (zh)
HK (1) HK1050065B (zh)

Families Citing this family (372)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6158010A (en) * 1998-10-28 2000-12-05 Crosslogix, Inc. System and method for maintaining security in a distributed computer network
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US20060143250A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143252A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173848A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) * 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143714A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155731A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US7765580B2 (en) * 2000-12-22 2010-07-27 Entrust, Inc. Method and apparatus for providing user authentication using a back channel
US6625604B2 (en) * 2001-03-09 2003-09-23 Hewlett-Packard Development Company, L.P. Namespace service in a distributed file system using a database management system
US20030217333A1 (en) * 2001-04-16 2003-11-20 Greg Smith System and method for rules-based web scenarios and campaigns
US7761449B2 (en) * 2001-08-09 2010-07-20 Hewlett-Packard Development Company, L.P. Self-disentangling data storage technique
US6687701B2 (en) * 2001-09-25 2004-02-03 Hewlett-Packard Development Company, L.P. Namespace management in a distributed file system
WO2003036500A1 (en) * 2001-10-24 2003-05-01 Bea Systems, Inc. System and method for application flow integration in a portal framework
US7661134B2 (en) * 2001-12-21 2010-02-09 Cybersoft, Inc. Apparatus, methods and articles of manufacture for securing computer networks
US7143113B2 (en) * 2001-12-21 2006-11-28 Cybersoft, Inc. Apparatus, methods and articles of manufacture for securing and maintaining computer systems and storage media
US7409396B2 (en) * 2002-02-08 2008-08-05 Pitts William M Method for creating an extensible content distribution framework
US20030182559A1 (en) * 2002-03-22 2003-09-25 Ian Curry Secure communication apparatus and method for facilitating recipient and sender activity delegation
US20040030731A1 (en) * 2002-04-03 2004-02-12 Liviu Iftode System and method for accessing files in a network
WO2003093964A1 (en) * 2002-05-01 2003-11-13 Bea Systems, Inc. Enterprise application platform
US7725560B2 (en) 2002-05-01 2010-05-25 Bea Systems Inc. Web service-enabled portlet wizard
US8028077B1 (en) * 2002-07-12 2011-09-27 Apple Inc. Managing distributed computers
US8239917B2 (en) * 2002-10-16 2012-08-07 Enterprise Information Management, Inc. Systems and methods for enterprise security with collaborative peer to peer architecture
US7840806B2 (en) * 2002-10-16 2010-11-23 Enterprise Information Management, Inc. System and method of non-centralized zero knowledge authentication for a computer network
US7428751B2 (en) 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
US7290105B1 (en) * 2002-12-16 2007-10-30 Cisco Technology, Inc. Zero overhead resource locks with attributes
WO2004055675A1 (ja) * 2002-12-18 2004-07-01 Fujitsu Limited ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム
US7181701B2 (en) * 2003-01-03 2007-02-20 Microsoft Corporation Glanceable information system and method
US7792121B2 (en) * 2003-01-03 2010-09-07 Microsoft Corporation Frame protocol and scheduling system
US6917975B2 (en) * 2003-02-14 2005-07-12 Bea Systems, Inc. Method for role and resource policy management
US7653930B2 (en) * 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7591000B2 (en) 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US8831966B2 (en) 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7865536B1 (en) 2003-02-14 2011-01-04 Google Inc. Garbage collecting systems and methods
US7222119B1 (en) * 2003-02-14 2007-05-22 Google Inc. Namespace locking scheme
US7483904B2 (en) * 2003-02-20 2009-01-27 Bea Systems, Inc. Virtual repository content model
US7840614B2 (en) 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US7293286B2 (en) 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US20040230917A1 (en) * 2003-02-28 2004-11-18 Bales Christopher E. Systems and methods for navigating a graphical hierarchy
US20040230557A1 (en) * 2003-02-28 2004-11-18 Bales Christopher E. Systems and methods for context-sensitive editing
US7810036B2 (en) 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7627552B2 (en) 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7769794B2 (en) 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7712034B2 (en) 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US7421438B2 (en) 2004-04-29 2008-09-02 Microsoft Corporation Metadata editing control
US7240292B2 (en) 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7827561B2 (en) 2003-03-26 2010-11-02 Microsoft Corporation System and method for public consumption of communication events between arbitrary processes
US7890960B2 (en) 2003-03-26 2011-02-15 Microsoft Corporation Extensible user context system for delivery of notifications
US7499925B2 (en) * 2003-03-27 2009-03-03 Microsoft Corporation File system for displaying items of different types and from different physical locations
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US7925682B2 (en) 2003-03-27 2011-04-12 Microsoft Corporation System and method utilizing virtual folders
US7424671B2 (en) * 2003-05-16 2008-09-09 Justsystems Canada Inc. Methods and systems for enabling collaborative authoring of hierarchical documents
US7716187B2 (en) * 2003-05-21 2010-05-11 Microsoft Corporation System and method for transparent storage reorganization
JP2005032130A (ja) * 2003-07-10 2005-02-03 Sony Corp データ管理装置、およびデータ管理方法、並びにコンピュータ・プログラム
US7010657B2 (en) * 2003-07-21 2006-03-07 Motorola, Inc. Avoiding deadlock between storage assignments by devices in a network
US20050081055A1 (en) * 2003-10-10 2005-04-14 Bea Systems, Inc. Dynamically configurable distributed security system
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US7181463B2 (en) * 2003-10-24 2007-02-20 Microsoft Corporation System and method for managing data using static lists
US8818950B2 (en) * 2004-01-22 2014-08-26 Symantec Corporation Method and apparatus for localized protected imaging of a file system
US20050188295A1 (en) * 2004-02-25 2005-08-25 Loren Konkus Systems and methods for an extensible administration tool
US7774601B2 (en) 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US7236990B2 (en) 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for information lifecycle workflow integration
US7236989B2 (en) 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for providing lifecycles for custom content in a virtual content repository
US7236975B2 (en) * 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for controlling access to anode in a virtual content repository that integrates a plurality of content repositories
US7246138B2 (en) 2004-04-13 2007-07-17 Bea Systems, Inc. System and method for content lifecycles in a virtual content repository that integrates a plurality of content repositories
US7213103B2 (en) 2004-04-22 2007-05-01 Apple Inc. Accessing data storage systems without waiting for read errors
US7657846B2 (en) 2004-04-23 2010-02-02 Microsoft Corporation System and method for displaying stack icons
US7694236B2 (en) 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US7992103B2 (en) 2004-04-26 2011-08-02 Microsoft Corporation Scaling icons for representing files
US8707209B2 (en) 2004-04-29 2014-04-22 Microsoft Corporation Save preview representation of files being created
US7496583B2 (en) * 2004-04-30 2009-02-24 Microsoft Corporation Property tree for metadata navigation and assignment
US8108430B2 (en) 2004-04-30 2012-01-31 Microsoft Corporation Carousel control for metadata navigation and assignment
JP4570626B2 (ja) * 2004-05-03 2010-10-27 リサーチ イン モーション リミテッド 再生可能なセッションキーを生成するためのシステムおよび方法
DE602004020276D1 (de) * 2004-05-04 2009-05-07 Research In Motion Ltd Anfrage-antwort-system und -verfahren
WO2005114483A2 (en) * 2004-05-21 2005-12-01 Computer Associates Think, Inc. Method and apparatus for enhancing directory performance
US20050278552A1 (en) * 2004-06-14 2005-12-15 Vincent Delisle Secure virtual account
US7661135B2 (en) * 2004-08-10 2010-02-09 International Business Machines Corporation Apparatus, system, and method for gathering trace data indicative of resource activity
US7546601B2 (en) * 2004-08-10 2009-06-09 International Business Machines Corporation Apparatus, system, and method for automatically discovering and grouping resources used by a business process
US20060036579A1 (en) * 2004-08-10 2006-02-16 Byrd Stephen A Apparatus, system, and method for associating resources using a time based algorithm
US7630955B2 (en) * 2004-08-10 2009-12-08 International Business Machines Corporation Apparatus, system, and method for analyzing the association of a resource to a business process
US20060059118A1 (en) * 2004-08-10 2006-03-16 Byrd Stephen A Apparatus, system, and method for associating resources using a behavior based algorithm
US20060036602A1 (en) * 2004-08-13 2006-02-16 Unangst Marc J Distributed object-based storage system that stores virtualization maps in object attributes
US7783670B2 (en) * 2004-11-18 2010-08-24 Bea Systems, Inc. Client server conversion for representing hierarchical data structures
US20060129589A1 (en) * 2004-12-10 2006-06-15 Micro Electronics, Inc. System and method of securing computer-readable media
US7783664B2 (en) * 2004-12-17 2010-08-24 Microsoft Corporation Method and system for protecting the consistency of information in a distributed file system
US7383503B2 (en) * 2005-02-23 2008-06-03 Microsoft Corporation Filtering a collection of items
US8490015B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Task dialog and programming interface for same
US20060236253A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Dialog user interfaces for related tasks and programming interface for same
US8195646B2 (en) 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US8522154B2 (en) 2005-04-22 2013-08-27 Microsoft Corporation Scenario specialization of file browser
WO2006127596A2 (en) * 2005-05-20 2006-11-30 Hillcrest Laboratories, Inc. Dynamic hyperlinking approach
US8495015B2 (en) 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US7665028B2 (en) 2005-07-13 2010-02-16 Microsoft Corporation Rich drag drop user interface
CA2618135C (en) * 2005-08-09 2014-10-28 Nexsan Technologies Canada Inc. Data archiving system
WO2007024970A2 (en) * 2005-08-22 2007-03-01 The State Of Oregon Acting By And Through The State Board Of Higher Security protocols for hybrid peer-to-peer file sharing networks
US8666957B2 (en) * 2005-08-29 2014-03-04 Hewlett-Packard Development Company, L.P. Method or apparatus for locking shared data
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US20070260609A1 (en) * 2005-11-28 2007-11-08 Akhil Tulyani System and method for high throughput with remote storage servers
TWI301021B (en) * 2005-12-27 2008-09-11 Ind Tech Res Inst File distribution and access system and method for file management
US7650514B2 (en) 2005-12-30 2010-01-19 Microsoft Corporation Scalable leases
US7574457B2 (en) * 2006-01-13 2009-08-11 Microsoft Corporation Non-mutating tree-structured file identifiers
US8103642B2 (en) * 2006-02-03 2012-01-24 Oracle International Corporation Adaptive region locking
US7797670B2 (en) * 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
JP4912026B2 (ja) * 2006-04-27 2012-04-04 キヤノン株式会社 情報処理装置、情報処理方法
US8051043B2 (en) 2006-05-05 2011-11-01 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US9250972B2 (en) * 2006-06-19 2016-02-02 International Business Machines Corporation Orchestrated peer-to-peer server provisioning
US20070299864A1 (en) * 2006-06-24 2007-12-27 Mark Strachan Object storage subsystem computer program
US20080010246A1 (en) * 2006-07-06 2008-01-10 Curtis Bryce A System and method for providing operating system component version verification
GB0613930D0 (en) * 2006-07-13 2006-08-23 Irvine David Perpetual data
US7860826B2 (en) 2006-08-04 2010-12-28 Apple Inc. Method and system for using global equivalency sets to identify data during peer-to-peer synchronization
US7689547B2 (en) * 2006-09-06 2010-03-30 Microsoft Corporation Encrypted data search
US20080065704A1 (en) * 2006-09-12 2008-03-13 Microsoft Corporation Data and replica placement using r-out-of-k hash functions
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
CA2668076A1 (en) * 2006-10-31 2008-05-08 Rebit, Inc. System for automatically shadowing data and file directory structures for a plurality of network-connected computers using a network-atached memory
US8266105B2 (en) * 2006-10-31 2012-09-11 Rebit, Inc. System for automatically replicating a customer's personalized computer system image on a new computer system
US20080104146A1 (en) * 2006-10-31 2008-05-01 Rebit, Inc. System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage
US8126851B2 (en) * 2006-10-31 2012-02-28 Rebit, Inc. System for automatically recovering a computer memory using shadowed data and file directory structures
WO2008065348A2 (en) * 2006-12-01 2008-06-05 David Irvine Perpetual data
GB2446170A (en) * 2006-12-01 2008-08-06 David Irvine Shared access to private files in a distributed network
GB2444344A (en) * 2006-12-01 2008-06-04 David Irvine File storage and recovery in a Peer to Peer network
WO2008065347A2 (en) * 2006-12-01 2008-06-05 David Irvine Mssan
US7657769B2 (en) 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
FR2912520B1 (fr) * 2007-02-13 2009-05-15 Stg Interactive Sa Procede de gestion de fichiers.
US8885832B2 (en) 2007-03-30 2014-11-11 Ricoh Company, Ltd. Secure peer-to-peer distribution of an updatable keyring
US8046328B2 (en) 2007-03-30 2011-10-25 Ricoh Company, Ltd. Secure pre-caching through local superdistribution and key exchange
US20080307446A1 (en) * 2007-06-08 2008-12-11 Microsoft Corporation Interoperable Managed and Unmanaged Code in a Document Environment
US7941411B2 (en) * 2007-06-29 2011-05-10 Microsoft Corporation Memory transaction grouping
US8156164B2 (en) 2007-07-11 2012-04-10 International Business Machines Corporation Concurrent directory update in a cluster file system
US8887297B2 (en) 2007-07-13 2014-11-11 Microsoft Corporation Creating and validating cryptographically secured documents
US8019727B2 (en) * 2007-09-26 2011-09-13 Symantec Corporation Pull model for file replication at multiple data centers
JP2009128980A (ja) * 2007-11-20 2009-06-11 Hitachi Ltd 通信装置
CN101187930B (zh) * 2007-12-04 2010-06-09 浙江大学 分布式文件系统虚拟目录及命名空间的实现方法
US8438618B2 (en) * 2007-12-21 2013-05-07 Intel Corporation Provisioning active management technology (AMT) in computer systems
US8607311B2 (en) * 2007-12-21 2013-12-10 Microsoft Corporation Delegation in logic-based access control
US8010560B2 (en) * 2007-12-21 2011-08-30 Microsoft Corporation Abducing assertion to support access query
US8588425B1 (en) 2007-12-27 2013-11-19 Emc Corporation Encryption key recovery in the event of storage management failure
US8799681B1 (en) 2007-12-27 2014-08-05 Emc Corporation Redundant array of encrypting disks
US8839344B2 (en) * 2008-01-28 2014-09-16 Microsoft Corporation Access policy analysis
US9830278B1 (en) 2008-03-06 2017-11-28 EMC IP Holding Company LLC Tracking replica data using key management
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
US20090319991A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Managed code type equivalence
US8738580B2 (en) 2008-07-23 2014-05-27 Nvidia Corporation Copying files from one directory to another
US8255430B2 (en) * 2008-08-26 2012-08-28 Caringo, Inc. Shared namespace for storage clusters
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8255373B2 (en) * 2008-10-24 2012-08-28 Microsoft Corporation Atomic multiple modification of data in a distributed storage system
US9996572B2 (en) * 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage
CN101527736A (zh) * 2009-04-09 2009-09-09 中兴通讯股份有限公司 分布式文件系统中业务内容处理、更新方法与装置
US9455992B2 (en) * 2009-06-12 2016-09-27 Microsoft Technology Licensing, Llc Trusted hardware component for distributed systems
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
DK2433226T3 (en) 2009-06-26 2015-11-02 Simplivity Corp File system
US20110022662A1 (en) 2009-07-23 2011-01-27 International Business Machines Corporation Event triggered notifications for collaborative processes
US9063784B2 (en) * 2009-09-03 2015-06-23 International Business Machines Corporation Opening a temporary object handle on a resource object
US8645327B2 (en) * 2009-09-30 2014-02-04 Apple Inc. Management of access to data distributed across multiple computing devices
US9536109B2 (en) * 2009-10-21 2017-01-03 International Business Machines Corporation Method and system for administering a secure data repository
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
US20110213711A1 (en) * 2010-03-01 2011-09-01 Entrust, Inc. Method, system and apparatus for providing transaction verification
JP2011188029A (ja) * 2010-03-04 2011-09-22 Fujitsu Ltd 電子署名装置、電子署名方法及びコンピュータプログラム
JP4995296B2 (ja) * 2010-03-11 2012-08-08 株式会社日立製作所 計算機システムおよびキャッシュ制御方法
US8510552B2 (en) * 2010-04-07 2013-08-13 Apple Inc. System and method for file-level data protection
EP2387200B1 (en) 2010-04-23 2014-02-12 Compuverde AB Distributed data storage
GB2486462B (en) * 2010-12-16 2019-04-24 Maidsafe Found Distributed file system
WO2012094330A1 (en) 2011-01-03 2012-07-12 Planetary Data LLC Community internet drive
US8972747B2 (en) * 2011-01-26 2015-03-03 Hewlett-Packard Development Company, L.P. Managing information in a document serialization
JP2012177962A (ja) * 2011-02-25 2012-09-13 Hitachi Consumer Electronics Co Ltd 光ディスク装置
US9652469B2 (en) 2011-06-04 2017-05-16 Microsoft Technology Licensing, Llc Clustered file service
US8627431B2 (en) 2011-06-04 2014-01-07 Microsoft Corporation Distributed network name
CN102915421B (zh) * 2011-08-04 2013-10-23 腾讯科技(深圳)有限公司 文件的扫描方法及系统
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
US9436699B2 (en) 2011-09-12 2016-09-06 Microsoft Technology Licensing, Llc Techniques for efficient file operations
EP2634991B1 (en) * 2012-02-28 2017-08-02 Alcatel Lucent Content-centric networking
US10191959B1 (en) * 2012-06-20 2019-01-29 Amazon Technologies, Inc. Versioned read-only snapshots of shared state in distributed computing environments
US9280546B2 (en) 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
US9116849B2 (en) * 2013-03-13 2015-08-25 Intel Corporation Community-based de-duplication for encrypted data
EP2976714B1 (en) * 2013-03-20 2017-05-03 NEC Corporation Method and system for byzantine fault tolerant data replication
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
US9935791B2 (en) 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
GB2517913A (en) * 2013-08-30 2015-03-11 Ibm Remote data storage
US9407549B2 (en) 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US9525735B2 (en) * 2013-10-30 2016-12-20 Futurewei Technologies, Inc. Lock elevation in a distributed file storage system
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9401864B2 (en) 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US20150188910A1 (en) * 2013-12-26 2015-07-02 Iswind Digital Engineering Inc. Policy group based file protection system, file protection method thereof, and computer readable medium
US9379979B2 (en) 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9391896B2 (en) 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
US10372685B2 (en) 2014-03-31 2019-08-06 Amazon Technologies, Inc. Scalable file storage service
US9569459B1 (en) 2014-03-31 2017-02-14 Amazon Technologies, Inc. Conditional writes at distributed storage services
US9779015B1 (en) 2014-03-31 2017-10-03 Amazon Technologies, Inc. Oversubscribed storage extents with on-demand page allocation
US9519510B2 (en) 2014-03-31 2016-12-13 Amazon Technologies, Inc. Atomic writes for multiple-extent operations
US9449008B1 (en) 2014-03-31 2016-09-20 Amazon Technologies, Inc. Consistent object renaming in distributed systems
US9602424B1 (en) 2014-03-31 2017-03-21 Amazon Technologies, Inc. Connection balancing using attempt counts at distributed storage systems
US9294558B1 (en) 2014-03-31 2016-03-22 Amazon Technologies, Inc. Connection re-balancing in distributed storage systems
US9772787B2 (en) 2014-03-31 2017-09-26 Amazon Technologies, Inc. File storage using variable stripe sizes
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
US9274710B1 (en) 2014-03-31 2016-03-01 Amazon Technologies, Inc. Offset-based congestion control in storage systems
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US9495478B2 (en) 2014-03-31 2016-11-15 Amazon Technologies, Inc. Namespace management in distributed storage systems
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9390289B2 (en) * 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
JP6545966B2 (ja) 2015-01-27 2019-07-17 ルネサスエレクトロニクス株式会社 中継装置、端末装置および通信方法
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US10108624B1 (en) * 2015-02-04 2018-10-23 Amazon Technologies, Inc. Concurrent directory move operations using ranking rules
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US10346367B1 (en) 2015-04-30 2019-07-09 Amazon Technologies, Inc. Load shedding techniques for distributed services with persistent client connections to ensure quality of service
US9860317B1 (en) 2015-04-30 2018-01-02 Amazon Technologies, Inc. Throughput throttling for distributed file storage services with varying connection characteristics
CN104933144B (zh) * 2015-06-19 2018-03-30 中国科学院计算技术研究所 一种并行网络文件系统中保证数据有效性的系统及其方法
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
WO2017040313A1 (en) * 2015-08-28 2017-03-09 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US9390154B1 (en) 2015-08-28 2016-07-12 Swirlds, Inc. Methods and apparatus for a distributed database within a network
CN110659331B (zh) * 2015-08-28 2021-07-16 斯沃尔德斯股份有限公司 用于网络内的分布式数据库的方法和装置
US9529923B1 (en) 2015-08-28 2016-12-27 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US10747753B2 (en) 2015-08-28 2020-08-18 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
KR101772554B1 (ko) 2016-02-02 2017-08-30 주식회사 코인플러그 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US10235374B2 (en) * 2016-03-08 2019-03-19 International Business Machines Corporation Key-value store for managing user files based on pairs of key-value pairs
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10545927B2 (en) 2016-03-25 2020-01-28 Amazon Technologies, Inc. File system mode switching in a distributed storage service
US10140312B2 (en) 2016-03-25 2018-11-27 Amazon Technologies, Inc. Low latency distributed storage service
US10474636B2 (en) 2016-03-25 2019-11-12 Amazon Technologies, Inc. Block allocation for low latency file systems
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US9646029B1 (en) 2016-06-02 2017-05-09 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10218704B2 (en) 2016-10-06 2019-02-26 Cisco Technology, Inc. Resource access control using named capabilities
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
LT3539026T (lt) 2016-11-10 2022-03-25 Swirlds, Inc. Būdai ir aparatas paskirstytajai duomenų bazei, apimančiai anonimines įvestis
KR101765423B1 (ko) 2016-11-18 2017-08-07 경희대학교 산학협력단 폐기능 검사장치 및 그 방법
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
WO2018118930A1 (en) 2016-12-19 2018-06-28 Swirlds, Inc. Methods and apparatus for a distributed database that enables deletion of events
US10579598B2 (en) 2017-01-03 2020-03-03 International Business Machines Corporation Global namespace for a hierarchical set of file systems
US10579587B2 (en) 2017-01-03 2020-03-03 International Business Machines Corporation Space management for a hierarchical set of file systems
US10649955B2 (en) 2017-01-03 2020-05-12 International Business Machines Corporation Providing unique inodes across multiple file system namespaces
US10592479B2 (en) 2017-01-03 2020-03-17 International Business Machines Corporation Space management for a hierarchical set of file systems
US10585860B2 (en) 2017-01-03 2020-03-10 International Business Machines Corporation Global namespace for a hierarchical set of file systems
US10657102B2 (en) 2017-01-03 2020-05-19 International Business Machines Corporation Storage space management in union mounted file systems
US10540323B2 (en) 2017-05-30 2020-01-21 Western Digital Technologies, Inc. Managing I/O operations in a storage network
US10375037B2 (en) 2017-07-11 2019-08-06 Swirlds, Inc. Methods and apparatus for efficiently implementing a distributed database within a network
US10348487B2 (en) 2017-07-20 2019-07-09 International Business Machines Corporation Game data offloading to a blockchain
CA3076257A1 (en) 2017-11-01 2019-05-09 Swirlds, Inc. Methods and apparatus for efficiently implementing a fast-copyable database
US10671370B2 (en) * 2018-05-30 2020-06-02 Red Hat, Inc. Distributing file system states
KR20220011161A (ko) 2019-05-22 2022-01-27 스월즈, 인크. 분산 데이터베이스에서 상태 증명들 및 원장 식별자들을 구현하기 위한 방법들 및 장치
US11411746B2 (en) * 2019-05-24 2022-08-09 Centrality Investments Limited Systems, methods, and storage media for permissioned delegation in a computing environment
US11088944B2 (en) 2019-06-24 2021-08-10 Amazon Technologies, Inc. Serverless packet processing service with isolated virtual network integration
US11296981B2 (en) * 2019-06-24 2022-04-05 Amazon Technologies, Inc. Serverless packet processing service with configurable exception paths
US11201915B1 (en) 2019-06-28 2021-12-14 Amazon Technologies, Inc. Providing virtual server identity to nodes in a multitenant serverless execution service
CN110515655B (zh) * 2019-08-27 2023-04-18 内蒙古工业大学 一种数据指令分析方法
US11038699B2 (en) 2019-08-29 2021-06-15 Advanced New Technologies Co., Ltd. Method and apparatus for performing multi-party secure computing based-on issuing certificate
US11153195B1 (en) 2020-06-08 2021-10-19 Amazon Techologies, Inc. Packet processing service configuration change propagation management
US11669498B2 (en) 2020-07-24 2023-06-06 EMC IP Holding Company LLC Facilitating exclusive local locks on a distributed file system
US11216316B1 (en) * 2020-07-27 2022-01-04 EMC IP Holding Company LLC Facilitating object deletion based on delete lock contention in distributed file systems
CN113438210B (zh) * 2021-06-04 2023-04-07 上海焜耀网络科技有限公司 一种数据传输处理方法、装置和电子设备
CN114048185B (zh) * 2021-11-18 2022-09-02 北京聚存科技有限公司 一种分布式文件系统中海量小文件透明打包存储与访问的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4644542A (en) * 1984-10-16 1987-02-17 International Business Machines Corporation Fault-tolerant atomic broadcast methods
US5269016A (en) * 1990-09-24 1993-12-07 Charles Stark Draper Laboratory, Inc. Byzantine resilient fault tolerant shared memory data processing system
US5598529A (en) * 1992-04-15 1997-01-28 International Business Machines Corporation Computer system resilient to a wide class of failures

Family Cites Families (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4979188A (en) 1988-04-29 1990-12-18 Motorola, Inc. Spectrally efficient method for communicating an information signal
US6345288B1 (en) 1989-08-31 2002-02-05 Onename Corporation Computer-based communication system and method using metadata defining a control-structure
DE69033120T2 (de) * 1989-09-01 1999-10-21 Amdahl Corp Betriebssystem und Datenbank mit einer aus mehreren Tabellen geformten Zugriffsstruktur
US5202982A (en) 1990-03-27 1993-04-13 Sun Microsystems, Inc. Method and apparatus for the naming of database component files to avoid duplication of files
JP3059467B2 (ja) 1990-07-17 2000-07-04 シャープ株式会社 ファイル管理装置
US5317728A (en) 1990-09-07 1994-05-31 International Business Machines Corporation Storage management of a first file system using a second file system containing surrogate files and catalog management information
US5745902A (en) * 1992-07-06 1998-04-28 Microsoft Corporation Method and system for accessing a file using file names having different file name formats
US5627996A (en) 1992-08-19 1997-05-06 At&T Method and apparatus for accessing the same computer file using different file name formats
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5553235A (en) 1992-10-23 1996-09-03 International Business Machines Corporation System and method for maintaining performance data in a data processing system
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5285497A (en) 1993-04-01 1994-02-08 Scientific Atlanta Methods and apparatus for scrambling and unscrambling compressed data streams
US5371794A (en) * 1993-11-02 1994-12-06 Sun Microsystems, Inc. Method and apparatus for privacy and authentication in wireless networks
US5588147A (en) * 1994-01-14 1996-12-24 Microsoft Corporation Replication facility
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment
US5974141A (en) * 1995-03-31 1999-10-26 Mitsubishi Corporation Data management system
US5564037A (en) * 1995-03-29 1996-10-08 Cheyenne Software International Sales Corp. Real time data migration system and method employing sparse files
EP2270687A2 (en) 1995-04-11 2011-01-05 Kinetech, Inc. Identifying data in a data processing system
US5812776A (en) 1995-06-07 1998-09-22 Open Market, Inc. Method of providing internet pages by mapping telephone number provided by client to URL and returning the same in a redirect command by server
AU6678096A (en) 1995-07-20 1997-02-18 Novell, Inc. Transaction synchronization in a disconnectable computer and network
WO1997010659A1 (fr) * 1995-09-13 1997-03-20 Hitachi, Ltd. Procede et dispositif de compression et de chiffrement de donnees
US5680611A (en) 1995-09-29 1997-10-21 Electronic Data Systems Corporation Duplicate record detection
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US6023506A (en) * 1995-10-26 2000-02-08 Hitachi, Ltd. Data encryption control apparatus and method
US6577734B1 (en) 1995-10-31 2003-06-10 Lucent Technologies Inc. Data encryption key management system
JPH103421A (ja) 1995-11-20 1998-01-06 Matsushita Electric Ind Co Ltd 仮想ファイル管理システム
US5978805A (en) 1996-05-15 1999-11-02 Microcom Systems, Inc. Method and apparatus for synchronizing files
US5915096A (en) * 1996-05-31 1999-06-22 Sun Microsystems, Inc. Network browsing system and method
US5740361A (en) 1996-06-03 1998-04-14 Compuserve Incorporated System for remote pass-phrase authentication
US5901227A (en) * 1996-06-20 1999-05-04 Novell, Inc. Method and apparatus for implementing partial and complete optional key escrow
KR19980024086A (ko) 1996-09-03 1998-07-06 니시무로 타이조 컴퓨터 시스템 및 화일 관리 방법
US5950209A (en) 1996-10-02 1999-09-07 Alcatel Usa Sourcing, L.P. Software release control system and method
US5758359A (en) * 1996-10-24 1998-05-26 Digital Equipment Corporation Method and apparatus for performing retroactive backups in a computer system
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
EP1010076A1 (en) 1996-11-27 2000-06-21 1Vision Software, L.L.C. File directory and file navigation system
US6160552A (en) 1997-01-09 2000-12-12 Sun Microsystems, Inc. Method and apparatus for managing multiple hierarchical lists within a browser
US6317774B1 (en) 1997-01-09 2001-11-13 Microsoft Corporation Providing predictable scheduling of programs using a repeating precomputed schedule
US5950198A (en) 1997-03-24 1999-09-07 Novell, Inc. Processes and apparatuses for generating file correspondency through replication and synchronization between target and source computers
GB9706400D0 (en) 1997-03-27 1997-05-14 British Telecomm Distributed computing
US6122631A (en) * 1997-03-28 2000-09-19 International Business Machines Corporation Dynamic server-managed access control for a distributed file system
US6256675B1 (en) 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
JP3821537B2 (ja) 1997-05-20 2006-09-13 富士通株式会社 データ通信システム
FR2763769B1 (fr) 1997-05-21 1999-07-23 Alsthom Cge Alcatel Procede destine a permettre une communication cryptee directe entre deux terminaux de reseau radiomobile et agencements de station et de terminal correspondants
US5913217A (en) 1997-06-30 1999-06-15 Microsoft Corporation Generating and compressing universally unique identifiers (UUIDs) using counter having high-order bit to low-order bit
JP3657396B2 (ja) * 1997-07-07 2005-06-08 株式会社日立製作所 鍵管理システム、鍵管理装置、情報暗号化装置、情報復号化装置、およびプログラムを記憶した記憶媒体
US5963963A (en) 1997-07-11 1999-10-05 International Business Machines Corporation Parallel file system and buffer management arbitration
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
US5987477A (en) 1997-07-11 1999-11-16 International Business Machines Corporation Parallel file system and method for parallel write sharing
US5960446A (en) 1997-07-11 1999-09-28 International Business Machines Corporation Parallel file system and method with allocation map
US5940841A (en) 1997-07-11 1999-08-17 International Business Machines Corporation Parallel file system with extended file attributes
US6067545A (en) 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
US5968121A (en) 1997-08-13 1999-10-19 Microsoft Corporation Method and apparatus for representing and applying network topological data
US6405315B1 (en) * 1997-09-11 2002-06-11 International Business Machines Corporation Decentralized remotely encrypted file system
US5991414A (en) * 1997-09-12 1999-11-23 International Business Machines Corporation Method and apparatus for the secure distributed storage and retrieval of information
US6493804B1 (en) * 1997-10-01 2002-12-10 Regents Of The University Of Minnesota Global file system and data storage device locks
US6125372A (en) 1997-10-03 2000-09-26 Hewlett-Packard Company Server system and method of updating server software
US6032151A (en) 1997-11-17 2000-02-29 Sun Microsystems, Inc. Database system employing polymorphic entry and entry matching
US6167449A (en) * 1997-11-19 2000-12-26 Apple Computer, Inc. System and method for identifying and locating services on multiple heterogeneous networks using a query by type
AU746743B2 (en) * 1997-11-24 2002-05-02 British Telecommunications Public Limited Company Information management and retrieval
US6208659B1 (en) 1997-12-22 2001-03-27 Nortel Networks Limited Data processing system and method for providing personal information in a communication network
US5953729A (en) * 1997-12-23 1999-09-14 Microsoft Corporation Using sparse file technology to stage data that will then be stored in remote storage
US6260040B1 (en) * 1998-01-05 2001-07-10 International Business Machines Corporation Shared file system for digital content
US6807632B1 (en) * 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US6029168A (en) * 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US6560706B1 (en) 1998-01-26 2003-05-06 Intel Corporation Interface for ensuring system boot image integrity and authenticity
US6185304B1 (en) 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages
US6047283A (en) * 1998-02-26 2000-04-04 Sap Aktiengesellschaft Fast string searching and indexing using a search tree having a plurality of linked nodes
US6173293B1 (en) * 1998-03-13 2001-01-09 Digital Equipment Corporation Scalable distributed file system
US6725373B2 (en) 1998-03-25 2004-04-20 Intel Corporation Method and apparatus for verifying the integrity of digital objects using signed manifests
US6098079A (en) * 1998-04-02 2000-08-01 Mitsubishi Electric Information Technology Center America, Inc. (Ita) File version reconciliation using hash codes
US6311165B1 (en) 1998-04-29 2001-10-30 Ncr Corporation Transaction processing systems
US6145094A (en) * 1998-05-12 2000-11-07 Sun Microsystems, Inc. Transaction locks for high availability
US6263348B1 (en) * 1998-07-01 2001-07-17 Serena Software International, Inc. Method and apparatus for identifying the existence of differences between two files
US6185569B1 (en) * 1998-06-29 2001-02-06 Microsoft Corporation Linked data structure integrity verification system which verifies actual node information with expected node information stored in a table
US6240416B1 (en) * 1998-09-11 2001-05-29 Ambeo, Inc. Distributed metadata system and method
US6510426B1 (en) 1998-09-30 2003-01-21 International Business Machines Corporation Method and apparatus for compacting a metadatas stream in a data processing system
US6356355B1 (en) 1998-09-30 2002-03-12 International Business Machines Corporation Method and apparatus in a data processing system for generating metadata streams with per page data
US6463535B1 (en) 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
AU1105600A (en) 1998-10-07 2000-04-26 Adobe Systems Incorporated Distributing access to a data item
US6324544B1 (en) 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US7065540B2 (en) * 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
US6233606B1 (en) 1998-12-01 2001-05-15 Microsoft Corporation Automatic cache synchronization
US6295538B1 (en) 1998-12-03 2001-09-25 International Business Machines Corporation Method and apparatus for creating metadata streams with embedded device information
US6601171B1 (en) * 1999-02-18 2003-07-29 Novell, Inc. Deputization in a distributed computing system
US6269080B1 (en) * 1999-04-13 2001-07-31 Glenayre Electronics, Inc. Method of multicast file distribution and synchronization
US6370547B1 (en) * 1999-04-21 2002-04-09 Union Oil Company Of California Database correlation method
US7346920B2 (en) 2000-07-07 2008-03-18 Sonic Solutions, A California Corporation System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content
US6546415B1 (en) * 1999-05-14 2003-04-08 Lucent Technologies Inc. Network management system using a distributed namespace
US6516350B1 (en) * 1999-06-17 2003-02-04 International Business Machines Corporation Self-regulated resource management of distributed computer resources
US6556998B1 (en) * 2000-05-04 2003-04-29 Matsushita Electric Industrial Co., Ltd. Real-time distributed file system
US6389433B1 (en) 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
US7152165B1 (en) 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
US6477544B1 (en) 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
US6466978B1 (en) * 1999-07-28 2002-10-15 Matsushita Electric Industrial Co., Ltd. Multimedia file systems using file managers located on clients for managing network attached storage devices
GB2352942B (en) 1999-08-04 2001-10-03 3Com Corp Method and apparatus for fetching sparsely indexed MIB tables in managed network systems
US6976165B1 (en) 1999-09-07 2005-12-13 Emc Corporation System and method for secure storage, transfer and retrieval of content addressable information
US6415372B1 (en) 1999-09-15 2002-07-02 Emc Coropration Rolling back storage subsystem reconfigurations
US7444390B2 (en) * 1999-10-20 2008-10-28 Cdimensions, Inc. Method and apparatus for providing a web-based active virtual file system
US6788769B1 (en) 1999-10-13 2004-09-07 Emediacy, Inc. Internet directory system and method using telephone number based addressing
US7092380B1 (en) 1999-10-22 2006-08-15 Cisco Technology, Inc. Method and system for providing voice communication over data networks
US6990578B1 (en) 1999-10-29 2006-01-24 International Business Machines Corp. Method and apparatus for encrypting electronic messages composed using abbreviated address books
US6748538B1 (en) 1999-11-03 2004-06-08 Intel Corporation Integrity scanner
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
AU7611300A (en) * 1999-11-23 2001-06-04 Microsoft Corporation Content-specific filename systems
JP2001184249A (ja) * 1999-12-27 2001-07-06 Fujitsu Ltd 分散処理システム,共有ファイルシステム操作装置,及び、コンピュータ可読媒体
US6654888B1 (en) * 1999-12-31 2003-11-25 International Business Machines Corporation Installing and controlling trial software
US6996072B1 (en) 2000-01-19 2006-02-07 The Phonepages Of Sweden Ab Method and apparatus for exchange of information in a communication network
US6484186B1 (en) 2000-02-15 2002-11-19 Novell, Inc. Method for backing up consistent versions of open files
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US7412462B2 (en) 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US6993653B1 (en) 2000-02-22 2006-01-31 International Business Machines Corporation Identity vectoring via chained mapping records
US6952737B1 (en) 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US6584564B2 (en) 2000-04-25 2003-06-24 Sigaba Corporation Secure e-mail system
US20010039548A1 (en) 2000-04-27 2001-11-08 Yoshitake Shinkai File replication system, replication control method, and storage medium
US6775703B1 (en) * 2000-05-01 2004-08-10 International Business Machines Corporation Lease based safety protocol for distributed system with multiple networks
US20020016174A1 (en) 2000-05-03 2002-02-07 Gibson Eric J. Use of telephone numbers as domain names and as applied in portable electronic devices
US20020103818A1 (en) 2000-05-04 2002-08-01 Kirkfire, Inc. Information repository system and method for an internet portal system
US6721880B1 (en) * 2000-05-31 2004-04-13 Lucent Technologies Inc. Method and apparatus for maintaining configuration information in a computing environment
US6535894B1 (en) 2000-06-01 2003-03-18 Sun Microsystems, Inc. Apparatus and method for incremental updating of archive files
US7010689B1 (en) 2000-08-21 2006-03-07 International Business Machines Corporation Secure data storage and retrieval in a client-server environment
US6947556B1 (en) * 2000-08-21 2005-09-20 International Business Machines Corporation Secure data storage and retrieval with key management and user authentication
JP2005530242A (ja) * 2000-09-11 2005-10-06 アガミ システムズ, インコーポレイテッド 区画された移動可能メタデータを有する記憶システム
US7051028B2 (en) * 2000-11-15 2006-05-23 Ndsu-Research Foundation Concurrency control in high performance database systems
US20020066022A1 (en) * 2000-11-29 2002-05-30 Brad Calder System and method for securing an application for execution on a computer
US20020095580A1 (en) 2000-12-08 2002-07-18 Brant Candelore Secure transactions using cryptographic processes
US20020073082A1 (en) 2000-12-12 2002-06-13 Edouard Duvillier System modification processing technique implemented on an information storage and retrieval system
US6965683B2 (en) 2000-12-21 2005-11-15 Digimarc Corporation Routing networks for use with watermark systems
US6928426B2 (en) 2000-12-30 2005-08-09 Intel Corporation Method and apparatus to improve file management
EP1368736A2 (en) * 2001-01-11 2003-12-10 Z-Force Communications, Inc. File switch and switched file system
US7047420B2 (en) * 2001-01-17 2006-05-16 Microsoft Corporation Exclusive encryption
US7263714B2 (en) 2001-01-18 2007-08-28 Blackarrow, Inc. Providing content interruptions
US20020099784A1 (en) 2001-01-25 2002-07-25 Tran Trung M. System and method for storing and retrieving bookmark information
GB2383853A (en) 2001-01-26 2003-07-09 Xmg Ltd A method system and apparatus for networking devices over an asynchronous network such as the internet
US7043637B2 (en) 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US6981138B2 (en) 2001-03-26 2005-12-27 Microsoft Corporation Encrypted key cache
US6988124B2 (en) 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US6751627B2 (en) * 2001-07-23 2004-06-15 Networks Associates Technology, Inc. Method and apparatus to facilitate accessing data in network management protocol tables
US7313694B2 (en) * 2001-10-05 2007-12-25 Hewlett-Packard Development Company, L.P. Secure file access control via directory encryption
US7000141B1 (en) * 2001-11-14 2006-02-14 Hewlett-Packard Development Company, L.P. Data placement for fault tolerance
US6996714B1 (en) 2001-12-14 2006-02-07 Cisco Technology, Inc. Wireless authentication protocol
US7464268B2 (en) * 2002-10-17 2008-12-09 At&T Intellectual Property I, L.P. Customizable instant messaging private tags
US7428751B2 (en) 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
CN1745580A (zh) 2003-03-07 2006-03-08 松下电器产业株式会社 加密装置、解密装置及数据重放装置
GB0717587D0 (en) 2007-09-10 2007-10-17 Mediares Ltd Systems and methods relating to encryption and decryption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4644542A (en) * 1984-10-16 1987-02-17 International Business Machines Corporation Fault-tolerant atomic broadcast methods
US5269016A (en) * 1990-09-24 1993-12-07 Charles Stark Draper Laboratory, Inc. Byzantine resilient fault tolerant shared memory data processing system
US5598529A (en) * 1992-04-15 1997-01-28 International Business Machines Corporation Computer system resilient to a wide class of failures

Also Published As

Publication number Publication date
US7505970B2 (en) 2009-03-17
EP2085884A3 (en) 2009-09-02
US7062490B2 (en) 2006-06-13
US7240060B2 (en) 2007-07-03
EP1830272A3 (en) 2008-03-12
JP4263421B2 (ja) 2009-05-13
HK1050065A1 (en) 2003-06-06
US20020188605A1 (en) 2002-12-12
US20050044092A1 (en) 2005-02-24
ATE431945T1 (de) 2009-06-15
US8112452B2 (en) 2012-02-07
US20050102268A1 (en) 2005-05-12
HK1050065B (zh) 2009-05-29
EP1830272B1 (en) 2009-05-20
JP2002358226A (ja) 2002-12-13
ATE408189T1 (de) 2008-09-15
US20090132552A1 (en) 2009-05-21
EP1246061A3 (en) 2007-12-05
CN1379339A (zh) 2002-11-13
DE60232424D1 (de) 2009-07-02
EP2085884B1 (en) 2010-05-19
EP1246061B1 (en) 2008-09-10
EP1246061A2 (en) 2002-10-02
EP2085884A2 (en) 2009-08-05
DE60236472D1 (de) 2010-07-01
DE60228782D1 (de) 2008-10-23
ATE468561T1 (de) 2010-06-15
EP1830272A2 (en) 2007-09-05

Similar Documents

Publication Publication Date Title
CN1322449C (zh) 无服务器的分布式文件系统
JP4662706B2 (ja) サーバーレス分散ファイルシステムにおけるセキュアリカバリ
JP3640339B2 (ja) 電子データ・ファイルを検索するシステムおよびその維持方法
US6981138B2 (en) Encrypted key cache
JP3640338B2 (ja) 安全な電子データ格納、取出しシステムおよび方法
CN111800268A (zh) 用于区块链背书的零知识证明
EP2176984B1 (en) Creating and validating cryptographically secured documents
US20050273600A1 (en) Method and system for file data access within a secure environment
US20100098256A1 (en) Decryption Key Management
WO2004034220A2 (en) Method and system for sharing storage space on a computer
CN111796968A (zh) 受数据库交易保证的提交
US20050240765A1 (en) Method and apparatus for authorizing access to grid resources
CN111859411A (zh) 多主题设备访问授权的方法和系统
Goodrich et al. Design and implementation of a distributed authenticated dictionary and its applications
Commands Working Project Draft T10/1731-D

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington, USA

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070620

Termination date: 20190322

CF01 Termination of patent right due to non-payment of annual fee