论文部分内容阅读
为了应对数据爆发式增长带来的数据等待问题,数据中心迫切需要提高数据处理能力。其中海量数据从存储设备向主机进行数据传输是大规模数据处理的瓶颈之一,近年来得到大量关注。近数据处理提出了将计算下移到离存储更近位置的方式来解决数据传输等待问题。作为数据处理和存储最频繁的应用,数据库是进行近数据处理研究的良好载体。为应对数据等待的挑战,以近数据处理为框架,利用新型存储设备计算能力、高带宽、低延迟的特性,进行数据库优化成为热点。本文通过设计远程过程调用(Remote Procedure Call,RPC),实现了数据库系统存储引擎的分离,并提出了近数据处理框架下的数据库优化方法。从性能、功耗和可靠性上解决了大规模数据传输带来计算资源的损耗问题。本文的具体研究内容如下:(1)近数据处理框架是实现数据密集型计算向存储节点转移,减少频繁数据传输带来系统损耗的关键。为保证数据库能够支持近数据处理的模式,需要选择合理的通信协议使主机与存储器之间的计算任务能够协同运行。由此,提出了基于RPC通信的数据库协同处理方法。通过分离数据库的存储引擎,使之独立运行在存储设备系统中,从而能支持数据密集型计算的下移。理论分析和实验表明,待处理数据达到一定规模时,近数据处理极大地减少了数据传输损耗,能有效提高数据库系统处理数据的性能。(2)为进一步提高近数据处理框架下的数据库处理性能,提出了一种数据密集型算子优化方法。其基本思路是将数据密集型计算相关的算子分离后选择性地下移。算子选择和分离能减少数据逆向传输,缓解存储器的计算压力。在此基础上,结合存储引擎分离模式提出数据库算子下移处理方法。通过实验分析证明,该方案能避免不必要的计算下移。通过减少算子调用过程中的数据传输,从而整体上提高数据库系统的计算性能。(3)在对数据密集型算子下移的过程中,传统查询执行器只能根据代价或者经验规则的方式下移相关算子,并不能判断是否采用了近数据处理模式,也不能客观地评估算子是否适合下移。有鉴于此,提出了基于抽样代价估算的近数据处理查询优化方案。在查询引擎生成查询计划之前,采用主机端抽样获取查询操作的过滤效果。再通过代价估算的方式,对采用数据密集型算子下移的查询计划与原有查询计划进行比较,选择性地执行近数据处理方案。实验结果表明,本方案在原有方案的基础上,能够有效选择合适的查询计划,提高数据库系统查询处理效率。