一种文件创建的方法和装置与流程

文档序号:16855498发布日期:2019-02-12 23:14阅读:134来源:国知局
一种文件创建的方法和装置与流程

本申请涉及计算机软件系统技术领域,尤其涉及一种文件创建的方法和装置。



背景技术:

随着科技的快速发展,在海量存储应用中,小文件存储的应用场景越来越多,基于应用技术需求的变化,对小文件存储的总体性能提出更高的要求,尤其是小文件的创建性能。

现有技术中,响应于创建小文件的操作,客户端向元数据服务器发送创建小文件请求,然后,元数据服务器根据创建小文件请求创建小文件返回给客户端,客户端接收小文件从而实现小文件的创建。

发明人经过研究发现,现有技术中小文件的创建方式,创建过程较为复杂繁琐,小文件创建耗费时间较长,导致小文件创建的速率较为低下,从而无法满足小文件应用场景的技术需求。



技术实现要素:

本申请所要解决的技术问题是,提供一种文件创建的方法和装置,减少了客户端和元数据服务端之间的io的交互流程,节省了小文件创建所需时间,大大提升小文件创建的速率,从而满足小文件应用场景的技术需求,提升使用体验感。

第一方面,本申请实施例提供了一种文件创建的方法,应用于客户端,该方法包括:

根据目标目录创建文件请求,若所述目标目录下存在预创建文件集合,从所述预创建文件集合的预创建文件中确定目标预创建文件,所述目标目录创建文件请求携带目标属性信息,所述预创建文件集合不为空集,所述预创建文件携带预创建标记;

根据所述目标属性信息,更新所述目标预创建文件的属性信息创建目标文件;

清除所述目标文件的预创建标记,更新所述预创建文件集合。

可选的,还包括:

生成预创建文件请求发送至元数据服务端,所述预创建文件请求包括目标目录和目标数量,所述目标数量是预设的;

接收所述元数据服务端返回的所述目标数量的预创建文件;

将所述目标数量的预创建文件关联到所述目标目录。

可选的,所述生成预创建文件请求的触发条件包括所述预创建文件集合的预创建文件的数量小于第一预设阈值或者所述目标目录下不存在预创建文件集合。

可选的,在更新所述预创建文件集合之后,还包括:

获取所述预创建文件集合中预创建文件的数量;

判断所述预创建文件集合中预创建文件的数量是否小于第一预设阈值。

可选的,在更新所述预创建文件集合之后,还包括:

向所述目标文件写入数据,并更新所述目标文件的属性信息;

向所述元数据服务端发送所述更新文件属性指令,所述更新文件属性指令携带所述目标文件的标识和所述目标文件的属性信息。

可选的,还包括:

将所述预创建文件集合中未分配使用时间超过第一预设时间的预创建文件确定为待清除预创建文件;

向所述元数据服务端发送预创建文件清除指令,所述预创建文件清除指令携带所述待清除预创建文件的标识。

第二方面,本申请实施例提供了一种文件创建的方法,应用于元数据服务端,该方法包括:

接收客户端发送的预创建文件请求,所述预创建文件请求包括目标目录和目标数量,所述目标数量是预设的;

根据所述目标目录和所述目标数量,向所述客户端返回所述目标数量的预创建文件,所述预创建文件携带预创建标记。

可选的,所述根据所述目标目录和所述目标数量,向所述客户端返回所述目标数量的预创建文件包括:

若所述目标目录下所述预创建文件数量大于等于所述目标数量,直接向所述客户端返回所述目标数量的预创建文件;或,

若所述目标目录下所述预创建文件数量小于所述目标数量,在所述目标目录下创建多个携带预创建标记的预创建文件;向所述客户端返回所述目标数量的预创建文件。

可选的,还包括:

接收所述客户端发送的更新文件属性指令,所述更新文件属性指令携带所述目标文件的标识和所述目标文件的属性信息;

根据所述目标文件的标识和所述目标文件的属性信息,更新对应的预创建文件的属性信息,并清除预创建标记。

可选的,还包括:

接收所述客户端发送的预创建文件清除指令,所述预创建文件清除指令携带所述待清除预创建文件标的识;

在第二预设时间后,根据所述待清除预创建文件的标识,清除对应的预创建文件。

第三方面,本申请实施例提供了一种文件创建的装置,应用于客户端,该装置包括:

