论文部分内容阅读
随着近些年信息化的急速发展,分布式云计算平台Hadoop日趋完善,大数据处理已被大量使用到互联网数据当中。Hadoop框架下的分布式数据库系统HBase具有高效的处理能力、极大的存储空间、强扩展性等特点。但由于牺牲事务特性换来高处理能力的HBase也出现一些问题,不支持跨行和跨表事务功能,导致HBase的弱事务性系统无法支持传统关系型数据库的事务逻辑处理,无法实现一些场景下需要的业务功能。目前的解决方案是使用者根据自身应用的特点,根据应用场景的需要自行在HBase系统中开发事务功能代码。这样做导致方案无法公开,不仅增加了软件开发的成本周期,而且不利于HBase本身在行业间的普及与优化。随着HBase本身版本的不断升级,很多实用性的接口功能已经添加到工程代码当中,如Coprocessor协处理插件。虽然目前系统只支持了单行数据的事务性控制,但是如果能够利用好这些极具扩展性的接口,与HBase现有体系功能相结合,实现用户希望的、目前还不支持的跨行跨表事务功能,是本文重点研究的内容。针对HBase系统架构的特点和传统数据库事务性的特性,本文研究设计并实现了在分布式数据库HBase平台上的跨行跨表事务功能。通过分析Hbase系统架构与研究事务功能算法实现的原理,保证HBase本身的扩展性、高吞吐、可用性特点的前提下,结合分布式内存系统Hazelcast的高速读写能力,将其作为缓存层,在保证了数据的可靠性的同时,实现并加速了事务功能日志的读写。分析关系型数据库中事务处理算法和机制,结合HBase自身系统的构造,选取适合其系统特点的并发控制算法、资源锁算法,实现基于HBase系统的事务管理功能模块。在尽量在最小范围内修改原始处理逻辑,利用系统提供的协处理器接口Coprocessor和过滤器接口Filter设计实现事务开始、提交、回滚功能。并通过实现HBase添加二级索引的功能来体现分布式数据库同样需要完整事务特性的支持。最后搭建试验环境,对改进后的HBase系统在事务功能上与原生系统进行了对比测试。在时间,资源损耗等数据上进行了对比分析。验证添加索引功能的事务特性的正确性。并得到结论证明文设计的系统具有良好的功能与性能,满足HBase处理跨行跨表事务功能的要求。