发明名称 一种支持多核平台下数据流处理的线程管理系统
摘要 本发明涉及一种支持多核平台下数据流处理的线程管理系统,其特征在于,包括线程池管理器、请求队列、事件队列及包含有多个线程的线程池。本发明的有益效果是:本发明解决了多核平台复杂查询中数据流处理的性能问题。本发明能够在不改变原有Esper内部代码与结构的前提下,只通过外加线程管理来管理查询线程,对Esper本身没有“污染”。与现有技术相比,本发明通过外加线程管理以适应多核平台复杂查询,具有事件查询吞吐量高,事件响应时间快等特点,进一步可以推广到其它类Esper引擎数据流查询工具。
申请公布号 CN106095535A 申请公布日期 2016.11.09
申请号 CN201610404750.4 申请日期 2016.06.08
申请人 东华大学 发明人 王洪亚;刘杰;陆可镜;常姗
分类号 G06F9/46(2006.01)I;G06F15/16(2006.01)I 主分类号 G06F9/46(2006.01)I
代理机构 上海申汇专利代理有限公司 31001 代理人 翁若莹;柏子雵
主权项 一种支持多核平台下数据流处理的线程管理系统,其特征在于,包括线程池管理器、请求队列、事件队列及包含有多个线程的线程池,其中:事件队列,用于存入事件,每个事件均具有一个事件类型,不同事件队列对应不同的事件类型,事件抵达Esper引擎后,由线程池管理器接管Esper引擎原有的事件发送方法,将当前事件依据事件类型存入对应的事件队列中;线程池中的线程的状态在休眠与唤醒之间切换:当线程池管理器初始化后,或当处于唤醒状态的线程无法申请到请求队列中的请求后,或当线程依据申请到的请求中包含的事件类型访问对应的事件队列,而对应的事件队列为空时,线程的状态变更为休眠;当请求被创建并插入请求队列后,由线程池管理器唤醒线程池中所有处于休眠状态的线程;请求队列,线程池中处于唤醒状态的所有线程互斥访问请求队列,申请请求队列中的请求,申请到请求的线程依据请求中包含的事件类型访问对应的事件队列,获得非空事件队列中的事件,获得事件的线程调用Esper引擎中的查询处理功能模块进行事件的查询处理,在Esper引擎完成对当前事件的处理后,由线程将当前事件对应的请求返还至请求队列,其中,请求被创建的条件为:线程池管理器接收到事件后,依据当前事件对应的事件类型查询对应的事件队列,仅在被查询的事件队列为空时,创建一个请求并插入请求队列中,该请求包含当前事件的事件类型;请求被丢弃的条件为:当线程依据申请到的请求中包含的事件类型访问对应的事件队列,而对应的事件队列为空时,当前线程申请到的请求被丢弃。
地址 201620 上海市松江区人民北路2999号