Esper数据流引擎并发执行机制研究

来源 :东华大学 | 被引量 : 2次 | 上传用户:fenglilong_liumang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机平台及其相关处理的技术迅猛发展,尤其是近两年来在数据处理方向的发展,人们已经迈入大数据时代,数据持久化后的分析模式很难满足实时应用的需求。在数据处理领域中出现了一种新的数据模式——流式数据。数据流中的数据元素具有数量无限性、时间连续性、快速易逝性、难以预测性等特点。复杂事件处理引擎可以从数据流中检测出匹配的数据序列,在流式数据处理和实时响应方面非常出色,近些年得到了越来越广泛的应用。Esper是非常出色的一款复杂事件处理引擎。基于Esper引擎的事件处理系统可用于复杂事件处理和数据分析,适合用于处理大量实时的消息和事件流。由于近些年多核处理器已经成为主流,应用已经非常普遍,因此在多核处理器上研究Esper的性能表现非常有必要。Esper官方提供的文档以及绝大多数其它Esper资源大多是在关注Esper如何使用,很少有Esper性能分析和并发工作机制的分析文档。现有研究工作表明,Esper并未能充分利用多核平台的计算能力。为此,本文首先通过源码分析,对Esper引擎的查询工作机制进行了分析总结,具体包括:设计测试用例,利用调试工具跟踪Esper对用例中事件的处理流程,分析处理流程中关键数据结构,总结Esper中查询语句和事件的处理逻辑等。接着,分析了Esper在整个查询过程中涉及到的两种重要的锁结构——ManagedReadWriteLock和Statement AgentInstanceLock,并分析两种锁的获取和释放行为以及其对并发机制的影响。最后,对Esper原有线程池模型的工作机制进行研究,分析了线程池对并发任务的处理流程,并指出了Esper不能很好地支持多核平台的原因所在。针对Esper不能支持多核平台的问题,本文提出了一种支持多核平台的线程处理框架,并在Esper核心系统中进行了实现。新线程框架使用基于事件类型的请求队列,按照一定的调度策略调度工作线程存储结构,获取事件进行查询处理。本文针对提出的线程处理框架进行了Java语言的实现,详细介绍了工作线程的工作流程、调度策略、请求处理,以及重要数据结构如请求队列,事件存储结构。最后为了验证新的线程处理框架的性能,本文在实验上对Esper原有线程池框架和本文设计的线程池框架进行多方面的性能对比。实验结论表明,无论是在CPU利用率还是查询吞吐量上,本文设计的线程池框架皆比原有线程处理模型都有着显著地提升,最好情况下响应时间可以提高20倍。实验结论进一步验证本文分析的锁机制和查询策略是Esper引擎多核平台下不亲和的主要症结所在。这些工作可以帮助开发者更好地了解Esper引擎工作机制,以便于多核平台下数据流系统的研发。
其他文献
线性脚踏控制器作为白内障超声乳化仪的主要控制部件,对整机的性能有着重要影响.文中介绍了1种使用光电编码器的线性脚踏控制器,从机械组成、计数电路和控制软件3个方面详细
《现代高职体育》课程是依据高职教育的培养目标,为实施素质教育和培养全面发展人才而自主构建和设置的一门符合学生未来职业和生活需要的公共必修体育课程.实施的是学分制下
低应变反射波法是桩基检测中常见的一种方法。为了积累长螺旋钻孔压灌混凝土桩身缺陷波形曲线特征判别的经验,为以后基桩检测提供参考,本文介绍低应变反射波法的基本原理,结
以MCM-22分子筛为对象,系统考察了挤条成型工艺条件对分子筛催化剂物理化学特性的影响,并以苯与丙烯液相烷基化合成异丙苯为模型反应,在实验研究基础上、结合人工神经网络建
中国共产党第十七次全国代表大会是在改革开放进入新时期召开的一次重要大会。这是一个伟大的时代,和平与发展是时代的主题,实现科学发展、实现中华民族的伟大复兴是时代的主旋
目的观察阿加曲班对后循环梗死患者脑血流动力学的影响。方法回顾性分析2014年1月至2018年7月在泰州市中医院脑病科住院的80例后循环梗死患者临床资料,按治疗方法不同分为对
豫东是中华民族的文明发源地之一,文化底蕴丰厚,作为粮食主产区,豫东的农村产业化发展特别是农村的经济发展至关重要。在建设新农村的关键时刻,如何在农村经济发展的同时,提高农民
<正>这里是悠久历史的一个缩影——内蒙古额济纳旗的黑城遗址,古丝绸之路上现存最完整的遗址之一。在已经流逝的近千年中,"黑城"走过了诞生、发展、嬗变、废弃、沉寂的漫长历