论文部分内容阅读
从数据库系统到信息网格的演变为查询执行引擎的设计带来了两个关键问题:
●单一查询并行执行问题:在基于迭代器执行模型的分布式查询计划树中,如何利用叶子节点中的数据提取和非叶子节点中的查询运算之间的并行执行机会来隐藏不必要的数据请求延迟?
●并发查询数据共享问题:在不存在全局缓冲池管理器的情况下,如何检测并利用多个并发的分布式查询执行过程中的数据共享机会,从而去除不必要的数据请求?
为解决第一个问题,本文提出了一种Start-Fetch封装器体系结构,其通过分离查询执行引擎代码和数据源封装器代码来利用查询内并行执行机会,从而实现数据预取功能。为解决第二个问题,本文首先通过研究信息网格中的请求局部性来刻画并发的分布式查询执行过程中的数据请求行为,指出了通过消除冗余数据传输来加速查询执行的可行性;然后本文提出了一种利用请求局部性的并发查询问数据共享机制:请求窗口机制,该机制依赖于Start-Fetch封装器体系结构。
本文围绕一个基于PostgreSQL开发的信息网格系统IGNITE阐述内容,并利用分布式扩展的TPC-H测试基准来评价系统性能。实验结果表明,通过应用上述解决方案,IGNITE的吞吐率能够达到主流商业系统的1.7倍。