《云数据管理:挑战与机遇》一2.2P2P系统

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介:

本节书摘来自华章出版社《云数据管理:挑战与机遇》一书中的第二章,第2.2节,作者[美] 迪卫艾肯特•阿格拉沃尔(Divyakant Agrawal) 苏迪皮托•达斯(Sudipto Das)阿姆鲁•埃尔•阿巴迪(Amr El Abbadi)  更多章节内容可以访问云栖社区“华章计算机”公众号查看。



2.2 P2P系统

作为传统的客户端–服务器模式的另外一种可替代方式,P2P(peer-to-peer)架构提供了一种可行的方案,P2P系统中的很多技术都已经在数据中心中得到了成功应用。P2P系统的主要目标是在数百万并发用户的情况下,确保数十亿对象的可用性,如音乐文件。为了实现上述目标,必须在物理网络之上构建一层虚拟的或逻辑的覆盖(overlay)网络。抽象地讲,覆盖构建了不同站点之间的相互通信方式以及数据存储方式。最简单的形式是一个对象可以看成是一个键–值对。覆盖提供了对象检索方法,并支持两种基本操作:给定一个键和值,可以把键–值元组插入(insert)到覆盖中,同时,给定一个键值,可以查询(lookup)并返回对应的值。覆盖一般可以表示成图的形式,以站点为节点,用边来连接不同的站点,可以分为结构化覆盖和非结构化覆盖。

非结构化覆盖没有在节点间的逻辑图上增加任何特定的结构。集中式方案是这种P2P设计的最简单实现,最早由Napster[Carlsson and Gustavsson, 2001]加以应用,Napster方案用一个中央服务器来存储所有的键值和用来标识这些键值所在网络节点的数据库。每次键–值元组的查找都需要访问中央服务器。Napster于1999年发布,最高同时150万用户在线,2001年7月由于法律问题关闭。

除此之外,Gnutella(http://en.wikipedia.org/wiki/Gnutella)使用了分布式设计,每个节点都有若干个邻居,并且在本地数据库中存储若干个键。当需要查找键k时,某个站点首先检查自己的本地数据库,判断k是否在本地。如果在本地,则直接返回相应的值,否则,该站点递归地询问邻居站点。通常情况下,需要使用一个限制阈值来限定消息的无限制传播。

另外一方面,结构化覆盖在不同的节点上强加了具有良好定义的数据结构。这种数据结构一般称作分布式哈希表(Distributed Hash Table, DHT),DHT可以将对象映射到不同的站点,并且,给定相应的键,DHT可以快速检索相应的数据对象。特别是,在结构化覆盖中,边是按照特定的规则选择的,数据被存储在预先确定的站点上。通常情况下,每一个站点负责维护一个表,该表存储了用于查找操作的下一跳(next-hop)。我们将用一种非常流行的称为Chord[Stoica et al., 2001]的P2P系统来对结构化覆盖进行举例说明。在Chord中,每一个节点都使用一致性哈希函数(如SHA-1)进行哈希,哈希到一个m位的标识符空间中(2m个ID),其中,m一般取160。所有的站点依据各自的ID号被组织成一个逻辑环。键也被哈希到相同的标识符空间中,键(及其相应的值)存储在后继节点中,即下一个具有较大ID的节点。

一致性哈希可以确保:对任何n个节点和k个键的集合,一个节点最多负责个(1+∈)k/n键。另外,当一个新的节点加入或离开时,O(k/n)个键需要移动。为了支持高效和可扩展的查询,系统中的每一个节点都需要维护一个查询表(finger table)。节点n的查询表的第i个元素是第一个后继节点或者等于n+2i。图2-8展示了针对不同的网络规模,一个给定节点的路由表中的指针。换句话说,第i个指针沿着环指向1/2(m–i)方向。当接收到一个针对id项的查询时,节点首先检查是否存储在本地。如果不在本地,则将该查询往前发送给其查询表中最大的节点。假设Chord环中的节点呈正态分布,每一步中搜索空间的节点数量减半。因此,查询跳数的期望值是O(logn),其中,n是Chord环中节点的数量。

abbf5452e881cd464d4d4d4b975e57c9ce3770b0


相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
相关文章
|
2月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
73 2
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的高校党建基本数据管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的高校党建基本数据管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
42 1
|
5月前
|
前端开发 JavaScript 小程序
基于Vue开发的门户网站展示和后台数据管理系统
基于Vue开发的门户网站展示和后台数据管理系统
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的个人健康数据管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的个人健康数据管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
7月前
|
JavaScript Java 测试技术
基于小程序的个人健康数据管理系统+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的个人健康数据管理系统+springboot+vue.js附带文章和源代码设计说明文档ppt
62 0
|
7月前
|
存储 机器学习/深度学习 人工智能
新一代数据库技术:融合AI的智能数据管理系统
传统数据库管理系统在数据存储和查询方面已经取得了巨大的成就,但随着数据量的不断增长和应用场景的多样化,传统数据库已经难以满足日益增长的需求。本文将介绍一种新一代数据库技术,即融合了人工智能技术的智能数据管理系统。通过结合AI的强大能力,这种系统能够实现更高效的数据管理、更智能的数据分析和更精准的数据预测,为用户带来全新的数据管理体验。
|
7月前
|
Cloud Native 自动驾驶 NoSQL
亚太唯一,阿里云连续4年入选Gartner®云数据库管理系统魔力象限领导者象限
国际市场研究机构Gartner®日前公布2023年度全球《云数据库管理系统魔力象限》报告,阿里云成为亚太区唯一入选该报告“领导者(LEADERS)”象限的科技公司,同时也是唯一一家连续4年入选“领导者”象限的中国企业。
亚太唯一,阿里云连续4年入选Gartner®云数据库管理系统魔力象限领导者象限
|
7月前
|
网络协议 数据管理 Linux
如何在Linux部署OpenGauss数据管理系统并实现固定公网地址访问
如何在Linux部署OpenGauss数据管理系统并实现固定公网地址访问
|
7月前
|
人工智能 NoSQL MongoDB
|
7月前
|
分布式计算 DataWorks 关系型数据库
在云数据仓库AnalyticDB MySQL版中,LIMIT的大小是由系统参数max_limit控制的
【1月更文挑战第7天】【1月更文挑战第31篇】在云数据仓库AnalyticDB MySQL版中,LIMIT的大小是由系统参数max_limit控制的
78 1