[发明专利]一种实现数据处理和交互的方法和系统有效
申请号: | 201410014386.1 | 申请日: | 2014-01-13 |
公开(公告)号: | CN103701830A | 公开(公告)日: | 2014-04-02 |
发明(设计)人: | 张在理;王倩 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 王丹;栗若木 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 数据处理 交互 方法 系统 | ||
技术领域
本发明涉及计算机通信技术领域,尤其涉及的是一种实现数据处理和交互的方法和系统。
背景技术
在当前存储架构中,节点之间、节点与客户端、节点与存储端等数据的交互是不可或缺的。数据交互的实现方式也是各有不同,但大都采用客户-服务器模式。
通常节点需要其它节点对数据进行处理时,都是由单一线程通过两个节点间的连接发送到对端去处理,对端在处理数据期间本地需要等待对端处理结果的返回。在对端处理期间,两个节点间的连接处于空闲状态,不能有效地利用网络资源,本地的处理线程也处于等待状态。处理线程在发送请求命令后等待接收返回结果,等待的时间长短取决于对端执行命令请求的时间长短和收发数据的速率,如果对端处理数据的时间比较长,那本地需要等待的时间就比较长。因此,在一个物理连接上建立单一的逻辑连接时,针对单个逻辑连接进行数据接收和发送通常达不到物理连接的带宽,不能有效利用两个节点间的网络带宽。
但是,如果把每一个对对端的请求都使用一个处理线程来处理虽然会明显提高物理连接的利用率和数据的处理速率,从而提高本地数据处理效率,但不断增长的线程数会难以控制。
发明内容
本发明所要解决的技术问题是提供一种实现数据处理和交互的方法和系统,能够提高物理连接的带宽使用率并且优化逻辑连接的数目。
为了解决上述技术问题,本发明提供了一种实现数据处理和交互的方法,应用于客户端,包括:
命令处理线程从新请求命令链表中取出请求命令并插入正处理命令链表中,对所述请求命令进行拆分,将拆分成的一个或多个数据包插入发送包链表中;
发送线程从所述发送包链表中取出数据包进行发送;
接收线程如接收到来自服务端的数据包,则将数据包插入接收包链表中;
数据包处理线程判断接收包链表中的数据包是否能够组装成一条完整的响应命令,是则取出数据包进行组装,将组装完毕的响应命令插入响应命令链表中,并根据该响应命令将正处理命令链表中的对应请求命令删除;
其中,所述发送线程和接收线程均为多个;各线程并行执行。
进一步地,该方法还包括下述特点:
所述发送包链表与接收包链表均为多个;
发送线程与发送包链表一一对应,接收线程与接收包链表一一对应;
命令处理线程将拆分成的一个或多个数据包插入发送包链表中,包括:命令处理线程从多个发送包链表中选出一个长度最短的发送包链表,将拆分成的一个或多个数据包插入该选出的发送包链表的表尾。
进一步地,该方法还包括下述特点:
命令处理线程对所述请求命令进行拆分,包括:命令处理线程根据预设的单个发送包的最大长度,将请求命令拆分成一个或多个数据包;其中,每个数据包中携带该请求命令的命令标识、本数据包的序号、和该请求命令共拆分成的数据包总个数;
数据包处理线程判断接收包链表中的数据包是否能够组装成一条完整的响应命令,是则取出数据包进行组装,包括:数据包处理线程判断接收包链表中具有同一命令标识的数据包的个数是否等于该命令拆分成的数据包的总个数,是则从所述接收包链表中取出所述数据包进行组装;其中,每个接收的数据包中携带该响应命令的命令标识、本数据包的序号、和该响应命令共拆分成的数据包总个数;
其中,所述响应命令携带的命令标识与对应的请求命令的命令标识相同。
进一步地,该方法还包括下述特点:
工作线程将对其他节点的请求插入所述新请求命令链表的表尾;
工作线程查询所述响应命令链表,如查到与请求命令对应的响应命令,则从所述响应命令链表中取出该响应命令,进行解析并获得响应结果。
进一步地,该方法还包括下述特点:
超时扫描线程周期性扫描正处理命令链表中的命令,如某个命令超过预定时间还没有被删除,则将该命令取出重新插入所述新请求命令链表中。
为了解决上述技术问题,本发明还提供了一种实现数据处理和交互的方法,应用于服务端,包括:
接收线程如接收到来自客户端的数据包,则将数据包插入接收包链表中;
数据包处理线程判断接收包链表中给的数据包是否能够组装成一条完整的请求命令,是则取出所述数据包进行组装,将组装完毕的请求命令插入新请求命令链表中;
工作线程从所述新请求命令链表中取出请求命令进行处理,处理完毕后生成响应命令,插入响应命令链表中;
命令处理线程从所述响应命令链表中取出响应命令进行拆分,将拆分成的一个或多个数据包插入发送包链表中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410014386.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电解出装起吊作业行车定位装置
- 下一篇:一种烘干托盘装卸车