一种小文件和大文件的存储及访问方法

文档序号:6630961阅读:215来源:国知局
一种小文件和大文件的存储及访问方法
【专利摘要】本发明公开一种小文件和大文件的存储及访问方法,本发明在存储过程中,将小文件和常用大文件存储在缓存服务器中,访问方法的具体步骤为:用户设备根据用户请求文件名在其前面添加标识性前缀;缓存服务器收到请求后根据文件名的前缀标识符判断其是大文件还是小文件;若请求文件为小文件,缓存服务器搜索本地小文件存储区,若请求文件为大文件,缓存服务器搜索本地缓存区;若缓存服务器具有该文件则引导用户访问该文件,若缓存服务器没有该文件且用户请求为大文件则发送用户请求给管理服务器,本发明将小文件和常用大文件存储在缓存服务器,引入文件名标识性前缀判断,能有效提高用户访问文件的效率,减少用户等待时间。
【专利说明】一种小文件和大文件的存储及访问方法

【技术领域】
[0001 ] 本发明涉及文件访问领域,特别涉及一种小文件和大文件的存储及访问方法。

【背景技术】
[0002]随着社会的发展,人们日常生活和工作中产生了大量的数据,这些数据以文本、文档、Exce前缀等小文件为主,但也包括部分大文件如视频文件、高清图片文件等。根据习惯来看,人们访问最多的通常是小文件和部分大文件。因此如何高效地存储这两类文件并使用户能快速访问这两类文件成为当前文件访问领域存在的难题。
[0003]当前的文件访问方式研究集中在海量小文件存储和快速访问领域,如淘宝的TFS能提供针对小文件的快速访问,却无法快速访问大文件,又比如HDFS能高效快速访问大文件,却把小文件当作大文件一样存储在数据节点中,这导致了针对小文件的访问速度较慢。实际操作中,用户通常经常访问多个小文件和少量大文件,因此如何将这部分经常访问的大文件与一般大文件区分开来并在确保高效访问小文件的前提下快速访问经常访问的大文件成为目前需要解决的技术问题。


【发明内容】

