[发明专利]一种异步IO实现Samba多线程多通道的方法、装置及介质在审
申请号: | 202110093016.1 | 申请日: | 2021-01-22 |
公开(公告)号: | CN112764949A | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 侯胜伟 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 黄晓燕 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 异步 io 实现 samba 多线程 通道 方法 装置 介质 | ||
本发明公开一种异步IO实现Samba多线程多通道的方法,通过构建通道线程,初始化一个异步IO线程池以及用于通信的管道,将所述异步IO线程池与对应的通道线程绑定,所述管道连接所述通道线程和所述异步IO线程池;所述通道线程退出时,销毁对应的所述异步IO线程池以及所述管道;通过多个所述通道线程、管道以及异步IO线程池组成客户端与服务端通信的多通道。本发明一种异步IO实现Samba多线程多通道的方法通过将所述异步IO线程池与所述通道线程进行绑定,异步IO线程池不被所有的通道线程共享,这样使得异步IO线程池处理完所述通道线程分配的所述请求之后,将处理结果经所述通道线程反馈给客户端,解决现有Samba实现的异步IO不支持多线程多通道的问题。
技术领域
本发明涉及Samba异步IO实现多通道技术领域,尤其涉及一种异步IO实现Samba多线程多通道的方法、装置及介质。
背景技术
SMB协议是一种客户机/服务器、请求/响应协议。通过SMB协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。Samba是在Linux和UNIX系统上实现SMB协议的一个软件,Samba在session所属的SMB进程中为绑定到session的链接建立一个线程,所述线程负责处理该链接上发送来的数据请求,并将请求结果通过相同链接返回给客户端,这样可以通过多链接多线程构建多通道提高文件处理效率。
现有技术中,为了避免处理速度差异导致文件处理低效,Samba实现异步IO机制处理链接发送的数据请求,异步IO机制使得前半部分的SMB进程专门负责报文的接收、解析、发送,后半部分的线程池进行报文请求的处理,如果将异步IO机制运用在多线程构建的多通道时,由于前半部分的SMB进程形成多线程,且前半部分的SMB进程共享线程池,这就导致线程池在处理完报文的请求之后,前半部分SMB进程的每个线程均有可能收到线程池完成通知,因此导致读取结果的前半部分线程不是结果的请求源,导致数据被丢弃无法发送给客户端。
发明内容
为解决上述Samba中异步IO与多通道不适配的问题,本发明提供一种异步IO实现Samba多线程多通道的方法,包括:
构建通道线程,初始化一个异步IO线程池以及用于通信的管道,将所述异步IO线程池与对应的通道线程绑定,所述管道连接所述通道线程和所述异步IO线程池;
所述通道线程退出时,销毁对应的所述异步IO线程池以及所述管道;
通过多个所述通道线程、管道以及异步IO线程池形成客户端与服务端通信的多通道。
更进一步地,所述客户端与所述服务端连接时,服务端上配置相应的SMBsession,将所述客户端与所述服务端之间的SMB链接绑定到所述SMB session,为所述SMB链接建一个所述通道线程,所述通道线程接收、解析所述SMB链接发送的报文,封包、发送处理结果。
更进一步地,所述异步IO线程池设置有文件系统的处理线程,包括读线程和写线程,所述通道线程解析所述SMB链接发送的所述报文中的请求,并将所述请求分配给所述异步IO线程池处理,所述异步IO线程池中的线程处理所述请求得到所述处理结果。
更进一步地,所述管道包括由所述通道线程管理的读端,和设置于所述异步IO线程池的写端,所述异步IO线程池处理完所述请求后,把请求ID写到所述管道的写端,所述通道线程监听所述管道收到所述请求ID时,所述通道线程调用注册的封包以及发报函数将所述请求的处理结果封包发送给所述客户端。
更进一步地,所述通道线程监听所述管道收到所述请求ID时,所述通道线程通过所述请求ID判断请求是否为自己发出的,如果是,则所述通道线程将请求的处理结果发送给客户端,如果不是,则丢弃处理结果。
更进一步地,根据系统的配置设置所述异步IO线程池中的线程数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110093016.1/2.html,转载请声明来源钻瓜专利网。