论文摘要
近年来,随着信息处理技术应用领域的不断拓展,一种连续、无界、不定速度的流式数据(即数据流)已经出现在越来越多的应用领域当中,如:网络监控,网络流量管理,传感器的数据处理,股市信息分析等等。这种应用强调数据是无限的、瞬时的,而对这种应用的处理则强调实时性,同时需要特别考虑内存的限制。针对数据流的这些特征,传统的数据处理技术(如数据库技术)已不能满足其处理要求。目前,对数据流相关技术的研究已经成为数据库领域又一新的研究热点。数据流随时间延续而源源不断到达,即数据流是无限的,这一特性决定了数据流上的查询多为连续查询。在查询的生命期内,系统的执行环境不断地发生改变,如CPU的占用率、内存的使用情况等等;数据流本身的特性也在改变,如流速,选择率等。这些变化要求系统执行一个查询的查询处理策略也要不断地随之改变,才会获得较好的查询性能。本文针对数据流中的查询处理机制进行了深入的研究,对内存使用量和查询的实时性两方面进行综合考虑,提出了一种基于多因素的动态优化及调度策略MultiFactor。MultiFactor查询优化策略根据各个操作符消耗系统中元组数量的速度动态调整操作符的调度次序,通过操作符的选择度来考虑系统内存的使用;通过操作符的处理速度来考虑系统的响应时间。并且还考虑了数据流的另一个重要因素——变化的流速。根据MultiFactor优化策略得到了系统的查询计划之后,本文又对系统的调度策略进行了深入研究,提出了一种非等值时间片轮转的调度方法。根据查询的截止时间来确定各个操作符的调度时间片,以达到动态优化的目的。本文还设定了一个对各个参数进行统计并进行计算的时间限度τ,作为适应性查询优化的时机。在各个τ内对系统参数进行收集,利用第i个τ所收集到的参数数据为第i+1个τ进行计算。对于τ的取值采用的也是一种具有适应性的调整方法,根据数据流的实际情况动态的调整τ值的大小。最后,通过实验对系统中数据流上不断变化的各个参数(数据流的流速、操作符的选择度、操作符单位时间处理元组个数)进行了测试。并且将MultiFactor策略与传统的FIFO算法和Greedy算法在时间延迟和内存使用量两个方面进行了性能比较。从实验结果中可以看出,MultiFactor策略在这两个方面与其它算法相比都具有一定的优势。