高性能计算系统——高性能P2P系统

高性能P2P系统

随着新时代的通信、工具、知识论坛、MOOC学习系统、网络研讨会、实时通信的出现,物理呈现不再是一个限制因素。

P2P计算范型可以被看做是不同节点之间协作的完美形式。在P2P中,具有不同计算能力的不同系统聚集在一起,共享它们的资源,如带宽、存储、计算周期和共同负责集合。P2P范型完全依赖于对等节点的贡献。这种贡献可以是内容本身,也可以是将内容分发给其他用户、存储和计算周期的带宽。

与传统的客户端-服务器模型不同,P2P计算模型支持自组协作和通信。拥有成本被分配给对等节点。P2P中保证了对等节点的匿名性。由于没有*服务器,也就意味着没有单点故障,所以P2P可以比传统的客户端-服务器系统更具有可扩展性。

尽管P2P系统有很多的优点,但它也有一些局限性。对等节点之间存在着内在的信任因素,必须建立足够的担保。对于不可信的环境,集中系统在安全性和访问控件方面是更好的选择。

设计原则与特点

在设计P2P系统时,主要目标时支持高性能应用和竞争性复杂用户需求。

  • 异构型、资源聚合和互操作性:分布式系统中的参与节点在计算能力、网络带宽和存储等方面有着不同。
  • 成本分担
  • **改进的可扩展性、增加的自治性和可靠性:**没有*服务器发出命令,对等节点间的更多的自治性。
  • 匿名性和隐私
  • 动态和临时协作:P2P系统假设计算环境是高度动态的。

P2P具有的特征

  • 分散式:每个对等节点都是平等的参与者。
  • 自组织性
  • 更低的拥有成本
  • 高性能
  • 高度可扩展性

P2P系统架构

集中式P2P系统

属于这一类的系统可以看作是介于纯分散式系统和纯客户机-服务器系统之间的架构。这些系统中的中心用于定位于请求相关的资源,并协调对等节点。对等节点首先向*服务器发送一个查询,该查询请求特定的资源,然后*服务器返回所请求资源低地址之后,对等节点直接与其他对等节点进行通信,如BitTorrent1。对于[email protected]2和BOINC3,对等节点与*服务器协作,直接获得工作单元。这些系统的优点就是,找到资源和响应时间是有时间限制的,并且以潜在的瓶颈和可扩展性为代价,系统的组织和维护变得更加容易。
高性能计算系统——高性能P2P系统

案例

Napster

允许用户直接交换MP3文件的web应用。它可以像Napster服务器发送搜索请求,并接受提供所需要的音乐文件的对等节点列表。

BitTorrent

用于文件共享的集中式,非结构化对等计算网络。

分散式P2P系统

在分散式P2P系统中,每个对等节点都具有同等的权利和责任,因为每个对等节点都只拥有整个系统的一部分信息。

拓扑关系是结构化还是非结构化的,这两类系统之间的根本区别在于资源到对等节点的映射。在非结构化系统中,每个对等节点负责自己的资源,并跟踪与其相邻的一组邻居节点。这意味着定位资源很艰难,直到整个网络都被查询,才会有完整的答案。

**可扩展性:**可扩展性对任何旨在成为web规模的P2P系统来说都是一个重要的问题,在基于DHT的系统中,为对等节点选择的命令空间决定了系统中可以参与和共享资源的对等节点的最大数量,而非结构化系统由于大量信息泛洪而不具有高度可扩展性。

**定位资源:**定位资源是实现对等计算系统功能的关键任务之一。

  • 泛洪请求模型:每个查询会泛洪到整个网络,每个对等节点将请求转发到其直接连接的邻居节点,直到请求被应答或已经达到预设的最大泛洪步数为止。
  • 文档路由模型:数据被分配到ID,它是基于数据本身的哈希值,而对等节点也被分配一个随机的ID。

案例

Freenet

Freenet4的设计目的是是无任何审查的通过Internet*地传播信息称为可能。Freenet是基于分散式P2P架构设计的。只要安装了Freenet Daemon或Freenet server,任何连接到Internet的计算机都可以成为这个系统的一部分。

Gnutella

Gnutella5是另外一个纯P2P应用程序得到经典实例。Gnutella允许匿名文件共享、容错和适应性,并支持构建虚拟网路系统。

Chord

在Chord6中,对等节点以环的形式构成,这个环结构被命名为一个Chord环。其中每个对等节点都有一个唯一的ID,这些对等节点按照他们的ID顺序插入环中。Chord中每个对等节点拥有两个邻居接地那,分别是它的前驱和后继。

混合P2P系统

混合P2P系统既有集中式系统快速可靠的资源定位的优点,也有分散式系统中较高的可扩展性的优点。但是混合的P2P系统中没有*服务器,而是有一些被称为“超级对等节点”的对等节点,他们比其他同类节点更加强大。

使用此架构开发的一些系统有BestPeer7、PeerDB、PeerIS、CQBuddy和Spotify。

高级P2P架构通信协议和框架

