CN1897593A - 数据存储方法和系统 - Google Patents

数据存储方法和系统 Download PDF

Info

Publication number
CN1897593A
CN1897593A CNA2006100744695A CN200610074469A CN1897593A CN 1897593 A CN1897593 A CN 1897593A CN A2006100744695 A CNA2006100744695 A CN A2006100744695A CN 200610074469 A CN200610074469 A CN 200610074469A CN 1897593 A CN1897593 A CN 1897593A
Authority
CN
China
Prior art keywords
data object
computer system
service class
buddy
described data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006100744695A
Other languages
English (en)
Other versions
CN100588203C (zh
Inventor
B·斯特布勒
W·埃德雷尔
S·凯尼格
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1897593A publication Critical patent/CN1897593A/zh
Application granted granted Critical
Publication of CN100588203C publication Critical patent/CN100588203C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种用于根据可选择的服务级别在计算机系统的对等网络中存储数据文件的方法和计算机系统。每个计算机系统都以一组服务级别中的某一服务级别来提供存储服务,所述方法包括以这样的方式将来自度量空间的相应伙伴标识符指派给每个所述计算机系统:在以相同服务级别提供存储的计算机系统的伙伴标识符之间的距离小于在以不同服务级别提供存储的计算机系统的伙伴标识符之间的距离。

Description

数据存储方法和系统
技术领域
本发明涉及计算机系统和方法领域,更具体地说,涉及但不限于数据存储领域。
背景技术
几乎世界上的每个公司都会面对以具有成本效益的方式以及适当的安全级别、可用性和响应时间来存储、检索和管理数据的挑战。虽然对于各种数据,大型数据库是唯一有意义的技术,但是对于相当多的数据集来说,利用公司内的客户机和服务器上可用的未使用存储空间似乎更有吸引力。在其中计算机系统被连接到集中协调的计算网格的情况(例如在欧洲粒子物理研究所的大型强子对撞机项目)中已进行了最初的尝试。
在因特网上,完全分散的对等体系结构通过其用于诸如Gnutella系统之类的文件共享应用而获得了知名度。如今,大量算法和程序可用于在对等网络中拆分、存储和检索数据,并且在大型公司内使用这些技术来以具有成本效益的方式利用现有服务器或客户机上的可用存储空间来存储和检索数据似乎很有吸引力。以下是一些可用的算法:Chord/DHash(http://pdos.csail.mit.edu/papers/chord:sigcomm01/chord_sigcom.pdf)、CAN(http://www.icir.org/sylvia/thesis.ps)、Pastry(http://www.cs.rice.edu/~druschel/publications/Pastry.pdf)、Tapestry(http://www.cs.berkeley.edu/~ravenben/publications/CSD-01-1141.pdf)以及Kademlia(http://www.cs.rice.edu/Conferences/IPTPS02/109.pdf)。
由上述算法实现的所有对等网络的共同特性是将来自地址空间的唯一伙伴标识符指派给网络中的每个计算机系统,并将来自同一地址空间的唯一数据标识符指派给存储在网络中的每个数据对象。所述地址空间是一个度量空间,是其中定义了集合元素之间的距离概念的集合。所述地址空间的拓扑以及计算所述距离的方式随可用算法而变。对于每个数据对象,具有到该数据对象的数据标识符的最短距离的标识符的伙伴被选择作为存储位置。所述伙伴标识符通常被构造为诸如SHA-1之类的散列函数的值,采用诸如所述对等计算机系统的IP或MAC地址之类的任意唯一属性作为输入。数据对象的数据标识符相应地被计算为散列函数的值,采用所述数据对象的唯一属性(例如其二进制内容)作为输入。
在由上述算法之一实现的对等网络中,通过将所搜索的数据对象的数据标识符与某一对等计算机系统的伙伴标识符逐位比较来检索已存储的数据对象。如果所述对等计算机系统并不拥有所搜索的数据对象的副本,但是知道具有比其自己的伙伴标识符更接近所搜索的数据标识符的伙伴标识符的其他对等计算机系统,则对所述数据对象的查询被传递到该其他计算机系统。这将一直重复,直到查询到达拥有所述数据对象的副本的对等计算机系统,并且所述数据对象被检索为止。
为了在一个或多个对等计算机系统出现故障的情况下防止数据对象的丢失,多数对等算法冗余地存储数据对象。在最简单的方法中,存储每个数据对象的预定数量的副本。在某些情况下,使用旨在平衡资源利用并获得安全受益的所谓的信息分散算法。
微软研究所的Farsite(http://research.microsoft.com/research/sn/Farsite/OSDI2002.pdf)是一种逻辑地用作集中式文件服务器但是物理地分布在一组不受信任的计算机之间的安全、可伸缩文件系统。Farsite通过随机化的重复的存储设备提供了文件可用性和可靠性;它使用密码技术来确保文件内容的保密性;它使用Byzantine容错协议来维护文件和目录数据的完整性;它被设计成通过使用分布式提示机制和用于路径名称转换的授权证书来成为可伸缩的;并且它通过本地缓存文件数据、缓慢传播文件更新以及改变内容租借的持续时间和粒度来获得性能。
HiveCache(http://wtc-sf.org/IT%20Venture%20Series%20Companies.html,http://www.hivecache.com)提供了对等分布式存储技术,它将企业的个人计算机上未使用的存储聚合成共享网络,以便向企业提供低成本的可靠而安全的存储。HiveCache的存储网向企业内的桌面和膝上型个人计算机提供了基于盘的备份/恢复服务,这使得用户能够恢复其自己的文件而无需呼叫IT人员以获得协助并且向IT人员提供了备份工具,该工具使用由桌面代理做出的基于策略的决策来维护存储网络并几乎没有管理开销。这些解决方案使用了由公司开发并在美国专利申请20010037311中描述的分布式资源分配机制、信誉工具以及安全分布式存储技术。
分布式因特网备份系统(http://www.csua.berkeley.edu/~emin/source code/dibs)允许执行到伙伴的文件的增量备份并作为回报存储它们的文件。它包括伙伴查找器服务以便允许查找与之交换备份空间的伙伴。所述分布式因特网备份系统对所有数据传输进行加密以便与之交换文件的伙伴无法访问已备份的数据。
发明内容
根据本发明,提供了一种在计算机系统的对等网络中存储来自用户计算机系统的数据文件的方法。每个计算机系统都以一组服务级别中的相应提供的服务级别来提供存储服务。所述方法包括以这样的方式将来自度量空间的相应伙伴标识符指派给每个所述计算机系统:在以相同服务级别提供存储的计算机系统的伙伴标识符之间的距离小于在以不同服务级别提供存储的计算机系统的伙伴标识符之间的距离。
所述方法还包括选择所述服务级别组中的希望服务级别以便存储所述数据文件。从所述数据文件生成一个或多个数据对象,以这样的方式将来自所述度量空间的数据标识符指派给所述数据对象中的一个数据对象:在所述数据对象中的所述一个数据对象的所述数据标识符与以所述希望服务级别提供存储的计算机系统的任何伙伴标识符之间的距离小于在所述数据对象中的所述一个数据对象的所述数据标识符与以不同于所述希望服务级别的服务级别提供存储的计算机系统的任何伙伴标识符之间的距离。然后,所述数据对象中的所述一个数据对象通过所述对等网络被路由到复制计算机系统,所述复制计算机系统具有伙伴标识符,该伙伴标识符比通过对等交互连接到所述复制计算机系统的其他计算机系统的任何伙伴标识符都接近所述数据对象中的所述一个数据对象的所述数据标识符。然后,所述数据对象中的所述一个数据对象被存储在所述复制计算机系统上。
由于本发明允许根据定义的和有差异的服务级别来在对等网络中存储数据文件,所以本发明尤其具有优势。虽然现有的对等网络可以比常规的集中式客户机-服务器解决方案提供更有效的方式来归档、备份和恢复数据,但是借助本发明的优点,对等网络获得了是它们用作商业存储解决方案的前提条件的能力-在定义的服务级别管理协议。在企业中,每类将被存储的数据都具有针对例如可用性、响应时间或安全性的目标。本发明确保在这些目标的情况下发生数据的存储和检索。
根据本发明的实施例,所述方法包括加密所述数据对象中的所述一个数据对象。这带来了额外的优点,那就是其中存储了所述数据对象中的所述一个数据对象的所述复制计算机系统的用户被阻止从所述数据对象中的所述一个数据对象读取或以其他方式提取有意义的信息。此外,加密所述数据对象中的所述一个数据对象确保了所述数据对象在其通过所述对等网络的过程中不会被拦截和受到损害。结果,不能被公开的机密数据可以被安全地存储在所述对等网络中。
根据一个实施例,对于所述对等网络中的每个计算机系统,所述相应的伙伴标识符包括从由所述相应计算机系统提供的所述服务级别导出的散列值和从所述相应计算机系统的唯一属性导出的散列值的串接。例如,可以通过对以定义方式标识由所述计算机系统提供的所述服务级别的字符串执行散列函数运算,并将结果与对以定义方式从所述计算机系统的唯一属性(例如其IP地址或其他网络地址、其CPU标识符或者其MAC地址)构建的字符串执行相同(或不同)的散列函数运算的其他结果串接来构建所述伙伴标识符。如果所述伙伴标识符的地址空间中的度量被以合适的方式定义,例如定义为两个伙伴标识符的逐位比较,将最高有效位指派给在所述相应伙伴标识符的开始处的位,则在以所述相同服务级别提供存储的计算机系统的伙伴标识符之间的距离因此小于在以不同服务级别提供存储的计算机系统的伙伴标识符之间的距离。
根据一个实施例,所述数据对象中的所述一个数据对象的所述数据标识符包括从所述希望服务级别导出的散列值和从所述数据对象中的所述一个数据对象导出的散列值的串接。例如,可以通过对标识所述数据对象希望根据其被存储的所述希望服务级别的字符串执行散列函数运算以创建第一散列值,并将结果与对代表所述数据对象的以其他方式定义的属性的二进制内容、名称或串执行相同(或不同)的散列函数运算以创建第二散列值的其他结果串接来构建所述数据标识符。如果所述数据对象的所述希望服务级别被以与所述对等网络中的每个所述计算机系统的所述提供的服务级别相同的定义方式来表达,并且相同的散列函数被用于对它们进行运算,同时使用如上段中描述的度量,则在数据对象的数据标识符与计算机系统的伙伴标识符之间的距离用于区分希望的和提供的服务级别的匹配和非匹配对:对于任何匹配对,所述数据标识符与所述伙伴标识符之间的距离小于任何非匹配对之间的距离。
根据一个实施例,所述方法还包括评估由每个所述计算机系统提供的服务级别,所述评估基于所述相应计算机系统的可用盘空间、总体盘空间、正常运行时间和网络带宽中的任何一项。通过以标准化的客观方式来评估每个所述计算机系统的服务级别,保证了所提供的服务级别可跨所述对等网络被比较。由于诸如可用盘空间或网络带宽之类的参数无法被假设为随时间保持恒定,所以此实施例尤其具有优势。通过例如以固定的间隔来重新评价所提供的服务级别,服务级别的值可以被更新以正确地反映实际情况。
基于对等网络的存储解决方案的一个优点是它允许利用客户机工作站、服务器甚至已付费的存储系统上的未使用盘容量。即使此盘容量似乎是免费的,但是实际上仍存在需被管理的成本。一个实例是网络成本,在管理不善的对等网络中其可以增长的非常快。根据一个实施例,所述方法还包括根据所述相应计算机系统提供的服务级别将支付单位(paymentunit)分配给每个所述计算机系统。由于其向每个参与计算机系统的用户提供激励以便将资源贡献给所述对等网络,所以此实施例尤其具有优势。通过增加系统正常运行时间、提供更大的硬盘或更高带宽的网络连接,所述用户可以提高由其计算机系统提供的服务级别并作为回报,被奖励更多数量的支付单位。
根据一个实施例,作为对存储所述数据对象中的所述一个数据对象的交换,支付单位被从用户计算机系统传输到所述复制计算机系统。通过要求所述用户使用所赚取的支付单位为使用其他计算机系统上的存储付费,提供了对有限制地利用由所述对等网络提供并与所有其他用户共享的存储的激励。如果用户需要比其可用支付单位更多的存储,则他将被促使增加他自己对网络的贡献以便被分配更多的支付单位,从而增加了所述对等网络的总体容量。可替代地,他可以选择取消某些为他在其他计算机系统上存储的数据对象。
根据一个实施例,传输到所述复制计算机系统的所述支付单位取决于为所述数据文件选择的希望服务级别。由于例如面临缺少支付单位的用户获得了除了取消不很重要的数据对象的存储并贡献更多的资源以赚取更多的支付单位之外的其他选择,所以这尤其具有优势。替代地,用于他的全部或某些数据对象的希望服务级别可以被调整为其他较低价格的服务级别。
根据一个实施例,所述方法还包括评估所述数据对象中的所述一个数据对象被以其存储在所述复制计算机系统上的实际服务级别,并且如果所述实际服务级别与所述希望服务级别不匹配,则将所述数据对象中的所述一个数据对象路由到其他复制计算机系统。由于根据复制系统的提供的服务级别或用于所述数据对象中的所述一个数据对象的希望服务级别的更改来动态地调整数据对象的存储位置,所以此实施例尤其具有优势。例如,所述评估可以由所述复制计算机系统以固定的间隔自动地启动,以便评估存储在所述复制计算机系统上的数据对象的服务级别。可替代地,所述评估可以由为其将所述数据对象中的所述一个数据对象存储在所述复制系统上的用户来启动,由于所述评估可以检测所述复制计算机系统的完整不可用性并导致将所述数据对象中的所述一个数据对象的副本存储在其他计算机系统上,所以这尤其具有优势。
根据一个实施例,从所述数据文件产生的数据对象的数量取决于为所述数据文件选择的所述希望服务级别。为了提高存储和检索操作的性能,特别是涉及具有低带宽网络连接的计算机系统,将要存储的数据文件拆分成被分发到相应数量的复制计算机系统的具有相应较小大小的较大数量的数据对象是有利的。由于较高的性能伴随着较高的网络成本,所以根据希望服务级别来规定数据对象的数量是有利的。为从所述数据文件产生的每个数据对象重复所述指派、路由和存储的步骤。
根据一个实施例,所述方法还包括从一个或多个复制计算机系统的子集检索一个或多个数据对象的子集,并使用一个或多个所述数据对象的所述子集来恢复所述数据文件。为了提高对一个或多个对等计算机系统的故障的适应能力,冗余地存储数据对象是有利的。如果某些数据对象无法被检索,则仍然可以从可以被检索的数据对象的子集来重新组装所述数据文件。在最简单的方法中,每个数据对象都被存储预定数量的副本。提供了实现资源利用与获得的安全收益的较好平衡的更复杂的算法。由于较高的安全收益伴随着较高的网络成本,所以根据希望服务级别来规定数据对象的数量是有利的。
附图说明
在本发明的以下优选实施例中,将参考附图仅以实例的方式更详细地描述本发明,这些附图是:
图1是基于服务级别的对等网络体系结构的分层图;
图2是本发明的一个实施例的用户计算机系统的方块图;
图3是示出了如何计算数据和伙伴标识符的图;以及
图4是通过对等网络的数据对象的路由路径的图。
具体实施方式
图1是将网络体系结构示为一系列层的分层图,每个层都具有仅使用下层的功能并且仅将功能导出到上层的属性。网络层100(图中的最低层)代表提供计算机系统间的数据的透明传输的传统计算机网络。基于TCP/IP协议的因特网和公司网络是这类传统网络的实例。因此该体系结构使得能够在业已存在的网络基础设施的基础上实现本发明。
应用层110形成了图的最顶层,从该处其直接作为应用过程的接口并执行用于应用过程的普通应用服务,具体地说,根据由诸如所存储的数据文件的可用性、安全性和检索时间之类的参数定义的可选择服务级别来存储和检索数据文件的服务。应用层110建立在紧接其下的业务度量层108的功能上-业务度量层108是根据指定的服务级别提供跨网络将数据路由到存储位置/从存储位置路由数据的层。业务度量层108独立于网络层100的拓扑来执行其路由任务。替代地,它在抽象的第二网络(在网络层100的顶部运行的所谓的重叠网络112)的上下文中运行。
所述重叠网络112根据对等原则来组织;所有参与的计算机系统履行同等的角色。它通过扩展先前为对等重叠网络中的存储实现开发的算法(例如Chord/DHash、CAN、Pastry、Tapestry和Kademlia)以多种可能方式中的一种方式来实现。某些算法(例如Chord或CAN)提供了路由层102,路由层102形成了使用诸如DHash之类的其他单独存储算法实现的存储层106的基础。在其他算法中(例如Pastry、Tapestry或Kademlia),在路由102和存储106层之间没有明显的分隔,相应的功能在组合的路由和存储层104中提供。
图2是用作图1描述的对等网络中的伙伴的计算机系统200的方块图。所述计算机系统无需是专用系统,并且例如可以是个人计算机、服务器或存储系统。在每个参与的计算机系统上,都需要安装对等软件,它将形成联接所述对等网络的技术基础。
所述对等软件包括用于评估计算机系统200的能力的评估模块206并计算计算机系统200以其将存储服务提供给所述对等网络的服务级别。所评估的能力包括存储资源204的总体容量和可用容量、网络带宽和系统正常运行时间。通过用户界面202,计算机系统200的用户可以通过限制将被贡献给所述对等网络的资源来影响评估。例如,用户可以决定只贡献10GB的存储资源204,尽管所述计算机系统中可能有40GB可用。在运行中,评估模块206执行评估并通知核算模块218已评估的服务级别。核算模块维护可以被与在所述对等网络中存储数据交换的支付单位的当前余额220。根据所述评估模块评估的服务级别,核算模块218确定将被分配到计算机系统的支付单位的初始数量并将该数量贷记到当前余额220。所述评估被以固定的间隔(如每天一次)重复,并可以由用户在任何时间通过用户界面202来启动。
为了启动将数据文件存储在所述对等网络中,计算机系统200的用户通过用户界面202选择用于存储的数据文件连同数据文件应以其被存储的希望服务级别。然后,拆分模块208将所述文件拆分成若干数据对象以便进一步地分散和存储。从所述数据文件产生的数据对象的数量取决于所选择的服务级别。此外,所选择的服务级别确定了产生所述数据对象的冗余度,换句话说,有多少数据对象将必须被从对等网络成功地检索以便从它们恢复所述数据文件。
由拆分模块208产生的数据对象在进一步的步骤中被标记模块210指派了反映所述希望服务级别(由所述用户选择以便存储从其产生数据对象的数据文件)的唯一数据标识符。优选地,标记模块210作为从所述希望服务级别导出的散列值与从相应数据对象的二进制数据导出的散列值的串接来计算所述数据标识符。
加密模块212使用仅对计算机系统200的用户已知的加密密钥来加密所述数据对象。然后路由模块214使用诸如Chord、CAN或Tapestry之类的路由算法通过所述对等网络来路由所述数据对象。由于加密,数据对象在复制计算机系统中的存储期间或通过网络传输期间不会受到损害。有关数据对象的信息由路由模块214传输到数据管理模块216,数据管理模块216管理所路由的数据对象的所有属性,包括用于检索的数据对象的相应数据标识符的表。一旦数据对象已被路由到其在复制计算机系统处的存储目的地,所述复制计算机系统的数据管理模块就会联系计算机系统200的数据管理模块216。数据管理模块216指示核算模块218根据存储所述数据对象的服务级别来减去支付单位。
图3是示出了在对等网络中使用的数据318和伙伴标识符320的相应结构的示意图。将伙伴标识符320指派给计算机系统102是计算机系统联接对等网络的前提条件。在所述伙伴标识符可以被构建和指派之前,必须评估所述计算机系统的能力并且必须从一组可能的服务级别确定提供的服务级别308,据此所述计算机系统将能够在对等网络中提供存储服务。提供的服务级别308被以标准化的方式表示为文本或二进制数据,其详细信息是任意的但在整个对等网络中是统一的。仅作为实例示出的提供的服务级别308被表示为字符串“LEVEL_5”。根据以标准化的方式表达的提供的服务级别308,然后使用散列函数(例如由SHA-1算法所提供的函数)以同样标准化的方式来计算散列值314。所述散列函数的详细信息是任意的但在整个对等网络中是统一的。仅作为实例示出的散列值314具有值“801”,通过对代表提供的服务级别308的字符串“LEVEL_5”执行散列函数运算来计算。
如果参与所述对等网络的计算机系统的数量超过了服务级别集合的元素的数量,则多个计算机系统将共享同一提供的服务级别308和散列值314(其以标准化的方式从提供的服务级别308导出),对于同样的提供的服务级别308产生同样的散列值314。通过将散列值314与从计算机系统102的唯一属性306计算的其他散列值316串接,可以构建在所述对等网络中唯一的伙伴标识符320。用于唯一属性306的合适选择是对计算机系统102唯一的硬件标识符,或诸如位于对等重叠网络之下的传统网络的IP地址之类的网络地址。所述唯一属性的选择、它们被表示为二进制或文本数据的方式以及所使用的散列函数是任意的但在整个对等网络中是统一的。
将数据标识符318指派给数据对象300是通过所述对等网络路由所述数据对象的前提条件。在可以构建和指派所述数据标识符之前,必须从一组可能的服务级别确定数据对象300的希望服务级别304,据此所述数据对象被存储在对等网络中。以与其中当计算所述计算机系统的伙伴标识符320时表达计算机系统102的提供的服务级别308的标准化方式对应的标准化方式,所述希望服务级别304被表示为文本或二进制数据。仅作为实例示出的提供的服务级别304被表示为字符串“LEVEL_5”。根据以标准化的方式表达的希望服务级别304,然后以与其中从计算机系统的提供的服务级别308计算散列值314相同的标准化方式来计算散列值310。仅作为实例示出的散列值310具有值“801”,通过对代表希望服务级别304的字符串“LEVEL_5”执行散列函数运算来计算。
通过将散列值310与从对数据对象300唯一的二进制数据302计算的其他散列值318串接,可以构建在存储在所述对等网络中的数据对象中唯一的数据标识符318。所述散列函数的选择以及从二进制数据302计算散列值的方式是任意的但在整个对等网络中是统一的。
图4示出了计算机系统200、200’、200”、200的对等网络的图。每个计算机系统都标注有其相应的伙伴标识符320、320’、320”、320。所述计算机系统被象征性地排列成六边形网格,旨在意味着象征性六边形网格中的最接近的邻居是所述对等网络中的最接近的邻居。
源自计算机系统200并标注有数据标识符318的数据对象300沿示为实心箭头的路由路径通过对等网络被路由。数据对象300的数据标识符318被与计算机系统200的伙伴标识符320相比较,并被与计算机系统200的最接近的邻居400、402和404的伙伴标识符相比较。计算机系统404的伙伴标识符被发现与数据对象300的数据标识符318最为接近,假设在伙伴和数据标识符的地址空间中定义的逐位比较标识符(从标识符的相应开始处的最高有效位开始)的度量。数据对象300因此被路由到计算机系统404。在计算机系统404中,数据对象300的数据标识符318被与计算机系统404自身的伙伴标识符及其最接近的邻居200、400、402、406、410以及408相比较。根据已定义的度量,数据标识符318被发现与计算机系统408的数据标识符最为接近。
已被路由到计算机系统408之后,数据对象300的数据标识符318被与计算机系统408自身的伙伴标识符及其最接近的邻居402、404和410相比较。由于数据标识符318被发现为比最接近的邻居的任何伙伴标识符都更接近计算机系统408的伙伴标识符,所以它被存储在计算机系统408中而不进行任何进一步的路由。然后,计算机系统408将有关数据对象300的存储位置的信息直接传递给数据对象300源自该处的计算机系统200。
标号列表
100网络层
102路由层
104组合的路由和存储层
106存储层
108服务级别度量层
110应用层
200用户计算机系统
202用户界面
204存储资源
206评估模块
208拆分模块
210标记模块
212加密模块
214路由模块
216数据管理模块
218核算模块
220支付单位的当前余额
222指派模块
300数据对象
302二进制数据
304希望服务级别
306唯一属性
308提供的服务级别
310希望服务级别的散列值
312数据对象的散列值
314提供的服务级别的散列值
316唯一系统属性的散列值
318数据标识符
320伙伴标识符
400、402、404、406对等计算机系统
408复制计算机系统
410对等网络

Claims (20)

1.一种在计算机系统(200、400、402、404、406、408)的对等网络(410)中存储来自用户计算机系统(200)的数据文件的方法,每个计算机系统都以一组服务级别中的相应提供的服务级别(308)来提供存储服务,所述方法包括:
·以这样的方式将来自度量空间的相应伙伴标识符(320)指派给每个所述计算机系统:在以相同服务级别提供存储的计算机系统的伙伴标识符之间的距离小于在以不同服务级别提供存储的计算机系统的伙伴标识符之间的距离,
·选择所述服务级别组中的希望服务级别(304)以便存储所述数据文件,
·从所述数据文件生成一个或多个数据对象(300),
·以这样的方式将来自所述度量空间的数据标识符(318)指派给所述数据对象(300)中的一个数据对象:在所述数据对象中的所述一个数据对象的所述数据标识符与以所述希望服务级别提供存储的计算机系统的任何伙伴标识符之间的距离小于在所述数据对象中的所述一个数据对象的所述数据标识符与以不同于所述希望服务级别的服务级别提供存储的计算机系统的任何伙伴标识符之间的距离,
·将所述数据对象中的所述一个数据对象通过所述对等网络路由到复制计算机系统(408),所述复制计算机系统(408)具有伙伴标识符,该伙伴标识符比通过对等交互连接到所述复制计算机系统的其他计算机系统(402、404、410)的任何伙伴标识符都更接近所述数据对象中的所述一个数据对象的所述数据标识符,以及
·将所述数据对象中的所述一个数据对象存储在所述复制计算机系统上。
2.根据权利要求1的方法,还包括加密(212)所述数据对象(300)中的所述一个数据对象。
3.根据权利要求1或2的方法,其中所述数据标识符(318)包括从所述希望服务级别(304)导出的散列值(310)和从所述数据对象(300)中的所述一个数据对象导出的散列值(312)的串接。
4.根据权利要求1、2或3的方法,其中对于每个所述计算机系统(200、400、402、404、406、408),所述相应的伙伴标识符(320)包括从由所述相应计算机系统提供的所述服务级别(308)导出的散列值(314)和从所述相应计算机系统的唯一属性(306)导出的散列值(316)的串接。
5.根据以上权利要求中的任一权利要求的方法,还包括评估由每个所述计算机系统(200、400、402、404、406、408)提供的所述服务级别(308),所述评估基于所述相应计算机系统的可用盘空间、总体盘空间、正常运行时间和网络带宽中的任何一项。
6.根据权利要求5的方法,还包括根据所述相应计算机系统提供的所述服务级别(308)将支付单位(220)分配给每个所述计算机系统(200、400、402、404、406、408)。
7.根据权利要求6的方法,还包括作为对存储所述数据对象中的所述一个数据对象的交换,将支付单位从所述用户计算机系统(200)传输到所述复制计算机系统(408)。
8.根据权利要求7的方法,其中传输的所述支付单位取决于为所述数据文件选择的所述服务级别(304)。
9.根据以上权利要求中的任一权利要求的方法,还包括:
·评估所述数据对象被以其存储在所述复制计算机系统(408)上的实际服务级别,以及
·如果所述实际服务级别与所述希望服务级别不匹配,则将所述数据对象路由到其他复制计算机系统。
10.根据以上权利要求中的任一权利要求的方法,其中从所述数据文件产生的数据对象(300)的数量取决于用于所述数据文件的所选择的服务级别。
11.根据以上权利要求中的任一权利要求的方法,还包括为所述一个或多个数据对象(300)中的每个数据对象重复所述指派、路由和存储的步骤,所述一个或多个数据对象被存储在一个或多个复制计算机系统(408)上。
12.根据权利要求11的方法,还包括:
·从所述一个或多个复制计算机系统(408)的子集检索所述一个或多个数据对象(300)的子集,以及
·使用所述一个或多个所述数据对象的所述子集来恢复所述数据文件。
13.根据权利要求12的方法,其中恢复所述数据文件所需的数据对象(300)的数量取决于用于所述数据文件的所选择的服务级别(304)。
14.一种包括用于执行根据以上权利要求中的任一权利要求的方法的计算机可执行指令的计算机程序产品。
15.一种用于在计算机系统(200、400、402、404、406、408)的对等网络(410)中提供存储服务的用户计算机系统,所述用户计算机系统包括:
·存储资源(204),所述存储资源(204)可用于向所述对等网络提供存储服务,
·评估模块(206),所述评估模块(206)用于评估所述存储资源并得到以其提供所述存储服务的一组服务级别中的提供的服务级别(308),以及
·指派模块(222),所述指派模块(222)用于以这样的方式将来自度量空间的伙伴标识符(320)指派给所述用户计算机系统:在所述伙伴标识符与以相同服务级别提供存储的其他计算机系统的任何其他伙伴标识符之间的距离小于在所述伙伴标识符与以不同服务级别提供存储的其他计算机系统的任何其他伙伴标识符之间的距离。
16.根据权利要求15的用户计算机系统,所述存储资源(204)包括可用盘空间、总体盘空间、正常运行时间和网络带宽中的任何一项。
17.根据权利要求15或16的用户计算机系统(200),还包括:
·用户界面(202),所述用户界面(202)用于选择所述服务级别组中的希望服务级别(304)以便将数据文件存储在所述对等网络(410)中,
·拆分模块(208),所述拆分模块(208)用于从所述数据文件产生一个或多个数据对象(300),
·标记模块(210),所述标记模块(210)用于以这样的方式将来自所述度量空间的数据标识符(318)指派给所述数据对象(300)中的一个数据对象:在所述数据对象中的所述一个数据对象的所述数据标识符与以所述希望服务级别提供存储的计算机系统的任何伙伴标识符(320)之间的距离小于在所述数据对象中的所述一个数据对象的所述数据标识符与以不同于所述希望服务级别的服务级别提供存储的计算机系统的任何伙伴标识符之间的距离,以及
·路由模块(214),所述路由模块(214)用于将所述数据对象中的所述一个数据对象通过所述网络路由到复制计算机系统(408),所述复制计算机系统(408)具有伙伴标识符,该伙伴标识符比通过所述对等网络连接到所述复制计算机系统的其他计算机系统(402、404、410)的任何伙伴标识符都更接近所述数据对象中的所述一个数据对象的所述数据标识符。
18.根据权利要求15到17中的任一权利要求的用户计算机系统,所述伙伴标识符(320)包括从所提供的所述服务级别(308)导出的散列值(314)和从所述用户计算机系统的唯一属性(306)导出的散列值(316)的串接。
19.根据权利要求15到18中的任一权利要求的用户计算机系统(200),还包括:
·支付单位(220)的当前余额,以及
·核算模块(218),所述核算模块(218)用于根据由所述用户计算机系统提供的并且由所述评估模块确定的所述服务级别来将支付单位分配给所述计算机系统。
20.根据权利要求15到19中的任一权利要求的用户计算机系统(200),还包括用于验证所述数据对象被以其存储在所述复制计算机系统(408)上的实际服务级别的数据管理模块(216)。
CN200610074469A 2005-07-12 2006-04-21 数据存储方法和系统 Expired - Fee Related CN100588203C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05106357.6 2005-07-12
EP05106357 2005-07-12

Publications (2)

Publication Number Publication Date
CN1897593A true CN1897593A (zh) 2007-01-17
CN100588203C CN100588203C (zh) 2010-02-03

Family

ID=37609965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610074469A Expired - Fee Related CN100588203C (zh) 2005-07-12 2006-04-21 数据存储方法和系统

Country Status (2)

Country Link
US (1) US8005982B2 (zh)
CN (1) CN100588203C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102119388A (zh) * 2008-06-10 2011-07-06 微软公司 在主应用程序中提供合伙服务
CN111241195A (zh) * 2020-01-02 2020-06-05 腾讯云计算(北京)有限责任公司 分布式系统的数据库处理方法、装置、设备及存储介质

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783600B1 (en) * 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
US7989408B2 (en) * 2007-04-10 2011-08-02 Exxonmobil Research And Engineering Company Fuel economy lubricant compositions
US8108502B2 (en) * 2008-07-24 2012-01-31 Symform, Inc. Storage device for use in a shared community storage network
US7869383B2 (en) 2008-07-24 2011-01-11 Symform, Inc. Shared community storage network
EP2377294B1 (en) * 2008-12-18 2017-05-17 Scality, SA Multipurpose storage system based upon a distributed hashing mechanism with transactional support and failover capability
US9369516B2 (en) 2009-01-13 2016-06-14 Viasat, Inc. Deltacasting
US8483217B2 (en) 2009-03-10 2013-07-09 Viasat, Inc. Internet protocol broadcasting
US7716179B1 (en) * 2009-10-29 2010-05-11 Wowd, Inc. DHT-based distributed file system for simultaneous use by millions of frequently disconnected, world-wide users
US8516253B1 (en) 2010-01-18 2013-08-20 Viasat, Inc. Self-keyed protection of anticipatory content
US9307003B1 (en) 2010-04-18 2016-04-05 Viasat, Inc. Web hierarchy modeling
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US11983233B2 (en) 2011-04-11 2024-05-14 Viasat, Inc. Browser based feedback for optimized web browsing
US9037638B1 (en) 2011-04-11 2015-05-19 Viasat, Inc. Assisted browsing using hinting functionality
US9106607B1 (en) 2011-04-11 2015-08-11 Viasat, Inc. Browser based feedback for optimized web browsing
EP4024760A1 (en) 2011-06-14 2022-07-06 ViaSat Inc. Transport protocol for anticipatory content
US9407355B1 (en) 2011-10-25 2016-08-02 Viasat Inc. Opportunistic content delivery using delta coding
US9455883B1 (en) * 2012-03-30 2016-09-27 Emc Corporation Method and apparatus for provisioning shared NFS storage
US8432808B1 (en) 2012-06-15 2013-04-30 Viasat Inc. Opportunistically delayed delivery in a satellite network
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
MX2018004856A (es) 2015-10-20 2018-11-09 Viasat Inc Actualizacion de modelo de optimizacion por medio de agrupamientos de navegacion automatica.
CN114726884B (zh) * 2022-06-06 2022-09-27 深圳市佑荣信息科技有限公司 一种金融级文件安全存储方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446068B1 (en) * 1999-11-15 2002-09-03 Chris Alan Kortge System and method of finding near neighbors in large metric space databases
US7209973B2 (en) * 2001-04-09 2007-04-24 Swsoft Holdings, Ltd. Distributed network data storage system and method
JP2005011042A (ja) * 2003-06-18 2005-01-13 Shinfuoomu:Kk データ検索方法、データ検索装置、データ検索プログラムおよびコンピュータで読み取り可能な記録媒体
AU2003903967A0 (en) * 2003-07-30 2003-08-14 Canon Kabushiki Kaisha Distributed data caching in hybrid peer-to-peer systems
US20070192349A1 (en) * 2004-03-08 2007-08-16 Farr Jeffrey R Data provisoning method and system
US7480817B2 (en) * 2006-03-31 2009-01-20 International Business Machines Corporation Method for replicating data based on probability of concurrent failure

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102119388A (zh) * 2008-06-10 2011-07-06 微软公司 在主应用程序中提供合伙服务
CN111241195A (zh) * 2020-01-02 2020-06-05 腾讯云计算(北京)有限责任公司 分布式系统的数据库处理方法、装置、设备及存储介质
CN111241195B (zh) * 2020-01-02 2023-03-21 腾讯云计算(北京)有限责任公司 分布式系统的数据库处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US8005982B2 (en) 2011-08-23
US20070133554A1 (en) 2007-06-14
CN100588203C (zh) 2010-02-03

Similar Documents

Publication Publication Date Title
CN100588203C (zh) 数据存储方法和系统
Cai et al. Maan: A multi-attribute addressable network for grid information services
US20120084386A1 (en) System and method for sharing network storage and computing resource
Vazhkudai et al. Constructing collaborative desktop storage caches for large scientific datasets
Kermarrec et al. Want to scale in centralized systems? Think P2P
Kryukov et al. Decentralized data storages: Technologies of construction
CN110730241B (zh) 面向全局规模的区块链基础设施
Cao et al. Cost-effective replication schemes for query load balancing in DHT-based peer-to-peer file searches
Abe Blockchain storage load balancing among dht clustered nodes
Monti et al. Timely offloading of result-data in hpc centers
Danelutto et al. Peer-to-peer techniques for data distribution in desktop grid computing platforms
Fazea et al. Review on unstructured peer-to-peer overlay network applications
Pandey et al. A framework for interest-based community evolution and sharing of latent knowledge
Skowron et al. Flexible replica placement for optimized P2P backup on heterogeneous, unreliable machines
Kelley et al. A peer-to-peer architecture for data-intensive cycle sharing
Monti et al. Timely result-data offloading for improved HPC center scratch provisioning and serviceability
Shannigrahi The future of networking is the future of big data
Elwaer et al. Preference driven server selection in peer-2-peer data sharing systems
d'Orazio et al. Adaptable cache service and application to grid caching
Vardhan et al. A transparent service replication mechanism for clouds
Sit Storing and managing data in a distributed hash table
Kelley A distributed architecture for intra-and inter-cloud data management
Miller et al. On utilization of contributory storage in desktop grids
Riley et al. A distributed hash table for computational grids
Celaya et al. YA: Fast and Scalable Discovery of Idle CPUs in a P2P network.

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

Granted publication date: 20100203

Termination date: 20160421

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