一种文件处理方法及装置制造方法及图纸

技术编号:12901002 阅读:39 留言:0更新日期:2016-02-24 11:15
本申请提供了一种文件处理方法及装置,包括:主线程接收客户端发送的操作请求;所述操作请求中包括操作的文件标识;所述主线程根据操作请求中的文件标识,将所述操作请求挂入所述文件,所述文件在待处理文件队列中依次存放;当所述待处理文件队列中有文件需要处理时,工作线程从所述待处理文件队列中获取所述文件,逐个处理所述文件的操作请求。由于本申请实施例中由主线程对操作请求进行了整合,将针对同一文件的操作请求整合在一起,通过对相同文件处理串行化的方式排除写操作的竞态条件,能够充分利用预读与磁盘带宽,既不会对通用场景产生明显的负面影响,又能满足高并发与低延迟场景的性能需求,可以有效的均衡高并发场景下的操作请求。

【技术实现步骤摘要】

本申请涉及计算机
,尤其涉及一种文件处理方法及装置
技术介绍
网络附属存储(NAS,Network Attached Storage)技术是一种成熟的、高效的、低成本的存储技术,通常包括存储设备、系统软件和文件共享服务等。samba是一个基于信息服务块(SMB,Server Message Block)协议的提供文件共享服务的开源软件。作为一个成熟的开源软件,samba很好的解决了大部分应用场景的需求,但是,对于一些高并发、低延时的场景需求,samba的表现不尽如人意,经常出现延迟、CPU利用率低等情况。现有技术不足在于:现有samba软件在一些高并发、低延时的场景下经常出现延迟、CPU利用率低等情况。
技术实现思路
本申请实施例提出了一种文件处理方法及装置,以解决现有技术中samba软件在一些高并发、低延时的场景下经常出现延迟、CPU利用率低等情况的技术问题。本申请实施例提供了一种文件处理方法,包括如下步骤:主线程接收客户端发送的操作请求;所述操作请求中包括操作的文件标识;所述主线程根据操作请求中的文件标识,将所述操作请求挂入所述文件,所述文件在待处理文件队列中依次存放;当所述待处理文件队列中有文件需要处理时,工作线程从所述待处理文件队列中获取所述文件,逐个处理所述文件的操作请求。本申请实施例提供了一种文件处理装置,包括:接收模块,用于主线程接收客户端发送的操作请求;所述操作请求中包括操作的文件标识;整合模块,用于所述主线程根据操作请求中的文件标识,将所述操作请求挂入所述文件,所述文件在待处理文件队列中依次存放;处理模块,用于当所述待处理文件队列中有文件需要处理时,工作线程从所述待处理文件队列中获取所述文件,逐个处理所述文件的操作请求。有益效果如下:本申请实施例所提供的文件处理方法及装置,主线程接收客户端发送的操作请求;所述操作请求中包括操作的文件标识;所述主线程根据操作请求中的文件标识,将所述操作请求挂入所述文件,所述文件在待处理文件队列中依次存放;当所述待处理文件队列中有文件需要处理时,工作线程从所述待处理文件队列中获取所述文件,逐个处理所述文件的操作请求。由于本申请实施例中由主线程对操作请求进行了整合,将针对同一文件的操作请求整合在一起,通过对相同文件处理串行化的方式排除写操作的竞态条件,能够充分利用预读与磁盘带宽,既不会对通用场景产生明显的负面影响,又能满足高并发与低延迟场景的性能需求,可以有效的均衡高并发场景下的操作请求。【附图说明】下面将参照附图描述本申请的具体实施例,其中:图1示出了本申请实施例中文件处理方法实施的流程示意图;图2示出了本申请实施例中samba读写模型的原理示意图;图3示出了本申请实施例中文件处理装置的结构示意图。【具体实施方式】为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。专利技术人在专利技术过程中注意到:通过对samba软件代码的分析,发现主要原因出在读写线程模型上;对于写操作,多线程写相同文件引入了竞态条件,导致了大量的线程切换,不仅提高了延迟,而且降低了 CPU的利用率;对于读操作,多线程读相同文件不能最大限度的利用预读功能与磁盘带宽。针对上述不足,本申请实施例提出了一种文件处理方法及装置,下面进行说明。图1示出了本申请实施例中文件处理方法实施的流程示意图,如图所示,所述文件处理方法可以包括如下步骤:步骤101、主线程接收客户端发送的操作请求;所述操作请求中包括操作的文件标识;步骤102、所述主线程根据操作请求中的文件标识,将所述操作请求挂入所述文件,所述文件在待处理文件队列中依次存放;步骤103、当所述待处理文件队列中有文件需要处理时,工作线程从所述待处理文件队列中获取所述文件,逐个处理所述文件的操作请求。当用户需要对某个文件进行操作时,可以通过客户端显示屏发出命令,由所述客户端向存储系统发送操作请求,所述操作请求中可以携带有需要进行操作的文件的标识。主线程接收到所述操作请求后,可以根据其中的文件标识,将所述操作请求挂入所述文件,即,将所有针对同一文件的操作请求进行整合,将这些待处理的文件放入待处理文件队列中。当所述待处理文件队列中有文件需要处理时,工作线程可以从所述待处理文件队列中获取所述文件,逐个处理所述文件的操作请求。与现有技术相比,本申请实施例的有益效果可以包括:1、由于本申请实施例每个工作线程串行处理文件的操作请求,保证对文件的写操作不产生竞态条件。2、本申请实施例中通过多个工作线程并行处理多个文件,每个工作线程串行处理相同文件的操作请求,对于高并发场景也可以快速有效的处理,因此,采用本申请实施例所提供的方案,可以支持对高并发场景下的均衡处理。3、由于本申请实施例中通过多个工作线程并行处理多个文件,每个工作线程串行处理相同文件的操作请求,大大提高了文件读取速度,因此,采用本申请实施例所提供的方案,可以充分利用文件系统的预渎功能。4、采用本申请实施例所提供的方案,读写速度有明显提高,从而可以充分利用磁盘带宽。5、由于处理操作请求的速度显著提高,从而可以保证操作的低延迟。本申请实施例所提供的文件处理方法及装置,主线程接收客户端发送的操作请求;所述操作请求中包括操作的文件标识;所述主线程根据操作请求中的文件标识,将所述操作请求挂入所述文件,所述文件在待处理文件队列中依次存放;当所述待处理文件队列中有文件需要处理时,工作线程从所述待处理文件队列中获取所述文件,逐个处理所述文件的操作请求。由于本申请实施例中由主线程对操作请求进行了整合,将针对同一文件的操作请求整合在一起,通过对相同文件处理串行化的方式排除写操作的竞态条件,能够充分利用预读与磁盘带宽,既不会对通用场景产生明显的负面影响,又能满足高并发与低延迟场景的性能需求,可以有效的均衡高并发场景下的操作请求。实施中,在所述主线程接收客户端发送的操作请求之后,所述方法可以进一步包括:根据所述操作请求中包括的文件标识判断所述文件是否在待处理文件队列中;如果所述文件不在所述待处理文件队列中,将所述文件加入所述待处理文件队列。具体实施时,所述主线程接收客户端发送的操作请求之后,可以进一步根据所述操作请求中包括的文件标识判断所要操作的文件是否已经在待处理文件队列中,如果在所述待处理文件队列中,则将所述操作请求挂入所述文件;如果所述文件不在所述待处理文件队列中,则可以先将所述文件加入所述待处理文件队列,再将所述操作请求挂入所述文件。实施中,所述工作线程逐个处理所述文件的操作请求具体可以为,所述工作线程根据所述文件的任务队列,对所述任务队列中的操作请求进行逐个处理。具体实施中,所述待处理文件队列中可以包括所有待处理的文件,由所述主线程处理;每个待处理的文件均可以包括任务队列,所述任务队列中可以包括所述文件的所有操作请求,由所述工作线程处理。实施中,所述工作线程可以为异步输入输出a1线程,所述a1线程为若干个,所述若干个a1线程并行处理若干个文件。具体实施中,所述工作线程可以为多个a1线程,若干个a1线程可以并行处本文档来自技高网...

【技术保护点】
一种文件处理方法,其特征在于,包括如下步骤:主线程接收客户端发送的操作请求;所述操作请求中包括操作的文件标识:所述主线程根据操作请求中的文件标识,将所述操作请求挂入所述文件,所述文件在待处理文件队列中依次存放;当所述待处理文件队列中有文件需要处理时,工作线程从所述待处理文件队列中获取所述文件,逐个处理所述文件的操作请求。

【技术特征摘要】

【专利技术属性】
技术研发人员:王喆郑劭馨付根希杨浩苗艳超惠润海
申请(专利权)人:曙光信息产业股份有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1