分布式数据库数据分片与分配

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分布式数据库数据分片与分配
杨晶;刘天时;马刚
【摘要】通过对集中式数据库和分布式数据库的比较,指出了数据分片与分配是设计分布式数据库重要环节,给出了数据分片与分配的目的、原则以及方法,分析了数据分布的透明性,对分片与分配之间的关系予以简要说明,最后介绍了在分布式数据库设计中分片与分配产生的问题.
【期刊名称】《现代电子技术》
【年(卷),期】2006(029)018
【总页数】4页(P119-121,125)
【关键词】分布式数据库;数据分片;数据分配;分布透明性
【作者】杨晶;刘天时;马刚
【作者单位】西安石油大学,计算机学院,,陕西,西安,710065;西安石油大学,计算机学院,,陕西,西安,710065;西安石油大学,计算机学院,,陕西,西安,710065
【正文语种】中文
【中图分类】TP311.133
1 引言
分布式数据库系统通过把分布在计算机网络的不同结点或场地,物理上属于多个数据子集,逻辑上属于同一系统之数据集合的海量数据实现数据应用,以实现比集中式数据库系统更好的性能、可扩充性、可用性和自治性[1]。

从数据意义上讲,数
据分布即数据分片与分配的合理与否或者说合理性的高低,不仅影响着访问的局部性,即尽可能地把用户要求访问的数据就在本结点或本场地,而且也制约着数据查询及事务处理的效率。

以关系数据库为例,在关系型分布式数据库系统(RDDB)中,简单地说,数据分片是从逻辑上将全局关系划分为逻辑片断即子关系,而数据分配就是再以一定的冗余度将子关系分配到多个结点上,数据分布即数据分片与数据分配的总和。

单纯从数据分布的角度看,集中式数据库系统可以看作分布式数据库系统的一个特例,是集中式还是分布式,最终的目的都是为了使数据可以更好地服务于应用,而数据分片与分配就是达成此目的的方法。

数据分片是一种对关系的划分,在集中式数据库中可以将所有的表视为一个总全局表的逻辑子表,而总全局表是这些子表的并集,其属性包括这些子表的所有属性,元组包括这些子表的所有元组,对应的在这个总全局表上元组的非空值呈块状区域分布。

数据分配则是将这些子表以不同的冗余度存放在一个或多个场地或节点,区别在于集中式数据库不存在数据复制的问题,不需要存在多副本,但也会出现表名不同,但表属性和属性值完全相同。

2 数据分片
2.1 数据分片目的
实现对全局关系的逻辑划分,以用户需求为目标,尽可能的提高系统的可用性,适应分布式的事务处理和数据查询。

2.2 数据分片原则
设全局关系R被分片为逻辑片断集合S={S1,S2,…,Sn},则S满足:
① 完整性t∈S,∃Si∈S有t∈Si 。

② 不可相交性∀t∈Si,⎤∃Sj有t∈Sj ,i≠j。

③重构型存在函数g,使得R=g(S1,S2,…,Sn)[2] 。

2.3 数据分片方法
① 独立分片R i =Π(U)(σ(A)(<R>)) or
σ(A)(Π(U)(<R>))
U为属性表;A为条件集合;R为关系名;U={U1,U2,…,Un};A = {A1 and A2 and … an d A n }。

②关联分片
R i =Π(U)(σ(A)(<R>) ∞σ(A)(<S>))。

3 数据分配
3.1 数据分配目的
通过一定的冗余片断在各结点上的分布,提高系统的可靠性,缩短局部应用的响应时间,尽可能地提高数据的安全性,减少系统的数据通信代价。

3.2 数据分配准则
(1) 处理局部性
数据分配时应尽量提高数据的局部性,使应用在本结点或相邻的节点处理,以尽可能的减少因为对其他节点数据访问而产生的通信代价。

(2) 数据可用性和可靠性
尽量提高数据只读应用的可靠性,减少因数据检索和更新不同步造成的“脏数据”或“过时数据”。

尽可能提高系统的可用性,使系统的管理和存储代价降低。

(3) 工作负荷分布均匀性
使各结点的负载(各结点所担负的全局应用和局部应用的规模)均匀化,尽量提高系统的并行处理能力,但这有可能降低处理的局部性,增加系统的通信开销。