[0004]本发明的目的在于克服现有技术的缺点与不足,提供一种小文件和大文件的存储方法。
[0005]本发明的第二目的在于提供一种快速的小文件和大文件的访问方法。该访问方法保证既能对小文件的快速访问又能对使用频率较高的大文件实现快速访问。
[0006]本发明的第一目的通过下述技术方案实现:一种小文件和大文件的存储方法,步骤如下:
[0007]S1、用户通过用户设备创建新文件,根据第一阈值确定所要创建的新文件是大文件还是小文件,并设置文件名,在文件名上添加用于识别大文件和小文件的标识性前缀;
[0008]S2、用户设备将创建新文件请求指令发送给缓存服务器,缓存服务器收到用户设备发送的创建新文件请求指令后,识别所要创建的新文件的文件名标识性前缀,判断所要创建的新文件是大文件还是小文件;
[0009]若所要创建的新文件为小文件,则在缓存服务器中创建该文件并保存其元数据;
[0010]若所要创建的新文件为大文件,则缓存器将用户设备发送的创建新文件请求指令发送给管理服务器;
[0011]S3、管理服务器收到来自于缓存服务器的创建新文件请求指令后,管理服务器创建该大文件并将其进行分块,得到数据块,并且保存该大文件的元数据;
[0012]S4、管理服务器将创建的大文件划分的数据块发送给数据服务器进行保存,同时缓存服务器根据大文件请求访问次数确定大文件是否为常用大文件,若是,则从数据服务器端将该大文件下载并保存在缓存服务器中。
[0013]优选的,在所述步骤S2中,若所要创建的新文件为小文件时,则缓存服务器首先查询缓存服务器当前存储的小文件元数据,判断所要创建的新文件的文件名是否与缓存服务器中当前已有小文件的文件名重名;
[0014]若是,则缓存服务器发送“文件已存在”信息给用户设备,并且丢弃用户发送的创建新文件请求指令;
[0015]若否,在缓存服务器中创建该文件并保存其元数据。
[0016]优选的,在所述步骤S3中,若所要创建的新文件为大文件,管理服务器收到来自于缓存服务器的创建新文件请求指令后,判断所要创建的新文件的文件名是否与管理服务器中当前已有大文件的文件名重名;
[0017]若是,则管理服务器发送“文件已存在”信息给用户设备,并且丢弃用户发送的创建新文件请求指令;
[0018]若否,在管理服务器中创建该文件并保存其元数据。
[0019]优选的,所述第一阈值为1M,当文件的大小超过IM时,则将该文件判断为大文件,否则判断为小文件。
[0020]优选的,所述大文件和小文件的标识性前缀分别为L和S ;即用户设备在创建的大文件的文件名前添加L,用户设备在创建的小文件的文件名前添加S。
[0021]优选的,所述缓存服务器包括存储区和缓存区;小文件及小文件元数据存储在缓存服务器的存储区,常用大文件以及常用大文件元数据保存在缓存服务器的缓存区。
[0022]本发明的第二目的通过下述技术方案实现:一种基于上述存储方法实现的小文件和大文件的访问方法,其特征在于,步骤如下:
[0023]Sa、用户在用户设备中输入文件名,通过用户设备提出访问文件请求,用户设备搜索日志确定用户输入的文件名对应的文件是大文件还是小文件,然后在用户访问请求指令中的文件名中添加大文件或小文件标识性前缀,用户设备发送用户访问请求指令给缓存服务器;
[0024]Sb、缓存服务器接收到用户设备发送的用户访问请求指令,根据用户访问请求指令中文件名的标识性前缀判断用户请求访问的是大文件还是小文件;
[0025]若是小文件,则缓存服务器搜索本地小文件元数据,判断缓存服务器中是否存在用户要求访问的小文件;若存在,则缓存服务器引导用户对该小文件进行的访问;否则缓存服务器返回未找到信息指令给用户设备;
[0026]若是大文件,则缓存服务器搜索本地常用大文件元数据,判断缓存服务器中是否存在用户要求访问的大文件;若是,则缓存服务器引导用户对该大文件进行的访问;若否,则缓存服务器将用户设备发送的用户访问请求指令发送给管理服务器,进入步骤Sc,同时缓存服务器记录通过其请求访问的该大文件的请求访问次数;
[0027]Sc、管理服务器接收到来自于缓存服务器的用户访问请求指令后,搜索本地大文件元数据,判断管理服务器中是否存在用户要求访问的大文件;若存在,则引导用户对大文件访问;否则返回未找到信息给用户设备。
[0028]优选的,所述步骤Sb中,缓存服务器引导用户对小文件进行访问的具体过程如下:
[0029]首先缓存服务器判断用户要求访问的小文件是否处于可编辑状态;
[0030]若是,则允许用户对该小文件实施读或写操作;同时在用户对小文件实施读或写操作时,缓存服务器自动锁定该小文件;
[0031]若否,缓存服务器发送“该文件正被其他用户使用”信息给用户设备,并终止用户的访问请求;
[0032]所述步骤Sb中,缓存服务器引导用户对常用大文件进行访问的具体过程如下:
[0033]首先缓存服务器判断用户要求访问的常用大文件是否处于可编辑状态;
[0034]若是,则允许用户对该大文件实施读或写操作;同时在用户对文件实施读或写操作时,缓存服务器自动锁定该大文件;在用户操作完成后,缓存服务器发送更新日志给管理服务器,管理服务器根据收到的更新日志更新对应的大文件;
[0035]若否,则缓存服务器发送用户访问请求指令给管理服务器,然后进入步骤Sc。
[0036]优选的,所述步骤Sc中,管理服务器引导用户对文件进行访问的具体过程如下:
[0037]首先管理服务器判断用户要求访问的大文件是否处于可编辑状态;
[0038]若是,则允许用户对该常用大文件实施读或写操作;同时在用户对大文件实施读或写操作时,管理服务器自动锁定该大文件;在用户操作完成后,管理服务器发送更新日志给缓存服务器,缓存服务器根据接收到的更新日志查询本地是否缓存了该大文件;若是,则更新该大文件;若否,则丢弃管理服务器发送的该更新日志;
[0039]若否,管理服务器发送“该文件正被其他用户使用”信息给用户设备,并终止用户的访问请求。
[0040]优选的,所述大文件和小文件的标识性前缀分别为L和S ;所述步骤Sa中当所要访问文件名对应的文件是大文件时,用户设备在用户访问请求指令的文件名前添加L ;当所要访问文件名对应的文件是小文件时,用户设备在用户访问请求指令的文件名中添加S。
[0041]本发明相对于现有技术具有如下的优点及效果:
[0042]本发明弓丨入用于判定大文件和小文件的文件名标识性前缀,将小文件、大文件中的访问频率较高的常用大文件以及一般大文件进行分开存储,其中小文件和常用大文件存储于访问时优先搜索的缓存服务器,大文件存储于访问时后搜索的管理服务器中,在访问过程中通过缓存服务器能够优先访问到小文件和常用大文件,大大提高了小文件以及常用大文件的访问速度,有效降低了文件访问复杂度,在确保高效访问小文件的前提下保证能够快速访问常用大文件,减少了用户访问等待时间。