像TCP和UDP这样的普通的网络协议,对于P2P系统来说不能很好地工作,即使像STCP和DCCP这样的标准化协议,也不能提供足够的模块化,以便在P2P和HPC中达到最佳粒度和性能。为了消除这一局限性,人们引入了一种新的基于Cactus框架的P2P自适应通信协议。该协议依赖于微协议,并且基于应用层级的的选择自动选择恰当的通信模式。已经完成的Cactus框架的主要扩展是,在网络模型中的各层之间复制的不是消息,而是指向消息的指针。

在Geodemlia8中,架构的思想是对等节点位于一个球体上,每个对等节点能够通过GPS位置(经纬度坐标)来定位自身。每个对等节点都有一个随机的ID,对象与特定的位置相关联,并且具有唯一的随机ID。
高性能计算系统——高性能P2P系统

高性能P2P应用

所有的P2P应用程序可以分为四类:边缘服务(edge service)将相关的内容推送到客户端,有助于平衡服务器和网络的负载,增加存储空间。协作P2P可用于实时更新个人和团队的通信与协作,协作的作用主要体现在通信(ICQ、IRC、即时通信)内容分发和Internet搜索等方面。文件共享。分布式计算。

Cassandra

Cassandra9是一个分布式数据库,用于处理跨多个集群的PB级数据,以高可用性作为其独特的卖点。Cassandra通过P2P交互和复制实现了高可用性。目前,采用Cassandra的有Cisco、Netflix、Rackspace和Twitter。

在Cassandra中,每个节点都是平等的,分担共同的责任,被称为对等节点。P2P通信通过gossip协议完成,通过该协议传递状态信息和对等节点发现。Cassandra是一个面向行的数据库,可以通过类似SQL的CSQL(Cassandra Query language)访问数据。当CQL支持异步响应。

Cassandra支持一致性的调节,我们可以从一致性的级别从“一致性写入”调整到“可读副本”或中间的某种状态。Cassandra可以与Hadoop MapReudce 集成,以进行批量分析。

Cassandra的核心特征有分散式、可扩展性、容错性、数据分区和复制。

Cassandra文件系统

Cassandra是一个有趣的应用来自Datastax10的Cassandra文件系统(CFS)。CFS的主要目标是取代Hadoop的HDFS。尝试解决HDFS中的单点故障问题。CFS的另一个设计目标是为Cassandra用户轻松实现与Hadoop的集成。

HDFS与CFS之间的区别在于CFS中无法设置每个文件的复制。

[email protected]

Search for Extraterrestrial Intelligence at Home([email protected])是使用Internet末端附带的计算资源的先行者,边际成本很低,还引发了其他的志愿计算项目,如[email protected][email protected][email protected]

[email protected]有五个组件:屏幕保护程序([email protected] Client)、用户数据库、数据采集器、数据服务器和科学计算库。

比特币:基于P2P的数字货币

比特币是基于P2P货币创建和验证的数字货币系统。2009年由中本聪(Satoshi Nakamoto)作为开源软件的推出。每笔付款都用被比特币的货币记录在公开的账本中。

比特币是作为对支付处理工作的补偿而产生的,这项工作涉及用户花费他们的计算资源对公共分类账中的交易进行验证和记录。这个处理的过程被称为挖矿,是为了交换交易费用或为了新生成的比特币。

比特币被定义为数字签字链,比特币的转移是通过对之前的交易的哈希以及和转移的目标的客户端的公匙进行数字签字来完成的。


  1. http://www.bittorrent.org/introduction.html ↩︎

  2. Anderson D P , Cobb J , Korpela E , et al. [email protected]: an experiment in public-resource computing[J]. Communications of the ACM, 2002, 45(11):56-61. ↩︎

  3. Anderson D P. BOINC: A System for Public-Resource Computing and Storage[C]// IEEE/ACM International Workshop on Grid Computing. 2004. ↩︎

  4. Clarke I . Freenet : A Distributed Anonymous Information Storage and Retrieval System[J]. 2000. ↩︎

  5. Crespo A , Garcia-Molina H . Routing Indices for Peer-to-Peer Systems[J]. Proceedings - International Conference on Distributed Computing Systems, 2002. ↩︎

  6. Stoica I , Morris R , Karger D , et al. Chord: A scalable peer-to-peer lookup service for internet applications[J]. ACM SIGCOMM Computer Communication Review, 2001, 31. ↩︎

  7. Ng W S , Ooi B C , Tan K L . BestPeer: A self-configurable peer-to-peer system[C]// 18th International Conference on Data Engineering. IEEE, 2002. ↩︎

  8. Christian Groß, Stingl D , Björn Richerzhagen, et al. Geodemlia: A Robust Peer-to-Peer Overlay Supporting Location-Based Search[C]// Proceedings of the 12th IEEE International Conference on Peer-to-Peer Computing. IEEE, 2012. ↩︎

  9. Lakshman A . Cassandra-a decentralized structured storage system[C]// 3rd ACM SIGOPS International Workshop on Large Scale Distributed Systems and Middleware (LADIS 09), Oct. ACM, 2009. ↩︎

  10. https://www.datastax.com/ ↩︎