发明名称 |
一种支持多核平台下数据流处理的线程管理系统 |
摘要 |
本发明涉及一种支持多核平台下数据流处理的线程管理系统,其特征在于,包括线程池管理器、请求队列、事件队列及包含有多个线程的线程池。本发明的有益效果是:本发明解决了多核平台复杂查询中数据流处理的性能问题。本发明能够在不改变原有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号 |