CN112463072A - 一种基于samba软件读写文件操作的客户端反馈方法及*** - Google Patents
一种基于samba软件读写文件操作的客户端反馈方法及*** Download PDFInfo
- Publication number
- CN112463072A CN112463072A CN202011462020.2A CN202011462020A CN112463072A CN 112463072 A CN112463072 A CN 112463072A CN 202011462020 A CN202011462020 A CN 202011462020A CN 112463072 A CN112463072 A CN 112463072A
- Authority
- CN
- China
- Prior art keywords
- read
- write
- thread
- sub
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000012544 monitoring process Methods 0.000 claims abstract description 15
- 238000010586 diagram Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及分布式存储技术领域,提供一种基于samba软件读写文件操作的客户端反馈方法及***,方法包括:当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;当监测到数据读写动作开始执行时,创建第一子线程;当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作,从而实现通过第一子线程对客户端反馈进行传输,降低samba软件服务端的主线程压力,提升产品性能。
Description
技术领域
本发明属于分布式存储技术领域,尤其涉及一种基于samba软件读写文件操作的客户端反馈方法及***。
背景技术
在分布式存储当中,客户端通过samba软件挂载服务节点后,向服务器存储(写)数据和从服务器拷贝(读)数据到客户端都是必不可少的操作。
这些操作需要一包一包的数据在客户端和服务器之间传输,每一包数据操作成功后都需要samba软件服务端给客户端进行反馈。当前,读写反馈操作都是通过samba软件服务端的主线程进行,从而造成samba软件服务端主线程压力过大,samba软件性能下降。
发明内容
针对现有技术中的缺陷,本发明提供了一种基于samba软件读写文件操作的客户端反馈方法,旨在解决现有技术中读写反馈操作都是通过samba软件服务端的主线程进行,从而造成samba软件服务端主线程压力过大,samba软件性能下降的问题。
本发明所提供的技术方案是:一种基于samba软件读写文件操作的客户端反馈方法,所述方法包括下述步骤:
当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;
当监测到数据读写动作开始执行时,创建第一子线程;
当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作。
作为一种改进的方案,所述当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测的步骤之后;所述当监测到数据读写动作开始执行时,创建第一子线程之前还包括下述步骤:
在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
当获取到读写请求的具体信息时,创建第二子线程;
应用所述第二子线程对获取到的所述读写请求的具体信息进行读写操作。
作为一种改进的方案,所述当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测的步骤之后;所述当监测到数据读写动作开始执行时,创建第一子线程之前还包括下述步骤:
在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
应用所述第一子线程对获取到的所述读写请求的具体信息进行读写操作。
作为一种改进的方案,所述当监测到数据读写动作开始执行时,创建第一子线程的步骤具体包括下述步骤:
在创建的所述第一子线程中创建EPOLL组件;
将所述读写文件的文件描述符添加至创建的所述EPOLL组件中;
调用所述EPOLL组件的epoll_wait函数,控制所述EPOLL组件进入等待反馈状态。
本发明的另一目的在于提供一种基于samba软件读写文件操作的客户端反馈***,所述***包括:
读写动作监测模块,用于当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;
第一子线程创建模块,用于当监测到数据读写动作开始执行时,创建第一子线程;
反馈动作执行模块,用于当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作。
作为一种改进的方案,所述***还包括:
第一读写请求解析模块,用于在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
第二子线程创建模块,用于当获取到读写请求的具体信息时,创建第二子线程;
第一读写动作执行模块,用于应用所述第二子线程对获取到的所述读写请求的具体信息进行读写操作。
作为一种改进的方案,所述***还包括:
第二读写请求解析模块,用于在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
第二读写动作执行模块,用于应用所述第一子线程对获取到的所述读写请求的具体信息进行读写操作。
作为一种改进的方案,所述第一子线程创建模块具体包括:
EPOLL组件创建模块,用于在创建的所述第一子线程中创建EPOLL组件;
文件描述符添加模块,用于将所述读写文件的文件描述符添加至创建的所述EPOLL组件中;
Wait函数调用模块,用于调用所述EPOLL组件的epoll_wait函数,控制所述EPOLL组件进入等待反馈状态。
在本发明实施例中,当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;当监测到数据读写动作开始执行时,创建第一子线程;当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作,从而实现通过第一子线程对客户端反馈进行传输,降低samba软件服务端的主线程压力,提升产品性能。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1是本发明提供的基于samba软件读写文件操作的客户端反馈方法的实现流程图;
图2是本发明提供的当监测到数据读写动作开始执行时,创建第一子线程的实现流程图;
图3是本发明实施例一提供的基于samba软件读写文件操作的客户端反馈***的结构框图;
图4是本发明实施例二提供的基于samba软件读写文件操作的客户端反馈***的结构框图;
图5是本发明实施例三提供的基于samba软件读写文件操作的客户端反馈***的结构框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的、技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
图1是本发明提供的基于samba软件读写文件操作的客户端反馈方法的实现流程图,其具体包括下述步骤:
在步骤S101中,当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;
在步骤S102中,当监测到数据读写动作开始执行时,创建第一子线程;
在步骤S103中,当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作。
在该实施例中,将原先通过samba软件服务端来完成的客户端反馈动作,转移到创建的第一子线程中实现,从而降低主线程的工作压力,提升产品性能。
作为本发明的一个实施例,所述当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测的步骤之后;所述当监测到数据读写动作开始执行时,创建第一子线程之前还包括下述步骤:
(1)在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
(2)当获取到读写请求的具体信息时,创建第二子线程;
(3)应用所述第二子线程对获取到的所述读写请求的具体信息进行读写操作;
上述给出了其中一种关于数据读写操作的实现流程,在此不用以限制本发明。
作为本发明的另一个实施例,所述当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测的步骤之后;所述当监测到数据读写动作开始执行时,创建第一子线程之前还包括下述步骤:
(1)在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
(2)应用所述第一子线程对获取到的所述读写请求的具体信息进行读写操作;
上述给出了另一种关于数据读写操作的实现流程,在此不用以限制本发明。
在本发明实施例中,如图2所示,当监测到数据读写动作开始执行时,创建第一子线程的步骤具体包括下述步骤:
在步骤S201中,在创建的所述第一子线程中创建EPOLL组件;
在步骤S202中,将所述读写文件的文件描述符添加至创建的所述EPOLL组件中;
在步骤S203中,调用所述EPOLL组件的epoll_wait函数,控制所述EPOLL组件进入等待反馈状态。
在该实施例中,EPOLL是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的***CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外,还提供了边缘触发(Edge Triggered),这就使得用户空间程序有可能缓存IO状态,减少epoll_wait/epoll_pwait的调用,提高应用程序效率。
图3示出了本发明提供的基于samba软件读写文件操作的客户端反馈***的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
基于samba软件读写文件操作的客户端反馈***包括:
读写动作监测模块11,用于当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;
第一子线程创建模块12,用于当监测到数据读写动作开始执行时,创建第一子线程;
反馈动作执行模块13,用于当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作。
在本发明实施例中,所述第一子线程创建模块12具体包括:
EPOLL组件创建模块14,用于在创建的所述第一子线程中创建EPOLL组件;
文件描述符添加模块15,用于将所述读写文件的文件描述符添加至创建的所述EPOLL组件中;
Wait函数调用模块16,用于调用所述EPOLL组件的epoll_wait函数,控制所述EPOLL组件进入等待反馈状态。
作为本发明的另一个实施例,在图3所示的实施例的基础上,如图4所示,所述***还包括:
第一读写请求解析模块17,用于在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
第二子线程创建模块18,用于当获取到读写请求的具体信息时,创建第二子线程;
第一读写动作执行模块19,用于应用所述第二子线程对获取到的所述读写请求的具体信息进行读写操作。
作为本发明的另一个实施例,在图3所示的实施例的基础上,如图5所示,所述***还包括:
第二读写请求解析模块20,用于在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
第二读写动作执行模块21,用于应用所述第一子线程对获取到的所述读写请求的具体信息进行读写操作。
其中,上述各个模块的功能如上述方法实施例所记载,在此不再赘述。
在本发明实施例中,当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;当监测到数据读写动作开始执行时,创建第一子线程;当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作,从而实现通过第一子线程对客户端反馈进行传输,降低samba软件服务端的主线程压力,提升产品性能。
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (8)
1.一种基于samba软件读写文件操作的客户端反馈方法,其特征在于,所述方法包括下述步骤:
当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;
当监测到数据读写动作开始执行时,创建第一子线程;
当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作。
2.根据权利要求1所述的基于samba软件读写文件操作的客户端反馈方法,其特征在于,所述当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测的步骤之后;所述当监测到数据读写动作开始执行时,创建第一子线程之前还包括下述步骤:
在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
当获取到读写请求的具体信息时,创建第二子线程;
应用所述第二子线程对获取到的所述读写请求的具体信息进行读写操作。
3.根据权利要求1所述的基于samba软件读写文件操作的客户端反馈方法,其特征在于,所述当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测的步骤之后;所述当监测到数据读写动作开始执行时,创建第一子线程之前还包括下述步骤:
在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
应用所述第一子线程对获取到的所述读写请求的具体信息进行读写操作。
4.根据权利要求2或3所述的基于samba软件读写文件操作的客户端反馈方法,其特征在于,所述当监测到数据读写动作开始执行时,创建第一子线程的步骤具体包括下述步骤:
在创建的所述第一子线程中创建EPOLL组件;
将所述读写文件的文件描述符添加至创建的所述EPOLL组件中;
调用所述EPOLL组件的epoll_wait函数,控制所述EPOLL组件进入等待反馈状态。
5.一种基于samba软件读写文件操作的客户端反馈***,其特征在于,所述***包括:
读写动作监测模块,用于当samba软件服务端接收到客户端发来的读写请求时,对数据读写的动作进行监测;
第一子线程创建模块,用于当监测到数据读写动作开始执行时,创建第一子线程;
反馈动作执行模块,用于当数据读写完成时,利用创建的所述第一子线程执行向所述客户端的反馈动作。
6.根据权利要求5所述的基于samba软件读写文件操作的客户端反馈***,其特征在于,所述***还包括:
第一读写请求解析模块,用于在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
第二子线程创建模块,用于当获取到读写请求的具体信息时,创建第二子线程;
第一读写动作执行模块,用于应用所述第二子线程对获取到的所述读写请求的具体信息进行读写操作。
7.根据权利要求5所述的基于samba软件读写文件操作的客户端反馈***,其特征在于,所述***还包括:
第二读写请求解析模块,用于在所述samba软件服务端,对接收到的所述客户端发来的读写请求进行解析,获得读写请求的具体信息,所述读写请求的具体信息包括读写文件的文件描述符;
第二读写动作执行模块,用于应用所述第一子线程对获取到的所述读写请求的具体信息进行读写操作。
8.根据权利要求6或7所述的基于samba软件读写文件操作的客户端反馈***,其特征在于,所述第一子线程创建模块具体包括:
EPOLL组件创建模块,用于在创建的所述第一子线程中创建EPOLL组件;
文件描述符添加模块,用于将所述读写文件的文件描述符添加至创建的所述EPOLL组件中;
Wait函数调用模块,用于调用所述EPOLL组件的epoll_wait函数,控制所述EPOLL组件进入等待反馈状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011462020.2A CN112463072A (zh) | 2020-12-11 | 2020-12-11 | 一种基于samba软件读写文件操作的客户端反馈方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011462020.2A CN112463072A (zh) | 2020-12-11 | 2020-12-11 | 一种基于samba软件读写文件操作的客户端反馈方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463072A true CN112463072A (zh) | 2021-03-09 |
Family
ID=74804070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011462020.2A Withdrawn CN112463072A (zh) | 2020-12-11 | 2020-12-11 | 一种基于samba软件读写文件操作的客户端反馈方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463072A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519329A (zh) * | 2019-07-23 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种并发处理samba协议请求的方法、设备及可读介质 |
CN111770054A (zh) * | 2020-05-28 | 2020-10-13 | 苏州浪潮智能科技有限公司 | 一种针对smb协议读请求的交互加速方法与*** |
-
2020
- 2020-12-11 CN CN202011462020.2A patent/CN112463072A/zh not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519329A (zh) * | 2019-07-23 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种并发处理samba协议请求的方法、设备及可读介质 |
CN111770054A (zh) * | 2020-05-28 | 2020-10-13 | 苏州浪潮智能科技有限公司 | 一种针对smb协议读请求的交互加速方法与*** |
Non-Patent Citations (1)
Title |
---|
荒野之萍: "基于线程池、消息队列和epoll模型实现并发服务器架构", 《HTTPS://WWW.CNBLOGS.COM/ICOTY23/P/10989445.HTML》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11340803B2 (en) | Method for configuring resources, electronic device and computer program product | |
JP6961844B2 (ja) | ストレージボリューム作成方法および装置、サーバ、並びに記憶媒体 | |
CN107105009B (zh) | 基于Kubernetes***对接工作流引擎的作业调度方法和装置 | |
JP7039631B2 (ja) | アクセスリクエストを管理するための方法、装置、デバイス、および記憶媒体 | |
CN113918101B (zh) | 一种写数据高速缓存的方法、***、设备和存储介质 | |
US11243808B2 (en) | Information processing apparatus and storage medium storing execution control program | |
KR20210040850A (ko) | 문서 분석 방법, 장치, 기기 및 저장 매체 | |
US9836516B2 (en) | Parallel scanners for log based replication | |
CN110851276A (zh) | 一种业务请求处理方法、装置、服务器和存储介质 | |
CN115080128A (zh) | 一种硬盘启动顺序管理方法、***、装置及存储介质 | |
CN114218135A (zh) | 一种基于Redis缓存的源端流控方法及*** | |
KR102418991B1 (ko) | 적응형 i/o 완료 방법 및 이를 수행하기 위한 컴퓨터 프로그램 | |
US20220342579A1 (en) | Memory migration method, apparatus, and computing device | |
CN113609101A (zh) | 实时数据任务的发布方法、装置、电子设备及存储介质 | |
CN112463072A (zh) | 一种基于samba软件读写文件操作的客户端反馈方法及*** | |
KR102456017B1 (ko) | 응용 프로그램간 파일 공유 장치 및 방법 | |
US12019909B2 (en) | IO request pipeline processing device, method and system, and storage medium | |
CN115543222A (zh) | 一种存储优化方法、***、设备及可读存储介质 | |
CN114327404A (zh) | 一种文件处理方法、装置、电子设备及计算机可读介质 | |
JP6656485B1 (ja) | 割込み処理方法、コンピュータシステムおよびプログラム | |
CN113032118A (zh) | 用于计算机应用程序的异步操作处理方法和相应的*** | |
WO2018230444A1 (ja) | アクセラレータ制御装置、アクセラレータ制御方法、及び、アクセラレータ制御プログラムが格納された記録媒体 | |
CN111611307A (zh) | 报表导出方法及装置 | |
US20210382752A1 (en) | Server, apparatus, and method for accelerating file input-output offload for unikernel | |
CN113806011B (zh) | 集群资源控制方法和装置、集群、计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210309 |
|
WW01 | Invention patent application withdrawn after publication |