一种文件删除方法、装置、设备及可读存储介质与流程

文档序号:18414238发布日期:2019-08-13 19:08阅读:189来源:国知局
一种文件删除方法、装置、设备及可读存储介质与流程

本发明涉及数据处理技术领域,特别涉及一种文件删除方法、装置、设备及一种可读存储介质。



背景技术:

在文件场景中出于内存优化等需要经常会存在删除操作。例如交警卡口的专拍图片一般保存3个月左右就会删除掉,深度学习的数据集所有模型训练完毕之后也会进行删除操作。

文件删除过程中,文件的查找lookup、获取文件属性getattr、删除unlink、更新forget等操作均是需要同元数据服务通信,同时需要元数据服务向下层的数据服务下达删除文件元数据信息的命令,文件删除过程会对存储的元数据服务产生一定的压力。其中,小文件一般为kb级别,在大量小文件删除时,对数据服务压力较,但需要高并发元数据服务来完成删除操作,这种情况下会对存储的元数据服务产生非常大的压力从而导致存储的上层业务无法正常运行。

因此,如何在实现文件删除的同时减小对元数据服务的瞬间压力,是本领域技术人员需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种文件删除方法,该方法可以保证删除业务正常执行的同时减轻元数据服务的压力;本发明的另一目的是提供一种文件删除装置、设备及一种可读存储介质,具有上述有益效果。

为解决上述技术问题,本发明提供一种文件删除方法,包括:

客户端接收到删除目标文件请求时,向元数据服务发送删除回馈指令;

输出删除成功的删除结果提示信息;

将所述目标文件加入待删除队列;

根据预设删除机制控制元数据服务对所述待删除队列中文件执行删除操作;

当接收到元数据服务对所述目标文件的删除成功回馈信息时,将所述待删除队列中所述目标文件的记录信息删除。

可选地,所述根据预设删除机制控制元数据服务对所述待删除队列中文件进行删除操作,包括:

判断当前元数据服务压力是否达到预设值;

如果未达到,将所述待删除队列中文件按第一速度进行删除请求的响应;

如果已达到,将所述待删除队列中文件按第二速度进行删除请求的响应;其中,所述第一速度不低于所述第二速度。

可选地,所述判断当前元数据服务压力是否达到预设值,包括:

判断所述待删除队列中待删除的文件数量是否达到第一阈值;

如果是,判定当前元数据服务压力是否达到预设值;

如果否,判定当前元数据服务压力未达到预设值。

可选地,所述根据预设删除机制控制元数据服务对所述待删除队列中文件进行删除操作,包括:

将所述待删除队列中文件按加入顺序依次删除。

可选地,在将所述目标文件加入待删除队列之前,还包括:

判断所述待删除队列的剩余容量是否小于第二阈值;

如果是,保留文件删除请求,当所述待删除队列的剩余容量不小于第二阈值时根据待处理的文件删除请求将所述目标文件加入所述待删除队列。

为实现上述目的,本申请还公开了一种文件删除装置,包括:

指令发送单元,用于接收到删除目标文件请求时,向元数据服务发送删除回馈指令;

提示输出单元,用于输出删除成功的删除结果提示信息;

队列填充单元,用于将所述目标文件加入待删除队列;

文件删除单元,用于根据预设删除机制控制元数据服务对所述待删除队列中文件执行删除操作;

记录删除单元,用于当接收到元数据服务对所述目标文件的删除成功回馈信息时,将所述待删除队列中所述目标文件的记录信息删除。

可选地,所述文件删除单元包括:

压力判断子单元,用于判断当前元数据服务压力是否达到预设值;

第一判定子单元,用于若当前元数据服务压力未达到预设值,将所述待删除队列中文件按第一速度进行删除请求的响应;

第二判定子单元,用于若当前元数据服务压力达到预设值,将所述待删除队列中文件按第二速度进行删除请求的响应;其中,所述第一速度不低于所述第二速度。

可选地,所述压力判断子单元包括:

判断子单元,用于判断所述待删除队列中待删除的文件数量是否达到第一阈值;

第三判定子单元,用于当所述待删除队列中待删除的文件数量达到第一阈值时,判定当前元数据服务压力是否达到预设值;

第四判定子单元,用于当所述待删除队列中待删除的文件数量未达到第一阈值时,判定当前元数据服务压力未达到预设值。