第一确定单元,用于根据目标目录创建文件请求,若所述目标目录下存在预创建文件集合,从所述预创建文件集合的预创建文件中确定目标预创建文件,所述目标目录创建文件请求携带目标属性信息,所述预创建文件集合不为空集,所述预创建文件携带预创建标记;

更新创建单元,用于根据所述目标属性信息,更新所述目标预创建文件的属性信息创建目标文件;

清除更新单元,用于清除所述目标文件的预创建标记,更新所述预创建文件集合。

第四方面,本申请实施例提供了一种文件创建的装置,应用于元数据服务端,该装置包括:

第一接收单元,用于接收客户端发送的预创建文件请求,所述预创建文件请求包括目标目录和目标数量,所述目标数量是预设的;

返回单元,用于根据所述目标目录和所述目标数量,向所述客户端返回所述目标数量的预创建文件,所述预创建文件携带预创建标记。

与现有技术相比,本申请至少具有以下优点:

采用本申请实施例的技术方案,客户端根据目标目录创建文件请求,判断其目标目录下是否存在不为空集的预创建文件集合,若是,从预创建文件集合确定一个预创建文件为目标预创建文件;基于目标目录创建文件请求携带的目标属性信息,更新目标预创建文件的属性信息创建目标文件;并清除目标文件的原先携带的预创建标记,更新预创建文件集合。由此可见,在接收到目标目录创建文件请求之后,可以直接选定已经存在的预创建文件进行属性更新完成目标文件的创建,不用再和元数据服务端进行申请创建文件的交互,减少了客户端和元数据服务端之间的io的交互流程,节省了小文件创建所需时间,大大提升小文件创建的速率,从而满足小文件应用场景的技术需求,提升使用体验感。

附图说明

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

图1为本申请实施例提供的现有技术中创建小文件的方法的流程示意图;

图2为本申请实施例提供的一种文件创建的方法的流程示意图;

图3为本申请实施例提供的另一种文件创建的方法的流程示意图;

图4为本申请实施例提供的又一种文件创建的装置的流程示意图

图5为本申请实施例提供的一种文件创建的装置的流程示意图;

图6为本申请实施例提供的另一种文件创建的装置的流程示意图。

具体实施方式

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

现阶段,小文件存储的应用场景越来越多,其创建方式例如图1所示的现有技术中创建小文件的方法的流程示意图,首先,客户端接收小文件创建请求进行创建小文件操作;然后,响应于创建小文件操作,客户端向元数据服务器发送创建小文件请求;接着,元数据服务器根据创建小文件请求,创建小文件返回给客户端;最后,客户端接收小文件从而实现小文件的创建。但是,发明人经过研究发现,现有技术中小文件的创建方式,创建过程较为复杂繁琐,小文件创建耗费时间较长,导致小文件创建的速率较为低下,从而无法满足小文件应用场景的技术需求。

为了解决这一问题,在本申请实施例中,客户端根据目标目录创建文件请求,判断其目标目录下是否存在不为空集的预创建文件集合,若是,从预创建文件集合确定一个预创建文件为目标预创建文件;基于目标目录创建文件请求携带的目标属性信息,更新目标预创建文件的属性信息创建目标文件;并清除目标文件的原先携带的预创建标记,更新预创建文件集合。由此可见,在接收到目标目录创建文件请求之后,可以直接选定已经存在的预创建文件进行属性更新完成目标文件的创建,不用再和元数据服务端进行申请创建文件的交互,减少了客户端和元数据服务端之间的io的交互流程,节省了小文件创建所需时间,大大提升小文件创建的速率,从而满足小文件应用场景的技术需求,提升使用体验感。

下面结合附图,通过实施例来详细说明本申请实施例中文件创建的方法和装置的具体实现方式。

示例性方法

第一实施例

参见图2,示出了本申请实施例中一种文件创建的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:

步骤201:根据目标目录创建文件请求,若所述目标目录下存在预创建文件集合,从所述预创建文件集合的预创建文件中确定目标预创建文件,所述目标目录创建文件请求携带目标属性信息,所述预创建文件集合不为空集,所述预创建文件携带预创建标记。