【专利附图】

【附图说明】
[0043]图1是本发明中实现存储和访问方法的系统架构图。
[0044]图2是本发明小文件和大文件的存储方法流程图。
[0045]图3是本发明小文件和大文件的访问方法流程图。

【具体实施方式】
[0046]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0047]实施例
[0048]实施例1
[0049]本实施例公开一种小文件和大文件的存储方法,该方法是在基于如图1所示的用户设备、缓存服务器、管理服务器和数据服务器的基础上实现的;其中
[0050]用户设备:用于创建文件、记录日志以及搜索日志;根据第一阈值确定所要创建的文件是大文件还是小文件,在创建的文件名上添加分别用于识别大文件和小文件的标识性前缀L和S,其中用户设备在创建的大文件的文件名前添加L,用户设备在创建的小文件的文件名前添加S,并发送创建新文件请求指令给缓存服务器。用于根据搜索日志确定所要访问文件名对应的文件是大文件还是小文件,然后在用户访问请求指令中的文件名中添加用于识别大文件和小文件的标识性前缀,当所要访问文件名对应的文件是大文件时,用户设备在用户访问请求指令的文件名前添加L ;当所要访问文件名对应的文件是小文件时,用户设备在用户访问请求指令的文件名中添加S。用于发送用户访问请求指令。在本实施例中确定文件为大文件还是小文件的第一阈值为1M,即当文件的大小超过IM时,则将该文件判断为大文件,否则判断为小文件。
[0051]缓存服务器:用于存储小文件、小文件元数据、常用大文件和常用大文件元数据,其中所述常用大文件指的是访问频率大于第二阈值的大文件;用于接收用户设备发送的创建新文件请求指令;用于接收用户设备发送的用户访问请求指令,然后根据用户访问请求指令中文件名的标识性前缀判断用户需要访问的文件为大文件还是小文件;用于引导用户访问小文件和常用大文件;用于发送用户访问指令请求到管理服务器;缓存服务器还用于计算未保存在其中的大文件访问次数,将请求访问次数大于第二阈值的大文件认定为常用大文件,然后从数据服务器端将该大文件下载并保存在本地缓存区中。
[0052]管理服务器,用于存储大文件元数据;用于负责响应缓存服务器发送的用户访问请求指令;用于引导用户访问大文件。
[0053]数据服务器,用于存储大文件数据块。
[0054]如图2所示,本实施例中小文件和大文件的存储方法具体步骤如下:
[0055]S1、用户通过用户设备创建新文件,根据第一阈值确定所要创建的新文件是大文件还是小文件,并设置文件名,在文件名上添加用于识别大文件和小文件的标识性前缀L和S ;在本实施例中确定文件为大文件还是小文件的第一阈值为1M,即当文件的大小超过IM时,则将该文件判断为大文件,否则判断为小文件。
[0056]S2、用户设备将创建新文件请求指令发送给缓存服务器,缓存服务器收到用户设备发送的创建新文件请求指令后,通过创建新文件请求指令识别所要创建的新文件的文件名标识性前缀,判断所要创建的新文件是大文件还是小文件,若缓存服务器识别到所要创建的新文件的文件名标识性前缀为L,则判定要创建的新文件为大文件,若识别到所要创建的新文件的文件名标识性前缀为S,则判定要创建的新文件为小文件;
[0057]若所要创建的新文件为小文件,则缓存服务器首先查询当前存储的小文件元数据,判断所要创建的新文件的文件名是否与缓存服务器中当前已有小文件的文件名重名;
[0058]若是,则缓存服务器发送“文件已存在”信息给用户设备,并且丢弃用户发送的创建新文件请求指令;
[0059]若否,在缓存服务器中创建该文件并保存其元数据。
[0060]若所要创建的新文件为大文件,则缓存器将用户设备发送的创建新文件请求指令发送给管理服务器。
[0061]S3、管理服务器收到来自于缓存服务器的创建新文件请求指令后,判断所要创建的新文件的文件名是否与管理服务器中当前已有大文件的文件名重名;
[0062]若是,则管理服务器发送“文件已存在”信息给用户设备,并且丢弃用户发送的创建新文件请求指令;
[0063]若否,在管理存服务器中创建该大文件并将其进行分块,得到数据块,并且保存该大文件的元数据;
[0064]S4、管理服务器将创建的大文件划分的数据块发送给数据服务器进行保存;同时缓存服务器根据大文件请求访问次数确定大文件是否为常用大文件,若是,则从数据服务器端将该大文件下载并保存在缓存服务器中。
[0065]在本实施例中缓存服务器包括存储区和缓存区;小文件及小文件元数据存储在缓存服务器的存储区,以永久方式保存小文件元数据;常用大文件以及常用大文件元数据保存在缓存服务器的缓存区,以更新方式保存经常访问的常用大文件元数据。
[0066]如图3所示,本实施例还公开了一种小文件和大文件的访问方法,步骤如下:
[0067]Sa、用户在用户设备中输入文件名,通过用户设备提出访问文件请求,用户设备搜索日志确定用户输入的文件名对应的文件是大文件还是小文件,然后在用户访问请求指令中的文件名中添加大文件或小文件标识性前缀,当所要访问文件名对应的文件是大文件时,用户设备在用户访问请求指令的文件名前添加L ;当所要访问文件名对应的文件是小文件时,用户设备在用户访问请求指令的文件名中添加S,用户设备发送用户访问请求指令给缓存服务器;
[0068]Sb、缓存服务器接收到用户设备发送的用户访问请求指令,根据用户访问请求指令中文件名的标识性前缀判断用户请求访问的是大文件还是小文件;若用户访问请求指令中文件名的标识性前缀为L时,则用户请求访问的是大文件,若用户访问请求指令中文件名的标识性前缀为S时,则用户请求访问的是小文件;
[0069]若是小文件,则缓存服务器搜索本地存储区的小文件元数据,判断缓存服务器中是否存在用户要求访问的小文件;
[0070]若不存在,则缓存服务器返回“请求文件不存在”的未找到信息指令给用户设备;
[0071]若存在,则缓存服务器引导用户对该小文件进行的访问,具体过程如下:
[0072]首先缓存服务器判断用户要求访问的小文件是否处于可编辑状态;
[0073]若是,则允许用户对该小文件实施读或写操作;同时在用户对小文件实施读或写操作时,缓存服务器自动锁定该小文件;
[0074]若否,缓存服务器发送“该文件正被其他用户使用”信息给用户设备,并终止用户的访问请求;
[0075]若是大文件,则缓存服务器搜索本地缓存区的常用大文件元数据,判断缓存服务器中是否存在用户要求访问的大文件;
[0076]若不存在,则缓存服务器将用户设备发送的用户访问请求指令发送给管理服务器,然后进入步骤Sc ;同时缓存服务器器记录通过其请求访问的该大文件的请求访问次数,若访问次数大于第二阈值,则将该大文件认定为常用大文件,在存储过程中,从数据服务器端将该大文件下载并保存在本地缓存区中,其中本实施例中第二阈值的大小根据实际访问需求进行设定;
[0077]若存在,则缓存服务器引导用户对该大文件进行的访问;具体过程如下:
[0078]首先缓存服务器判断用户要求访问的常用大文件是否处于可编辑状态;
[0079]若是,则允许用户对该常用大文件实施读或写操作;同时在用户对常用大文件实施读或写操作时,缓存服务器自动锁定该常用大文件;在用户操作完成后,缓存服务器发送更新日志给管理服务器,管理服务器根据收到的更新日志更新对应的大文件;
[0080]若否,则缓存服务器发送用户访问请求指令给管理服务器,然后进入步骤Sc。
[0081]Sc、管理服务器接收到来自于缓存服务器的用户访问请求指令后,搜索本地大文件元数据,判断管理服务器中是否存在用户要求访问的大文件;
[0082]若不存在,则管理服务器返回“请求文件不存在”的未找到信息指令给用户设备;
[0083]若存在,则引导用户对大文件访问;具体过程如下:
[0084]首先管理服务器判断用户要求访问的大文件是否处于可编辑状态;
[0085]若是,则允许用户对该常用大文件实施读或写操作;同时在用户对大文件实施读或写操作时,管理服务器自动锁定该大文件;在用户操作完成后,管理服务器发送更新日志给缓存服务器,缓存服务器根据接收到的更新日志查询本地是否缓存了该大文件;若是,则更新该大文件;若否,则丢弃管理服务器发送的该更新日志;
[0086]若否,管理服务器发送“该文件正被其他用户使用”信息给用户设备,并终止用户的访问请求。
[0087]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【权利要求】
1.一种小文件和大文件的存储方法,其特征在于,步骤如下: 51、用户通过用户设备创建新文件,根据第一阈值确定所要创建的新文件是大文件还是小文件,并设置文件名,在文件名上添加用于识别大文件和小文件的标识性前缀; 52、用户设备将创建新文件请求指令发送给缓存服务器,缓存服务器收到用户设备发送的创建新文件请求指令后,识别所要创建的新文件的文件名标识性前缀,判断所要创建的新文件是大文件还是小文件; 若所要创建的新文件为小文件,则在缓存服务器中创建该文件并保存其元数据; 若所要创建的新文件为大文件,则缓存器将用户设备发送的创建新文件请求指令发送给管理服务器; 53、管理服务器收到来自于缓存服务器的创建新文件请求指令后,管理服务器创建该大文件并将其进行分块,得到数据块,并且保存该大文件的元数据; 54、管理服务器将创建的大文件划分的数据块发送给数据服务器进行保存,同时缓存服务器根据大文件请求访问次数确定大文件是否为常用大文件,若是,则从数据服务器端将该大文件下载并保存在缓存服务器中。
2.根据权利要求1所述的小文件和大文件的存储方法,其特征在于, 在所述步骤S2中,若所要创建的新文件为小文件时,则缓存服务器首先查询缓存服务器当前存储的小文件元数据,判断所要创建的新文件的文件名是否与缓存服务器中当前已有小文件的文件名重名; 若是,则缓存服务器发送“文件已存在”信息给用户设备,并且丢弃用户发送的创建新文件请求指令; 若否,在缓存服务器中创建该文件并保存其元数据。
3.根据权利要求1所述的小文件和大文件的存储方法,其特征在于, 在所述步骤S3中,若所要创建的新文件为大文件,管理服务器收到来自于缓存服务器的创建新文件请求指令后,判断所要创建的新文件的文件名是否与管理服务器中当前已有大文件的文件名重名; 若是,则管理服务器发送“文件已存在”信息给用户设备,并且丢弃用户发送的创建新文件请求指令; 若否,在管理服务器中创建该文件并保存其元数据。
4.根据权利要求1所述的小文件和大文件的存储方法,其特征在于,所述第一阈值为1M,当文件的大小超过IM时,则将该文件判断为大文件,否则判断为小文件。
5.根据权利要求1所述的小文件和大文件的存储方法,其特征在于,所述大文件和小文件的标识性前缀分别为L和S ;即用户设备在创建的大文件的文件名前添加L,用户设备在创建的小文件的文件名前添加S。
6.根据权利要求1所述的小文件和大文件的存储方法,其特征在于,所述缓存服务器包括存储区和缓存区;小文件及小文件元数据存储在缓存服务器的存储区,常用大文件以及常用大文件元数据保存在缓存服务器的缓存区。
7.一种基于权利要求1至6中任一项所述存储方法实现的小文件和大文件的访问方法,其特征在于,步骤如下: Sa、用户在用户设备中输入文件名,通过用户设备提出访问文件请求,用户设备搜索日志确定用户输入的文件名对应的文件是大文件还是小文件,然后在用户访问请求指令中的文件名中添加大文件或小文件标识性前缀,用户设备发送用户访问请求指令给缓存服务器; Sb、缓存服务器接收到用户设备发送的用户访问请求指令,根据用户访问请求指令中文件名的标识性前缀判断用户请求访问的是大文件还是小文件; 若是小文件,则缓存服务器搜索本地小文件元数据,判断缓存服务器中是否存在用户要求访问的小文件;若存在,则缓存服务器引导用户对该小文件进行的访问;否则缓存服务器返回未找到信息指令给用户设备; 若是大文件,则缓存服务器搜索本地常用大文件元数据,判断缓存服务器中是否存在用户要求访问的大文件;若是,则缓存服务器引导用户对该大文件进行的访问;若否,则缓存服务器将用户设备发送的用户访问请求指令发送给管理服务器,进入步骤Sc,同时缓存服务器记录通过其请求访问的该大文件的请求访问次数; Sc、管理服务器接收到来自于缓存服务器的用户访问请求指令后,搜索本地大文件元数据,判断管理服务器中是否存在用户要求访问的大文件;若存在,则引导用户对大文件访问;否则返回未找到信息给用户设备。
8.根据权利要求7所述的小文件和大文件的访问方法,其特征在于, 所述步骤Sb中,缓存服务器引导用户对小文件进行访问的具体过程如下: 首先缓存服务器判断用户要求访问的小文件是否处于可编辑状态; 若是,则允许用户对该小文件实施读或写操作;同时在用户对小文件实施读或写操作时,缓存服务器自动锁定该小文件; 若否,缓存服务器发送“该文件正被其他用户使用”信息给用户设备,并终止用户的访问请求; 所述步骤Sb中,缓存服务器引导用户对常用大文件进行访问的具体过程如下: 首先缓存服务器判断用户要求访问的常用大文件是否处于可编辑状态; 若是,则允许用户对该大文件实施读或写操作;同时在用户对文件实施读或写操作时,缓存服务器自动锁定该大文件;在用户操作完成后,缓存服务器发送更新日志给管理服务器,管理服务器根据收到的更新日志更新对应的大文件; 若否,则缓存服务器发送用户访问请求指令给管理服务器,然后进入步骤Sc。
9.根据权利7所述的小文件和大文件的访问方法,其特征在于, 所述步骤Sc中,管理服务器引导用户对文件进行访问的具体过程如下: 首先管理服务器判断用户要求访问的大文件是否处于可编辑状态; 若是,则允许用户对该常用大文件实施读或写操作;同时在用户对大文件实施读或写操作时,管理服务器自动锁定该大文件;在用户操作完成后,管理服务器发送更新日志给缓存服务器,缓存服务器根据接收到的更新日志查询本地是否缓存了该大文件;若是,则更新该大文件;若否,则丢弃管理服务器发送的该更新日志; 若否,管理服务器发送“该文件正被其他用户使用”信息给用户设备,并终止用户的访问请求。
10.根据权利7所述的小文件和大文件的访问方法,其特征在于,所述大文件和小文件的标识性前缀分别为L和S ;所述步骤Sa中当所要访问文件名对应的文件是大文件时,用户设备在用户访问请求指令的文件名前添加L ;当所要访问文件名对应的文件是小文件时,用户设备在用户访问请求指令的文件名中添加S。
【文档编号】G06F17/30GK104331428SQ201410559955
【公开日】2015年2月4日 申请日期:2014年10月20日 优先权日:2014年10月20日
【发明者】翁健, 胡舜, 罗伟其, 赖俊祚 申请人:暨南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1