为实现上述目的,本申请还提供了一种文件删除设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现所述的文件删除方法的步骤。

为实现上述目的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被所述处理器执行时实现所述文件删除方法的步骤。

本发明所提供的文件删除方法,当客户端接收到文件删除请求进行文件删除响应时无需等待元数据服务的删除成功的回复,直接给用户返回删除成功。然后元数据服务依据已经接收到的删除任务,按照配置参数进行删除操作。该方法通过文件异步删除在接收到删除任务后将目标文件加入待删除队列中,后续再逐一删除,避免了文件同步删除过程需要对各删除任务进行实时一一响应对于元数据服务带来的瞬时高压,实现了删除操作响应速度控制,保证了业务正常运行同时减轻了元数据服务的压力,保证了客户端用户业务的正常运行。

本发明还提供了一种文件删除装置、设备及一种可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种文件删除方法的流程图;

图2为本发明实施例提供的一种文件删除装置的结构框图;

图3为本发明实施例提供的一种文件删除设备结构示意图。

具体实施方式

本发明的核心是提供一种文件删除方法,该方法可以保证删除业务正常执行的同时减轻元数据服务的压力;本发明的另一核心是提供一种文件删除装置、设备及一种可读存储介质。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

文件删除过程中,文件的查找lookup、获取文件属性getattr、删除unlink、更新forget等操作均是需要同元数据服务通信,同时需要元数据服务向下层的数据服务下达删除文件元数据信息的命令。以小文件大量删除过程为例,大量小文件删除时,元数据服务需要高并发来完成删除操作。在执行小文件删除的时候会对存储的元数据服务产生非常大的压力从而导致存储的上层业务无法正常运行。

本申请提供的文件删除方法可以实现文件删除的同时减少对元数据服务的压力,可以保证用户业务的正常运行。

实施例一:

请参考图1,图1为本实施例提供的文件删除方法的流程图;该方法主要包括以下步骤:

步骤s110:客户端接收到删除目标文件请求时,向元数据服务发送删除回馈指令。

步骤s120:输出删除成功的删除结果提示信息。

用户执行删除操作时,客户端(client)会启动对目标文件的删除(unlink)操作。unlink操作中客户端(client)会给元数据服务发送unlink命令,向元数据服务发送删除回馈指令(make_request),传统文件删除过程中该命令是同步的,当元数据服务接收到unlink的request的时候需要进行删除该文件的元数据信息以及数据信息之后才会给client返回删除成功,即client需要等待元数据服务完成文件删除后回复unlink命令,client接收到回复的unlink命令确认该文件被删除后返回删除成功的删除结果提示信息。该过程io路径较长,耗时较多,且当出现大量文件同时删除的情况时为及时对用户请求进行反馈需要花费大量元数据服务用于文件删除,会对元数据服务带来较大的压力,同时由于业务量巨大反馈实时性较低,且占用大量元数据服务用于文件删除会对用户其它业务的正常运行产生影响。

本申请中将请求回复过程转换为异步机制,即客户端接收到对目标文件的删除请求启动unlink操作,发送unlink的make_request通知元数据服务有文件需要被删除后,无需等待元数据服务进行实时文件删除后的删除成功回复,直接给用户返回删除成功的删除结果提示信息,大大提升了对于用户删除操作的响应速度。

另外,向元数据服务发送删除回馈指令与输出删除成功的删除结果提示信息可以同时执行,也可以调换顺序执行,在此不做限定。为避免向元数据服务发布任务失败导致的文件删除忽略对后续处理的影响,可以尽量在向元数据服务发布删除任务后再输出删除成功的提示信息。

步骤s130:将目标文件加入待删除队列。

步骤s140:根据预设删除机制控制元数据服务对待删除队列中文件进行删除操作。

步骤s150:当接收到元数据服务对目标文件的删除成功回馈信息时,将待删除队列中目标文件的记录信息删除。

给用户返回删除成功的删除结果提示信息后,元数据服务依据接收到的删除回馈指令执行按照配置参数控制速度持续的进行删除操作,包括将目标文件加入待删除队列,并按待删除队列将文件删除。

其中,依据待删除队列进行文件删除的过程可以随机选择文件进行删除,也可以将待删除队列中文件按加入顺序依次删除,后者可以加强文件删除过程的逻辑性以及可追溯性;可以逐一删除,也可以同时删除多个文件等,在此不做限定。

