论文部分内容阅读
数据流管理系统是实时处理大量、快速、无界的数据流的系统,数据流本身的特点及面向流的应用需求对数据流管理系统实时、高效、稳定的查询需求提出了诸多挑战。本文从系统查询的高效性和稳定性两个角度出发,研究了数据流查询中查询优化和负载脱落两个方面的问题,设计了相应的模型和算法,并实现了一个数据流查询原型系统。
针对查询优化,本文从查询共享和查询调度两方面开展工作。查询共享即通过对数据流管理系统中相同或相似的存储结构和处理过程进行共享,达到减少重复存储和计算、提高系统效率的目的。针对数据流存储共享,本文设计了数据流查询过程中中间结果的存储结构,并设计了基于索引的共享队列二级间接存储算法,使得中间结果存储得到一定程度的共享。针对多查询操作共享,本文设计了相同查询操作提取的算法,通过对查询操作中相同计算资源的共享,减少了系统的处理开销。
针对查询调度,考虑到操作符在运行时轻重缓急的不同,本文采取为每个操作符设置优先级并根据优先级调度操作符的策略,设计了PriOperator模型,综合考虑了影响操作符优先级的四个因素,并通过为每个因素设定系数的方式,计算得到操作符的优先级并进行调度。然后,本文引入了基于模拟退火算法的人工神经网络方法,以影响系统性能的两个因素作为反馈,对影响操作符优先级的四个因素的待定系数进行学习,并将学习结果运用到操作符优先级的重新计算中,在节省系统存储空间的同时提高了系统查询的效率。
对于负载脱落问题,本文以存在连接操作符的情况时基于语义的负载脱落为重点,从负载脱落的时机、数量和位置三个方面展开研究。通过监测系统的负载状态,并在负载达到一定程度时进行预警,在缩小连接操作符滑动窗口的基础上,给出了负载脱落解决方法。同时,本文设计了一种语义学习机制,对相应元组属性进行监测并动态学习元组命中率状况,根据学习的结果确定语义负载脱落的谓词,使得系统负载脱落时能够尽可能提高系统准确性。在负载量减少时,算法能自适应性地删除负载脱落操作符,增加系统查询的准确度。
最后,结合本文研究的内容,设计并实现了一个数据流查询系统,作为本文相关设计模型及算法的运行平台。