需要说明的是,现有技术中在客户端接收到目标目录创建文件请求之后,目标目录下不存在预创建文件集合,即,不存在预创建文件,必须向元数据服务器发送目标目录创建文件请求。而在本实施例中,目标目录下预先存储了一批预创建文件,即,目标目录下存在不为空集的预创建文件集合,可以直接从预创建文件集合中选择一个预创建文件作为待创建的目标文件,即,目标预创建文件。当然,预创建文件集合各个中预创建文件均携带预创建标记,以便明确其为预创建文件;目标目录创建文件请求也携带目标属性信息,以便后续进行步骤202。

步骤202:根据所述目标属性信息,更新所述目标预创建文件的属性信息创建目标文件。

可以理解的是,在步骤201确定目标预创建文件之后,客户端需要将目标预创建文件的原有属性信息变换为其接收的目标目录创建文件请求中携带的目标属性信息,才是将目标预创建文件转换为目标文件,实现目标文件的创建。

步骤203:清除所述目标文件的预创建标记,更新所述预创建文件集合。

需要说明的是,在执行完步骤202之后,转换为目标文件的目标预创建文件携带的预创建标记仍然存在,需要将其清除,也是将转换为目标文件的目标预创建文件从预创建文件集合中移除,实现预创建文件集合的更新,避免下次基于目标目录创建文件请求从预创建文件集合确定目标目录创建文件时选到本次转换为目标文件的目标预创建文件。

通过本实施例提供的各种实施方式,客户端根据目标目录创建文件请求,判断其目标目录下是否存在不为空集的预创建文件集合,若是,从预创建文件集合确定一个预创建文件为目标预创建文件;基于目标目录创建文件请求携带的目标属性信息,更新目标预创建文件的属性信息创建目标文件;并清除目标文件的原先携带的预创建标记,更新预创建文件集合。由此可见,在接收到目标目录创建文件请求之后,可以直接选定已经存在的预创建文件进行属性更新完成目标文件的创建,不用再和元数据服务端进行申请创建文件的交互,减少了客户端和元数据服务端之间的io的交互流程,节省了小文件创建所需时间,大大提升小文件创建的速率,从而满足小文件应用场景的技术需求,提升使用体验感。

需要说明的是,上述第一实施例中的客户端目标目录下的预创建文件集合是客户端基于小文件创建业务需求,预先与元数据服务器进行io交互创建的。下面结合附图3,通过又一实施例来详细说明本申请实施例中文件创建过程中预创建文件方法的具体实现方式。

第二实施例

参见图3,示出了本申请实施例中另一种文件创建的方法的流程示意图,在本实施例中,所述方法例如可以包括以下步骤:

步骤301:客户端生成预创建文件请求发送至元数据服务端,预创建文件请求包括目标目录和目标数量,目标数量是预设的。

需要说明的是,客户端生成预创建文件请求向元数据服务端发送,主要两种触发条件。第一种触发条件是客户端首次接收到目标目录创建文件请求的情况下,此时目标目录不存在任何预创建文件,即,不存在预创建文件集合,需要实现预创建文件的建立。第二种触发条件是客户端接收到目标目录创建文件请求完成上述第一实施例之后,即,完成更新已存在的预创建文件集合之后,更新后的预创建文件集合的预创建文件的数量较小的情况下,也需要实现预创建文件的建立。因此,在本实施例的一些实施方式中,针对上述第一实施例,所述生成预创建文件请求的触发条件包括所述预创建文件集合的预创建文件的数量小于第一预设阈值或者所述目标目录下不存在预创建文件集合。

其中,需要说明的是,对于第二种触发条件,需要先明确上述实施例中更新后的预创建文件集合中预创建文件的数量,然后,判断此数量是否满足第二种触发条件,即,是否满足此数量是否小于第一预设阈值。因此,在本实施例的一些实施方式中,在上述第一实施例的步骤201-步骤202之后,还包括:

步骤a:获取所述预创建文件集合中预创建文件的数量;

步骤b:判断所述预创建文件集合中预创建文件的数量是否小于第一预设阈值。

例如,假设最先得到的预创建文件集合中预创建文件的数量为100,第一预设阈值为20,若获取得到的预创建文件集合中预创建文件的数量为19,19小于20,则客户端生成预创建文件请求发送至元数据服务端。

步骤302:元数据服务端接收客户端发送的预创建文件请求。

步骤303:元数据服务端根据目标目录和目标数量,向客户端返回目标数量的预创建文件,预创建文件携带预创建标记。

