- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于相关事务结果集移动数据库三级复制同步机制
基于相关事务结果集移动数据库三级复制同步机制
[摘要]重点研究目前商用移动数据库系统和一些移动数据库系统原型中采用的复制和同步技术,并在此基础上提出一种以相关事务结果集为同步粒度的同步机制,并对如何实现这种同步机制做了较为详细的阐述。
[关键词]移动计算 移动数据库 数据复制 同步技术 同步粒度
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0320039-01
一、引言
移动数据库系统是指支持移动计算环境的分布式数据库系统。与传统分布式数据库相比,移动数据库具有移动性、位置相关性、频繁的断接性、所处网络条件的多样性、较差的系统安全性及可靠性、资源的有限性、网络通讯的非对称性等特点[1]。
二、数据一致性
如何保证各个移动结点和服务器间的数据一致性是移动数据库中的关键问题。它的研究方向有两个方面,一是数据的同步复制,另一个是移动事务模型。
到目前为止,已经出现了很多成熟的移动复制算法,如:两级复制算法、三级复制机制等。其中的三级复制机制,是最为典型的异步复制机制,也是本文下部分讨论的重点。
三、移动数据库三级复制机制
三级复制体系结构由服务器级复制、空中复制、客户机缓存三级复制机制组成。服务器级复制为第一级复制,该复制采用传统的复制技术,以保证服务器之间的一致性;空中复制为第二级复制,服务器将经常被访问的热点数据组织起来,通过MSS向所有的MH广播,这实际上等同于在无线信道上做了一级数据复制;客户机缓存为第三级复制,MH利用本身的处理及存储能力缓存数据库中的部分数据,以支持移动用户的断接操作[3]。
三级复制体系结构基本满足了移动数据库系统的四个目标,同时提高了系统的可伸缩性。
四、基于相关事务结果集的三级复制同步机制
(一)同步机制思想
首先分析同步机制的划分粒度,它分为元组、事务、SQL语句或者所有的同步数据[4]。不同同步粒度的划分在系统实现的难度、系统开销、全局提交率等方面各有不同,目前的三级复制体系大都采用以一个移动事务的结果集为同步粒度,它既保证了移动事务的原子性,又保证了移动事务冲突检测中的独立性。但是,这种同步机制所带来的系统开销也是很大的,极大地加重了系统的负荷[5]。
为了改进上述问题,本文提出一种以相关事务结果集作为同步传输粒度的同步传输机制,它不同于以往的以单个事务结果集作为同步粒度,通过对移动事务的读集和写集进行逻辑运算,判断出具有相关性的事务,进而在数据同步过程中将这些事务的结果集进行合并,避免了保存大量中间结果,减轻了同步服务器的负荷,也减少了无线传输过程中的数据量。同时,也保证了事务的原子性,比较容易实现数据一致性的收敛。
(二)实现过程
首先用ReadSet(T)表示事务的读集;WriteSet(T)表示事务的写集,ResultSet(MT)表示事务的结果集。然后定义如下概念:
相关事务:如果两个事务T1和T2具有以下特征,我们说它们是相关的:
1.WriteSet(T1)WriteSet(T2) !=
2.WriteSet(T1)ReadSet(T2)!=
当移动用户在移动结点的本地数据副本上执行事务时, EDBMS需要判断正在执行的事务是否和其他事务相关,如果是相关的,则将此事务和与之相关的事务的结果集做上同一个标记,这个标记用于在同步时快速过滤出需要上载的数据,并且根据这个标记将上载的数据按照相关事务的结果集划分成不同的同步单元。
如果相关的事务的结果集有交集,则对交集的部分做合并操作,这样就避免了保存大量中间结果的问题。
下面,我们以具体的例子说明移动事务相关的过程:
(1)相关1:写写相关
如果两个事务的写集的交集不为空,则这两个事务是写写相关的。这种情况很常见,在一个应用中,经常会有包含相同SQL操作的事务重复执行,典型的是在一个销售系统中。
如下有两个事务MT1,MT2所示,假设事务读写的表的初始内容如表-1所示:
MT1
Update Table1 Set items=Items-10 Where name=“book”;
Update Table1 Set items=Items-10 Where name=“CD”;
MT2
Update Table1 Set items=Items-20 Where name=“book”;
Update Table1 Set items=Items-45 Where name=“CD”;
在MT1提交事务后,系统对数据库进行操作后便将MT1修改的元组做上MT1的事务标记。在MT2执行过程中,发现将要
文档评论(0)