论文部分内容阅读
近年来,信息发布的方式越来越多样和便捷,无线传感器、移动设备等越来越普及,云计算、物联网等技术也得到了迅猛的发展,使得数据规模急剧增大,数据类型也多种多样。针对海量、异构的数据资源,如何实现统一的数据表达、可扩展的存储管理以及高效的分析处理,是非常重要且具有挑战性的问题。目前针对大规模数据的存储主要有分布式文件系统和新型的NoSQL存储,两者在通用性和专一性上各有所长,但在数据类型支持、事务管理方面略有不足。对于大规模数据处理来说,尽管业界基本形成了事实上的大数据处理标准-MapReduce,但是偏斜问题的存在严重影响了并行处理的效率。因此,本文针对大规模数据存储和处理进行研究。 本文主要进行了如下创新性工作: 本文对海量、异构的数据资源进行了统一的表达,并整合了不同的存储系统提供混合存储管理。针对不同类型的数据,单一存储引擎不能有效管理,本文通过评估不同存储系统的数据访问性能差异,验证了混合存储的可能,同时探讨了不同的实现方式。在非结构化数据管理系统D-Ocean中实现了可扩展的数据类型和有效的混合存储管理。 针对目前新型NoSQL存储仅提供单行事务管理的不足,本文提出了一种利用键值数据库实现多行事务的处理系统-TrasPS。TrasPS采用悲观封锁协议,实现数据在并发访问中的隔离,同时改进了两阶段提交协议,提高了事务处理的吞吐量。在一般的恢复处理基础上,本文还提出了一种高可用方案HAaaS来解决单点故障问题。 在对大规模数据进行并行处理中,本文结合不同应用的特点,通过平衡的数据划分方法来解决数据偏斜问题。对于非结构化数据分析来说,在D-Ocean混合存储管理的基础上,结合不同存储系统的特性,提出了多种数据划分方法,从而实现负载均衡。对于高维向量相似度检索来说,通过解决平衡的有向非对称图的路由算法,实现每个处理单元的负载均衡。 大规模数据处理的事实标准-MapReduce,采用了推测执行的方式,来消除由于节点差异等原因造成的“拖后腿”的任务。然而,在异构环境中,这些被推测调度的备份任务并没有实现“战胜”原始任务的预期。本文提出了“部分”推测执行机制:当任务调度器准备调度一个备份任务时,在原始任务执行端进行简单、快速的检查点操作,而在备份任务启动时,通过分布式协调服务获取检查点数据,恢复任务状态,从而跳过对部分输入数据的重复操作,加快备份任务的执行过程。通过这种仅处理“部分”输入数据的方式,能够避免重复读取、重复拷贝和重复计算的开销,从而消除任务偏斜,加快作业的执行。