[发明专利]输入输出事件的处理方法及设备有效
申请号: | 201610042065.1 | 申请日: | 2016-01-22 |
公开(公告)号: | CN106997304B | 公开(公告)日: | 2020-12-04 |
发明(设计)人: | 徐逸锋;冯遵宝 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 上海百一领御专利代理事务所(普通合伙) 31243 | 代理人: | 陈贞健;周建华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 输入输出 事件 处理 方法 设备 | ||
本申请的目的是提供一种输入输出事件的处理方法及设备,具体地,当业务处理进程接收数据时,将所述业务处理进程的文件描述符封装信息添加至管理套接字结构的事件循环结构体中;利用轮询器进程查询是否有输入输出事件;若利用轮询器进程查询到有输入输出事件,则利用轮询器进程将输入输出事件的数据发送至所述事件循环结构体中记录的文件描述符封装信息所对应的业务处理进程。与现有技术相比,本申请的方案能够在同一时间调度业务处理进程处理输入输出事件的调度器线程的数量不限于一个,提高了输入输出事件的处理效率,从而能够及时处理大量的输入输出事。
技术领域
本申请涉及计算机领域,尤其涉及一种输入输出事件的处理方法及设备。
背景技术
代理服务器用于连接前端用户和后端数据库,其性能直接影响用户的使用体验,考虑到快速迭代,稳定性,在线更新等因素,一般会采用Erlang(一种面向并发的编程语言)开发。在作为其具体实现的Erlang虚拟机中,N个调度器线程(scheduler)采用leader/follwer(领导者/追随者)模式轮流拥有管理套接字结构(pollset)的使用权,因此同一时间只能有一个调度器线程线程处理管理套接字结构的事件。在进行输入输出(IO)事件的处理时,其主要数据流如图1所示:
1)业务处理进程(process)在没有消息的时候通过接收原语挂起在scheduler上。
2)当有输入输出事件到来,角色为leader的scheduler-1对该输入输出事件进行处理。
3)scheduler-1通过相应的回调函数把输入输出事件的数据以消息的形式发送到某个process中。
由此可知,现有的方案中同一时间只能有一个调度器线程处理管理套接字结构的输入输出事件,处理效率较低。对于大输入输出压力的场景来说,新产生的输入输出事件有可能无法得到及时处理,由此将会造代理服务器的吞吐量较低,无法及时响应用户的请求,导致用户请求的处理延迟较大。
本申请的一个目的是提供一种输入输出事件的处理方法及设备,用以解决现有技术中输入输出事件的处理效率较低,不能及时处理大量的输入输出事件的问题。
为实现上述目的,本申请提供了一种输入输出事件的处理方法,该方法包括:
当业务处理进程接收数据时,将所述业务处理进程的文件描述符封装信息添加至管理套接字结构的事件循环结构体中;
利用轮询器进程查询是否有输入输出事件;
若利用轮询器进程查询到有输入输出事件,则利用轮询器进程将输入输出事件的数据发送至所述事件循环结构体中记录的文件描述符封装信息所对应的业务处理进程。
基于本申请的另一方面,还提供了一种输入输出事件的处理设备,该设备包括:
信息添加装置,用于在业务处理进程接收数据时,将所述业务处理进程的文件描述符封装信息添加至管理套接字结构的事件循环结构体中;
轮询装置,用于利用轮询器进程查询是否有输入输出事件;
回调处理装置,用于在利用轮询器进程查询到有输入输出事件时,利用轮询器进程将输入输出事件的数据发送至所述事件循环结构体中记录的文件描述符封装信息所对应的业务处理进程。
本申请还提供了一种输入输出事件的处理设备,该设备包括:
处理器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610042065.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:深井救援充气式安全气囊装置
- 下一篇:一种泡沫灭火装置