在客户端向用户返回删除成功的提示信息后元数据服务何时完成文件删除对于前端删除业务的响应基本无影响,因此后台删除工作无需在接收的同时快速完成,处于后台可控状态,可以配合后台其它元数据业务将用户的大量删除操作速度控制下来,保证业务正常运行同时减轻元数据服务的压力。

具体地在控制元数据服务对待删除队列中文件执行删除操作时采用的删除机制本实施例中不做限定,由于后台删除,可以将删除操作置于较低的优先级,当接收到高优先级元数据业务时可以降低删除文件的速度,当后台元数据服务较为空闲时再进行大量文件删除;也可以设定较低的文件删除阈值,控制元数据服务以较低的速度持续进行文件删除工作直至所有待删除文件删除完成,在此仅以上述两种删除机制为例进行介绍,其它删除机制在此不再赘述,均可参照本实施例的介绍。

在存在文件删除需求的场景中,尤其在多种存在小文件删除需求的场景中,本实施例提供的异步删除机制能够很好的减轻元数据服务的压力,同时也能正常的保证删除业务正常执行,提供了删除性能的同时,也不会造成用户的删除操作出现卡住的情况,增强了产品的竞争力。

需要说明的是,本申请提供的文件删除方法可以应用于分布式存储产品as13000以及其他与as13000具有相似文件删除机制的存储系统。

基于上述介绍,本发明实施例公开的文件删除方法,当客户端接收到文件删除请求进行文件删除响应时无需等待元数据服务的删除成功的回复,直接给用户返回删除成功。然后元数据服务依据已经接收到的删除任务,按照配置参数进行删除操作。该方法通过文件异步删除在接收到删除任务后将目标文件加入待删除队列中,后续再逐一删除,避免了文件同步删除过程需要对各删除任务进行实时一一响应对于元数据服务带来的瞬时高压,实现了删除操作响应速度控制,保证了业务正常运行同时减轻了元数据服务的压力,保证了客户端用户业务的正常运行。

实施例二:

上述实施例中对步骤s140中进行文件删除操作中所采用的删除机制不做限定,本实施例详细介绍一种删除机制下的文件删除方式以加深对本申请技术方案的理解。

可选地,根据预设删除机制控制元数据服务对待删除队列中文件进行删除操作具体可以包括以下步骤:

判断当前元数据服务压力是否达到预设值;

如果未达到,将待删除队列中文件按第一速度进行删除请求的响应;

如果已达到,将待删除队列中文件按第二速度进行删除请求的响应;其中,第一速度不低于第二速度。

进行文件删除的过程可以按照统一的速度进行匀速删除,也可以根据元数据的服务压力进行变速删除。若当前元数据服务压力小时增加文件删除量,以尽快将所有待删除的文件删除完成;若当前其它用户业务对于元数据服务压力大时,可以分出较少的元数据服务资源用于删除少量文件,以加快对其它业务的响应速度。按照上述步骤进行文件删除可以在提升整体删除速度的同时加快对其它用户业务的响应速度。

其中,对判断元数据服务压力值是否达到预设值的方式不做限定,比如可以将cpu占用率当作元数据服务压力值进行判定,即当cpu占用率高时判定达到,当cpu占用率低至判定未达到;也可以以文件删除操作给元数据服务带来的处理压力作为元数据服务压力,具体地,可以判断待删除队列中待删除的文件数量是否达到第一阈值;如果是,判定当前元数据服务压力是否达到预设值;如果否,判定当前元数据服务压力未达到预设值。通过后者对元数据服务的压力进行判定实现方式简单,也可以避免额外的资源开销。

在此以后者为例,设定第一阈值为100,若待删除队列中待删除文件达到100件时,判定当前元数据服务压力大,以较低的速度进行文件删除;若未达到100件时,判定当前元数据服务压力小,则以较高的速度进行文件删除。

实施例三:

如果客户端无休止持续不断的发起大量小文件的删除操作,即使是通过异步方式发给元数据服务,元数据服务也需要时间将小文件一一删除,元数据服务可提供的并发能力有限,如果全部用来处理删除操作了,那么其他正常的业务均会受到影响。除可以进行删除速度控制过程外,还可以进一步通过控制删除响应来降低元数据服务压力。

