面向读密集型应用的事务内存云研究
摘要:对于读密集型的云计算应用,现有系统很难同时满足它们对性能、一致性与可用性的需求。因此提出了一种基于事务内存和云存储技术的编程与存储模型TMC,能为云应用提供可配置的事务特性与数据存储服务。TMC包括事务与存储两个组件,事务组件允许所有只读事务无需远程验证即可顺利提交,其他事务则采用2PC算法提交;存储组件负责实现系统的可扩展性与可用性。仿真实验结果表明,TMC具有较高的性能与可用性。系统若经进一步改进和优化,将具有应用于实际生产环境中的潜力,可为用户提供高质量的云计算服务。
关键词:读密集;事务内存;云计算;数据副本;一致性
中图分类号:TP302文献标志码:A文章编号:1006-8228(2014)02-11-04
0引言
事务内存[1]是一种通过事务来实现并发控制的编程范式,事务的ACI特性由事务内存引擎来保证,无需开发者关心。与其他并发控制方法(例如锁)相比,事务内存具有安全、易用等优点,近年来在学术界受到了广泛关注。在云计算环境下,为了让系统管理员和应用开发者充分地利用云计算带来的强扩展和可用性,设计实现新型的适用于云计算的编程模型是一项极其紧迫的任务。当前已初露端倪的云计算编程模型以MapReduce[2]为代表,其他大体上是其变种,MapReduce的缺点是需要遵循复杂的开发模式,实际效率低下。事务内存是另一种可以作为云计算编程模型的技术,在开发复杂的分布式应用程序过程中,使用事务内存技术可以加快生产率,缩短开发周期,提高代码质量。但现有的事务内存研究多集中于共享内存多处理器的单机环境下,而适用于分布式环境、能满足云计算应用需求的研究迄今尚未出现。
现实中存在着大量读密集型应用(例如数据仓库),本文提出的面向读密集型应用的事务内存云(TransactionalMemoryCloud,以下简称TMC),基于事务内存与云存储技术,设计了一种新型云计算编程存储模型,保证所有的只读事务均不会被撤销,系统可用性与可靠性则通过异步数据副本策略实现。以上特性使得TMC适用于对性能、可扩展性和数据一致性均有严格要求的读密集型应用。
1相关工作
云计算为工业和学术界带来了大机遇,同时也为有效利用云中各类资源提出了挑战。尽管不同的云计算应用存在一定差异,但总的来说云计算应用的支撑平台应具有良好的性能、可扩展性和可靠性。
当前已有的商用云计算系统大多不支持事务特性,但各类相关应用对事务支持的需求却从未停止,例如社交网络、协作编辑、在线游戏等。将一致性检查等工作交给上层用户处理是目前常见的策略[3],但其方法增加了开发者负担,显然不是一种有效的手段。利用事务内存技术实现对云计算应用事务特性的支持是一种可行的新思路,但在研究应用过程中需要注意对各种云计算系统特性的权衡。
文献[4]提出的P-Store能够保证云计算系统的可扩展性和强一致性,但该协议要求只读事务在提交时首先要完成分布式验证,并有可能被回滚或撤销,而本文的TMC则不存在以上限制。文献[5]利用软件事务内存与多版本并发控制技术来支持分布式事务的一致性,但对其他诸如扩展性、可用性等系统特性并未提及,TMC则通过将事务组件与存储组件的解耦,对其进行了统筹权衡的考虑。
2系统建模
TMC包括事务和存储两大组件,事务组件提供逻辑上的并发事务处理,无需了解数据的物理位置;存储组件负责存储数据副本,并保证其一致性,但不必关心事务特性。TMC系统模型如图1所示。
图1中的DC为数据中心,这些数据中心可通过10Gb/s的专用以太网互联(图1中以环为例),被部署为“私有云”或“公有云”。在每个数据中心内部,包含着成千上万台计算/存储机器节点(简称节点)。事务组件负责通过协调管理每个节点上的事务组件代理来接收处理用户通过互联网发来的事务处理请求,存储组件则通过共识协议和链路管理数据及其元数据的所有副本,并向事务组件提供一致、透明和弹性的数据访问服务。
TMC是一个通过消息传递进行通信的分布式系统,其中每个节点只能运行一个内存事务,令Γ={Tx1,…,Txn}表示系统中全体事务的集合。每个数据项则由三元组do=表示,其中do.id为数据项标识,do.value为原始数据,do.ver为数据项版本号。对于某个数据项doi,rep(doi)表示存储doi全部数据副本的节点集合。
任一个内存事务Txi均由事务开始操作Start、针对数据项的读(Read)写(Write)操作序列、事务提交操作Commit或事务撤销操作Abort三部分构成。Txi可由任一个节点启动并读写任一个数据项,事务集T(T?Γ)的历史HIS(T)是由T上的事务操作(Start,Read,Write,Commit,Abort)事件组成的集合。每个Txi还需要维护三个属性writeID、nextID和ts,writeID用于记录Txi中最近提交的写事务(至少包含一个写操作)的时间戳;nextID用于记录下一个将要提交的事务(至少访问Txi中的一个数据项)的时间戳;ts用于记录Txi执行第一个读操作Read1的时间戳,设Read1所访问的数据项所在的内存事务为Txj,则ts=max(Txi.writeID,Txj.writeID),Read1之后读操作所访问的数据项的版本号均不能大于ts。
3事务组件
事务组件负责支持分布式事务内存编程范式,并保证其正确性。为使所有读事务不被撤销,需要解决两个问题:①建立系统全局快照,使所有内存事务的读操作可以从数据项的多个版本中选择合适的一个;②为写事务在提交阶段建立全局串行化以保证事务性。
TMC基于两阶段提交算法[6](2PC)和文献[7]中的方法解决上述两个问题。为了正确地实现事务串行化,事务组件会在每个Txi的读操作后更新其nextID属性。如果Txi的节点接收到了来自另一个事务Txj的读请求并且Txj.ts>Txi.nextID,则推进Txi.nextID至Txj.ts。
3.1内存事务的读写操作
TMC采用延时读写策略,事务Txi执行写操作时先将要写入的数据项do保存在Txi的写集合ws中,Txi.ws只有在提交阶段时才对外可见。Txi对数据项do的读操作则分为本地读(来自Txi)和远程读(来自Txj)两种类型。本地读如算法1。
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
投稿辅导服务咨询与期刊合作加盟
陆老师联系QQ: 913775405(普刊)
蒋老师联系QQ: 867306987(核心)
刘老师联系QQ: 271374912(核心)
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com
期刊推荐
- 《课程教育研究》 旬刊 国家级
- 《网络空间安全》(信息安全与技术)月刊 国
- 《价值工程》旬刊 国家级 科技统计源期刊
- 《高教论坛》 月刊 省级
- 《法制与社会》旬刊 省级
- 《中国教育学刊》月刊 14版北大核心
- 《语文建设》 旬刊 14版北大核心
- 《中国绿色画报》 月刊 国家级
- 《社科纵横》季刊 社科类优秀期刊
- 《求索》月刊 14版北大核心期刊
- 《财会月刊》旬刊 14版北大核心
- 《艺术品鉴》 月刊 省级
- 《中华建设》月刊 国家级 建设类优秀期刊
- 《教学与管理》旬刊 北大核心
- 《当代经济》 旬刊 省级
- 《新课程研究》旬刊 省级 教育类优秀学术期
- 《文教资料》 旬刊 省级
- 《学术界》 月刊 双核心
- 《吉林教育》旬刊 省级 教育类学术期刊
- 《中国农业资源与区划》 月刊 14版北大核心
- 《继续教育研究》月刊 北大核心期刊
- 《财经界(学术版)》半月刊 国家级
- 《电影评介》半月刊 14版北大核心
- 《公路交通科技》 月刊 北大核心
- 《新闻传播》月刊 省级 新闻类优秀期刊