关键字 P2P数据库;资源定位;数据复制
Peer-to-Peer(P2P)环境下的数据管理和共享是数据库领域的研究热点,焦点问题集中在如何使得P2P支持复杂语义数据管理功能,提供数据资源复制、索引和精确的资源定位机制。
基于P2P数据管理系统PeerDB[3],UC Berkeley大学的PIER[5],Edutella[7],Pizaa[2],这些系统不同程度实现了数据共享。PeerDB基于关键字模式映射很难做到准确性,需要过多人为管理; PIER引入名称空间(Name Space)对数据进行索引,但仅仅支持关键字精确匹配查询。Edutella利用超节点描述其辖域子节点共享资源,超节点容易成为瓶颈,不利于系统的扩展。
本文以结构化DHT P2P 网络Chord[1]作为分布式平台,探讨一种广域网环境下P2P数据库的实现机制。首先,对数据使用规则进行分割,并复制到网络中去,提高系统的可靠性和处理的并行性;为避免Hash对数据语义的破坏,利用元数据对副本进行标识、索引;最后,把这些索引元数据组成一种分层索引机制使得数据请求节点可以高效地进行资源定位。
2 P2P数据库体系结构
传统分布式数据库在局域网环境下,提供全局视图使得用户可以透明地访问数据库,局部数据源之间有较高的耦合度。但是P2P数据库是基于动态广域网,并且不存在中心控制节点,要在这样的环境中提供全局视图是不现实的。P2P 数据库系统不存在全局视图,但是,提供一组映射规则和索引机制实现数据定位和数据访问。
P2P数据库是局部数据库LDB,P2P网络及协调规则三者的统一体<LDB,P2P,Coordination>,其中LDB管理局部数据,包括共享数据部分和私有数据部分;P2P网络提供Peers间的通信、路由及数据传递;协调规则由一组映射组成,协调各LDB合作为用户的请求提供数据服务。
P2P 数据库系统体系结构(如图1所示)包括四层:应用层、数据管理层、P2P网络层和局部数据库层。

图1 P2P数据库体系结构
3 一种P2P资源定位机制
本文主要使用数据复制和分层索引机制来保证高效的实现资源定位,并且避免了Hash对数据语义的破坏,使系统有效地保持数据语义间的联系。首先,对数据使用规则进行分割,并复制到网络中去,提高系统的可靠性和处理的并行性;为避免Hash对数据语义的破坏,利用元数据对副本进行标识、索引;最后,把这些索引元数据组成一种分层索引机制使得数据请求节点可以高效的进行资源定位。
3.1 数据复制
首先把关系表进行分割,然后把这些关系表子集及其标识信息(作为元数据)复制到节点中去。基于关系子集的复制粒度,同时使用标识其定位信息,既可以保持关系表的整体性,又可以快速实现资源快速定位。系统中数据复制的粒度为关系表,或关系表的子集,具体过程如下:
①对关系R的分割要使用一些规则集合
,可以使用某一条规则把R分割为
;
,可以使用某一条规则把R分割为
; ②对每一个子集Ri使用
进行标识;
进行标识; ③把副本
及其定位元数据复制到网络中;
及其定位元数据复制到网络中; ④关系表
是其元组集合),对R利用规则集合
进行分割后得到一系列子集{R1,R2,…RK} (k<N)。
是其元组集合),对R利用规则集合
进行分割后得到一系列子集{R1,R2,…RK} (k<N)。 依据Chord路由算法,每一个节点peer可以直接与其指针表指向的节点直接通信,本文把这些节点称作该节点的Link_Peer (Link_Peer={peer,LP1,LP2,...LPm}),需要注意的是Link_Peer是包括该节点peer的。对节点peer的数据R,其副本{R1,R2,…RK}只能分布到Link_Peer上,对于特定的副本分布到Link_Peer的哪个节点上,没有特定的规定,他们的机会是均等的,可以认为是随机的。

图2 元数据放置策略




