在P2P系统里,端点既扮演客户端也扮演服务器端。图中的左边是常见的C/S系统,右边是典型的P2P系统,中间则是兼顾两者的混合系统。图16.1P2P系统和其他系统的简单分类大多数P2P系统具备如下公共特征。不存在专用服务器的P2P系统称为纯P2P系统。这里,DHT显示了比非结构化的P2P系统更优的性能。......
2023-10-28
P2P数据库系统的典型特征:①从节点和分布来看具有可伸缩性;②可直接存取数据资源;③健壮性和恢复性;④部署简单。
可以将P2P数据库系统(P2P database system,PDBS)看成是以P2P方式交互(如建立对应关系或交换查询和更新请求)的一组自主本地存储库。换言之,本地存储库是自主的端点,有同等权利,并只与少量邻居连接。
这里的存储库(repository)表示单个端点可能是一组文件,而不是建立了数据管理功能的羽翼丰满的DBS。这样的存储库不一定有公用接口,但可以提供类似于DBS的访问功能,就像Web数据库一样。
简单来说,数据库管理系统是一款管理一个或多个数据库的软件。分布式数据库管理系统是一款管理由横跨网络的与逻辑相关的本地数据库构成的数据库软件。联邦数据库系统(FDBS)和多数据库系统(MDBS)是已存在的DBS的组合,其上的操作通过协调方式应用在不同的成分DBS上。FDBS和MDBS的关键区别在于集成成分DBS的方式不同,共同点是假设成分都是自主性的。它们的成分DBS是异构的。
那么联邦数据库系统(FDBS)/多数据库系统(MDBS)与P2P数据库系统(PDBS)有何异同?
我们用图16.3来描述FDBS/MDBS与PDBS的基本形态。
图16.3 FDBS/MDBS与PDBS的基本形态
FDBS/MDBS如图16.3(a)所示,包括:①本地模式(local schema),用本地数据模型来表示;②本地成分模式(local component schema),可以将本地DBS的数据模型翻译成正则规范模型;③本地输出模式(local export schema),包含本地DBS希望和别人共享的成分模式里的那些元素,如访问控制策略定义;④联邦模式(federated schema),FDBS是全局联邦模式,MDBS是面向应用的联邦模式(application-oriented federated schema)。联邦模式是一种真正的全局模式,包含内部输出模式的分布和分配信息。MDBS可以由多种不同的联邦模式共存,支持不同应用间的数据共享。
大家熟知的P2P应用基本上是文件共享系统,不关心全局模式,但数据库界将其扩展到完全的基于端点的数据管理系统(peer-based data management systems)。在基于端点的数据管理系统中,主要的数据集成和互操作思想是在成对信息源之间提供映射,无需全局模式。所有偶对间的映射并非是必需的。有映射的端点间存在映射,从而构成一张图。图16.3(b)描述了P2P数据库系统。注意,图16.3(b)中不存在全局模式。基本上,输出模式(export schema)只包含端点愿意让外部世界分享的本地模式元素。我们也可假设根本不存在本地模式,只是实例的部分暴露给外部世界。在PDBS中,实例(instance)和模式(schema)可以交换使用。
重要的是,端点自主决定在数据集成场景里与其他端点互换,使用映射规则来进行说明。注意,映射不一定是对称的。这样,在图16.3(b)的顶部有一个映射图/全局索引(mapping graph/global index)。因此,全局索引可以是集中式的,也可以是分布式的。
16.4所示的是简化后的多数据库系统(MDBS)和P2P数据库系统(PDBS)的差异,其中图16.4(a)是多数据库系统的形态,图16.4(b)是P2P数据库系统的形态。
图16.4 简化后的多数据库系统(MDBS)和P2P数据库系统(PDBS)的差异
分布性、自主性和异构性是非集中式数据库结构共有的特征。但是,PDBS和MDBS的差异还是很明显的。
下面我们深入讨论以数据库为中心和以P2P为中心的两种形态。(www.chuimin.cn)
1.以数据库为中心
分布式数据库系统(DDBS)的主要目标是在利用分布式环境的同时还提供透明性。这包含分片和分配设计、数据独立性、事务支持、世界观点,以及召回和查询服务。
(1)分片和分配设计(fragmentation and allocation design):DDBS允许以top-down方式在不同的节点灵活设计关系分片和分配。相比之下,FDBS和MDBS这样的数据集成系统是通过bottom-up实现的,集成数据保持原始节点不变。在基于DHT的系统里,数据的定位由系统的哈希函数决定,即负责给定数据项的节点是通过系统“计算”的。虽然DHT维护动态分配,以处理节点的离开和加入,但是分配还是由系统定义的。相比较而言,在DDBS中,分配作为数据库设计步骤的一部分,由用户决定。非结构化的PDBS以其纯粹的形式(没有利用结构化索引)处理数据集成,每个节点保留自己数据的权限,自主决定分配。
(2)数据独立性:DDBS实现了数据独立性的观念,即逻辑模型和物理实现是分离的。在PDBS里,数据独立性观念是期待的,因为数据需要独立于网络里物理分配的独立性。
(3)事务支持:许多数据库应用要求强一致性,基础需求是支持ACID事务的功能。然而,DDBS是靠特定协议来强化的。在FDBS和PDBS里有人建议支持延迟一致性要求,但基本上还在争论中。节点自主的弱耦合系统是否需要ACID,或者如何实现ACID,是开放性课题。
(4)世界观点:经典数据库系统的典型假设是封闭世界假设,即所有相关的东西都存放在数据库里,按查询请求返回给用户。这在PDBS中是难以认可的,因为任何时刻的节点可以加入也可离开。于是就有了开放世界的假设需求。换言之,假设数据和返回结果是不完整的。
(5)召回和查询服务(recall and query services):在DDBS里,查询功能多姿多彩,分片和分配透明性蕴含在查询语言里。在PDBS里,查询功能有限,高度依赖承载网络。特别是非结构化网络支持基于关键词的查询,而结构化网络使用查找(lookups)和范围查询(range queries)。在两类网络里,查询语言表达功能均可扩展。这两类网络的差别在于依赖完美和非完美召回(perfect/non-perfect recall)。从这方面看,结构化网络类似于传统的分布式体系结构,可以实现完美召回(即100%召回),而非结构化网络的召回率小于等于1。
2.以P2P为中心
以P2P为中心的数据库系统主要包含以下几个方面的特点。
(1)耦合度(degree of coupling):耦合度指的是获知其他端点存在的感知程度。在DDBS里,任何时候,所有节点都知道其他节点的存在(至少通过协调节点获知),实现了紧耦合。在PDBS里,端点可以动态加入或退出网络。这里,耦合度是松散的,端点只知道少数邻居的存在,而且随时会变化。耦合度也决定了自组织的程度。结构化的PDBS里,系统控制数据分配。而非结构化的PDBS里,端点可以时时刻刻自组织到一个集群或一个分层结构里。
(2)覆盖网络拓扑(overlay network topology):P2P覆盖网络不同类别的主要区别在于拓扑结构。非结构化的PDBS类似于传统的DDBS:不存在固定拓扑结构,覆盖网络是实现节点连接的结果。结构化的PDBS是基于固定拓扑结构的,如hy-percube、环(ring)、树、二叉树或B树。
(3)路由策略:路由策略与网络拓扑结构密切相关。在没有固定拓扑结构的系统里,信息存储在相邻节点里,回答请求的唯一方式是泛洪(flooding)。也有一些建议是要维护路由信息,以便直接借助于语义路由。相比之下,结构化的PDBS依赖于邻居的信息,以实现某种贪心路由(greedy routing)。例如,建议在每个端点维护一个指纹表,用于前向搜索路由,找到标识接近于搜索键的邻居。
(4)可伸缩性:非结构化网络基于泛洪,因此,可伸缩性较差,消息要快速流通网络。假设一个超级端点维护一些必要信息可以部分解决这个问题。从超级端点查到某些信息可以有选择地泛洪。随机溜达(random walks)也会有效,因为查询一次只会前行到一个端点,减少了网络拥挤。结构化网络的可伸缩性优于非结构化网络的,因为查询只会路由到扇出的端点,保证了完美召回。
(5)匿名性和安全性:匿名性是PDBS的重要特征。路由请求通过许多端点,会复制内容,参与者的标识是隐藏的。PDBS的另一个抽象级别是安全性量度,只有授权用户才能存取有权访问的数据。
参考文献[9]中给出了PDBS的样例和分类,限于篇幅,这里不再赘述。
有关分布式数据库技术的文章
在P2P系统里,端点既扮演客户端也扮演服务器端。图中的左边是常见的C/S系统,右边是典型的P2P系统,中间则是兼顾两者的混合系统。图16.1P2P系统和其他系统的简单分类大多数P2P系统具备如下公共特征。不存在专用服务器的P2P系统称为纯P2P系统。这里,DHT显示了比非结构化的P2P系统更优的性能。......
2023-10-28
第17.2.3节讨论的云数据库往往也会分布化。基于云计算的分布式数据库系统有其特有的特点,下面我们进一步讨论。在内部层,数据库管理系统扮演核心角色,因此是持续性的。近年来,由于负载加重和高可伸缩性要求,对系统吞吐量的要求越来越高,分布式数据库系统越来越受到计算机产业界的关注。然而,构建分布式数据库系统有其困难性和复杂性。......
2023-10-28
可串行化是经典数据库事务并发控制的正确性判据。 抽象数据类型集合的前向交换关系兼容和后向交换关系兼容分别如表15.3和表15.4所示。下面从可交换性上来讨论面向对象数据库的事务管理问题。对象系统中,如果使用封锁技术,则封锁颗粒会有变化。这是因为没有把对象的语义考虑在内。ADT上的事务执行需要多级机制。......
2023-10-28
区块链的基础是分布系统,因此,有必要进一步讨论分布系统。集中系统和分布系统是两种主要的软件体系结构。图19.2集中系统和分布系统的软件体系结构与单台计算机相比,分布系统有其独特的优势:计算能力强、成本低、可靠性高、伸缩性强。P2P系统是近年来分布式系统的白马。用P2P系统代替中间人提高了处理速度,降低了成本开销。P2P系统的信任问题和完整性问题是一个挑战。要实现和维护纯P2P系统的完整性,取决众多因素,主要如下。......
2023-10-28
图12.1带全局概念模式的MDBS的体系结构图12.1中,LIS表示本地内部模式,LCS表示本地概念模式,LES表示本地外部模式,GES表示全局外部模式,GCS表示全局概念模式。图12.2不带全局概念模式的MDBS的体系结构相对应的是多语言系统,这种系统允许用户使用本地数据库管理系统的语言存取全局数据库。图12.2所示的是不带全局概念模式的MDBS的体系结构。图12.3MDBS的基本组成......
2023-10-28
并行数据库系统可以粗略定义为在一个紧耦合多处理器上构造的DBMS。并行数据库系统支持数据库功能,提供C/S接口和一些通用功能。下面讨论并行数据库系统的体系结构。图14.8并行数据库系统的体系结构并行计算机有多个CPU,CPU之间会分工,一部分CPU负责处理会话和用户请求,另一部分CPU负责数据存取和管理。......
2023-10-28
关于面向对象数据库系统的体系结构问题,最简单的形态是Client/Server。下面讨论Client/Server体系结构,但要指出,并不是大多数面向对象数据库管理系统都是Client/Server系统。在对象Client/Server DBMS里,这不是最好的方法,因为应用程序的组合/复杂对象结构的导航指派将数据移到客户端。限于篇幅,下面只讨论对象Client/Server体系结构和页面Client/Server体系结构两种典型的体系结构。......
2023-10-28
分布式数据库系统的数据目录的分布可以有以下多种选择。也就是说,首要的问题是,分布式数据库系统中,数据库目录是集中存放还是分散存放。由于目录的管理均借助于整个系统的相关成分的管理,所以系统的设计和开发开销大大下降。......
2023-10-28
相关推荐