需要说明的是,元数据服务端也有其目标目录下存在预创建文件的情况,元数据服务端在接收到携带目标目录和目标数量的预创建文件请求之后,首先需要判断其目标目录下存在的预创建文件的数量是否满足目标数量,若是满足,则直接分配返回给客户端目标数量的预创建文件;若是不满足,则需要先创建一批携带预创建标记的预创建文件,以便满足目标数量,然后分配返回给客户端目标数量的预创建文件。因此,在本实施例的一些实施方式中,所述步骤303例如可以具体为:若所述目标目录下所述预创建文件数量大于等于所述目标数量,直接向所述客户端返回所述目标数量的预创建文件;或者,所述步骤303例如可以包括以下步骤:若所述目标目录下所述预创建文件数量小于所述目标数量,在所述目标目录下创建多个携带预创建标记的预创建文件;向所述客户端返回所述目标数量的预创建文件。

步骤304:客户端接收元数据服务端返回的目标数量的预创建文件。

步骤305:客户端将目标数量的预创建文件关联到目标目录。

可以理解的是,客户端在步骤304获得目标数量的预创建文件,必须将其关联到目标目录,以便保证预创建文件的正确关联性。

通过本实施例提供的各种实施方式,由此可见,通过本实施例实现预创建文件的预先建立,以便后续客户端在接收到目标目录创建文件请求之后,可以直接选定已经存在的预先建立的预创建文件进行属性更新完成目标文件的创建,不用再和元数据服务端进行申请创建文件的交互,减少了客户端和元数据服务端之间的io的交互流程,节省了小文件创建所需时间,大大提升小文件创建的速率,从而满足小文件应用场景的技术需求,提升使用体验感。

需要说明的是,在第一实施例之后,即,完成目标文件的创建之后,进行的是数据的写入操作。下面结合附图3,通过又一实施例来详细说明本申请实施例中数据写入更新元数据服务端预创建文件的方法的具体实现方式。

第三实施例

参见图4,示出了本申请实施例中另一种文件创建的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:

步骤401:客户端向所述目标文件写入数据,并更新所述目标文件的属性信息。

步骤402:客户端向所述元数据服务端发送所述更新文件属性指令,所述更新文件属性指令携带所述目标文件的标识和所述目标文件的属性信息。

步骤403:元数据服务端接收客户端发送的更新文件属性指令,所述更新文件属性指令携带所述目标文件的标识和所述目标文件的属性信息。

步骤404:元数据服务端根据所述目标文件的标识和所述目标文件的属性信息,更新对应的预创建文件的属性信息,并清除预创建标记。

可以理解的是,在更新对应的预创建文件的属性信息后,需要清除之前携带的预创建标记,以便最终对应客户端目标文件的创建。

需要说明的是,有可能预创建文件集合中存在长时间未分配使用的预创建文件,这种情况下,为了减少无用文件资源的消耗,还可以将长时间未分配使用的预创建文件清除,当然,也需要提示元数据服务器中对应的预创建文件进行清除。因此,在本实施例的一些实施方式中,例如还可以包括:

步骤c:将所述预创建文件集合中未分配使用时间超过第一预设时间的预创建文件确定为待清除预创建文件;

步骤d:向所述元数据服务端发送预创建文件清除指令,所述预创建文件清除指令携带所述待清除预创建文件的标识。

同理可得,元数据服务器在得到客户端发送的清除指令之后,考虑到保留对应的预创建文件,避免后续再出现的目标目录创建文件请求的问题,则可以选择在一定时间之后,再清除对应的预创建文件。因此,在本实施例的一些实施方式中,例如还可以包括:

步骤e:接收所述元数据服务端发送的预创建文件清除指令,所述预创建文件清除指令携带所述待清除预创建文件标的识;

步骤f:在第二预设时间后,根据所述待清除预创建文件的标识,清除对应的预创建文件。

通过本实施例提供的各种实施方式,在实现预创建文件的预先建立,以便后续客户端在接收到目标目录创建文件请求之后,可以直接选定已经存在的预先建立的预创建文件进行属性更新完成目标文件的创建的基础上,还考虑了长时间未分配使用的预创建文件的处理,减少无用文件资源的消耗。

示例性设备

参见图5,示出了本申请实施例中一种文件创建的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:

