CN100487695C - 在计算机网络中检索电子文档的复制件 - Google Patents
在计算机网络中检索电子文档的复制件 Download PDFInfo
- Publication number
- CN100487695C CN100487695C CNB2004800141536A CN200480014153A CN100487695C CN 100487695 C CN100487695 C CN 100487695C CN B2004800141536 A CNB2004800141536 A CN B2004800141536A CN 200480014153 A CN200480014153 A CN 200480014153A CN 100487695 C CN100487695 C CN 100487695C
- Authority
- CN
- China
- Prior art keywords
- entity
- duplicate
- addressed
- cost
- document
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
介绍了一种用于在计算机网络中检索或存放电子文档的复制件的方法。在已经选择了至少一个复制件号码之后,应用散列函数。该函数要求复制件号码和文档识别符作为输入。该函数返回至少一个实体识别符作为结果,每个实体识别符表示在网络中可能提供复制件的实体。在随后的步骤中,将与文档相关的请求寻址到所识别的实体中的至少一个实体。
Description
技术领域
本发明总体涉及在计算机网络中的复制件存取。更具体地说,本发明涉及在计算机网络中检索和/或存放电子文档的复制件。
背景技术
对电子文档和数据的即时存取对于日常的商务操作变得越来越重要。结果是,对包括局部物理损坏之类的故障,还需要存储是可靠的和有弹性的。在计算机网络上的分布的、复制的存储好象是唯一的出路。
但是,今天的分布的/复制的系统或者需要在所涉及的计算实体(通常是在不同位置的至少两个数据中心)之间完全、相同的复制,或者需要在分布存储的情况中,集中化的控制器持续地跟踪复制件分布。存取多于一个复制件的任何人需要或者知道复制件的完整列表或者需要具有对返回这种信息的目录服务的存取权,或者全局性地-对于所有文档-或者基于每个文档。
由于现存的廉价机器能够用于服务内容,分布存储变得越来越重要。随着分布散列表(DHT)技术的出现,自组织(self-organizing)存储网络变得可行并且已经在业界引起了浓厚兴趣。这些可伸缩的、处在因特网的“顶上”的上层(overlay)网络使用下层(underlying)网络的传输能力,但是增加了价值。DHT技术提供从资源ID到主机(D-->H)的映射,而在其之前通常有从资源名称到资源ID(N-->D)的映射。这是通过使用在每个节点中的最小路由信息来实现的。通常还将DHT进行准备以处理在主机可用性和网络连接性中的变化。
DHT具有各种路由偏好但却共享这样的特性,即在上层网络的构成节点之间基于逐个跳跃来传输消息。每个跳跃都知道如何更接近目的地,直到其最终到达宣称所请求的ID是其自己的那个节点并且根据请求进行动作为止。
一些DHT基于间隔环拓扑进行操作,如在Ion Stoica等人所著的“Chord:AScalable Peer-to-peer lookup Service for Internet Application”,Proceedings ofACM SIGCOMM 2001,2001年8月,149-160页中所述的,有一些将多维空间分割为可管理的组块(chunk),如Sylvia Ratnasamy等人所著的“A ScalableContent-Addressable Network”,Proceedings of ACM SIGCOMM,2001年9月所述的,或如Marcel Waldvogel和Roberto Rinaldi所著的“EfficientTopology-Aware Overlay Network”,ACM Computer Communication Review,2003年1月,卷33,第1号,101-106页所述,但是其他的实施无根树(rootlesstree),如Anthony Rowstron和Peter Druschel所著的“Pastry:Scalable,distributedobject location and routing for large-scale peer-to-peer systems”,IFIP/ACMInternational Conference on Distributed Systems Platforms(Middleware),2001年11月,329-350页所述,或者如Ben Y.Zhao等人所著的“Tapestry:AnInfrastructure for Fault-tolerant Wide-area Location and Routing”,University ofCalifornia,Berkeley,UCB/CSD-01-1141,2001年4月所述。
这些DHT系统中的许多个都能够利用下层网络的本地性(locality)。通常将本地性方面分离为地理布局类别和邻近转发(proximity forwarding)类别,这些类别根据Miguel Castro等人所著“Exploiting Network Proximity inDistributed Hash Tables”,International Workshop on Future Directions inDistributed Computing(FuDiCo),由Ozalp Babaoglu和Ken Birman和KeithMarzullo编辑,2002年6月,52-55页所述而改编而来。
C.Greg Plaxton等人所著“Accessing Nearby Copies of Replicated Objectsin a Distributed Environment”,ACM Symposium on Parallel Algorithms andArchitectures”,1997年,311-320页示出了对于本地性模式的另一种方法。
在由John Byers,Jeffrey Considine,Michael Mitzenmacher所著的、在2003年2月的International Peer-to-Peer Symposium(IPTPS)中的“Simple LoadBalancing for Distributed Hash Tables”中说明了负载均衡方面。
在由John Kubiatowicz等人所著的“OceanStore:An Architecture forGlobal-Scale Persistent Storage”,Proceedings of ACM ASPLOS,2000年11月中示出了链接DHT和高速缓存的一种方法。这里,当存在沿着该路径可发现文档高速缓存的概率较高时,由衰减的花朵过滤器(Attenuated Bloom Filter,ABF)来重定向沿着DHT而通过的查询。尽管连续的ABF更新通讯量,但是当产生需要时,除了错误正确(false positives)的概率之外,对于文档创始者没有方法来寻址所选择的复制件。
由Magdalena Balazinska等人所著“INS/Twine;A Scalable Peer-to-PeerArchitecture for Intentional Resource Discovery”,Pervasive 2002-InternationalConference on Pervasive Computing,2002年8月,示出了在DHT顶上的资源发现/目录服务的例子。
US20020114341A1提出了对等企业存储,其使用集中化的控制器/协调器。
申请人的US6,223,206公开一种方法和系统,用于通过将由第一流正在读取的文件的部分复制到第二设备上并且用能够存取的第二流来读取该部分来进行负载均衡。这种现有技术针对完全集中化的系统。
US20030014523A1、US20030014433A1、和US20030014432A1,每个都介绍了一种存储网络数据复制器。存在公开的、关于如何从一个实例到另一个实例进行复制的算法。其描述了要选择哪一个现存的复制件作为用于进一步复制的资源。
US6,467,046和EP 807 885B1两者都示出了一种系统和方法,用于在计算机系统中自动地分发复制的数据库的拷贝。列举用于确定复制件替换的主机和盘以提高可靠性。
US5,815,649示出了容错计算机系统的分布的容错数字数据存储。使用多个冗余计算机作为多个冗余盘的前端,基本上作为网络RAID(廉价盘冗余阵列)。
根据US6,470,420,提出了一种方法,用于指定多个可寻址的存储设备中的一个以处理数据传输请求。客户将单个请求多播到所有复制件并且它们配合地选择一个进行应答。
WO 03/012699 A1示出了用于为跟踪存储设备的分布文件系统上的信息而提供元数据的系统和方法。使用元数据来定位文件。
在US6,163,856中,示出了用于文件系统灾难恢复的方法和设备。
根据另一个申请人的专利US5,897,661,示出了逻辑卷管理器和对应方法,通过存储的动态分配和元数据信息的最小存储而具有增强的更新性能。提供元数据复制,其被限制于那些具有知情需要的存储提供商。
在WO 02/093298 A3中,通过动态数据管理描述了模块化的存储服务器构架。该文献示出根据本地性存取模式和分层存储管理的复制。
根据US20030028695A1,示出了用于文件数据的有效复制的制造者/消费者锁定系统,其提供并发操作之间的锁定。
根据US5,588,147,描述了复制装置,其使用日志文件机制来复制文档。
尽管对复制和分布存储已经做了一些工作,但是现在还是缺少在不受出现单点故障的影响的、完全分布技术之上的复制机制。因为复制件不仅仅提高可获得性,而且还均衡负载,所以已经存在有用于高速缓存目的的分布机制。除了可靠性之外,高速缓存系统还造成更新问题:由于其不清楚在哪里对信息进行高速缓存,所以如果其不连续地跟踪原始位置的状态,则高速缓存可能变得过时。这造成在可伸缩性方面的严重问题,从而不能进行高速缓存所提供的负载分担(off-loading)。
因此,期望提供一种在计算机网络中管理复制件的机制,以适当的方法来反映该机制,并且提供计算实体和计算机程序元件,用于在计算机网络中检索和/或存放复制件。
发明内容
本发明提供了一种用于在计算机网络中检索电子文档的复制件的方法。选择至少一个复制件号码并且应用给定函数。该函数要求将复制件号码和与电子文档关联的文档识别符作为输入。通过用作为输入的k个不同的复制件号码将该函数应用k次,确定k个实体识别符,其中在可能提供复制件的网络中每个实体识别符表示计算实体。K是等于或大于1的整数。然后,将文档相关的请求寻址到至少一个所识别的实体。
最好在具有对网络的存取权的检索计算实体上自动地执行该方法。
根据本发明的另一个方面,还提供一种用于在计算机网络中存放电子文档的复制件的方法。再次,选择了复制件号码并且应用给定函数,该函数需要复制件号码和文档识别符作为输入。该函数的输出是实体识别符,该实体识别符代表网络中的计算实体,在其上可存放带有所选择的复制件号码的复制件。然后为了复制件存放或修改的目的对所识别的实体进行寻址。还可以将本方法用于存放与文档有关的修改。
最好在具有对网络的存取权的存放或修改计算实体上执行该方法。
该方法的想法是将电子文档的复制件仅仅存储在计算机网络中的预定地址处。在此处的上下文中还可以将这种地址称为实体识别符。由一种函数预先定义该地址,该函数为每个文档的每个复制号码提供与计算实体关联的、可以在此处发现或存储特定复制件的地址。
在优选实施例中,该函数是伪随机散列函数,其中将每个地址/识别符使用分布的散列表映射到网络中机器/实体之一。
借助该函数,在网络中的任何地方都不能随机地增加或删除复制件。仅仅在网络中的非常确定的位置/实体处才可以存取或存放复制件,其中通过应用带有复制件号码作为输入的函数来确定实体。但是,在应用伪随机散列函数的情况中,散列函数的伪随机特性确保将均匀地分布复制件。然而,可能依照其他规则或函数来在网络中的实体上存放其他的复制件。然后通过该函数而存放的复制件可以作为低效运行解决方案来工作,用于例如在该系统存在事故(break down)的情况中的集中化管理系统。
该函数提供用于每个电子文档的信息,在网络中的哪个实体处可以发现复制件或者在网络中的哪个实体处可以存放复制件。为了支持该函数,最好编号系统引入用于要被检索或要被存储的每个文档的复制件号码,最好该复制件号码在1到N的范围之间,在这种情况中将N表征为最大复制件号码以及所允许的复制件的最大数量。在对于所选择的这个文档识别符具有文档识别符y和复制件号码x之后,该函数就确定实体识别符,其指示为文档y的复制件号码x选择的实体。在写过程中,则将文档y的复制件x发送到该实体并且存储在该实体处。在存取操作中,则在该特定实体处发现文档y的复制件号码x,但是并不必须是这里发现:至此可能已经不需要具有在所关联的实体处存放的文档y的复制件x,因为至此(例如)比x低的复制件的号码对于服务从检索实体来的请求已经足够了。
假设该函数与用于存放相同文档的复制件的函数相同,则只能在由该函数确定的网络中的特定地址处检索文档的复制件。
因为检索实体具有复制件号码限定到底数计算上的范围并且在需要情况下进行查询,所以通过将复制件的数量的限制优选地设置到在网络中所允许的范围内,优化了检索处理过程。通过不设置复制件的数量或者设置复制件的过大最大数量,尝试存取其中实际上没有存储复制件的实体可能引起检索时间的损失,因为以前没有人使用该实体来存储带有非常大的号码的复制件。
与所提出的方法相关,应该理解在原始文档自身和任何复制件之间从术语上来说没有区别。最好可以在任何复制件号码下存储原始文档自身,因此可以在该复制件号码下寻址该原始文档。
下层网络可以是对等网络或分层网络。
电子文档可以是任何种类的电子文件或数据,或者甚至是数据库、可以在计算机网络中的不同位置作为复制件存储的拷贝。如在这里说明的电子文档还可以是活性资源,如当被存取时将执行所存储的行动的计算机程序,还可以是电子文档的片段,如存储单元、扇区或扇区的簇。可以(例如)为了备份的目的在非常特殊的位置永久地存储复制件。或者可以将它们临时进行存储,(例如)用于高速缓存的目的,减少网络上的负载或其他复制件,包括原始文档存储,特别是当许多用户需要存取下层文档时。本发明支持分布的存储应用或文档储存库存储应用,以及分布的计算应用。因此,最好通过在网络上建立复制件以具有比仅原始资源本身更多的存取点,从而在存储实体处提供更多的计算容量以及方便用户的更多的网络能力。从单个用户的观点来说复制件也是有益的,因为该用户希望他的电子文档在例如膝上计算机、手持设备、移动电话、或台式计算机的许多不同的计算实体上都可以存取。本发明可扩展到复制电子文档的所有这些应用,但是又不限于此。
结合本发明所描述的实体的能力依赖于所试图进行的应用。通常,计算实体可以是能够存取网络并且通过网络进行通讯的任何单元。一些实体可以主要服务作为用于文档/复制件的存放位置,并且因此被准备用于存储大量的数据。具体地说,这种实体可能是服务器计算机。但是,具有到网络的接口的所有其他计算实体以及任何种类的存储装置都可以作为实体进行服务以提供复制件。可以将检索实体作为客户计算机或任何类型的计算实体而实现,例如上述的计算实体,或者检索实体还可以是文档管理员的计算机。最好,计算机可以执行检索或存放复制件这两项工作。
根据检索-即定位-电子文档的复制件的方法,可以不同的方式来执行寻址可能提供复制件的、被识别的实体。被寻址到实体的请求可仅仅使得被寻址的实体查询该复制件是否实际可以获得并且将结果通知检索实体。在另一个实施例中,该请求可还包括将复制件立即发送到检索设备、或增加或修改或更新或修改数据的要求,所述修改数据被同该请求一起发送到在被识别的实体处的复制件。
在所识别的实体处存放复制件的情况中,请求可能只触发关于所寻址的实体是否已经准备好存储复制件并且因此在所寻址的实体处开始内部检查的响应。但是,该请求可还包括已经准备好被立即存储在所寻址的实体处的复制件自身。
从全局的角度考虑,用于检索复制件的方法使得客户-也被称为检索实体-只发送少量的消息以定位复制件。如可以从下面的实施例中看出的,客户可以定位接近或甚至是最接近的复制件。为了实现这个目的,最好限制复制件的选择。因为复制件由此可以被列举并且被直接寻址,所以对于客户来说能迅速地发现文档。但是,在文档已经或需要被更新或者文档内容需要被验证或另外处理的情况中,对于文档所有者来说迅速地发现所有复制件也是有益的。
而且,每个复制件需要只存储文档ID和文档内容的元组。文档内容可以是文档自身的内容,例如文字或图形,但也可以是针对实际存储文档的(多个)节点的(一组)指针,和(一组)复制件索引或复制件实体ID。在相同的实体可以对相同文档的多个复制件负责的情况中,其可以是诸如散列函数的函数随机地分布实体识别符从而它们中的两个或多个可能落入由单个节点覆盖的范围内的情况,实体以及由此的复制件可以在相同实体上区分不同复制件的复制件索引或复制件实体ID的形式,来提供附加的信息。
考虑了复制件号码的限制的优选实施例,可以以不同的方式来处理复制件号码的选择,基于复制件号码的选择,函数可以确定与所选择的文档的该特定复制件号码相关联的实体的识别符。该选择可以是k个复制件号码的随机选择。但是,该选择还可以覆盖所有N个复制件号码,其中N是复制件的最大号码,并且号码的优选范围是例如[1.....N]或[0.....N-1]。在优选实施例中,将给定函数应用k=N次,以确定可以提供对相关文档的复制件的存取的k个实体识别符。
该实施例提供完全的自由给检索实体,以访问最大数量的每个都可能提供复制件的实体,或者选择一些被识别的实体或者要寻址到的仅仅一个被识别的实体。选择方案可以遵不同被识别实体的评估。
但是,当资源有限时或当N是较大的数字时,可能倾向于另一个方法:从最多N个复制件中选择仅仅k个复制件号码,其中k<N。结果是,由用于确定这种实体识别符的函数仅仅发送了k个实体识别符。
对于限制作为实体识别符的数量的数据数量,和限制最终可能被认为是值得进行寻址的实体的数量来说,这种方法是有益的。
最好,可将k选择为<=5。这表示特别在直接地寻址所有被识别的实体而不为了该目的选择实体的子集时,为了检索复制件而被寻址的实体的合理范围。将在下面更详细地解释这种策略的道理。
在k=1的另一个优选实施例中,并且因此,在这种方法中,从一开始就只有一个识别的被访地址并且将该请求仅仅寻址到这一个实体。在一个实施例中,可随机地选择复制件号码。在另一个实施例中,假设以升序的复制件号码在网络上分布复制件,在所允许的复制件号码的范围的低号码范围内选择复制件号码。因此,当在提供带有低复制件号码的复制件的实体处寻找复制件时,增加了第一次就找到该复制件的概率。但是,该复制件也可能从离检索实体很远处被定位。
在更类似的方法中,将与文档相关的请求相对于所有被识别的实体进行寻址。该实施例反映了一种事实,即实际上并不是所有被识别的实体都必须具有可获得的所请求的复制件。注意,如果将复制件号码用于存放该复制件,则通过函数的方式指定到特定复制件号码的实体只确定带有该实体号码的复制件必须被存放到的位置。但是,不需要下面情况,即在网络中的任何实体目前都具有实际将带有该号码的复制件存放在这个特定位置/实体处的需要,因为例如目前在使用中的复制件的数量对于满足过去的要求是足够的。
但是,当相对于多于一个识别的实体寻址请求时,更可能从在询问中的复制件是可获得的并且已经准备好下载的、所寻址的实体的至少一个实体中接收信息。
在另一个优选实施例中,通过与文档相关的请求仅仅对被识别的实体中的所选择的那些实体进行寻址。针对寻址目的,该实施例允许从被识别实体中选择有资格的实体。因为用于识别提供文档的复制件的实体的过程可能不需要太多资源,并且因此对于最多N个复制件号码或至少对于其大部分执行该过程,所以处理与许多实体的通讯可能很麻烦并且浪费时间和资源。为了最小化要被发送到所识别的实体的请求的数量,可以应用评估方案来从所识别的实体中只确定最有希望的实体。可以根据不同的标准来进行评估以判断实体是否是有希望的。
特别是当因为某种原因不希望有到实体的密集通讯时,评估/选择过程可以只选择一个优选的实体以寻址该文档相关的请求到其上作为结束。
一个非常优选的评估方案可以包括用于计算与实体相关的成本值的成本函数。这种成本值可以指示用于寻址该实体和/或与该实体进行通讯和/或从该实体执行下载的成本,其中例如可以用所需要的时间和/或资源和/或与寻址相关实体相关地指示优点或者缺点的其他参数来定义成本。最好,对于k个被识别的实体的每一个实体都计算成本值。在随后的步骤中,根据所计算的成本值从所识别的实体中选择要被寻址的实体。最好,只选择示出低成本值的、要被寻址的实体。可以引入阈值以确定示出低成本值的实体。或者从许多评估过的实体中选择示出最低成本值的实体。
在优选实施例中,成本函数可以从成本数据库中查询或获得实体的成本值。这种数据库可以是本地(例如,高速缓存)、集中化的、或分布的数据库。
最好当不能获得用于得到实体的成本值的其他手段时,可以从带有这些实体的通讯中直接得到这种成本值。在优选实施例中,寻址被识别的实体并且调用其以发送响应,其中例如测量在请求的发布和在检索实体处的响应到达之间的时间并且将该时间转换为所寻址的实体的成本值。该成本值可能与检索实体的位置和所寻址的实体的位置相关,所寻址的实体所处的位置越远则往返的时间越长。但是,事先以这种方式来确定成本值是合理的,特别在要下载表示大型文件的复制件之前。于是其与从随机选择的被识别的实体中用下载来立即开始(这可能意外地提供非常慢的下载速率)相比,为了成本估计的目的而使用短消息寻址多个被识别的实体可能是一种更省时的方法。
总体上,可以由在询问中的实体的绝对值或由将成本当作与检索实体相关的成本的相对值来表示成本值。
在从每个被寻址的实体中接收“复制件不可获得”响应的情况中,从寻址与文档相关的请求而涉及的被识别的实体中选择另一个实体。“复制件不可获得”响应指示实际上在相关的实体中没有存储这样的复制件。
假设网络中以复制件号码的升序来存储复制件,“复制件不可获得”响应指示没有复制件在该实体处用该特定复制件号码进行存储。此外,可以从这样的系统规则中适当地得出这样的结论,即在实体被指定有比该特定的复制件号码更高的复制件号码的情况下,没有复制件被存储于在网络中的任何位置的这些实体处。这意味着对被期待用较高复制件号码来存储相同文档的复制件的实体的寻址是没希望的。这样最好从表示比失败的复制件号码低的复制件号码的一组实体中选择至少一个实体以寻址新的请求到其上。这极大地有助于对总体上值得被寻址的实体数量进行限制。
作为重复地将上述规则轮流应用到所有回答的直接结果,如果存取多于一个实体并且所有响应指示“复制件不可获得”,则这些所寻址的复制件号码中的最低复制件号码为从其中选择另一个实体以用该请求对其进行寻址的新的一组复制件号码设置上限。
在这组剩余的实体内,可以根据它们的成本值来再次选择随后要被寻址的(多个)实体。这意味着在该组剩余的实体内,在进一步的步骤中再次寻址在将低成本作为选择条件的情况中示出最低成本的(多个)实体。当随后对于这种请求没有响应则显示出提供所请求的复制件的实体,在这些请求中所涉及的最低复制件号码再次为在进一步的步骤中可能寻址所关联的实体的复制件号码设置上限。
逐步地和反复地将不提供复制件的被识别的并被寻址的实体进行排除以及其他实体具有比已经被寻址的实体更高的被指定的复制件号码的结论,极大地减少了在网络上用于检索复制件的通讯。
但是,其中当从所寻址的(多个)实体接收关于在那里即不是不可获得复制件也不是可以获得复制件的任何指示时,不能得出下面的结论,即由比失败的一个复制件号码更高的复制件号码来确定的任何其他实体总体上不提供在询问中的复制件。结果是,不能从将进一步请求寻址到的实体之中将这些实体排除。现在只能排除已经寻址的(多个)实体,因为其指示至少在该查询的时间中保持不可达到。但是,最好将请求寻址到剩余实体中的另一个,该实体是从被识别的实体中选择的并且最好示出下一个最佳成本值。
根据本发明的另一个实施例,从被识别的实体中选择一个或多个最优选的实体,并且将与文档相关的请求寻址到每个最优选的实体。在该实施例中,根据它们到检索实体的距离来选择所寻址的实体,其中每个最优选的实体示出到检索实体的短距离,而且其中可以通过绝对地应用阈值或者通过相对地比较所检测的距离来定义短距离,例如,当要选择g个实体时,最好该g个实体是在所识别的实体中相对于检索实体示出最短距离的那些。在某些网络中特别是在某些实体识别符记法中,可以从所关联的实体识别符中得出位置和由此得到的距离度量。可以将这样的距离当作成本值,并且可将该成本值作为选择过程的条件来使用。
而且,在该实施例中最好在接收从所寻址的实体来的“复制件不可获得”消息时,从一组所识别的实体中选择至少一个其他实体作为将文档相关的请求寻址到其上的第二最佳优选实体,将该组所识别的实体限于带有比与最优选的(多个)实体识别符关联的最低复制件号码还低的对应复制件号码的实体。最好根据其到检索实体的距离而从该组所识别的实体中选择第二优选实体,其中从关联的实体识别符来的一组实体之间得出最接近的距离。
根据本发明的另一个方面,所提供的计算机程序元件包括计算机程序代码组件,当将其载入到计算实体的处理器单元中时,其配置处理器单元以执行如权利要求1到22和25中的任何一个权利要求所述的方法。
此外,提供在计算机网络中检索电子文档的复制件的计算实体,该计算实体包括被设计来执行一种方法的控制单元,该方法用于如权利要求1到22的任何一项权利要求所述或如上面所述的、在计算机网络中检索电子文档的复制件的方法。
还提供了一种用于在计算机网络中存放电子文档的复制件的计算实体,其包括一个被设计来执行一种方法的控制单元,该方法用于如权利要求25或上述说明所述的,在计算机网络中存放电子文档的复制件。
对于参照用于在计算机网络上检索或存放复制件的方法所描述的优点和实施例,也可以考虑为在所描述的计算实体和计算机程序元件之前对于这里的分别有益的实施例。
附图说明
现在将以示例的方式,参照附图来描述本发明的优选实施例,其中:
图1示出了作为分布存储的部分的网络部分;
图2示出了成本函数的示意图;
图3a和3b示出了根据本发明实施例的、在计算机网络中检索复制件的方法的流程图;和
图4示出了成本函数的另一个示意图。
在不同的图中可能示出相同的附图标记,表示带有类似或相同内容的元件。
具体实施方式
图1示出了计算实体100、120、140、160、180、200、220、240、260、280、300、320、340、360、380、400、420、440、460、480、500、520、540、560、580、600、620、640、660、680-所有都被称为节点-并且作为计算机网络1的部分。计算实体所带有的号码是实体识别符,其最终是或者表示实体的地址。
假设带有文档识别符D1的文档是非常流行的文档。因此,在整个网络1上存储了该文档的许多复制件。在该网络上分布的复制件的最大数量是N=6,其中为了说明的目的,作为相对较小的数字而选择该号码。因此,在系统范围内的提供每个文档的最多N个复制件。引入下面记法:D1:1表示文档D1的第1号复制件,D1:2表示文档D1的第2号复制件,等等。
如能从图1中推出的,在网络1上、在带有实体识别符100、200、300、400、500、600的位置/实体处散布着文档D1的k=N个复制件。在另一方面,从图1中还可以推出,在实体120、220、320、420、520、620处还能够以N=6个复制件(为了说明的目的,以此为例)的形式获得另一个文档D2。
在网络1上文档D1和D2根据下面函数存放:
h(i,Dx)=100+(((x-1)*20)+((i-1)*100)modulo600)
其中i是复制件号码,并且i=[1.....N],
并且Dx是带有x的文档识别符,x为数字1、2。
在图1中所示的实体之一,或者在图1所示的网络范围之外的另一个实体已经应用了该函数h(i,Dx)以存放文档D1和D2的复制件,并且实际上已经将每个文档的6个复制件存放在网络上。
仅仅为了说明的目的,可以依照例如象h(i,Dx)=100+((x*20)+i*(120-20*x)-120)modulo 600)的函数而在网络上存放另一个文档,结果是在例如实体300处有不同文档的复制件的重叠存放。
用更一般的话来说,对于每个文档Dx,存在有Dx的数量为k的复制件。在地址h(i,d)处存储这些复制件,其中1<=i<k。并且最好以伪随机散列函数实现h()。这意味着将每个地址用DHT映射到网络中的一个机器。
因为可以将控制成本(即,实际请求)的操作的平均数量限制到log(N+1),所以通常可以将允许的复制件的最大数量N选择得非常大。例如,选择N=1023导致平均10个消息或更少的消息用于定位最接近的复制件并且开始下载。
检索实体(例如可以是带有识别符140的实体)现在可能想要存取被作为D1识别的文档的复制件。计算实体140具有可获得的、相同的函数h(i,Dx)=100+(((x-1)*20)+((i-1)*100)modulo 600)用于确定可从其中获得文档D1的复制件的实体。当对所有i个复制件号码应用该函数时,检索实体140将获得实体识别符100、200、300、400、500、600,作为结果。
已经确定了文档D1的复制件可从其中获得以用于下载的这些位置,检索实体140现在应用成本函数。已知,至少当只考虑数字“几百”的识别符并且知道在网络的最右手部分中的拥有位置时,实体识别符从网络1的右手部分向网络1的左手部分而增大,由实体140所应用的成本函数可以是由函数h(i,Dx)得出的所有实体识别符的比较。结果可能是这样的一种关系,即100<200<300<400<500<600。根据这种结果,可以得出下面结论,即带有识别符100的实体作为等级中的第一个示出最低成本值,而实体600作为等级中的最后一个示出最高成本值。转换为书面语言就是,成本值指示被识别为实体100的实体可能是最接近检索实体140的一个。因为检索实体关注点在于进行快速下载,所以实体100好像对于通讯来说最经济有效因此对于下载来说也就最经济有效。
作为结果,检索实体将请求寻址到具有文档D1的实体100,实体100用肯定回答(“D1的复制件在这里可获得”)进行响应,或者在另外的实施例中,用直接发送复制件D1进行响应。
图2示出了在对实体140应用成本函数后,与D1的每个被识别的复制件关联的成本的示意图。与网络中的检索实体140的位置相关来确定该成本,该成本表示根据如上所述的对于网络结构的认识、到检索实体140的距离的评估。
在另一个实施例中,假设实体420现在是检索实体,其正在寻找文档D1的复制件并且将实体100、200、300、400、500、600识别为这样的复制件的可能提供者。当将实体固有的成本函数用于420时,产生这样的结果,即实体400可能是检索实体420要从其获得复制件的最接近的实体。图4示出在对实体420应用成本函数后,与D1的每个被识别的复制件关联的成本的示意图。与网络中的检索实体420的位置相关来确定成本,该成本表示基于如上所述的对网络结构的认知、对到检索实体420的距离的评估。
但是,现在仅实体100、200、300才可以实际地提供文档D1的复制件,这是因为文档D1的管理者由于还没有对这些复制件号码应用散列函数所以还没有将复制件分发到实体400、500和600。
因此,当检索实体420现在将请求发送到最接近的实体400时,实体400现在可能做出在实体400处不能获得文档D1的复制件的响应。请求实体420现在可能尝试将另一个请求寻址到作为下一个优选的、并且能够从其获得复制件的下一个接近的实体的实体500。但是,假定网络中的实体是以复制件号码升序顺序的复制件来填充的情况下,很明显,当实体400不能提供复制件号码i=4时,在所指定的实体处不可获得带有较高复制件号码的任何复制件。因此,现在被引导到在被识别的实体100到600内的除实体400之外的另一个实体的任何请求都必须被引导到可能提供带有比i=4更小的复制件号码的复制件的实体处。因此,实体100、200、300可形成与小于i=4的复制件号码关联的、实际可能具有文档D1的复制件存储其中的一组实体。因为实体300示出在剩余实体中最低的成本,所以检索实体420下一个可能接近实体300并且可能成功。但是,如果甚至实体300也不具有可获得的文档D1的复制件,将进一步限制随后要被接近的一组实体。通过以反复的方式应用这种方案,可以省去到其他实体的许多通讯。
如已经说明的,某些分布散列表(DHT)保持本地性,即通过知道两个地址是类似的,可以得出这样的结论——服务那些地址的实体也会接近。使用这种性质来估计到另一个实体的距离——如根据由DHT使用的量度进行测量。支持这种系统的DHT例如是在Marcel Waldvogel和Roberto Rinaldi所著的“Efficient Topology-Aware Overlay Network”,ACM ComputerCommunications Review,2003年1月,卷33,第1号,101-106页中的Mithos,因此通过引用将其合并。但是,还可以应用其他成本函数。这样的成本函数可以是网络自身的一部分或在其上,或者独立作为每个实体的一部分。
根据本发明的另一个实施例,当客户想要定位带有ID d的文档时,其先验地只需要知道复制件的最大数量N和所使用的散列函数。则该过程如下:
1.r:=N
2.客户通过对复制件号码,i(1<=i<r)的所有可能值检查服务文档的距离来确定复制该文档的哪个节点是最接近。其选择最接近的一个-假设其是节点g-并且向其要求该文档。在非常合适的DHT中,或由适合的本地数据库进行扩充,这不需要发送任何消息。
3.如果被要求的节点以该文档进行回答,则一切正常;否则,r:=g-1,继续在步骤2的该算法(推荐将距离的计算进行高速缓存)。
因为该搜索以最接近的节点开始,所以能够返回最接近的可能的复制件。如果其实际上是复制件,则发现最接近的复制件。如果其不具有最接近的复制件,则可以从搜索中将所有以g或更高的号码进行编号的复制件进行排除,因为复制件位置策略保证复制件号码是连续的并且从1开始。
在log N步骤之后希望其停止。因为散列函数是伪随机的,所以在每个间隔中的最接近的节点将平均处于中间。因此,可以排除平均50%的候选节点。因为总是至少排除一个节点,所以取得进展是有保证的。如果至少存在一个复制件(编号为1的),则发现文档也是有保证的。不需要进一步的信息。
因此,可以将本实施例的检索方法表征为主元素(pivot)选择角度的随机化的二元搜索。通过并发地探查k个最接近的节点,可以将其扩展到(k+1)元((k+1)-ary)搜索。然后,检索节点可能不想直接地向被识别的、并且可以应用成本选择的节点要求文档,而是仅仅询问该节点是否具有该文档,从而防止多重传输。
返回到图1,已知的参数以及不变的系统范围是复制件N的最大数量,并且使用散列函数h()。
如所提出的,在计算机网络中用于检索和/或存放复制件的方法还可以被用作备份系统,用于基于复制件管理的集中化的目录结构的、站点或组织范围内的、复制网络化的存储系统。在这种情况中,目录服务器要提供故障的单个点。在这样的情况中,这样复制件的一个子集需要根据上面系统而进行放置。而可以根据本地性模式(即,保证的离站(off-site)存储)或存取模式(即,接近客户)按照所期望的来放置其他复制件。然后,即使集中化的目录发生故障或者变得不可存取,还可以存取根据本发明所存储的数据。即使依照根据本发明而指定的复制件的子集的大小和放置,性能可能下降,但是还是可以保证对数据的存取。
在本地化程度大的系统/网络中-即在其中基本上可以同等存取所有系统的单个建筑物或站点内,可用随机函数来代替距离函数,以达到有效的负载均衡。
根据本发明的另一个实施例,也许不能获得由如上所述的距离估计函数表示的、基于从实体识别符自身得来的信息的成本函数。代替从由于存放复制件而被识别的实体中选择最接近的实体,可以从被识别的实体中选择随机实体并且进行寻址。对于这种请求的响应可以承载诸如复制件负载或往返时间的信息,其可以在多个匹配的情况中帮助选择最佳匹配。与成本估计结合的这种随机选择不保证检测到最近的节点,但是其可以将检索实体引导到复制件的最终位置。被寻址的实体的相对较大的数量k产生较多的探询从而导致接近实体的较高概率。
如果,类似如上所述的距离估计函数的成本函数是昂贵的,但是还是比向实体发送消息要节省,则仅仅从被识别的实体中选择一个子集的实体以计算它们各自的成本值。然后,从成本值的角度来选择最佳实体以向其发送请求。
在上面的两个实施例中,都不需要识别可能具有复制件的所有N个实体。相反地,可以只选择较少数量k<N的复制件号码用于确定所关联的实体。
如果所接近的实体不可达到或者返回可以被理解为“当前不能服务文档,请选择另一个复制件”的“过载”消息或者在接近后到达超时,则不可能做出关于节点是否不具有可获得的复制件、或者它们是否具有可获得的复制件但是当前因为任何原因而不能发送该复制件的估计。与存放复制件的方法相关,一个可能的返回消息还可以指示所寻址的实体的确带有复制件,但是不能获得足够的存储。虽然对其性能影响最小,该算法还是可以正确地工作。因此,如果没有任何被寻址的实体返回该实体要发送文档的承诺或者它们不具有该文档的指示,则不能限制用于寻址进一步的请求的搜索范围。相反地,从当前实体范围来选择下一个最佳实体,例如,使用任何类型的成本估计,并且随后接近这些实体。
图3示出了实施根据本发明的检索复制件的方面的两个流程图。图3a)示出了用于拓扑已知网络的方法,而图3b)示出了拓扑未知网络的流程图。拓扑已知在此处意味着可以至少从其地址/识别符得出,或者从附加的、相对廉价的探询或测量中粗略地得出实体的位置。
对于两个流程图,应用下面记法:
-N,是复制件的最大数量
-h(m,d),是关于复制件号码m和文档ID d的散列函数
-c(a),是给出到地址a的成本的成本函数
-k,是每个步骤探询的次数
参照图3a),在步骤S1,将作为文档的可能的复制件的最大有效号码的r初始化到N。在步骤S2,a_m=h(m,d),对在[1,N]中的所有m进行计算。在步骤S3,c_m=c(a_m),对在[1,N]中的所有m进行计算。在步骤S4,从集合[1,r]中选择k个索引m_1....m_k,从而对应的c_m_i是最小的。在步骤S5,探询a_i个地址。可选地,在仅仅k-s个回答之后终止探询。如果,在步骤S6,任何探询返回文档可获得性[1],则在步骤S7根据任何量度确定最佳探询/地址,并且在步骤S8从该最佳地址返回复制件。
如果在步骤S6没有任何被寻址的实体返回文档[2],则在步骤S9,将r设置为min(m_i)-1,并且在步骤S4继续该方法。
参照图3b),在步骤R1,将作为文档的可能的复制件的最大有效号码的r初始化到N。在步骤R2,从集合[1,r]中随机地选择k个索引m_1.....m_k。在步骤R3,确定通过计算a_i=h(m_i,d)而被探询的、a_i个所寻址的复制件。在步骤R4,探询a_i个地址。在仅仅k-s个回答之后就选择性地终止探询,从而不浪费时间来等待可能永远不会到来的最后几个回答,因为所寻址的节点可能没有运转或不能到达。这可通过不监听所有节点的成本而提高性能。已经不被等待的节点将是好的候选复制件的情况是不可能的,因为它们反映慢的原因可能是由于网络的过载或该复制件自身。
如果在步骤R5,任何探询返回文档可获得性[1],则在步骤R6根据任何量度来确定最佳探询/地址,并且在步骤R7,从该最佳地址返回的复制件返回最佳。如果没有任何被寻址的实体返回文档[2],则在步骤R8,将r设置为min(m_i)-1,并且在步骤R2继续该方法。
在下面的部分中,将描述根据本发明的所有方面的一些更多的实施例。
如果根据成本估计仅仅将文档相关的请求发送到被识别的实体之一,则在该机器处的负载非常高的情况下,该实体可能需要长时间来响应。可以通过以随机的方式在被识别的实体中选择至少一个另外的额外实体、并且向这样的至少一个更多的实体发送另一个请求来进一步改善这种寻址机制。如此,接近的因而根据所介绍的方案被选择寻址、但是过载因而将不响应或者只非常慢地响应的实体可以被检测,并且通过将来的查询,即不为将来的请求考虑它,对该实体进行自动卸载。在另一方面,在这种情况中,随机选择的实体可能及时提供所请求的响应而不必选择由将新请求寻址到其上的实体的新的接近。
根据另一个实施例,可以将所分发的请求的数量以及相应的搜索时间限制到某个概率处,以从选择过程中排除小集合的节点。因此,可以选择次最优的邻居,或者在将严重网络中断与非常坏的成本函数结合的情况中,可以不搜索所有的潜在复制件。所期望的性能是要被发送出的log(N)个步骤/请求,其中N是复制件的最大数量。然而,最坏的情况是N个步骤,即,如果成本函数是复制件号码的单调递减函数。这种成本函数的作用是每个步骤将只去除单个潜在的复制件,而不是所希望的它们的一半。对这个问题的解决方案是在每个步骤都有保证的最小进展。可以被用来保证最小进展的可能的函数类包括:
最多N/base^(steps-delta)的界限r(可能探询的窗口),其中base是诸如2的指数的底;steps是至此已经被执行的步骤的数量;而delta是最差情况速率。通过选择base=2,delta=2,你要求最多delta个附加的步骤,并且假设二元搜索(每步骤的探询数量,k=1),你的范围将永远不宽出多于所期望的情况的base^delta的因数。而且,由baase的因数来界定(bound)所发现的节点的质量。将质量因数定义如下:给出r_d个实际的复制件,以增加的成本将它们排列。未修改的(未界定)搜索总发现那些中的第一个(=最好的)。修改的情况将发现在首先的r_d*(1-1/base)个项目中被排序的一个,所以其永远不会比r_d*(1-1/base)项目更糟。
由J.Byer等人所著“Simple Load Balancing for Distributed Hash Tables”,International Peer-to-Peer Symposium(IPTPS)2003年2月,示出了在DHT内使用两个探询是受欢迎的,因为其更好地分配负载:通常将一个项目存储在两个(或多个)可能的位置中负载较轻的一个上。
Claims (20)
1.一种用于在计算机网络中检索电子文档的复制件的方法,包括:
选择电子文档的复制件的多个复制件号码,
对于每一个所述复制件号码,将该复制件号码和文档识别符作为输入通过应用给定函数确定一个对应的实体识别符,所述实体识别符表示在网络中可能提供复制件的实体,
为由确定的实体识别符所表示的在网络中可能提供复制件的实体的每一个实体计算对应的成本函数,该成本函数提供成本值作为指示用于寻址相关实体的成本的结果,
根据每一个实体所对应的成本函数的成本值从通过应用给定函数确定的实体识别符所表示的实体中选择要被寻址的实体,
将与文档相关的请求寻址到所选择的要被寻址的实体。
2.根据权利要求1所述的方法,包括:
选择k=N个复制件号码,其中N是复制件的最大数量,
通过应用给定函数k次确定k个实体识别符。
3.根据权利要求1所述的方法,包括:
从最大数量N个复制件中选择k个复制件号码,其中1≤k<N,N≥2,
通过应用给定函数k次确定k个实体识别符。
4.根据权利要求3所述的方法,其中k<=5。
5.根据权利要求3所述的方法,其中k=1。
6.根据权利要求1到4的任何一项所述的方法,包括:
只将与文档相关的请求寻址到从所选择的要被寻址的实体中选择的一个实体。
7.根据权利要求1到4的任何一项所述的方法,其中要被寻址的实体是具有最低成本值的一个/多个。
8.根据权利要求1到4的任何一项所述的方法,其中从与通过应用给定函数确定的实体识别符所表示的实体的通讯中得出所寻址的实体的成本值。
9.根据权利要求1到4的任何一项所述的方法,其中从成本数据库中得出所寻址的实体的成本值。
10.根据权利要求1到4的任何一项所述的方法,其中一旦从所寻址实体的一个实体接收“复制件不可获得”响应,则从所选择的要被寻址的实体中选择另一个实体以将与文档相关的请求寻址到其上。
11.根据权利要求10所述的方法,其中通过选择带有比与之前将请求寻址到其上的实体/多个实体相关联的复制件号码低的关联的复制件号码的实体,从所选择的要被寻址的实体中选择另一个实体。
12.根据权利要求1到4的任何一项所述的方法,其中一旦从所寻址的实体/多个实体接收关于在这里既不是不可获得复制件也不是可以获得复制件的指示,从所选择的要被寻址的实体中选择另一个实体以将与文档相关的请求寻址到其上。
13.根据权利要求1到4的任何一项所述的方法,包括:
从所选择的要被寻址的实体中选择至少一个最优选的实体,和
将与文档相关的请求寻址到所选择的每个最优选的实体。
14.根据权利要求13所述的方法,
其中根据通过应用给定函数确定的实体识别符所表示的实体到检索实体的距离来选择每个最优选的实体。
15.根据权利要求14所述的方法,其中从通过应用给定函数确定的实体识别符而获得实体的距离。
16.根据权利要求14或15所述的方法,其中一旦从所寻址的实体接收“复制件不可获得”消息,从所选择的要被寻址的实体中选择至少一个其他实体作为第二优选实体,以将与文档相关的请求寻址到其上,将该组所识别的实体限于带有比与最优选的实体识别符关联的复制件号码低的对应复制件号码的实体。
17.根据权利要求16所述的方法,其中所选择的要被寻址的实体到检索实体的距离,从所选择的要被寻址的实体中选择第二优选实体,其中从通过应用给定函数确定的实体识别符得出最接近的距离。
18.一种用于在计算机网络中检索电子文档的复制件的计算设备,包括
用于选择电子文档的复制件的多个复制件号码的装置,
用于对于每一个所述复制件号码,将该复制件号码和文档识别符作为输入通过应用给定函数确定一个对应的实体识别符的装置,所述实体识别符表示在网络中可能提供复制件的实体,
用于为由确定的实体识别符所表示的在网络中可能提供复制件的实体的每一个实体计算对应的成本函数的装置,该成本函数提供成本值作为指示用于寻址相关实体的成本的结果,
用于根据每一个实体所对应的成本函数的成本值从通过应用给定函数确定的实体识别符所表示的实体中选择要被寻址的实体的装置,
用于将与文档相关的请求寻址到所选择的要被寻址的实体的装置。
19.一种用于在计算机网络中存放电子文档的复制件的方法,
选择电子文档的复制件的多个复制件号码,
对于每一个复制件号码,将该复制件号码和文档识别符作为输入通过应用给定函数确定一个对应的实体识别符,所述实体识别符表示在网络中的实体,
为由确定的实体识别符所表示的实体计算对应的成本函数,该成本函数提供成本值作为指示用于寻址相关实体的成本的结果,
根据实体所对应的成本函数的成本值从通过应用给定函数确定的实体识别符所表示的实体中选择要被寻址的实体,
为了存放复制件的目的来寻址所选择的要被寻址的实体。
20.一种用于在计算机网络中存放电子文档的复制件的计算设备,包括
用于选择电子文档的复制件的多个复制件号码的装置,
对于每一个复制件号码,用于将该复制件号码和文档识别符作为输入通过应用给定函数确定一个对应的实体识别符的装置,所述实体识别符表示在网络中的实体,
用于为由确定的实体识别符所表示的实体计算对应的成本函数的装置,该成本函数提供成本值作为指示用于寻址相关实体的成本的结果,
用于根据实体所对应的成本函数的成本值从通过应用给定函数确定的实体识别符所表示的实体中选择要被寻址的实体的装置,
用于为了存放复制件的目的来寻址所选择的要被寻址的实体的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03014829.0 | 2003-06-30 | ||
EP03014829 | 2003-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1795448A CN1795448A (zh) | 2006-06-28 |
CN100487695C true CN100487695C (zh) | 2009-05-13 |
Family
ID=33547603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800141536A Expired - Fee Related CN100487695C (zh) | 2003-06-30 | 2004-05-07 | 在计算机网络中检索电子文档的复制件 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8370454B2 (zh) |
EP (1) | EP1639502B1 (zh) |
JP (1) | JP4538454B2 (zh) |
CN (1) | CN100487695C (zh) |
TW (1) | TWI378360B (zh) |
WO (1) | WO2005001713A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106537372A (zh) * | 2014-07-18 | 2017-03-22 | 微软技术许可有限责任公司 | 用于增强的文档生产率的实体识别 |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006526407A (ja) * | 2003-06-05 | 2006-11-24 | バイオプロセッサーズ コーポレイション | プロセス自動化のためのシステムおよび方法 |
US20060117020A1 (en) * | 2004-12-01 | 2006-06-01 | John Toebes | Arrangement for selecting a server to provide distributed services from among multiple servers based on a location of a client device |
JP4635682B2 (ja) * | 2005-03-29 | 2011-02-23 | ブラザー工業株式会社 | 情報処理装置、情報処理方法及び情報処理用プログラム |
JP4696721B2 (ja) * | 2005-06-27 | 2011-06-08 | 富士ゼロックス株式会社 | 文書管理サーバ、文書管理システム |
US20070078809A1 (en) * | 2005-09-30 | 2007-04-05 | Rockwell Automation Technologies, Inc. | Robust data availability system having decentralized storage and multiple access paths |
US8688780B2 (en) | 2005-09-30 | 2014-04-01 | Rockwell Automation Technologies, Inc. | Peer-to-peer exchange of data resources in a control system |
US7693882B2 (en) * | 2005-10-04 | 2010-04-06 | Oracle International Corporation | Replicating data across the nodes in a cluster environment |
KR100862659B1 (ko) * | 2006-01-04 | 2008-10-10 | 삼성전자주식회사 | 인터넷 스토리지에 접근하는 방법 및 장치 |
JP4797679B2 (ja) * | 2006-02-20 | 2011-10-19 | ブラザー工業株式会社 | コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム |
JP2007249913A (ja) * | 2006-03-20 | 2007-09-27 | Kddi Corp | データ管理装置、データ管理プログラム、および記録媒体 |
US8982709B2 (en) * | 2007-01-31 | 2015-03-17 | Hewlett-Packard Development Company, L.P. | Selecting service nodes for an end-to-end service path from a reduced search space |
US7885928B2 (en) * | 2007-03-08 | 2011-02-08 | Xerox Corporation | Decentralized adaptive management of distributed resource replicas in a peer-to-peer network based on QoS |
US20090012984A1 (en) | 2007-07-02 | 2009-01-08 | Equivio Ltd. | Method for Organizing Large Numbers of Documents |
US9134916B1 (en) * | 2007-09-28 | 2015-09-15 | Emc Corporation | Managing content in a distributed system |
US20090144220A1 (en) * | 2007-11-30 | 2009-06-04 | Yahoo! Inc. | System for storing distributed hashtables |
US20090144333A1 (en) * | 2007-11-30 | 2009-06-04 | Yahoo! Inc. | System for maintaining a database |
US20100174863A1 (en) * | 2007-11-30 | 2010-07-08 | Yahoo! Inc. | System for providing scalable in-memory caching for a distributed database |
US20090144338A1 (en) * | 2007-11-30 | 2009-06-04 | Yahoo! Inc. | Asynchronously replicated database system using dynamic mastership |
US9766983B2 (en) * | 2008-03-05 | 2017-09-19 | Ca, Inc. | Proximity and in-memory map based signature searching for duplicate data |
US20100257403A1 (en) * | 2009-04-03 | 2010-10-07 | Microsoft Corporation | Restoration of a system from a set of full and partial delta system snapshots across a distributed system |
US8261126B2 (en) | 2009-04-03 | 2012-09-04 | Microsoft Corporation | Bare metal machine recovery from the cloud |
CN101860955A (zh) * | 2009-04-08 | 2010-10-13 | 华为技术有限公司 | 实现服务注册的方法、实现服务发现的方法及装置 |
US8935366B2 (en) | 2009-04-24 | 2015-01-13 | Microsoft Corporation | Hybrid distributed and cloud backup architecture |
US8560639B2 (en) * | 2009-04-24 | 2013-10-15 | Microsoft Corporation | Dynamic placement of replica data |
US8769049B2 (en) * | 2009-04-24 | 2014-07-01 | Microsoft Corporation | Intelligent tiers of backup data |
US8769055B2 (en) * | 2009-04-24 | 2014-07-01 | Microsoft Corporation | Distributed backup and versioning |
US8458287B2 (en) * | 2009-07-31 | 2013-06-04 | Microsoft Corporation | Erasure coded storage aggregation in data centers |
US20110225121A1 (en) * | 2010-03-11 | 2011-09-15 | Yahoo! Inc. | System for maintaining a distributed database using constraints |
US20110225120A1 (en) * | 2010-03-11 | 2011-09-15 | Yahoo! Inc. | System for maintaining a distributed database using leases |
WO2013027784A1 (ja) * | 2011-08-22 | 2013-02-28 | 日本電気株式会社 | データ処理装置、データ分散処理システム、データ処理方法およびプログラム記憶媒体 |
US8949371B1 (en) * | 2011-09-29 | 2015-02-03 | Symantec Corporation | Time and space efficient method and system for detecting structured data in free text |
US8930320B2 (en) | 2011-09-30 | 2015-01-06 | Accenture Global Services Limited | Distributed computing backup and recovery system |
US9160697B2 (en) * | 2012-01-01 | 2015-10-13 | Qualcomm Incorporated | Data delivery optimization |
US9600365B2 (en) | 2013-04-16 | 2017-03-21 | Microsoft Technology Licensing, Llc | Local erasure codes for data storage |
TWI502372B (zh) * | 2013-09-27 | 2015-10-01 | Acer Inc | 網路儲存系統及檔案快取方法 |
US10929357B2 (en) | 2016-02-29 | 2021-02-23 | Red Hat, Inc. | Detecting stale storage layouts without using client locks |
US10785299B2 (en) * | 2016-06-08 | 2020-09-22 | Nutanix, Inc. | Generating cloud-hosted storage objects from observed data access patterns |
US10452296B1 (en) | 2018-03-23 | 2019-10-22 | Amazon Technologies, Inc. | Accelerated volumes |
US11343314B1 (en) | 2018-04-30 | 2022-05-24 | Amazon Technologies, Inc. | Stream-based logging for distributed storage systems |
US11023157B2 (en) | 2018-04-30 | 2021-06-01 | Amazon Technologies, Inc. | Intermediary duplication to facilitate copy requests in distributed storage systems |
US10459655B1 (en) | 2018-04-30 | 2019-10-29 | Amazon Technologies, Inc. | Rapid volume backup generation from distributed replica |
US10956442B1 (en) | 2018-07-30 | 2021-03-23 | Amazon Technologies, Inc. | Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots |
US11068192B1 (en) * | 2019-03-26 | 2021-07-20 | Amazon Technologies, Inc. | Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source |
US10983719B1 (en) | 2019-03-28 | 2021-04-20 | Amazon Technologies, Inc. | Replica pools to support volume replication in distributed storage systems |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5588147A (en) | 1994-01-14 | 1996-12-24 | Microsoft Corporation | Replication facility |
US5802301A (en) | 1994-05-11 | 1998-09-01 | International Business Machines Corporation | System for load balancing by replicating portion of file while being read by first stream onto second device and reading portion with stream capable of accessing |
US5832487A (en) * | 1994-12-15 | 1998-11-03 | Novell, Inc. | Replicated object identification in a partitioned hierarchy |
US5815649A (en) | 1995-10-20 | 1998-09-29 | Stratus Computer, Inc. | Distributed fault tolerant digital data storage subsystem for fault tolerant computer system |
US6467046B1 (en) | 1996-05-06 | 2002-10-15 | Sun Microsystems, Inc. | System and method for automatically distributing copies of a replicated database in a computer system |
US5963944A (en) * | 1996-12-30 | 1999-10-05 | Intel Corporation | System and method for distributing and indexing computerized documents using independent agents |
US5897661A (en) | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US6070191A (en) * | 1997-10-17 | 2000-05-30 | Lucent Technologies Inc. | Data distribution techniques for load-balanced fault-tolerant web access |
US6163856A (en) | 1998-05-29 | 2000-12-19 | Sun Microsystems, Inc. | Method and apparatus for file system disaster recovery |
US6638314B1 (en) * | 1998-06-26 | 2003-10-28 | Microsoft Corporation | Method of web crawling utilizing crawl numbers |
US6721794B2 (en) | 1999-04-01 | 2004-04-13 | Diva Systems Corp. | Method of data management for efficiently storing and retrieving data to respond to user access requests |
US6470420B1 (en) | 2000-03-31 | 2002-10-22 | Western Digital Ventures, Inc. | Method for designating one of a plurality of addressable storage devices to process a data transfer request |
US20020049760A1 (en) * | 2000-06-16 | 2002-04-25 | Flycode, Inc. | Technique for accessing information in a peer-to-peer network |
JP2002197002A (ja) * | 2000-12-26 | 2002-07-12 | Oki Electric Ind Co Ltd | 自律分散型コンテンツ配信システム及び方法 |
WO2002065329A1 (en) | 2001-02-14 | 2002-08-22 | The Escher Group, Ltd. | Peer-to peer enterprise storage |
US6925515B2 (en) | 2001-05-07 | 2005-08-02 | International Business Machines Corporation | Producer/consumer locking system for efficient replication of file data |
JP4025517B2 (ja) * | 2001-05-31 | 2007-12-19 | 株式会社日立製作所 | 文書検索システムおよびサーバ |
US20030014523A1 (en) | 2001-07-13 | 2003-01-16 | John Teloh | Storage network data replicator |
US7685126B2 (en) | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
-
2004
- 2004-05-07 EP EP04731696.3A patent/EP1639502B1/en not_active Expired - Lifetime
- 2004-05-07 CN CNB2004800141536A patent/CN100487695C/zh not_active Expired - Fee Related
- 2004-05-07 WO PCT/IB2004/001604 patent/WO2005001713A1/en active Application Filing
- 2004-05-07 US US10/563,071 patent/US8370454B2/en not_active Expired - Fee Related
- 2004-05-07 JP JP2006516500A patent/JP4538454B2/ja not_active Expired - Lifetime
- 2004-05-31 TW TW093115574A patent/TWI378360B/zh not_active IP Right Cessation
Non-Patent Citations (2)
Title |
---|
Simple Load Balancing for Distributed Hash Tables. John Byers, Jeffrey Considine, Michal Mitzenmacher.Peer-to-Peer Systems Second Internatinal Workshop. 2003 |
Simple Load Balancing for Distributed Hash Tables. John Byers, Jeffrey Considine, Michal Mitzenmacher.Peer-to-Peer Systems Second Internatinal Workshop. 2003 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106537372A (zh) * | 2014-07-18 | 2017-03-22 | 微软技术许可有限责任公司 | 用于增强的文档生产率的实体识别 |
US11120210B2 (en) | 2014-07-18 | 2021-09-14 | Microsoft Technology Licensing, Llc | Entity recognition for enhanced document productivity |
Also Published As
Publication number | Publication date |
---|---|
EP1639502A1 (en) | 2006-03-29 |
JP4538454B2 (ja) | 2010-09-08 |
TWI378360B (en) | 2012-12-01 |
EP1639502B1 (en) | 2013-11-20 |
WO2005001713A1 (en) | 2005-01-06 |
CN1795448A (zh) | 2006-06-28 |
US20060271530A1 (en) | 2006-11-30 |
US8370454B2 (en) | 2013-02-05 |
TW200511051A (en) | 2005-03-16 |
JP2007520778A (ja) | 2007-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100487695C (zh) | 在计算机网络中检索电子文档的复制件 | |
Aspnes et al. | Skip graphs | |
KR101635238B1 (ko) | 분산형 데이터 스토리지 | |
US7054867B2 (en) | Systems, methods and programming for routing and indexing globally addressable objects and associated business models | |
Rowstron et al. | Storage management and caching in PAST, a large-scale, persistent peer-to-peer storage utility | |
Aspnes et al. | Skip graphs | |
US7539771B2 (en) | Organizational locality in prefix-based structured peer-to-peer overlays | |
JP5612195B2 (ja) | 分散データストレージ | |
Cuenca-Acunam et al. | Autonomous replication for high availability in unstructured P2P systems | |
JP3809872B2 (ja) | クラスタ化したノード構成でのマスタ・ノードの選択 | |
US7530115B2 (en) | Access to content addressable data over a network | |
US20050273686A1 (en) | Arrangement in a network node for secure storage and retrieval of encoded data distributed among multiple network nodes | |
JP2008514067A (ja) | ネットワークのノード間でデータ・コンポーネントをコピーする方法およびシステム | |
US8208477B1 (en) | Data-dependent overlay network | |
US11496562B1 (en) | Method and system for accessing digital object in human-cyber-physical environment | |
JP4437956B2 (ja) | ファイル共有アプリケーションに対するインデックス・サーバ・サポートを提供する方法 | |
Waldvogel et al. | Dynamic replica management in distributed hash tables | |
Hanna et al. | Mobile distributed information retrieval for highly-partitioned networks | |
US20130058333A1 (en) | Method For Handling Requests In A Storage System And A Storage Node For A Storage System | |
US20110029587A1 (en) | Updating Retrieval Codes In Response To File Transfers | |
EP1595217A2 (en) | System and method for processing a request using multiple database units | |
WO2002084528A1 (en) | System and method for searching in a distributed computing environment | |
Bauer et al. | Replica placement and location using distributed hash tables | |
Phyu et al. | Using Bloom filter array (BFA) to speed up the lookup in distributed storage system | |
Waldvogel et al. | Replica placement and location using distributed hash tables |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090513 |