[发明专利]一种面向多共享目录树的控制方法及系统有效
申请号: | 202010093617.8 | 申请日: | 2020-02-14 |
公开(公告)号: | CN111309700B | 公开(公告)日: | 2022-11-29 |
发明(设计)人: | 李世杰;张端 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F9/52;G06F9/54;H04L49/90;H04L49/901 |
代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 李修杰 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 共享 目录 控制 方法 系统 | ||
1.一种面向多共享目录树的控制方法,其特征在于,所述方法包括:
根据待共享目录的个数,在服务端Samba配置文件中设置环形队列数和worker执行单元个数,其中,worker执行单元用于在Samba进程中进行计算处理,环形队列用于在IO执行单元和worker执行单元之间进行数据交换,所述IO执行单元用于获取目录请求并将所述目录请求定向至相应的worker执行单元中;
在服务端运行Samba主进程;
获取来自客户端的数据读写测试请求;
根据所述数据读写测试请求,利用基于SMB报文头部数据的自适应均衡控制算法,将不同目录的请求任务定向至不同的worker执行单元,其中,一个IO执行单元与多个worker执行单元相匹配;
其中,所述服务端根据所述数据读写测试请求,利用基于SMB报文头部数据的自适应均衡控制算法,将不同目录的请求任务定向至不同的worker执行单元,包括:
根据服务端实际共享目录的个数,设定针对TREE ID的散列表长度和除留余数法使用的除数N,所述除留余数法用于计算散列表索引;
提取输入口SMB报文中的TREE ID字段;
判断所述TREE ID字段是否为0;
如果是,在IO执行单元内执行原有的Samba处理逻辑;
如果否,利用SMB报文头部数据的TREE ID字段作为关键字,通过散列表计算并确定相应的环形队列;
IO执行单元根据当前接收的所述输入口SMB报文和最近一次相同TREE ID报文之间的时间间隔,计算流入速率;
判断所述流入速率是否超过设定的流入速率阈值;
如果是,开启新的worker执行单元;
将所述新的worker执行单元并与所述TREE ID字段对应的输入输出环形队列相关联;
所述方法还包括:
采用无锁原子操作队列,对IO执行单元和worker执行单元进行并发控制。
2.根据权利要求1所述的一种面向多共享目录树的控制方法,其特征在于,所述无锁原子操作队列为CAS原子操作队列。
3.根据权利要求1所述的一种面向多共享目录树的控制方法,其特征在于,所述采用无锁原子操作队列,对IO执行单元和worker执行单元进行并发控制,包括:
在输入方向,IO 执行单元和每个worker执行单元之间设置一并发无锁原子操作队列,且当SMB报文流速增大时,启动新的worker执行单元;
在输出方向,每个worker执行单元和IO执行单元之间设置一并发无锁原子操作队列;
进行数据存储时,Samba内部将输入报文封装为定长request对象;
进行数据并发处理时,设定输入方向的环形队列采用单生产者多消费者模型,输出方向的环形队列采用多生产者单消费者模型;
生产者不断写入数据并修改写指针的位置,且消费者不断读出数据并修改读指针的位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010093617.8/1.html,转载请声明来源钻瓜专利网。