一般情况下,上述的3个准则不可能同时满足,应该根据具体的客户需求和系统的主要目标,以一个为主要,其他的可以作为约束条件[3]。

3.3 数据分配类型
(1) 集中式数据有划分
但是划分后的逻辑片断依然完全集中在一个结点,即有分片无分配,如同集中式数据库。

(2) 划分式
数据按应用需求和来源,分布在各个结点上,彼此之间没有重复数据。

(3) 全重复式
每个结点都有一个全部数据的副本,可以完全做到数据检索的局部访问,但更新代价太大。

(4) 部分重复式
分片后的逻辑片断按用户需求和应用需要分配,需要共享的片断通过数据复制产生副本放置到不同的结点,私有的片断只放置需要的结点[4]
表1中给出了不同的数据分配类型的比较:
3.4 数据分配方法
从用户需求和应用需要考虑,数据分配必须尽可能地强调局部自治性,即必须尽可能地减少远程的检索操作,以降低网络通信代价。

(1) 无副本分配
假设只考虑检索更新的代价,可以选择访问最频繁的结点作为逻辑片断的存放地,一般可对各种分配方案进行比较,以客户需求和应用需要为主要目标,选取最适宜的方案。

但是这种情况忽略了给定结点存放的逻辑片断或者关系之间存在一定的关联,一种目标的达成有可能造成另外的开销剧增。

表1 数据分配类型比较数据分布类型集中式划分式全重复式部分重复式存储代价(开销)很少少很大大检索代价很大很少很少更新代价少很少很大由更新/检索比确定可靠性很差差好一般复杂性很低低一般高灵活性很小小一般大体现DDBS特点无不充分一般充分数据分布引起的问题无少一般多
(2) 多副本分配
副本可以提高检索的局部性,但是却又增加了更新的开销。

多副本分配的一般原则是计算副本添加到给定结点时,收益与开销之差,如大于零则放入,小于零则另选结点。

总之,由于客户需求和用户需要所导致的优化目标的不同,数据分配的方法也不同,但大体思想和上文所述类似[5,6]。

4 数据分布透明性
在四层模式中,全局概念层是分布式数据库增加的部分,其余则是集中式数据库原有的部分。

图1 四层模式示意图
由上面的DDBS的模式结构图4个映像可以看出,分布透明性包括分片透明性,
位置透明性,局部数据模型透明性[7]。

4.1 分片透明性
分片透明性是分布透明性的最高层次。

其指的是用户或应用程序不用去考虑关系是如何分片以及具体的分片情况,就可以对全局关系进行操作。

当系统由于用户需求或其他原因而使分片模式发生了改变,此时由于全局概念模式-分片模式的映像(映像2),全局概念模式不变,这样应用程序就不需要改写了,从而增强系统的可用性,方便应用程序的开发。

4.2 位置透明性
位置透明性处于分片透明性的下一层次,也可以称为分配透明性,指的是用户或者应用程序不用去考虑逻辑片断存储在哪个具体的结点,当存储结点发生改变时,由于分片模式-分配模式的映像(映像3),不需要考虑应用程序中添加查找逻辑片断的程序段,这样就减少了程序的规模和复杂性,以利于应用。

4.3 局部数据模型透明性
局部数据模型透明性指的是用户或者应用程序不需要了解局部数据库使用的是何种
数据模型,不同数据模型的转换和数据库语言的转换由映像4完成,这就保证了分布式异构数据库系统的数据查询及事务处理的有效完成[8]。

由上面分布式数据库系统模式结构图的4层模式,对应的在分布式数据库系统设计中有4级透明,具体评价如表2:
表2 对4级透明的评价透明性系统任务程序任务全透明提供所有透明只对全局关系操作次透明提供位置和局部数据模型透明需指定逻辑片断名无透明提供局部数据模型透明需指定片断名和结点名非透明不提供任何透明需进行异构转换
从表2可以看出,透明性越高越有利于应用程序的开发,因为在编程的时候如果不考虑程序所调用的数据的来源与位置,做到“随需所用”这样会极大的缩小程序的规模,提高程序的可用性;但与此同时,这样会使系统负担大大增加,数据的查询和提取将耗费系统绝大部分资源,使得系统的效率大为降低,因此数据的透明性必须适宜,在进行数据分片与分布设计时与执行效率反复权衡,求得平衡点[9]。

