论文部分内容阅读
随着计算机及其相关技术的发展,尤其是网络的发展,传统数据库处理永久数据的模式已经不能适应现在大量的实时在线应用的需求。在很多应用领域中出现了一种新的数据模式——流式数据。与传统数据相比,数据流具有有实时性、连续性、数据量庞大等特点。复杂事件处理引擎可以从数据流中检测出匹配的数据序列,在流数据处理和实时响应方面非常出色,近些年得到了越来越广泛的应用。Esper是复杂事件处理引擎中非常出色的一款。Esper事件处理系统可用于复杂事件处理和数据分析,适合用于处理大量历史的或是实时的消息和事件流。由于近些年多核处理器已经成为主流,应用已经非常普遍,因此在多核处理器上研究Esper的性能情况非常有必要。本文着重分析了多核计算平台下,基于Esper引擎所构建的数据流处理系统的性能表现。首先介绍了基于Esper引擎的实验平台的设计与实现,并对该实验平台的基本结构和关键模块的构建进行了详细阐述。然后设计了完整的查询语句和测试用例,并使用该实验平台对多核平台下Esper引擎的性能进行了测试。实验中主要将查询语句分成四大类:简单查询、聚合查询、连接查询、模式匹配查询,并对查询语句的命名规则和参数设置进行详细阐述。实验中采用了线程池技术,本文主要从线程池工作模型、处理流程、排队策略以及如何实现线程池的设计做了详细描述。实验通过实时监控和离线数据分析两种方法展示了系统的各项性能指标。最后对实验中得到的原始数据进行统计分析并得出了实验结论。实验结论表明Esper数据流系统对多核平台并不能提供良好的支持,原因是Esper引擎内部的一些设计缺陷造成的,同时指出了后续待研究的一些问题。实验结果中还得到了很多对构建Esper数据流管理系统非常有用的结论,包括不同事件数、不同类型查询、线程池不同数目队列对系统造成的各种影响情况等。这些可以帮助开发者更好地了解Esper引擎在多核平台下的优势和劣势,以便于开发基于开源Esper引擎的更加有效的流处理系统。