您的当前位置:首页正文

基于协同缓存的分布式数据库更新机制研究

来源:独旅网
维普资讯 http://www.cqvip.com 第33卷 第7期 计算机工程 2007年4月 VoL33 No.7 Computer Engineering April 2007 ・软件技术与数据库・ 文章编号:l0Il _3428(2007)07— 047— 3 文献标识码:A 中图分类号:TP311 基于协同缓存的分布式数据库更新机制研究 符青云,刘心橙 (电子科技大学8010研究室,成都610054) 摘要:减小数据库事务中的写操作开销对于分布式数据库系统的性能而言很关键。该文提出了一种基于协同缓存技术的分布式数据库更 新机制,通过在分布式数据库服务器节点物理内存之上)匈建全局协同缓冲池,并利用其缓存写入记录,减小了数据库事务中的磁盘访问开 销,研究了基于协同缓存的分布式数据库更新机制与其在该机制下事务性能改进。 关健词:分布式数据库事务;基于协同缓存的分布式数据库更新机制;协同缓冲池 Distributed Database Update Mechanism Based on Cooperate Cache FU Qingyun,LIU Xinsong (80 10 Group,University of Electronic Science and Technology of China,Chengdu 610054) [Abstract]Cost reduction of write operation in database transaction is important in distirbuted database system design.The paper presents a new update mechanism,named cooperate cache—based distributed database update mechanism(CCDDU).It reduces disk access cost in database transaction by means of cooperative caching pool constructc d with physical memory among the servers.This paper describes cooperate cache—based distirbuted database update mechanism,focusing on how the mechanism improves transaction performance and its availability. [Key wordsl Distributed database transaction;Cooperate cache—based distributed database update mechanism;Cooperate caching pool l概述 系统的性能。 分布式数据库系统由于具有高吞吐量、高可用陆和高可 2基于协同缓存的分布式数据库更新机制 扩展性等优点,而在超大容量数据存储与处理领域得到了广 2.1相关技术 泛应用。由于服务节点间的同步开销与服务器节点内的磁盘 一种减少数据库事务响应时间的方法是主存数据库,由 访问开销,使得分布式数据库系统的事务处理时间很长。如 于主存数据库在内存中维护数据,因此在数据库更新时不存 何减小更新事务的响应时问,从而提高事务性能是分布式数 在磁盘操作,只有数据备份与日志存储涉及磁盘读写,事务 据库研究中的重要问题。 性能得到了很大的提高。但是主存数据库技术存在两个严重 为了减少事务中写日志的开销,提出了很多改进的提交 问题: 协议,比如:预提交协议(Px‘esumed Commit Protocols,PrC), (1)通常的数据库文件很大,难以完全放入物理内存; 预定丢弃协议(Presumed Abort Protocols,PrA),早期准备协议 (2)主存数据库存在丢失数据的危险,如果物理内存失 (Early Perpard Protocols,EP),协同日志协议(Coordinator Log 效,则存储在数据库中的所有数据将会丢失。 Protocol,CL),显式提交协议(Implicit Yes—Vote Protocol, 尽管主存数据库存在上面的缺点,但其利用物理内存获 IYV)。 取高性能的方式值得借鉴。随着网络技术的发展,高速LAN 上面的协议关注于减少日志的写入次数,但是对于如何 环境的传输速率已经超过了1 000Mbps,LAN环境下典型的 提高日志的写入速度没有相应的研究。 通信延迟不超过15 s J。但是磁盘的性能改进较小,典型的 邱等人提出了一种基于全局协同缓冲池的数据牢日志更 寻道延迟在8ms左右,物理内存的访问速率远远高于高速网 新机制…,由于不必在事务提交前后立即将日志写入磁盘, 络与磁盘系统,与网络传输延迟和磁盘寻道和读写延迟相比, 而仅仅将其缓存在协同缓冲池中,仅当协同缓冲池满或者节 内存的访问延迟可以忽略。 点轻载时,才将缓冲池中的数据写入磁盘中,改进了提交协 基于上面的认识,邱等人提出了基于协同内存缓存机制 议的性能。 的数据库日志写入策略…,有效地改进了数据库系统的性能。 但是由于数据库更新事务中记录写入操作中的磁盘访问 本文使用与上面类似的思想构建了一个巨大的分布式协同缓 次数并没有减小,因此在数据库更新很频繁时,连续不断的 冲池,用于写入记录的缓存,磁盘访问操作的次数可以大大 磁盘访问会使得磁盘过载,并使得磁盘最终成为系统瓶颈。 减小,从而提高了数据库事务的性能。 本文提出了一种基于协同缓存的分布式数据库更新机 这里,对CCDDU与其它方法在记录缓存方面的不同给 制,其目的是减小数据库事务中的磁盘操作。通过服务节点 间协同缓存更新的记录,不必在事务提交时马上更新数据库 作者简介:符青云(1975一),男,博士生,主研方向:分布式并行系 文件,只有协同缓存已满,或者节点负载很轻时,才将Cache 统;刘心松,教授、博导 中的内容刷新到磁盘上。该机制可以显著改进分布式数据库 收稿日期:2006-04-10 E-mail:qingyunfu@sohu.corn 维普资讯 http://www.cqvip.com 出简要描述 。 (1)在ADO,ADO.NET和DataSnap技术中,记录或者缓 存于单个的客户端内存中,或者缓存于单个的应用服务器内 存中,可以利用的缓存空间仅仅是单个节点分配用于数据缓 存的空间;而在CCDDU中,通过协同缓存机制,得到的最 大缓存空间等于服务节点可用缓存空间之和。由于上述优点, 使得CCDDU机制非常具有吸引力。 (2)CCDDU机制构建于分布式数据库系统中,而其它的 方法,比如MicroSoft的ADO、ADO.NET,Borland的DataSnap 技术中的数据缓存机制构建于客户端或者应用服务器中。在 不同的项目中,后者为了利用数据缓存技术,需要在客户端 或者应用服务器中添加该特性,增加了开发人员的工作量, 而对CCDDU机制而言,由于数据缓存技术在数据库系统中 实现,对软件开发人员完全透明,没有额外的工作。 2.2数据库更新过程 2.2.1参与分布式数据库事务的两类主机 定义1事务发起者R 事务发起者R指分布式数据库服务器系统中发起事务的 节点。 定义2事务参与者A 事务参与者A指分布式数据库服务器系统中按照事务发 起者的请求,参与数据缓存与数据库更新的节点。 数据库事务中允许多个参与者,参与者的数目依赖于可 用性要求,所要求的可用性越高,则参与者数目越多。参与 者可以通过数据库系统管理员预先定义,也可以在运行时根 据节点资源的可用性动态计算而确定。每个参与者不必缓存 所有记录,只需缓存某些数据,以便减小RAM开销并最大 化RAM的利用率。本文假定系统内的所有节点参与协同缓 存,协同缓存池中没有重复记录。 2.2.2基于协同缓存的分布式数据库更新过程 当用户触发数据库事务时,数据库服务器节点按照下列 过程为用户协同提供服务: (1)发起者R向外发送请求消息与要更新或者插入的数 据记录,并为新的记录在内存中创建缓存表; (2)参与者A接收消息与待更新的数据记录,并在其主存 中为接收的记录创建缓存表; (3)R与A决定将数据记录插入缓存表,还是用新值更新 缓存表中的记录; (4)当满足回写条件时,节点将缓存的记录更新到数据 库中。 2.2.3数据一致性问题 数据一致性问题在数据库系统设计中很重要,对本系统 而言,数据一致性问题存在于两个方面:(1)服务节点间的数 据一致性;(2)协同缓冲池中的记录与数据库中存储记录的数 据一致性。服务节点间的数据一致性已经有了很多有用的研 究成果,因而这里只讨论协同缓冲池与数据库之间的数据一 致性问题。 数据库系统处理数据一致性问题的方式如下: (1)如果是记录更新请求,待更新的记录将会缓存在协同 缓冲池中。 (2)如果是数据库读请求,则与请求表相关的缓存记录首 先被刷新到数据库中,并释放在协同缓冲池中占据的空间。 然后,数据库系统按照请求返回记录。 (3)如果协同缓冲池的剩余空间低于某个门限,则对当前 48一 未加锁的表执行回写操作,操作结束后,释放占据的缓存 空间。 2.3基于CCDDU机倒的分布式数据库系统的可用性分析 对基于协同缓存的分布式数据库系统而言,记录不必在 事务提交后就马上写入磁盘,而是缓存在某些节点的主存中。 因而仅当所有节点出现故障,才会导致数据完全丢失。 由于记录只在主存中缓存很小一段时间,在这个时间段 内,所有节点失效的情况很少见。假定每个节点的失效概率 为 ,并且节点的失效概率相互无关。则对一个 节点的缓 存系统而言,整个系统完全不能对外提供服务的概率p,为 p (n)= (1) 假定每个节点的平均无故障工作时间为100h,为确保数 据安全而引入的强制刷新周期为5min,则对于一个5节点组 成的缓冲池而言,失效概率为 Pl=f ]’=5.78 x10-' ̄ 这表明基于协同缓存的分布式数据库更新机制不会产生 明显的可用性下降。事实上,由于节点的平均无故障工作时 间远远大于100h,因此实际系统的失效概率会非常低,远远 小于上面得到的结果。 3实验 3.1实验环境 实验采用图1的环境验证本文思想。需要指出的是,实 验并没有修改数据库系统的源码,而是在每个节点加入一个 应用服务器进程,由应用服务器进程利用操作系统提供的 ADO数据访问对象中的记录缓存功能实现写入记录的缓存, 以便简化实现,同时又反映本文更新策略的行为特征。 Serverj 图1实验环境 图1中所有服务节点都是1.7GHz的P4,256MB RAM 的PC,硬盘为80GB 7200RPM,采用Windows XP SP操作系 统与MySQL 4.01 for Windows。实验客户端由5个1.0GHz 的Althon,256MB RAM的PC组成。客户端与服务器连接在 同一个100Mbps的快速以太网交换机上。每个服务器上用于 数据缓存的DataSet组件由ADO对象提供,设置其容量为 32MB。所有数据库中建立5张表,每个客户端只对其中的一 张表执行插入操作,服务节点的数据库全冗余,客户端生成 记录,并将记录与插入请求发送到前端节点,由前端节点将 数据转发给应用服务器。 采用协同缓存机制的系统和没有采用协同缓存机制的系 统之间的区别在于收到记录插入请求时前端服务节点的行 维普资讯 http://www.cqvip.com 为。对于采用协同缓存技术的系统而言,前端按熙 可用性要 求从后端选择某些节点并将请求多播到选择的节点。对于没 有采用协同缓存技术的系统而言,前端将请求广播到后端所 有节点。 采用协同缓存机制的系统和没有采用协同缓存机制的系统性 能差别很小,因为记录可以完全缓存在数据集中,并一次性 提交到数据库中。当插入的记录大于数据集规模时,采用协 同缓存机制的系统性能明显优于没有采用协同缓存机制的系 见3.2实验结果 每个客户端生成2.5MB-40MB的记录,每条记录长度为 1KB,字段值由客户端随机生成。当所有客户端发送实验结 统,插入记录的突发性越强,两种更新机制之间的性能差距 越大,因为对基于协同缓存机制的系统而言,更多的插入记 录可以在协同缓冲池中缓存,减小了由于协同缓冲池容量有 限而导致的磁盘强制写入操作。当写入记录容量大于协同缓 束的消息到前端时,前端向所有应用服务器广播消息,应用 簧 辫 磷 服务器提交所有缓存在本节点DataSet中的记录,这将使得 存容量时,二者的性能差距减小,因为协同缓冲池容量不足 所有在协同缓存池中缓存的数据被提交到MySQL数据库中。 导致协同缓存机制仍然存在很多记录的强制写入操作;但是 最后应用服务器进程通过MySQL提供的数据库复制工具执 由于协同缓存池可以缓存更多的写入记录,因此仍然具有较 行节点间数据库同步操作。 少的写入开销。 4结论 本文提出了一种基于协同缓冲池的分布式数据库更新机 制,同时与未采用该技术的常规更新机制进行了对比,表明 该机制具有很好的性能。随后的研究将着眼于系统性能的定 量研究,并针对主流数据库与异构环境开发能够提供协同缓 星 营 蘼 存更新的服务器组件。 世 参考文献 警 1邱元杰,刘心松,杨峰.一种高效的分布式数据库日志机制【J1 .计算机研究与发展,2004,41(11), 2 Ciaccio G Thlert M,Schnor B.Exploiting Gigabit Ethernet Capacity 每个客户端插入的记录(MB) for Cluster Applications[C]//Proc.of the 27 Annual IEEE Conf.on Local Computer Networks.2002. 图2实验结果对比 3李维.Delphi 7高效数据库程序设计【M].北京:机械工业出版 从图2可以看出,当总的记录规模小于可用缓存规模时, 社,2003. (上接第37页) 性等。规约技术的优点在于:能够在特性保持的前提下,将 嘲 )辩 模型缩减到适当规模;将化简技术总结为规则集的形式,易 于理解和操作。 b)G—R2 同时,提出了没有解决的问题和将来的工作:(1)可达性、 覆盖性等性质的验证需要构造可达图或可达树,在对大型模 ≥-- ̄: tl'P3 型进行操作时可能造成状态空间爆炸;(2)有些推导关系是有 条件的,如要求过程模型是自由选择Petri网等;(3)应给出 一定限制条件下的规则集完备性;(4)还需对过程数据流和资 (c)G—R3 (d)G—R4 源流进行验证;(5)对更大规模的、复杂的过程化简研究还 不足。 》一》之 1................._J 致谢:在写作的过程中,时力科技提供了良好的科研环 (e)G—R5 境,开发中心的同事们也给予了很大帮助,在此表示感谢。 图4柔性工作漉模型组件缓化筒规崩 参考文献 3结论 1范玉顺,王 刚,高展.企业建模理论与方法学导论[M].北京: 从目前的趋势来看,工作流系统正向大型、灵活、动态、 清华大学出版社,2001. 自适应和互操作等方向发展,过程验证扮演着越哭越重要的 2张绍华,李赛寒,张世超.基于交互学习的柔性工作流[J1_小型微 角色。但是,柔性工作流验证领域的研究还比较欠缺。本文 型计算机系统,2oo5,26(7):1 270—1274. 在这方面做了一些探索,把过程合理化验证和规约验证技术 3 VanderAalst W M R The Application of Petfi Nets to Workflow 应用于基于交互学习的柔性工作流建模中的形式化验证,取 Management[J].Journal of Circuits,System and Computers,1998, 得了较好效果。基于Petri网的合理性验证的优点在于:合理 8(1):21—66. 性定义清晰;验证方法具有良好的形式化基础;可验证的问 4周建涛,史美林,叶新铭.工作流过程建模中的形式化验证技 题包括初始化、结束、迹等价、死锁、活锁、安全性和有界 术[J1_计算机研究与发展,2005,42(1):1—9. 

因篇幅问题不能全部显示,请点此查看更多更全内容