5 分片与分配关系
从分布式数据库模式结构图可以看出,在分布式数据库的设计中分片与分配模式的设计是其中间环节,一个较优的、基本符合用户需求和应用程序需要的分片与分配设计可以极大地提高系统的可靠性和可用性。

对一个关系或文件进行划分,不仅分布式数据库有这种问题,在集中式数据库中有时为了提高数据库的性能也会把一个关系进行独立分片。

在分布式数据库设计中,分片设计的目的就是为了分配设计,就是为了让数据访问具有较优的局部性。

数据如何分片,如何分配,必须对各种不同收益开销比的方案进行权衡比较,最后根据客户需要和应用程序的需求确定最终的较优方案。

数据分片与数据分配虽然是两个不同的概念,但是两者紧密相连,不能截然孤立,没有初步的分片设计就无法进行分配设计,不经过各种分配方案的比较,也就无法确定分配的方案。

一般情况下,分片与分配设计之间采用启发式的方法,首先对应用进行分析评估,
提出初步的可行的有利的分片方案,然后根据用户或应用设定的目标再比较分配设计方案的收益开销比,最后确定分片与分配设计方案。

如果初步的分配设计方案不可取,可调整分片设计方案,直到达到较优为止。

6 数据分片与分配产生的问题
分布式数据库的分片与分配使数据可以更好地进行局部应用和全局应用,但是也产生了如何保持分布一致性和多副本一致性,以及全局查询处理,分布事务管理的问题。

(1) 保持多副本一致性
保持多副本一致性即如何解决读写矛盾问题。

分布式数据库的数据分配通过多副本来实现,这在增强了数据访问局部性的同时也造成了在数据更新时为了使不同结点的多个副本内容保持一致,就必须增加开销,因而造成系统效率下降。

(2) 保持分布一致性
数据更新后,关系的属性值发生变化,独立分片和关联分片产生的逻辑片断可能出现数据的重新分布。

(3) 全局查询处理
在全局查询中涉及全局关系,如果系统提供全透明,那么关系是否分片,关系或逻辑片断在哪个结点,对用户是透明的,即全局关系转化为逻辑片断,选择副本,全局查询转化为自查询都由分布式数据库管理系统来完成。

(4) 分布事务管理
数据是分布在不同的结点,处理数据的事务也是分布的。

这就涉及到并发控制和恢复技术。

7 结语
分布式数据库系统符合当今信息系统应用的要求,符合当今企业组织的管理思想和管理方式。

但由于分布式数据库系统并不是网络技术与集中式数据库系统的简单结
合,他的实现有一定难度,经过近20年的努力,分布式数据库管理系统(DDBMS)的大部分基本问题已得到解决,但迄今为止尚没有一个在市场上被人们完全接受的、完全的DDBMS产品[10]。

分片与分配直接关系到数据的应用,设计建立分布式
数据库的重要环节是处理好分片与分配设计,因此必须加强对相关领域的商用化设计的研究与实践。

参考文献
[1] 郑振楣,于戈,郭敏.分布式数据库[M].北京:科学出版社,1998.
[2] Stefanl Ceri,Giuseppe Pelagatti,Distributed Database Principles and Systems,McGraw-Hill Book Company,1984.
[3] [美]塞里.分布式数据库原理和系统[M].关英春,译.北京:中国水利电力出版社,1989.
[4] 刘广钟,刘方鑫,施小龙.分布式数据库系统中数据分布模型的研究与建立[J].
小型微型计算系统,2001,22(1):7-10.
[5] 赵葆华,王于同.一种分布式查询处理的数据划分策略[J].杭州电子工业学院学报,1999,19(2).
[6] 陈楠.分布式数据库系统数据分布策略分析[J].计算机时代,1998,(10).
[7] 肖凌,刘继红.分布式数据库系统的研究与应用,计算机工程,2001,27(1).
[8] Michael Stonebraker.Mariposa :a Wide - area Distributed Database System[J] .The VLDB Journal,1996(5):48-63.
[9] Dietrich,Suzanne Wagner.Application of Fragmentation Transparency Distributed Database System[J].Journal of Systems and
Software.1996,35(3):185-197.
[10] 周龙骧.分布式数据库管理系统实现技术[M].北京:科学出版社,1999.
[11] 冯祖洪.一种实用的分布式数据库访问系统[J].现代电子技术,2005,28(24):
76-79.。

相关文档
最新文档