具体地,在将目标文件加入待删除队列之前,可以进一步判断待删除队列的剩余容量是否小于第二阈值;如果是,保留文件删除请求,当待删除队列的剩余容量不小于第二阈值时根据待处理的文件删除请求将目标文件加入待删除队列。

例如,设定第二阈值为10个,若待删除队列剩余空间小于10个,即将面临待删除队列已满的情况,为控制删除速度,可以停止删除请求的响应,待文件删除过程中待删除队列剩余空间变多时再继续删除请求的响应。

此外,也可以通过当前删除速度与待删除请求的发送速度进行文件删除请求的响应控制。具体地,将目标文件加入待删除队列之前,可以获取客户端接收文件删除请求的速度,得到第一速度;判断第一速度是否达到第三阈值;如果是,保留文件删除请求,当待删除队列的剩余容量不小于第二阈值时根据待处理的文件删除请求将目标文件加入待删除队列。

例如,设定第三阈值为1000个/s,当接收到1000个/s的删除文件请求之后,就停止删除请求的响应,既可以满足用户正常的删除要求,又可以保证其他业务不会收到大量删除操作所造成的元数据服务阻塞,从而能够正常的提供元数据服务。

实施例四:

请参考图2,图2为本实施例提供的文件删除装置的结构框图;该装置主要包括:指令发送单元210、提示输出单元220、队列填充单元230、文件删除单元240以及记录删除单元250。本实施例提供的文件删除装置可与上述文件删除方法相互对照。

其中,指令发送单元210主要用于接收到删除目标文件请求时,向元数据服务发送删除回馈指令;

提示输出单元220主要用于输出删除成功的删除结果提示信息;

队列填充单元230主要用于将目标文件加入待删除队列;

文件删除单元240主要用于根据预设删除机制控制元数据服务对待删除队列中文件执行删除操作;

记录删除单元250主要用于当接收到元数据服务对目标文件的删除成功回馈信息时,将待删除队列中目标文件的记录信息删除。

本实施例提供的文件删除装置可以保证删除业务正常执行的同时减轻元数据服务的压力。

可选地,文件删除单元主要可以包括:

压力判断子单元,用于判断当前元数据服务压力是否达到预设值;

第一判定子单元,用于若当前元数据服务压力未达到预设值,将待删除队列中文件按第一速度进行删除请求的响应;

第二判定子单元,用于若当前元数据服务压力达到预设值,将待删除队列中文件按第二速度进行删除请求的响应;其中,第一速度不低于第二速度。

可选地,压力判断子单元主要可以包括:

判断子单元,用于判断待删除队列中待删除的文件数量是否达到第一阈值;

第三判定子单元,用于当待删除队列中待删除的文件数量达到第一阈值时,判定当前元数据服务压力是否达到预设值;

第四判定子单元,用于当待删除队列中待删除的文件数量未达到第一阈值时,判定当前元数据服务压力未达到预设值。

可选地,文件删除单元具体可以为:顺序删除单元,用于将待删除队列中文件按加入顺序依次删除。

可选地,本实施例提供的文件删除装置中可以进一步包括容量判断单元,容量判断单元与队列填充单元连接,用于判断待删除队列的剩余容量是否小于第二阈值;如果是,保留文件删除请求,当待删除队列的剩余容量不小于第二阈值时根据待处理的文件删除请求将目标文件加入待删除队列。

实施例五:

下面对本申请提供的文件删除设备进行介绍,具体对文件删除设备的介绍可参照上述文件删除方法的步骤,该设备主要包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现文件删除方法的步骤。

请参考图3,本申请实施例提供的文件删除设备的结构示意图,该文件删除设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在文件删除设备301上执行存储介质330中的一系列指令操作。

文件删除设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上面图1所描述的文件删除方法中的步骤可以由文件删除设备的结构实现。

实施例六:

下面对本申请实施例提供的可读存储介质进行介绍,下文描述的可读存储介质与上文描述的文件删除方法可相互对应参照。

本申请公开的一种可读存储介质,其上存储有程序,程序被处理器执行时实现文件删除方法的步骤。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,设备,存储介质和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,系统,存储介质和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个移动终端中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该产品存储在一个存储介质中,包括若干指令用以使得一台移动终端(可以是手机,或者平板电脑等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、终端或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的文件删除方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1