[发明专利]一种分布式字节锁检测控制的方法和设备有效
申请号: | 202110124107.7 | 申请日: | 2021-01-29 |
公开(公告)号: | CN112839099B | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 李世杰 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | H04L67/1095 | 分类号: | H04L67/1095;G06F16/13;G06F16/27 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 陈黎明;宋薇薇 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 字节 检测 控制 方法 设备 | ||
1.一种分布式字节锁检测控制的方法,其特征在于,包括以下步骤:
响应于分布式节点中的第一节点打开文件,对所述文件的文件句柄添加字节锁并将所述字节锁的信息记录到第一节点的第一数据库中;
响应于所述分布式节点中的第二节点打开所述文件,判断第二节点的第二数据库中是否存在所述文件的字节锁的信息;
响应于所述第二数据库中没有所述文件的字节锁的信息,向所有节点的数据库发送同步请求;
响应于所述第一数据库接收到所述请求,将所述文件的字节锁的信息发送到所述第二数据库中;
响应于所述第二数据库接收到所述字节锁的信息,判断所述第二节点将对所述文件添加的字节锁信息是否与接收到的所述字节锁的信息冲突;
响应于不冲突,所述第二节点对所述文件的文件句柄添加字节锁。
2.根据权利要求1所述的方法,其特征在于,还包括:
将所述分布式节点中的每个通道线程分别设置为采用独立的消息通信上下文以使每个通道线程的消息在分布式数据库中收发互不影响。
3.根据权利要求2所述的方法,其特征在于,将所述分布式节点中的每个通道线程分别设置为采用独立的消息通信上下文包括:
服务端的SMBD进程初始化主线程的消息上下文并注册消息接收函数;
客户端建立SMB连接,将Samba服务端中的SMBD子进程的主线程默认为主通道以进行正常的SMB请求处理;
响应于客户端发起文件读写操作且服务端支持多通道,客户端在读写过程再次发起新的SMB连接;
响应于服务端SMBD进程检测到同一客户端的标识符,将整个SMB会话转移至同一个SMBD子进程处理;
响应于SMBD子进程收到连接转移请求,开启新的通道线程单独处理转移的SMB会话并且初始化通道线程的消息上下文。
4.根据权利要求1所述的方法,其特征在于,还包括:
将所述第二节点对所述文件的文件句柄添加字节锁的信息记录到所述第二数据库中。
5.根据权利要求1所述的方法,其特征在于,响应于分布式节点中的第一节点打开文件,对所述文件的文件句柄添加字节锁并将所述字节锁的信息记录到第一节点的第一数据库中包括:
所述第一节点以共享读写的方式打开所述文件,并对文件的权限进行校验;
响应于文件的权限校验通过,向客户端返回一个全局标识符以标识当前的文件句柄;
客户端向服务端发送对所述文件句柄添加字节锁的请求;
响应于服务端接收到对所述文件句柄添加字节锁的请求,判断对所述文件句柄添加字节锁是否存在冲突;
响应于不存在冲突,确认加锁成功并将所述字节锁的信息记录到第一数据库中。
6.根据权利要求1所述的方法,其特征在于,所述字节锁的信息包括:文件句柄、字节锁类型、起始位置、锁定长度、以及SMBD进程的PID。
7.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述第二节点将对所述文件添加的字节锁信息与接收到的所述字节锁的信息冲突,向所述第二节点返回加锁失败的警告。
8.根据权利要求1所述的方法,其特征在于,响应于所述第二数据库接收到所述字节锁的信息,判断所述第二节点将对所述文件添加的字节锁信息是否与接收到的所述字节锁的信息冲突包括:
判断将对所述文件添加的字节锁信息中的字节锁类型与所述字节锁的信息中的字节锁类型是否都为读类型;
响应于都为读类型,判断将对所述文件添加的字节锁信息中的字节锁范围与所述字节锁的信息中的字节锁范围是否有重叠区段;
响应于没有重叠区段,判断将对所述文件添加的字节锁信息中的PID信息与所述字节锁的信息中的PID信息是否相同;
响应于相同,判断所述第二节点将对所述文件添加的字节锁信息与接收到的所述字节锁的信息不冲突。
9.根据权利要求1所述的方法,其特征在于,所述字节锁的加锁方式包括阻塞字节锁和非阻塞字节锁。
10.一种分布式字节锁检测控制的设备,其特征在于,所述设备包括:
记录模块,所述记录模块配置为响应于分布式节点中的第一节点打开文件,对所述文件的文件句柄添加字节锁并将所述字节锁的信息记录到第一节点的第一数据库中;
第一判断模块,所述判断模块配置为响应于所述分布式节点中的第二节点打开所述文件,判断第二节点的第二数据库中是否存在所述文件的字节锁的信息;
同步模块,所述同步模块配置为响应于所述第二数据库中没有所述文件的字节锁的信息,向所有节点的数据库发送同步请求;
传输模块,所述传输模块配置为响应于所述第一数据库接收到所述请求,将所述文件的字节锁的信息发送到所述第二数据库中;
第二判断模块,所述第二判断模块配置为响应于所述第二数据库接收到所述字节锁的信息,判断所述第二节点将对所述文件添加的字节锁信息是否与接收到的所述字节锁的信息冲突;
加锁模块,所述加锁模块配置为响应于不冲突,所述第二节点对所述文件的文件句柄添加字节锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110124107.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能高速锯床及其使用方法
- 下一篇:一种板面图像的边缘检测方法及装置