第一确定单元501,用于根据目标目录创建文件请求,若所述目标目录下存在预创建文件集合,从所述预创建文件集合的预创建文件中确定目标预创建文件,所述目标目录创建文件请求携带目标属性信息,所述预创建文件集合不为空集,所述预创建文件携带预创建标记;

更新创建单元502,用于根据所述目标属性信息,更新所述目标预创建文件的属性信息创建目标文件;

清除更新单元503,用于清除所述目标文件的预创建标记,更新所述预创建文件集合。

可选的,所述装置还包括:

第一发送单元,用于生成预创建文件请求发送至元数据服务端,所述预创建文件请求包括目标目录和目标数量,所述目标数量是预设的;

第二接收单元,用于接收所述元数据服务端返回的所述目标数量的预创建文件;

关联单元,用于将所述目标数量的预创建文件关联到所述目标目录。

可选的,所述生成预创建文件请求的触发条件包括所述预创建文件集合的预创建文件的数量小于第一预设阈值或者所述目标目录下不存在预创建文件集合。

可选的,所述装置还包括:

获取单元,用于获取所述预创建文件集合中预创建文件的数量;

判断单元,用于判断所述预创建文件集合中预创建文件的数量是否小于第一预设阈值。

可选的,所述装置还包括:

第一更新单元,用于向所述目标文件写入数据,并更新所述目标文件的属性信息;

第二发送单元,用于向所述元数据服务端发送所述更新文件属性指令,所述更新文件属性指令携带所述目标文件的标识和所述目标文件的属性信息。

可选的,还包括:

第二确定单元,用于将所述预创建文件集合中未分配使用时间超过第一预设时间的预创建文件确定为待清除预创建文件;

第三发送单元,用于向所述元数据服务端发送预创建文件清除指令,所述预创建文件清除指令携带所述待清除预创建文件的标识。

通过本实施例提供的各种实施方式,客户端根据目标目录创建文件请求,判断其目标目录下是否存在不为空集的预创建文件集合,若是,从预创建文件集合确定一个预创建文件为目标预创建文件;基于目标目录创建文件请求携带的目标属性信息,更新目标预创建文件的属性信息创建目标文件;并清除目标文件的原先携带的预创建标记,更新预创建文件集合。由此可见,在接收到目标目录创建文件请求之后,可以直接选定已经存在的预创建文件进行属性更新完成目标文件的创建,不用再和元数据服务端进行申请创建文件的交互,减少了客户端和元数据服务端之间的io的交互流程,节省了小文件创建所需时间,大大提升小文件创建的速率,从而满足小文件应用场景的技术需求,提升使用体验感。

参见图6,示出了本申请实施例中另一种文件创建的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:

第一接收单元601,用于接收客户端发送的预创建文件请求,所述预创建文件请求包括目标目录和目标数量,所述目标数量是预设的;

返回单元602,用于根据所述目标目录和所述目标数量,向所述客户端返回所述目标数量的预创建文件,所述预创建文件携带预创建标记。

可选的,所述返回单元602用于:

用于若所述目标目录下所述预创建文件数量大于等于所述目标数量,直接向所述客户端返回所述目标数量的预创建文件;或,

若所述目标目录下所述预创建文件数量小于所述目标数量,在所述目标目录下创建多个携带预创建标记的预创建文件;向所述客户端返回所述目标数量的预创建文件。

可选的,还包括:

第三接收单元,用于接收所述客户端发送的更新文件属性指令,所述更新文件属性指令携带所述目标文件的标识和所述目标文件的属性信息;

第三更新单元,用于根据所述目标文件的标识和所述目标文件的属性信息,更新对应的预创建文件的属性信息,并清除预创建标记。

可选的,还包括:

第四接收单元,用于接收所述客户端发送的预创建文件清除指令,所述预创建文件清除指令携带所述待清除预创建文件标的识;

清除单元,用于在第二预设时间后,根据所述待清除预创建文件的标识,清除对应的预创建文件。

通过本实施例提供的各种实施方式,通过本实施例实现预创建文件的预先建立,以便后续客户端在接收到目标目录创建文件请求之后,可以直接选定已经存在的预先建立的预创建文件进行属性更新完成目标文件的创建,不用再和元数据服务端进行申请创建文件的交互,减少了客户端和元数据服务端之间的io的交互流程,节省了小文件创建所需时间,大大提升小文件创建的速率,从而满足小文件应用场景的技术需求,提升使用体验感。

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

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

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。

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