CN101616184A - 冗余数据存储方法 - Google Patents
冗余数据存储方法 Download PDFInfo
- Publication number
- CN101616184A CN101616184A CN200910149195A CN200910149195A CN101616184A CN 101616184 A CN101616184 A CN 101616184A CN 200910149195 A CN200910149195 A CN 200910149195A CN 200910149195 A CN200910149195 A CN 200910149195A CN 101616184 A CN101616184 A CN 101616184A
- Authority
- CN
- China
- Prior art keywords
- node
- peer
- physical hardware
- moves
- section point
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及冗余数据存储方法。对等覆盖网络(N)包括多个节点(0、20、50、87、112、140、179、200、211、223、240)。识别所述多个节点中的第一节点(211)在其上运行的物理硬件。确定所述多个节点中在与第一节点(211)不同的物理硬件上运行的至少一个第二节点(240)。将第一节点(211)负责的数据的复制品(203)存储在第一节点的下一个逻辑节点(223)上,除此之外或者作为替代,所述数据的复制品(203)被存储在所述至少一个第二节点(240)上,其中下一个逻辑节点(223)是:参照所述对等覆盖网络(N)的拓扑结构,所述多个节点中与第一节点(211)相邻的一个节点。
Description
技术领域
本发明涉及一种在对等覆盖网络中进行冗余数据存储的方法,以及一种网络节点和一种执行所述方法的计算机程序产品。
背景技术
对等(=P2P)覆盖网络被用于大量的应用,诸如VoIP(例如Skype)或文件共享(例如eMule)(VoIP=基于因特网协议的语音)。基于共同提供和使用的资源,诸如可扩缩性、自组织、以及容错性的特征由分布式体系结构和数据存储来实现。P2P网络由作为对等体(peer)(即,既作为网络的客户端,也作为服务器)的节点组成。在以下描述中,术语“节点”和“对等体”可被交替地使用。网络的每个节点维护到其它节点的一个或多个逻辑链路,所述链路参照覆盖算法建立,并被用于消息传送。
现有技术的P2P网络基于特定算法构建了逻辑拓扑结构,所述算法对于底层网络基础设施是不可知的。每个节点维护到其它节点的一个或多个链路,所述链路用于以广播方式(无结构的覆盖,例如Gnutella)或者以基于ID的方式(使用分布式哈希表(=DHT)的结构化的覆盖,例如Chord)(ID=标识/标识符)进行消息路由。某些系统使用具有无结构的对等体组的混合体系结构,并且这些组在较大拓扑中是结构化的(例如Skype)。高级的P2P网络实现了分布式数据库(DHT),其需要复制机制来确保在一个节点意外地脱离网络的情况下也可以使所存储的数据得到保存。
P2P网络是完全分散化的。参与到覆盖中的对等体可能在随机的时间以及意外地脱离网络。通过在一些节点上的数据复制进行的冗余存储保证了:即使在对数据负责的对等体已经退出覆盖之后,所述数据仍旧在网络中可用。冗余机制是基于覆盖细节的,例如,在对等体标识符空间中接近的对等体之间的邻居关系。通过在负责数据条目的一个节点上以及在保有备份条目的一个或多个节点上公布数据,实现了数据的高度可用性。通过在多个邻居节点上存储多个复制品,实现了更高的可用性。在基于Chord算法的对等网络中,每个对等体节点根据对等体ID将其负责的资源集合复制到邻居对等体节点上。
DHT通常存储数据的键/值对,而所述键映射到节点的ID空间。在Chord中,每个节点负责存储这些键,其小于等于其自身的ID并且大于其前导的ID。
图1a示出了现有技术的结构化的P2P覆盖网络N,其包括多个节点0、20、50、87、112、140、179、200、211、223、240。具体而言,图1a示出了Chord环N。节点的参考标记0、20、50、87、112、140、179、200、211、223、240意思是同样表示节点0、20、50、87、112、140、179、200、211、223、240的节点ID。在Chord中,节点维持到它们前导和后继节点的直接连接,这导致了环形拓扑。具有节点ID 211的节点对于区间{201,202,...,211}中的所有键负责。因此,具有键ID 203的键/值对存储在节点211上,并且节点211的数据的复制品存储在后继节点223上,如图1a所示。如果节点211脱离网络N,如图1b所示,则节点223成为同样对节点211的ID空间负责,包括键203在内。因此,在网络N中维护了节点211的数据。
WO 2007/138044 A1涉及一种P2P通信设备,例如PDA、台式计算机或者膝上型计算机,其包括存储器,其中存储了P2P通信设备的对等标识指示,所述指示包括明确的、不可修改的一部分以及可修改的一部分(PDA=个人数字助理)。P2P通信设备的用户被授权自由地选择可修改的部分,而不能改变明确的、不可修改的部分(其被确定地分配给用户)。例如,用户被允许选择一字节的值,其将被添加到预定的9字节的UUID的末端,以便构成完整的10字节的UUID(=唯一用户标识符)。这是为了确保与单个用户相关联的两个或多个P2P通信设备在P2P网络中位于彼此靠近的地方。这种邻居定位的优点在于,关于邻居列表的改变的信息以及持续有效(keep-alive)的消息可以在P2P通信设备之间进行快速交换,而不用负担P2P网络之下的IP网络(IP=因特网协议)。这种邻居定位的缺点在于,很可能的是,P2P通信设备经由相同的网络实体(例如路由器)连接于P2P网络。一旦此路由器故障,则所有的P2P通信设备同时被断开。
发明内容
本发明的目的是提供一种在对等覆盖网络中进行冗余存储的改进方法。此外,本发明的另一目的是提供一种对应的网络节点以及一种对应的用于执行该改进方法的计算机程序产品。
通过一种在包括多个节点的对等覆盖网络中进行冗余数据存储的方法实现了本发明的第一目的,所述方法包括以下步骤:识别物理硬件,所述多个节点中的第一节点在所述物理硬件上运行;确定所述多个节点中的至少一个第二节点,所述至少一个第二节点在与所述第一节点不同的物理硬件上运行;以及,将所述第一节点负责的数据的复制品存储在所述第一节点的下一个逻辑节点上,除此之外或者作为替代,将所述数据的复制品存储在所述至少一个第二节点上,其中,所述下一个逻辑节点是:关于所述对等覆盖网络的拓扑结构,所述多个节点中与所述第一节点相邻的节点。此外,通过一种包括多个节点的对等网络的第一节点实现了本发明的第二目的,其中所述节点包括控制单元,其适于:识别所述第一节点在其上运行的物理硬件;确定所述多个节点中的至少一个第二节点,所述至少一个第二节点在与所述第一节点不同的物理硬件上运行;以及,将所述第一节点负责的数据的复制品存储在所述第一节点的下一个逻辑节点上,除此之外附加或者作为替代,启动将所述数据的复制品存储在所述至少一个第二节点上,其中,所述下一个逻辑节点是:关于所述对等覆盖网络的拓扑结构,所述多个节点中与所述第一节点相邻的节点。并且,通过一种用于在包括多个节点的对等覆盖网络中进行冗余数据存储的计算机程序产品实现了本发明的第三目的,其中所述计算机程序产品,当在所述多个节点中的一个节点上执行时,执行以下步骤:识别所述第一节点在其上运行的物理硬件;确定所述多个节点中的至少一个第二节点,其在与所述第一节点不同的物理硬件上运行;以及,将所述第一节点负责的数据的复制品存储在所述第一节点的下一个逻辑节点上,除此之外或者作为替代,启动将所述数据的复制品存储在所述至少一个第二节点上,其中,所述下一个逻辑节点是:关于所述对等覆盖网络的拓扑结构,所述多个节点中与所述第一节点相邻的节点。
如果复制算法仅基于对于覆盖特定的节点ID,即,无需考虑底层物理硬件(如现有技术系统中的情形),以下是可能的:两个随后的对等体位于相同的物理机器(例如PC(=个人计算机))上。如果该物理硬件故障,则这两个邻居节点同时退出DHT,并且原始数据和复制数据二者均丢失。本发明的实施例解决了现有技术中遇到的此问题。
本发明的实施例引入了一种冗余数据存储算法,其是基于覆盖拓扑细节,但同时考虑到P2P覆盖网络的底层物理硬件。本发明的实施例描述了网络节点(=逻辑对等体),其将与网络节点在其上运行的物理硬件有关的信息包括在P2P系统的冗余数据存储算法中。
在现有技术中,位于相同物理机器(例如,通过操作系统的虚拟化,例如XEN、VMware)的节点不知道这件事,与现有技术不同,本发明的实施例提供了一种冗余数据存储系统,其识别一个或多个网络节点在其上运行的物理硬件,并且考虑了与物理硬件有关的、用于适当的冗余数据存储的此信息。
本发明的实施例提供了一种进行冗余数据存储的安全方式。由于数据复制是防止在节点故障的情况下数据丢失的一种策略,因此根据本发明实施例的复制不会在相同的物理节点上发生。这种情况不会被现有技术的DHT算法所考虑。特别是在小型部署中(例如,包括最多一百个节点的网络),相对于其逻辑ID成为邻居的节点在相同的物理节点(例如在虚拟化环境中,例如VMware、Xen)上托管。在现有技术中,节点的物理硬件被忽视,因此,很可能在硬件故障的情形中数据被丢失。本发明的实施例借助于考虑了节点的物理硬件的冗余数据存储而避免了这种风险。
因此,本发明的实施例在小型部署中特别有帮助,在这样的小型部署中,邻居节点在相同的物理机器上被托管的概率有所增加。由于借助于对物理位置与覆盖节点ID的映射的冗余数据存储的原因,本发明的实施例避免了数据丢失。
本发明的实施例增加了所存储数据的可用性。本发明的实施例提供了:与实际硬件有关的信息被包括在复制策略中。
根据本发明的实施例的新的复制策略可以容易地被包括在已知的用于冗余数据存储的算法中。在硬件故障的情况下成为对于键负责的节点对复制品负责。
本发明的实施例支持对于复制的不同冗余级。并且,如本发明的实施例所呈现的、基于硬件细节对节点ID的分配减少了在硬件故障的情况下数据丢失的风险。
与冗余数据存储算法基于覆盖细节的当前P2P覆盖相反,本发明的实施例提供了一种解决方案,其考虑了针对P2P网络中的覆盖拓扑创建和冗余数据存储的分布式物理硬件基础设施之上的虚拟化解决方案。
此外,本发明描述了针对可以有益地用于诸如服务器群集或纯P2P电话系统的分布式环境中的基础技术的改进。具体而言,此类技术可以被包括在IETF P2P-SIP中(IETF=因特网工程任务组;SIP=会话启动协议)。
在现有技术中,已知的是,将数据的复制品的数量增加得大于相同用户的对等体的数量,以便保护数据使其不会对于单一硬件故障是脆弱的。特别是在具有高DB(=数据库)操作频率的群集部署中,每个复制品导致极大的流量,这可能是不可接受的。而且,在通信网络的部署中,现有技术文献的方法是不实用的,因为具有有限性能的设备(例如,电话、PDA)无法承受存储增加数量的复制品。本发明的实施例避免了这些缺点,因为仅需要再多一个复制品,即,所需的复制品的数量是非常有限的。
通过由所附权利要求指示的本发明实施例实现了另外的优点。
根据本发明的优选实施例,如果在与第一节点相同的物理硬件上运行的一个节点试图加入对等网络,则为加入节点选择节点ID,使得预定义数量的其它节点关于所述对等覆盖网络的拓扑结构位于所述加入节点和所述第一节点之间。由此,在现有技术中已知的加入过程被修改,从而实现了在相同物理硬件上运行的对等体之间的最大距离。在覆盖中的对等体的邻居关系由对等体ID所确定。由此,使ID分配过程成为硬件相关有助于避免以下情况,其中位于相同硬件上的两个对等体成为邻居。
以下是可能的:由具有与群集拓扑有关的信息的登记服务器(enrolment server)分配对等体ID。该登记服务器-优选地是中央服务器-用以下方式分配对等体ID,即,新加入对等体不会与这样的对等体成为邻居,所述对等体与新加入对等体位于相同的硬件上。
然而,在中央实体不可用的部署中,新加入P2P网络的对等体自己,例如随机地,选择其ID。在加入过程期间,对等体联系接纳对等体(admitting peer,其负责将新的对等体集成到拓扑中),并由此知道邻居的拓扑。如果加入对等体的硬件与邻居中的对等体有冲突,则接纳对等体可能决定重定向加入对等体。加入对等体接着选择不同的对等体ID,并试图在别处加入覆盖。由此,根据本发明的实施例,以下是可能的:加入对等体被接纳对等体重定向,以试图关于对等覆盖网络的拓扑结构,在另一位置加入对等覆盖网络。在预定义数量的其它节点关于对等覆盖网络的拓扑结构位于加入节点和第一节点之间之前,加入节点不会被同一个或另一个接纳节点所接纳。
以下是可能的:第一节点探测到与其自身的硬件有关、以及与网络的其它节点有关的信息。该探测的目的是找出多个网络节点中的哪些节点在相同的物理硬件上运行。存在探测物理硬件的若干种可能的方式:
根据本发明的优选实施例,通过从第一节点的平台检索信息,确定第一节点在其上运行的所述物理硬件。优选地,所述检索由第一节点执行。确定第一节点在其上运行的所述物理硬件,除此之外或者替代地,通过从至少一个第二节点的平台检索信息,确定与第一节点在相同的物理硬件上运行的所述至少一个第二节点。优选地,所述检索由第一节点执行。所述平台可以使第一节点和/或至少一个第二节点在其上运行的物理硬件,例如,CPU(=中央处理单元)、计算机、网络单元等。所述信息可以例如是与第一节点和/或至少一个第二节点相关联的CPU ID、MAC地址、位置、IP地址、位置等等(MAC=媒体存取控制)。这包括软件应用在网络节点的操作系统的帮助下能够找出的任意信息。例如,MAC地址通常是用于确定物理主机的相对安全的方式,但是,如果使用了硬件虚拟化技术,可能不是这样的情况。
本发明的实施例修改了由Chord对等体执行的复制方法,并由此能够在物理节点故障的情形中提高数据可用性。本发明的实施例将每个对等体节点关联于硬件标识符,例如CPU ID、MAC地址等等,其标识了托管对等体节点的硬件平台。对等体节点使用硬件标识符来复制资源集合,对等体节点对于在不同硬件平台上运行的至少一个对等体节点,优选地是按照拓扑结构(例如按照对等体ID)的最接近的后继者上的一组资源负责。
根据本发明的另一优选实施例,通过从与第一节点相链接或相关联的外部管理单元检索信息,确定第一节点在其上运行的所述物理硬件。优选地,所述检索由第一节点执行。确定第一节点在其上运行的所述物理硬件,除此之外或者作为替代,通过从与第二节点相链接或相关联的外部管理单元检索信息,确定与第一节点在相同的物理硬件上运行的所述至少一个第二节点。优选地,所述检索由第一节点执行。所述外部管理单元还可以是外部群集(cluster)管理实体,其中术语“群集”指代作为网络节点的群集的P2P覆盖网络。
如果外部群集管理实体可用,例如可用于配置节点ID,则外部群集管理实体也可以提供与群集的物理拓扑有关的信息。外部群集管理实体可以是中央登记服务器、引导服务器、或者网络管理和监视服务器。
如果软件应用不能探测到所需的硬件信息,则由节点的管理者对节点进行手动(预先)配置是一种解决方案。优选地,通过从对等网络的网络操作员和/或从第一节点的用户检索相应的信息,确定第一节点在其上运行的所述物理硬件。优选地,所述检索由第一节点执行。确定第一节点在其上运行的所述物理硬件,除此之外或者作为替代,通过从对等网络的网络操作员和/或从至少一个第二节点的用户检索相应的信息,确定与第一节点在相同的物理硬件上运行的所述至少一个第二节点。优选地,所述检索由第一节点执行。
在优选实施例中,借助于在与第一节点相关联的应用层上的测量,确定第一节点在其上运行的所述物理硬件。优选地,所述确定由第一节点执行。确定第一节点在其上运行的所述物理硬件,除此之外或者作为替代,借助于在与第二节点相关联的应用层上的测量,确定与第一节点在相同的物理硬件上运行的所述至少一个第二节点。优选地,所述确定由第一节点执行。
在应用层上的所述测量可以是应用级探查机制,诸如“ping”消息交换。基于所述ping消息交换,如果其它节点在相同的设备上托管,则节点可以从连接等待时间进行估计。并且,如果节点在相同的硬件上,其它已知的方法可以被用于进行估计:例如,网络协调系统试图通过测量节点间等待时间来获得关于底层网络的知识,而无需对所有链路进行明确测量。这允许当节点在物理拓扑中接近时将节点靠近地放置在逻辑覆盖中。另一示例是Pastry,其通过测量到其它节点的等待时间而针对本地性持续地调节路由表。
根据本发明的另一优选实施例,第一节点将第一节点在其上运行的物理硬件的描述包括到从第一节点发送到第一节点的下一个逻辑节点的P2P消息中,其中所述下一个逻辑节点存储数据的复制品。可能地,第一节点的下一个逻辑节点由下述事实所定义,所述事实为,下一个逻辑节点存储第一节点负责的数据的复制品。下一个逻辑节点检查第一节点在其上运行的物理硬件是否与下一个逻辑节点在其上运行的物理硬件相同。如果第一节点在其上运行的物理硬件与下一个逻辑节点在其上运行的物理硬件相同,则下一个逻辑节点将数据的复制品转发到至少一个第二节点。
ID分配是用于防止相同硬件上的对等体参考P2P覆盖网络的拓扑结构位于彼此相邻的一种方式。由于节点可能随机地故障,实际不是邻居的两个对等体可能在任意时间成为邻居。在某些部署中,在此情形中可能的解决方案是重新分配对等体ID。然而,对对等体ID的重新分配不会总是可能的,此外还可能对于覆盖结构具有不想要的效果。例如,对对等体ID的重新分配还可能意味着对等体负责的键空间(key space)发生改变:很可能对等体变为对完全不同的键/值对负责。对于实际集成的对等体的所需数据传输需要时间和资源,并且可能是不可接受的。
由此,根据本发明的实施例,P2P覆盖网络的复制算法被扩充。通过已经检索的、关于物理硬件的信息的帮助,将复制的数据附加地复制到下一个节点,其在不同硬件上运行,并将变为在硬件故障的情形中对数据负责。
优选地,如果需要冗余数据存储的较高冗余度,则第一节点负责的数据的复制品被存储在许多第二节点上,其中每个第二节点运行在另一物理硬件上,从而存储了复制品并且每个运行在不同的硬件上的第二节点的总数等于预定义的冗余因子。
附图说明
通过阅读当前优选地示例性实施例并结合附图,本发明的这些以及另外的特征和优点将被更好地理解,在附图中:
图1a示出了现有技术的P2P覆盖网络;
图1b示出了现有技术的P2P覆盖网络;
图2示出了根据本发明实施例的P2P覆盖网络;
图3示出了根据本发明实施例在图2中示出的P2P覆盖网络中的冗余数据存储;以及
图4示出了根据本发明实施例在图2中示出的P2P覆盖网络中的冗余数据存储。
具体实施方式
图2示出了根据本发明实施例的P2P覆盖网络。具体而言,图2示出了根据本发明实施例的Chord环N。所述Chord环N包括多个节点0、20、50、87、112、140、179、200、211、223、240,其中参考标记0、20、50、87、112、140、179、200、211、223、240意思是同样表示节点0、20、50、87、112、140、179、200、211、223、240的节点ID。节点的节点ID通过对于覆盖特定的DHT算法被分配,并且例如可以是基于登记服务器的,或者由节点自己随机选择的。每个节点表示Chord环N的一个对等体。
在所述方法的第一步骤,第一节点211确定其正在哪个物理硬件上运行。并且,第一节点211确定Chord环N的其它节点0、20、50、87、112、140、179、200、223、240正在哪个物理硬件上运行。
第一节点211由一个或若干个互连的计算机组成,即,硬件平台、基于硬件平台的软件平台、以及由软件和硬件平台构成的系统平台所执行的若干应用程序。通过执行这些应用程序来提供第一节点211的功能。这些应用程序或这些应用程序中选定的一部分,当在系统平台上执行时,组成了提供路由服务的计算机软件产品,如下文中所述的。另外,所述计算机软件产品由存储介质组成,所述存储介质存储这些应用程序、或应用程序的所述的选定的一部分。
从功能视角看来,第一节点211包括:控制单元,用于控制第一节点的功能;存储介质,用于存储数据;以及接口,用于与其它节点交换信息。
对于对物理硬件的确定,第一节点211可以使用任意可用信息,其有助于识别第一节点在其上运行的物理硬件。以下是可能的:第一节点211通过从其自身的平台收集信息,例如CPU ID、MAC地址、位置、IP地址等等,而检索关于第一节点在其上运行的物理硬件的信息。接着,第一节点211可以从Chord环N的其它节点0、20、50、87、112、140、179、200、223、240收集相应的信息,并比较所收集的信息片。例如,如果第一节点211在其上运行的计算机的CPU ID等于节点223在其上运行的计算机的CPU ID,则第一节点211得出这样的结果:第一节点211在其上运行的物理硬件等同于节点223在其上运行的物理硬件。
除了可从其自身的平台获得例如CPU ID、MAC地址、位置、IP......的信息之外,第一节点211还可以使用借助于手动配置提供的、借助于应用层测量等收集的、从外部管理实体检索的信息,所述手动配置由第一节点211在其上运行的硬件的用户所执行。类似地,其它节点0、20、50、87、112、140、179、200、223、240中的每个均可以使用任意可用信息,其有助于识别该节点在其上运行的物理硬件。以下是可能的:其它节点0、20、50、87、112、140、179、200、223、240中的每个将所收集的、与各个物理硬件有关的信息传送到第一节点211。以下也是可能的:第一节点211访问其它节点0、20、50、87、112、140、179、200、223、240在其上运行的物理硬件,并且从其它节点0、20、50、87、112、140、179、200、223、240收集与它们各自的物理硬件有关的信息段。
对物理硬件分类的此步骤的结果在图2中示出,图2示出了硬件分类以及通过针对节点0、20、50、87、112、140、179、200、211、223、240的不同图标形状来示出所述硬件分类。每个形状表示不同的物理机器。这意味着,节点0、50、140、211和223在第一机器上运行。节点20、112、179和240在第二机器上运行。节点87和200在第三机器上运行。
在现有技术的方案中,存储在节点211上的键/值对203的复制品仅被复制到节点223上,如图1a所示的。如图3所示,当节点211和节点223在相同的硬件上托管时,本发明实施例提供了附加地或可替换地将复制品转发到节点240。
例如通过查询其邻居223、240等,由节点211自身完成确定对于其硬件信息负责的对等体240。可替换地,节点211将其硬件信息包括在P2P消息中,该P2P消息被发送到其逻辑邻居节点223。接着,节点223能够确定对等体211和223在相同的物理硬件上托管。在此情形中,节点223将复制品203从节点223转发到节点240。
对于节点211和223由于硬件故障的原因而退出网络N的情形,如图4所示,节点240仍然保持着键/值对203的拷贝,从而数据203被保持在网络N中。
为了获得甚至更高的冗余因子,第一节点必须触发将复制品存储到在不同硬件上运行的更多数量的对等体上。例如,如果请求冗余因子为三,则第一节点211必须触发的是:复制品数据203也被存储在节点87上。由此,第一节点211负责的复制品数据203被存储在运行于第一硬件(=图2中的圆形)上的节点223、运行于第二硬件(=图2中的方形)上的节点240、以及运行于第三机器(=图2中的菱形)上的节点87。
在高级实现方式中,可以存在基于硬件的若干冗余级。例如,取决于不同的刀片、机架、服务器机房或数据中心,存储一个复制品可能是有用的。
根据本发明实施例的加入和脱离算法参照现有技术的方案进行修改,以便确保硬件相关的复制品的一致性。在对于根据本发明实施例的加入和脱离算法的以下描述中,假定对等体确定其在哪个硬件上运行的过程已经如上所述那样被完成。
在算法修改的描述中使用了以下缩写:
LR 依赖于逻辑覆盖ID的复制品
HR 依赖于物理硬件的复制品
HRP HR的位置
NP 邻居对等体
JP 加入对等体
LP 离开对等体
1)加入算法
1a)加入对等体:
如果到JP的直接NP在与JP相同的硬件上被托管,则JP必须确定HRP,其是位于不同硬件上的下一个NP。接着,HR被推送到该对等体。否则,相同的对等体会负责LR和HR二者。在此情形中,仅一个复制品被推送到相应的对等体。
1b)在邻居列表中具有JP的对等体
如果加入位置位于该对等体与其HRP之间,则JP很可能对HRP有影响。在此情形中,每个对等体必须检查其HRP是否已改变。如果HRP已改变,则HR必须被推送到现在位于HRP上的对等体,并且旧的HR必须被删除。
2)离开算法
在邻居列表中具有LP的对等体
如果LP位于该对等体与其HRP之间,或者如果LP在HRP自身之上,则LP也很可能对HRP有影响。在此情形中,每个对等体必须检查其HRP是否已改变。如果HRP已改变,则HR必须被推送到现在位于HRP上的对等体,并且旧的HR必须被删除。
Claims (11)
1.一种用于在包括多个节点(0、20、50、87、112、140、179、200、211、223、240)的对等覆盖网络(N)中进行冗余数据存储的方法,所述方法包括以下步骤:
识别物理硬件,所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的第一节点(211)在所述物理硬件上运行;
确定在与所述第一节点(211)不同的物理硬件上运行的所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的至少一个第二节点(240);以及
将所述第一节点(211)负责的数据的复制品(203)存储在所述第一节点的下一个逻辑节点(223)上,除此之外或者作为替代,将所述数据的复制品(203)存储在所述至少一个第二节点(240)上,其中,所述下一个逻辑节点(223)是:关于所述对等覆盖网络(N)的拓扑结构,所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中与所述第一节点(211)相邻的节点。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括以下步骤:如果在与所述第一节点(211)相同的物理硬件上运行的节点加入所述对等覆盖网络(N),则为加入节点选择节点标识符,使得预定义数量的其它节点关于所述对等覆盖网络(N)的拓扑结构位于所述加入节点和所述第一节点(211)之间。
3.根据权利要求2所述的方法,其特征在于,所述方法进一步包括以下步骤:通过登记单元将所述节点标识符分配给所述加入节点。
4.根据权利要求2所述的方法,其特征在于,所述方法进一步包括以下步骤:由接纳节点将所述加入节点重定向,以便在关于所述对等覆盖网络(N)的拓扑结构的另一位置加入所述对等覆盖网络(N),从而所述预定义数量的其它节点关于所述对等覆盖网络(N)的拓扑结构位于所述加入节点和所述第一节点(211)之间。
5.根据权利要求1所述的方法,其特征在于,所述方法包括以下步骤:通过从所述第一节点(211)和/或所述至少一个第二节点(240)的平台分别检索信息,识别所述第一节点(211)在其上运行的所述物理硬件和/或确定所述至少一个第二节点(240)。
6.根据权利要求1所述的方法,其特征在于,所述方法包括以下步骤:通过从与所述第一节点(211)和/或所述至少一个第二节点(240)相链接的外部管理单元分别检索信息,识别所述第一节点(211)在其上运行的所述物理硬件和/或确定所述至少一个第二节点(240)。
7.根据权利要求1所述的方法,其特征在于,所述方法包括以下步骤:借助于从所述对等网络(N)的网络操作员和/或所述第一节点(211)的用户和/或所述至少一个第二节点(240)检索相应信息,识别所述第一节点(211)在其上运行的所述物理硬件和/或确定所述至少一个第二节点(240)。
8.根据权利要求1所述的方法,其特征在于,所述方法包括以下步骤:借助于在所述对等覆盖网络(N)的应用层上的等待时间测量,识别所述第一节点(211)在其上运行的所述物理硬件和/或确定所述至少一个第二节点(240)。
9.根据权利要求1所述的方法,其特征在于,所述方法进一步包括以下步骤:
由所述第一节点(211)将所述第一节点(211)在其上运行的物理硬件的描述包括到从所述第一节点(211)发送到所述第一节点(211)的下一个逻辑节点(223)的对等消息中,所述下一个逻辑节点(223)存储数据的复制品(203);
由所述下一个逻辑节点(223)检查所述第一节点(211)在其上运行的物理硬件是否与所述下一个逻辑节点(223)在其上运行的物理硬件相同;以及
如果所述第一节点(211)在其上运行的物理硬件与所述下一个逻辑节点(223)在其上运行的物理硬件相同,则由所述下一个逻辑节点(223)将所述数据的复制品(203)转发到所述至少一个第二节点(240)。
10.一种包括多个节点(0、20、50、87、112、140、179、200、211、223、240)的对等网络(N)的第一节点(211),其中所述节点包括控制单元,其适于:识别所述第一节点(211)在其上运行的物理硬件;确定在与所述第一节点(211)不同的物理硬件上运行的所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的至少一个第二节点(240),其在与所述第一节点(211)不同的物理硬件上运行;以及,将所述第一节点(211)负责的数据的复制品(203)存储在所述第一节点的下一个逻辑节点(223)上,除此之外或者作为替代,启动将所述数据的复制品(203)存储在所述至少一个第二节点(240)上,其中,所述下一个逻辑节点(223)是:关于所述对等覆盖网络(N)的拓扑结构,所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中与所述第一节点(211)相邻的节点。
11.一种用于在包括多个节点(0、20、50、87、112、140、179、200、211、223、240)的对等覆盖网络(N)中进行冗余数据存储的计算机程序产品,其中所述计算机程序产品,当在所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的一个节点上执行时,执行以下步骤:
识别所述第一节点(211)在其上运行的物理硬件;
确定所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的至少一个第二节点(240),其在与所述第一节点(211)不同的物理硬件上运行;以及
作为将所述第一节点(211)负责的数据的复制品(203)存储在所述第一节点的下一个逻辑节点(223)上的附加或者作为替代,启动将所述数据的复制品(203)存储在所述至少一个第二节点(240)上,其中,所述下一个逻辑节点(223)是:参照所述对等覆盖网络(N)的拓扑结构,所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中与所述第一节点(211)相邻的一个节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08290624.9 | 2008-06-27 | ||
EP08290624A EP2139205B1 (en) | 2008-06-27 | 2008-06-27 | Method of redundant data storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101616184A true CN101616184A (zh) | 2009-12-30 |
CN101616184B CN101616184B (zh) | 2013-08-28 |
Family
ID=39884330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101491955A Active CN101616184B (zh) | 2008-06-27 | 2009-06-26 | 冗余数据存储方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8126849B2 (zh) |
EP (1) | EP2139205B1 (zh) |
CN (1) | CN101616184B (zh) |
WO (1) | WO2009156263A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034739A (zh) * | 2012-12-29 | 2013-04-10 | 天津南大通用数据技术有限公司 | 一种分布式存储系统及其更新和查询方法 |
CN103810061A (zh) * | 2014-01-28 | 2014-05-21 | 河南科技大学 | 一种高可用云存储方法 |
CN105659213A (zh) * | 2013-10-18 | 2016-06-08 | 日立数据系统工程英国有限公司 | 无共享分布式存储系统中的目标驱动独立数据完整性和冗余恢复 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8509407B2 (en) * | 2009-03-23 | 2013-08-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Event identification in peer to peer networks |
CN101895482A (zh) * | 2009-05-18 | 2010-11-24 | 华为技术有限公司 | 对点到点技术网络的逻辑拓扑信息进行抽象的方法和装置 |
US8326798B1 (en) * | 2009-09-14 | 2012-12-04 | Network Appliance, Inc. | File system agnostic replication |
US8874505B2 (en) * | 2011-01-11 | 2014-10-28 | Hitachi, Ltd. | Data replication and failure recovery method for distributed key-value store |
US8782364B2 (en) | 2011-12-13 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Determining availability of data elements in a storage system |
CN102868682B (zh) * | 2012-08-21 | 2015-02-25 | 北京邮电大学 | 一种流媒体资源共享的方法和装置 |
US9680659B2 (en) * | 2012-08-27 | 2017-06-13 | Ricoh Company, Ltd. | Obtaining, managing and archiving conference data |
WO2014108356A2 (en) * | 2013-01-10 | 2014-07-17 | Telefonaktiebolaget L M Ericsson (Publ) | Connection mechanism for energy-efficient peer-to-peer networks |
US9210219B2 (en) | 2013-07-15 | 2015-12-08 | Red Hat, Inc. | Systems and methods for consistent hashing using multiple hash rings |
US10303567B2 (en) * | 2013-08-15 | 2019-05-28 | Entit Software Llc | Managing database nodes |
US10412158B2 (en) * | 2016-07-27 | 2019-09-10 | Salesforce.Com, Inc. | Dynamic allocation of stateful nodes for healing and load balancing |
US10698780B2 (en) * | 2016-08-05 | 2020-06-30 | Nutanix, Inc. | Implementing availability domain aware replication policies |
JP7074018B2 (ja) * | 2018-10-22 | 2022-05-24 | 日本電信電話株式会社 | 分散処理システムおよび分散処理方法 |
JP7149313B2 (ja) * | 2020-09-28 | 2022-10-06 | 株式会社日立製作所 | 記憶システム及びその制御方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073209A (en) * | 1997-03-31 | 2000-06-06 | Ark Research Corporation | Data storage controller providing multiple hosts with access to multiple storage subsystems |
GB0002972D0 (en) * | 2000-02-09 | 2000-03-29 | Orange Personal Comm Serv Ltd | Data handling system |
US20020083163A1 (en) * | 2000-10-26 | 2002-06-27 | Metilinx | Multi-platform optimization model |
US6771666B2 (en) * | 2002-03-15 | 2004-08-03 | Meshnetworks, Inc. | System and method for trans-medium address resolution on an ad-hoc network with at least one highly disconnected medium having multiple access points to other media |
US6937602B2 (en) * | 2001-10-23 | 2005-08-30 | Meshnetworks, Inc. | System and method for providing a congestion optimized address resolution protocol for wireless ad-hoc networks |
US6928476B2 (en) * | 2002-08-23 | 2005-08-09 | Mirra, Inc. | Peer to peer remote data storage and collaboration |
US8005918B2 (en) * | 2002-11-12 | 2011-08-23 | Rateze Remote Mgmt. L.L.C. | Data storage devices having IP capable partitions |
US20050108276A1 (en) * | 2003-11-13 | 2005-05-19 | Ramani Sriram | Methods and system for dynamic database content persistence and information management |
US7904913B2 (en) * | 2004-11-02 | 2011-03-08 | Bakbone Software, Inc. | Management interface for a system that provides automated, real-time, continuous data protection |
US20080130516A1 (en) * | 2004-12-21 | 2008-06-05 | Electronics And Telecommunications Research Institute | P2p Overplay Network Construction Method and Apparatus |
CN1328879C (zh) * | 2005-01-26 | 2007-07-25 | 北京大学 | 基于数据分块冗余和虚拟化存储的在线备份方法 |
US7849303B2 (en) * | 2005-02-22 | 2010-12-07 | Microsoft Corporation | Peer-to-peer network information storage |
US20060190715A1 (en) * | 2005-02-22 | 2006-08-24 | Microsoft Corporation | Peer-to-peer network information retrieval |
US8365301B2 (en) * | 2005-02-22 | 2013-01-29 | Microsoft Corporation | Peer-to-peer network communication |
US7656810B2 (en) * | 2005-03-25 | 2010-02-02 | Microsoft Corporation | System and method for monitoring and reacting to peer-to-peer network metrics |
EP1821487B1 (en) * | 2006-02-21 | 2010-04-07 | Microsoft Corporation | Topology management in peer-to-peer content distribution clouds |
US9047310B2 (en) * | 2006-02-22 | 2015-06-02 | Microsoft Technology Licensing, Llc | Reliable, efficient peer-to-peer storage |
US20070230468A1 (en) * | 2006-03-31 | 2007-10-04 | Matsushita Electric Industrial Co., Ltd. | Method to support mobile devices in a peer-to-peer network |
DE102006024982A1 (de) | 2006-05-29 | 2007-12-13 | Nokia Siemens Networks Gmbh & Co.Kg | Peer-to-Peer-Kommunikationseinrichtung, Verfahren zum Bilden einer Peer-to-Peer-Identifikationsangabe und Verfahren zum Betreiben eines Peer-to-Peer-Kommunikationsnetzwerks |
US8041942B2 (en) * | 2006-09-05 | 2011-10-18 | Panasonic Corporation | Robust peer-to-peer networks and methods of use thereof |
CN101170572A (zh) * | 2006-10-23 | 2008-04-30 | 日电(中国)有限公司 | 基于p2p sip技术实现的多媒体网络通信系统 |
US20080147821A1 (en) * | 2006-12-19 | 2008-06-19 | Dietrich Bradley W | Managed peer-to-peer content backup service system and method using dynamic content dispersal to plural storage nodes |
US8090792B2 (en) * | 2007-03-08 | 2012-01-03 | Nec Laboratories America, Inc. | Method and system for a self managing and scalable grid storage |
US8762664B2 (en) * | 2007-08-30 | 2014-06-24 | Red Hat, Inc. | Replicating cache nodes in a cluster |
-
2008
- 2008-06-27 EP EP08290624A patent/EP2139205B1/en active Active
-
2009
- 2009-06-08 WO PCT/EP2009/057043 patent/WO2009156263A1/en active Application Filing
- 2009-06-09 US US12/457,367 patent/US8126849B2/en active Active
- 2009-06-26 CN CN2009101491955A patent/CN101616184B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034739A (zh) * | 2012-12-29 | 2013-04-10 | 天津南大通用数据技术有限公司 | 一种分布式存储系统及其更新和查询方法 |
CN105659213A (zh) * | 2013-10-18 | 2016-06-08 | 日立数据系统工程英国有限公司 | 无共享分布式存储系统中的目标驱动独立数据完整性和冗余恢复 |
CN105659213B (zh) * | 2013-10-18 | 2018-12-14 | 株式会社日立制作所 | 无共享分布式存储系统中的目标驱动独立数据完整性和冗余恢复 |
CN103810061A (zh) * | 2014-01-28 | 2014-05-21 | 河南科技大学 | 一种高可用云存储方法 |
CN103810061B (zh) * | 2014-01-28 | 2017-05-31 | 河南科技大学 | 一种高可用云存储方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2139205B1 (en) | 2012-10-31 |
CN101616184B (zh) | 2013-08-28 |
WO2009156263A1 (en) | 2009-12-30 |
EP2139205A1 (en) | 2009-12-30 |
US8126849B2 (en) | 2012-02-28 |
US20090327364A1 (en) | 2009-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101616184B (zh) | 冗余数据存储方法 | |
EP2139202B1 (en) | Method of providing a successor list | |
Manku et al. | Symphony: Distributed hashing in a small world | |
Pourebrahimi et al. | A survey of peer-to-peer networks | |
EP1876788B1 (en) | Distributed Hashing Mechanism for self-organizing networks | |
WO2007149338A2 (en) | Methods, devices and architectures for establishing peer-to -peer sessions | |
Zöls et al. | On hierarchical DHT systems–An analytical approach for optimal designs | |
KR20110021931A (ko) | 라우팅 경로를 결정하는 방법 | |
El-Ansary et al. | An overview of structured overlay networks | |
JP2008140388A (ja) | 階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法 | |
Janson et al. | A self-stabilizing locality-aware peer-to-peer network combining random networks, search trees, and dhts | |
Zghaibeh et al. | Sham: scalable homogeneous addressing mechanism for structured P2P networks | |
Sacha et al. | A service-oriented peer-to-peer architecture for a digital ecosystem | |
Setia | Distributed Hash Tables (DHTs) Tapestry & Pastry | |
Ribe-Baumann | Combining resource and location awareness in dhts | |
Antonopoulos et al. | A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2P Networks. | |
Abdallah et al. | Fair load balancing under skewed popularity patterns in heterogeneous dht-based p2p systems | |
Dobre | A cluster-enhanced fault tolerant peer-to-peer systems | |
Dobre et al. | DistHash: A robust P2P DHT-based system for replicated objects | |
Leslie et al. | Replication strategies for reliable decentralised storage | |
Al-Dmour | Comparison of file sharing search algorithms over peer-to-peer networks | |
Iancu et al. | A self-adapting peer-to-peer logical infrastructure, to increase storage reliability on top of the physical infrastructure | |
Albrecht et al. | Dependable peer-to-peer systems withstanding dynamic adversarial churn | |
Shin et al. | A proximity-based self-organizing hierarchical overlay framework for distributed hash tables | |
Xiang et al. | An efficient overlay network based on many rings which embed inverse Kautz digraphs |
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 |