CN117493284A - 文件存储方法、文件读取方法、文件存储和读取系统 - Google Patents

文件存储方法、文件读取方法、文件存储和读取系统 Download PDF

Info

Publication number
CN117493284A
CN117493284A CN202311420184.2A CN202311420184A CN117493284A CN 117493284 A CN117493284 A CN 117493284A CN 202311420184 A CN202311420184 A CN 202311420184A CN 117493284 A CN117493284 A CN 117493284A
Authority
CN
China
Prior art keywords
file
storage area
metadata
read
cached
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.)
Granted
Application number
CN202311420184.2A
Other languages
English (en)
Other versions
CN117493284B (zh
Inventor
余剑
杨维敏
杨宇昊
马立珂
王子骏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Dingjia Computer Technology Co ltd
Original Assignee
Anhui Dingjia Computer Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anhui Dingjia Computer Technology Co ltd filed Critical Anhui Dingjia Computer Technology Co ltd
Priority to CN202311420184.2A priority Critical patent/CN117493284B/zh
Publication of CN117493284A publication Critical patent/CN117493284A/zh
Application granted granted Critical
Publication of CN117493284B publication Critical patent/CN117493284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种文件存储方法、文件读取方法、文件存储和读取系统、计算机设备、存储介质和计算机程序产品。所述方法包括:在第一文件为目标文件的情况下,将第一文件和元数据存储至冷存储区中,将元数据缓存至热存储区中,以及对第一文件进行内容感知处理,得到第一文件的语义特征;将语义特征添加至第一文件缓存在热存储区的元数据中,得到第一文件的第一元数据;在热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除热存储区中缓存的各个第一元数据。采用本方法能够提高文件存储和读取时的资源利用率。

Description

文件存储方法、文件读取方法、文件存储和读取系统
技术领域
本申请涉及计算机技术领域,特别是涉及一种文件存储方法、文件读取方法、文件存储和读取系统、计算机设备、存储介质和计算机程序产品。
背景技术
在如今的数字时代,每天都会产生数量巨大的信息,其中包括了数量惊人的非二进制的非结构化小文件,如网页、文本、邮件等。
通常,都是通过文件的元数据来描述其存储位置,从而实现对文件的存储和读取。然而,一方面,数量惊人的非二进制的非结构化小文件需要占用大量的存储空间,另一方面,数量惊人的非二进制的非结构化小文件使得文件存储和读取的效率变低,因此使得文件存储和读取时的资源利用率较低。
发明内容
基于此,有必要针对上述文件存储和读取时的资源利用率较低的技术问题,提供一种能够提高文件存储和读取时的资源利用率的文件存储方法、文件读取方法、文件存储和读取系统、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种文件存储方法,包括:
基于针对待存储的第一文件的存储请求,获取所述第一文件的元数据;
在所述第一文件为目标文件的情况下,将所述第一文件和所述元数据存储至冷存储区中,将所述元数据缓存至热存储区中,以及,对所述第一文件进行内容感知处理,得到所述第一文件的语义特征;所述目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
将所述语义特征添加至所述第一文件缓存在所述热存储区的元数据中,得到所述第一文件的第一元数据;
在所述热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除所述热存储区中缓存的所述各个第一元数据。
在其中一个实施例中,所述根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,包括:
从所述热存储区缓存的每个第一元数据中,提取出所述每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息;所述地域信息为上传所述第一文件的网际协议地址;
基于所述每个第一元数据对应的第一文件的所述语义特征、所述历史读取信息以及所述地域信息,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件。
在其中一个实施例中,所述基于所述每个第一元数据对应的第一文件的所述语义特征、所述历史读取信息以及所述地域信息,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,包括:
基于所述每个第一元数据对应的第一文件的所述语义特征、所述历史读取信息以及所述地域信息,对所述各个第一元数据在所述冷存储区中对应的第一文件进行第一聚类处理,得到多个第一聚类结果;
基于所述多个第一聚类结果中的任意两个第一聚类结果之间的相似性,对所述多个第一聚类结果进行第二聚类处理,得到至少一个第二聚类结果;
合并每个第二聚类结果中的各个第一文件,得到所述每个第二聚类结果对应的第二文件。
在其中一个实施例中,在根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件之后,还包括:
针对每个第二文件,确定组成所述第二文件的各个第一文件的第一元数据;
根据所述组成所述第二文件的各个第一文件的第一元数据,得到所述第二元文件在所述冷存储区中的第二元数据。
在其中一个实施例中,所述将所述元数据缓存至热存储区中,包括:
在所述第一文件对应的字节数小于或者等于第二预设字节数的情况下,将所述第一文件和所述元数据,均缓存至所述热存储区中;所述第二预设字节数小于所述第一预设字节数;
在所述第一文件对应的字节数大于所述第二预设字节数、且小于或者等于所述第一预设字节数的情况下,将元数据缓存至所述热存储区中。
第二方面,本申请还提供了一种文件读取方法,包括:
基于针对待读取文件的读取请求,在热存储区中确认所述待读取文件的目标元数据的缓存情况;所述待读取文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
在所述热存储区中缓存有所述目标元数据的情况下,基于所述热存储区中缓存的所述目标元数据,对所述待读取文件进行读取;
在所述热存储区中未缓存所述目标元数据的情况下,在冷存储区中确定所述目标元数据,并基于所述冷存储区中存储的所述目标元数据,对所述待读取文件进行读取。
在其中一个实施例中,所述基于所述热存储区中缓存的所述目标元数据,对所述待读取文件进行读取,包括:
基于所述热存储区中缓存的所述目标元数据,确定所述待读取文件对应的字节数;
在所述待读取文件对应的字节数小于或者等于第二预设字节数的情况下,在所述目标元数据在所述热存储区的缓存地址下,获取所述待读取文件;所述第二预设字节数小于所述第一预设字节数;
在所述待读取文件对应的字节数大于所述第二预设字节数、且小于或者等于所述第一预设字节数的情况下,根据所述目标元数据,确定所述待读取文件在所述冷存储区中的存储地址,基于所述存储地址,获取所述待读取文件;
所述基于所述冷存储区中存储的所述目标元数据,对所述待读取文件进行读取,包括:
基于所述冷存储区存储的所述目标元数据,确定所述待读取文件在所述冷存储区中的存储地址,基于所述存储地址,获取所述待读取文件。
在其中一个实施例中,所述方法还包括:
基于所述读取请求,更新所述待读取文件的历史读取信息;
在基于所述历史读取信息确定的读取频率大于或者等于预设读取频率的情况下,确认所述待读取文件在所述热存储区中的缓存情况;
在所述热存储区中未缓存所述待读取文件的情况下,在所述热存储区中确认所述目标元数据的缓存情况;
根据所述目标元数据在所述热存储区中的缓存情况,将所述待读取文件缓存至所述热存储区中。
在其中一个实施例中,所述根据所述目标元数据在所述热存储区中的缓存情况,将所述待读取文件缓存至所述热存储区中,包括:
在所述热存储区中缓存有所述目标元数据的情况下,从所述冷存储区中获取所述待读取文件,将所述待读取文件缓存至所述热存储区中;
在所述热存储区中未缓存所述目标元数据的情况下,从所述冷存储区中获取所述目标元数据和所述待读取文件,将所述目标元数据和所述待读取文件均缓存至所述热存储区中。
第三方面,本申请还提供了一种文件存储和读取系统,包括:存储处理器、存储区、内容感知处理器、空间释放处理器和读取处理器;所述存储区包括热存储区和冷存储区;
所述存储处理器,用于基于针对待存储的第一文件的存储请求,获取所述第一文件的元数据,在所述第一文件为目标文件的情况下,将所述存储请求发送至所述存储区,以及,将针对所述第一文件的内容感知请求发送至所述内容感知处理器;所述目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
所述存储区,用于响应于所述存储处理器发送的存储请求,将所述第一文件和所述元数据缓存至所述冷存储区中,将所述元数据缓存至所述热存储区中;
所述内容感知处理器,用于响应于所述存储处理器发送的内容感知请求,对所述第一文件进行内容感知处理,得到所述第一文件的语义特征,将所述语义特征添加至所述第一文件缓存在所述热存储区的元数据中,得到所述第一文件的第一元数据;
所述空间释放处理器,用于在所述热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除所述热存储区中缓存的所述各个第一元数据;
所述读取处理器,用于基于针对待读取文件的读取请求,在所述热存储区中确认所述待读取文件的目标元数据的缓存情况,在所述热存储区中缓存有所述目标元数据的情况下,基于所述热存储区中缓存的目标元数据,对所述待读取文件进行读取,在所述热存储区中未缓存所述目标元数据的情况下,在所述冷存储区中确定所述目标元数据,并基于所述冷存储区中存储的所述目标元数据,对所述待读取文件进行读取;所述待读取文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件。
第四方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
基于针对待存储的第一文件的存储请求,获取所述第一文件的元数据;
在所述第一文件为目标文件的情况下,将所述第一文件和所述元数据存储至冷存储区中,将所述元数据缓存至热存储区中,以及,对所述第一文件进行内容感知处理,得到所述第一文件的语义特征;所述目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
将所述语义特征添加至所述第一文件缓存在所述热存储区的元数据中,得到所述第一文件的第一元数据;
在所述热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除所述热存储区中缓存的所述各个第一元数据。
第五方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
基于针对待存储的第一文件的存储请求,获取所述第一文件的元数据;
在所述第一文件为目标文件的情况下,将所述第一文件和所述元数据存储至冷存储区中,将所述元数据缓存至热存储区中,以及,对所述第一文件进行内容感知处理,得到所述第一文件的语义特征;所述目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
将所述语义特征添加至所述第一文件缓存在所述热存储区的元数据中,得到所述第一文件的第一元数据;
在所述热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除所述热存储区中缓存的所述各个第一元数据。
第六方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
基于针对待存储的第一文件的存储请求,获取所述第一文件的元数据;
在所述第一文件为目标文件的情况下,将所述第一文件和所述元数据存储至冷存储区中,将所述元数据缓存至热存储区中,以及,对所述第一文件进行内容感知处理,得到所述第一文件的语义特征;所述目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
将所述语义特征添加至所述第一文件缓存在所述热存储区的元数据中,得到所述第一文件的第一元数据;
在所述热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除所述热存储区中缓存的所述各个第一元数据。
上述文件存储方法、文件读取方法、文件存储和读取系统、计算机设备、存储介质和计算机程序产品,首先基于针对待存储的第一文件的存储请求,获取第一文件的元数据;然后在第一文件为目标文件的情况下,将第一文件和元数据存储至冷存储区中,将元数据缓存至热存储区中,以及,对第一文件进行内容感知处理,得到第一文件的语义特征;目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;接着将语义特征添加至第一文件缓存在热存储区的元数据中,得到第一文件的第一元数据;最后在热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除热存储区中缓存的各个第一元数据。这样,通过对第一文件的内容感知,可以得到包括了第一文件的语义特征的第一元数据,便于后续基于第一文件的第一元数据对各个第一文件进行合并,进而减少了文件存储所占用的空间资源,并减少了文件读取所花费的时间资源。基于上述过程的文件存储方法,既能够减少小文件存储所占用的空间资源,又能够减少文件读取所花费的时间资源,因此提高了文件存储和读取时的资源利用率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中文件存储方法的流程示意图;
图2为一个实施例中对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理的步骤的流程示意图;
图3为一个实施例中文件读取方法的流程示意图;
图4为一个实施例中在基于历史读取信息确定的读取频率大于或者等于预设读取频率的情况下,将待读取文件缓存至热存储区中的步骤的流程示意图;
图5为一个实施例中文件存储和读取系统的结构框图;
图6为一个实施例中文件存储的步骤的流程示意图;
图7为一个实施例中文件读取的步骤的流程示意图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
在一示例性实施例中,如图1所示,提供了一种文件存储方法,本实施例以该方法应用于文件存储和读取系统进行举例说明,可以理解的是,具体可以应用于文件存储和读取系统的后台服务器,也可以应用于安装有文件存储和读取系统的终端,还可以应用于包括服务器和终端的系统,并通过服务器和终端的交互实现。其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现;终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。本实施例中,该方法包括以下步骤:
步骤S102,基于针对待存储的第一文件的存储请求,获取第一文件的元数据。
其中,元数据描述了第一文件的基本信息,例如文件名、上传文件的用户的用户名、文件大小(对应的字节数)、文件类型、文件的创建日期等。
其中,存储请求中携带有第一文件的各个基本信息和第一文件。
具体地,用户登录文件存储和读取系统的客户端,并在客户端中选择待存储(待上传)的一个或多个第一文件,并通过文件存储选项触发文件存储事件;客户端检测到文件存储事件触发后,基于用户选择的每个第一文件的基本信息,构建每个第一文件各自对应的存储请求,并将存储请求发送给文件存储和读取系统。文件存储和读取系统接收到存储请求后,从存储请求中提取出待存储的第一文件的各个基本信息,作为第一文件的元数据。
举例说明,假设用户1选择的待存储的第一文件的文件名为文件1,文件后缀为.docx(微软Word的文件扩展名),文件大小为50kb,文件的创建日期为2023年10月25日。那么,文件存储和读取系统得到的第一文件的元数据为{文件1,用户1,50kb,文本,2023年10月25日}。
步骤S104,在第一文件为目标文件的情况下,将第一文件和元数据存储至冷存储区中,将元数据缓存至热存储区中,以及,对第一文件进行内容感知处理,得到第一文件的语义特征。
其中,目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件,即目标文件为非二进制的非结构化小文件,例如文本文件、代码文件、配置文件、日志文件、网页文件等。
其中,优选地,第一预设字节数设为100kb。
其中,冷存储区为可持久化存储的数据库,例如关系型数据库、云存储等,冷存储区具有可持久化存储的特点。
其中,热存储区为内存K-V(key-value,键值对)数据库,例如Redis(RemoteDictionary Server,远程字典服务数据库)或Memcached(分布式的高速缓存系统);热存储区能够提供高速度、低延迟的读写操作。能够理解的是,由于内存有限,因此热存储区适合存储频繁访问但不是非常庞大的数据。
还能够理解的是,冷存储区与热存储区中的“冷”“热”是指数据的热度;在计算机领域中,数据的热度是指数据被操作的频繁程度,例如频率。
其中,语义特征可以是第一文件的语义向量,也可以是第一文件的关键词,例如第一文件中出现次数较多的词汇。
具体地,文件存储和读取系统根据第一文件,首先确定第一文件是否为二进制文件,存储的数据是否为非结构数据,以及根据第一文件的元数据,确定第一文件对应的字节数是否小于或者等于第一预设字节数;在第一文件为非二进制文件、存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的情况下,文件存储和读取系统将第一文件确定为目标文件;在第一文件为目标文件的情况下,文件存储和读取系统首先将第一文件和第一文件的元数据存储至冷存储区中,将第一文件的元数据缓存至热存储区中,同时对第一文件进行内容感知处理,提取出第一文件的语义特征。
需要说明的是,只有非二进制的文件,才能够进行内容感知处理,例如图片等二进制文件,无法进行内容感知处理。
步骤S106,将语义特征添加至第一文件缓存在热存储区的元数据中,得到第一文件的第一元数据。
具体地,文件存储和读取系统将第一文件的语义特征添加至第一文件缓存在热存储区的元数据中,得到第一文件缓存在热存储区的第一元数据。
举例说明,文件存储和读取系统可以对热存储区设置空间容量阈值,在热存储区的剩余缓存空间容量小于或者等于容量阈值的情况下,触发针对热存储区的空间释放事件;文件存储和读取系统还可以对热存储区设置空间定时释放任务,在时间到达空间定时释放任务对应的时间时,触发针对热存储区的空间释放事件。在针对热存储区的空间释放事件触发的情况下,文件存储和读取系统将第一文件的语义特征添加至第一文件缓存在热存储区的元数据中,得到第一文件缓存在热存储区的第一元数据。
再举例说明,文件存储和读取系统还可以每得到一个第一文件的语义特征,就将该语义特征添加至该第一文件缓存在热存储区的元数据中。
步骤S108,在热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除热存储区中缓存的各个第一元数据。
其中,数量达到数量阈值,是指数量等于或者大于数量阈值。
具体地,文件存储和读取系统在热存储区中缓存了多个第一文件的第一元数据之后,确认热存储区中缓存的第一元数据的数量,在热存储区中缓存的第一元数据的数量较多,即等于或者大于数量阈值的情况下,文件存储和读取系统根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行聚类处理,并基于聚类结果对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到冷存储区中的至少一个第二文件;在文件合并完成之后,文件存储和读取系统还可以根据热缓存区中缓存的各个第一元数据,更新冷存储区中的各个第二文件的元数据,然后删除热存储区中缓存的各个第一元数据,以释放热存储区的缓存空间。
进一步地,在合并时,文件存储和读取系统针对每个聚类结果,首先针对每个聚类结果,在该聚类结果对应的各个第一文件中,识别出重复的多组重复文件和不重复文件,并分别对每组重复文件进行去重处理,得到多个去重后的文件,然后,再在冷存储区中整合存储重后的文件和不重复文件,得到该聚类结果对应的第二文件。能够理解的是,通过文件合并,一方面,能够将相似的文件存储在一起,便于后续读取,另一方面,能够对重复的文件进行去重,减少文件存储所占用的空间。
举例说明,假设在热存储区中,缓存有文件1、文件2、文件3、文件4以及文件5的第一元数据;在冷存储区中,存储有文件1、文件2、文件3、文件4、文件5和文件6,以及各个文件的元数据;那么文件存储和读取系统,首先根据热存储区缓存的文件1、文件2、文件3、文件4以及文件5的第一元数据,对冷存储区存储的文件1、文件2、文件3、文件4以及文件5进行合并,例如对文件1和文件3进行合并,得到文件7(第二文件),对文件2和文件4进行合并,得到文件8(第二文件);然后,文件存储和读取系统删除热存储区缓存的文件1、文件2、文件3、文件4以及文件5的第一元数据。
再举例说明,假设文件1、文件2和文件3属于同一个聚类结果,文件存储和读取系统通过各自的第一元数据,发现文件1和文件2为相同文件,那么文件存储和读取系统保留文件1和文件2中的任意一个,例如文件1,然后将文件1和文件3作为合并后的第二文件。
上述文件存储方法中,文件存储和读取系统首先基于针对待存储的第一文件的存储请求,获取第一文件的元数据;然后在第一文件为目标文件的情况下,将第一文件和元数据存储至冷存储区中,将元数据缓存至热存储区中,以及,对第一文件进行内容感知处理,得到第一文件的语义特征;目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;接着将语义特征添加至第一文件缓存在热存储区的元数据中,得到第一文件的第一元数据;最后在热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除热存储区中缓存的各个第一元数据。这样,通过对第一文件的内容感知,文件存储和读取系统可以得到包括了第一文件的语义特征的第一元数据,便于后续基于第一文件的第一元数据对各个第一文件进行合并,进而减少了文件存储所占用的空间资源,并减少了文件读取所花费的时间资源。基于上述过程的文件存储方法,既能够减少小文件存储所占用的空间资源,又能够减少文件读取所花费的时间资源,因此提高了文件存储和读取时的资源利用率。
在一示例性实施例中,根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,具体包括以下内容:从热存储区缓存的每个第一元数据中,提取出每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息;基于每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件。
其中,第一元数据中还包括第一文件的历史读取信息和第一文件的地域信息;历史读取信息为历史读取第一文件的各个时间点;地域信息为上传第一文件的网际协议地址(IP,Internet Protocol Address)。
具体地,文件存储和读取系统针对热缓存区缓存的各个第一元数据,从第一元数据中,提取出该第一元数据对应的第一文件的语义特征、历史读取信息和地域信息,并以语义特征、历史读取信息和地域信息作为聚类指标,对各个第一元数据在冷存储区中对应的各个第一文件进行聚类,最后根据聚类结果对各个第一元数据在冷存储区中对应的各个第一文件进行合并,得到冷存储区中的至少一个第二文件。
本实施例中,文件存储和读取系统通过第一元数据中的语义特征、历史读取信息和地域信息,能够对第一元数据对应的各个第一文件进行合并,减少了冷存储区中存储的文件的数量,减少了冷存储区中文件存储所占用的空间,既能够减少小文件存储所占用的空间资源,又能够减少文件读取所花费的时间资源,因此提高了文件存储和读取时的资源利用率。
如图2所示,在一示例性实施例中,基于每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,具体包括以下步骤:
步骤S202,基于每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息,对各个第一元数据在冷存储区中对应的第一文件进行第一聚类处理,得到多个第一聚类结果。
步骤S204,基于多个第一聚类结果中的任意两个第一聚类结果之间的相似性,对多个第一聚类结果进行第二聚类处理,得到至少一个第二聚类结果。
步骤S206,合并每个第二聚类结果中的各个第一文件,得到每个第二聚类结果对应的第二文件。
其中,第一聚类处理为密度聚类,第二聚类处理为层次聚类。
具体地,文件存储和读取系统首先根据每个第一元数据对应的第一文件的语义特征、历史读取信息和地域信息,并基于语义特征、历史读取信息和地域信息,对各个第一元数据在冷存储区中对应的第一文件进行密度聚类(第一聚类处理),得到多个第一聚类结果,具体过程如下:
文件存储和读取系统根据语义特征计算表征第一文件之间的文本相似度文本距离,根据历史读取信息计算表征第一文件之间的历史读取相似度的历史读取时间距离,根据地域特征计算表征第一文件之间的地域相似度的地域距离;然后,为文本距离、历史读取时间距离和地域距离赋予相应的权值,并加权融合文本距离、历史读取时间距离和地域距离得到表征第一文本之间的综合相似度的总距离,并基于总距离,采用CFSFDP算法(Clustering by fast search and find of density peaks,基于密度峰值的快速聚类算法),对各个第一文本进行密度聚类,得到多个第一聚类结果。
接着,文件存储和读取系统采用Chameleon(变色龙算法)对多个第一聚类结果进行层次聚类(第二聚类处理),得到至少一个第二聚类结果,具体过程如下:
文件存储和读取系统将每个第一聚类结果作为一个簇,通过计算簇之间的邻近性来得到簇之间的相似性,并对相似性最大的两个簇进行合并,得到合并后的簇,直到各个簇之间的相似性均小于预设相似性阈值,将每个簇作为一个第二聚类结果。
然后,文件存储和读取系统针对每个第二聚类结果下的各个第一文件,在各个第一文件中识别出重复的多组重复文件和不重复文件,并对每组重复文件进行去重处理,得到多个去重后的文件,然后,再将去重后的文件和不重复文件作为一个整体进行存储,得到该第二聚类结果对应的第二文件。
本实施例中,文件存储和读取系统通过对第一文件的密度聚类和层次聚类,能够将相似的文件存储在一起,还能够对重复的文件进行去重,一方面,便于后续读取时对文件的查询,另一方面,减少了文件存储所占用的空间,因此提高了文件存储和读取时的资源利用率。
在一示例性实施例中,在根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件之后,具体还包括以下步骤:针对每个第二文件,确定组成第二文件的各个第一文件的第一元数据;根据组成第二文件的各个第一文件的第一元数据,得到第二元文件在冷存储区中的第二元数据。
具体地,文件存储和读取系统在得到第二文件之后,还需要针对每个第二文件,在热存储区中,确定组成该第二文件的各个第一文件的第一元数据,然后根据组成该第二文件的各个第一文件的第一元数据,得到该第二文件的第二元数据,然后将第二元数据存储到冷存储区中,并在冷存储区中删除组成该第二文件的各个第一文件的元数据,或者是,在冷存储区中,用第二元数据直接替换组成该第二文件的各个第一文件的元数据;对于在文件合并过程中,未进行合并的单独文件,文件存储和读取系统用其缓存在热存储区中的第一元数据替换其存储在冷存储区中的元数据,或者是,将第一元数据存储到冷存储区中,并在冷存储区中删除该单独文件的元数据。
优选地,针对第二文件,采用先存储再删除的方式更新元数据,即将第二元数据存储到冷存储区中,并在冷存储区中删除组成该第二文件的各个第一文件的元数据;针对单独文件,采用直接替换的方式更新元数据,即用其缓存在热存储区中的第一元数据替换其存储在冷存储区中的元数据。
举例说明,假设在热存储区中,缓存有文件1、文件2、文件3、文件4以及文件5的第一元数据;在冷存储区中,存储有文件1、文件2、文件3、文件4、文件5和文件6,以及各个文件的元数据;在合并过程中,文件存储和读取系统对文件1和文件3进行合并,得到文件7(第二文件),对文件2和文件4进行合并,得到文件8(第二文件);那么,文件存储和读取系统根据热存储区缓存的文件1和文件3的第一元数据,得到文件7的第二元数据,并存储在冷存储区中,根据热存储区缓存的文件2和文件4的第一元数据,得到文件8的第二元数据,并存储在冷存储区中,以及,将文件5(单独文件)存储在冷存储区的元数据替换为文件5缓存在热存储区的第一元数据,最后,在冷存储区中删除文件1、文件2、文件3和文件4的元数据。
本实施例中,文件存储和读取系统根据组成第二文件的各个第一文件的第一元数据,能够实现对第二文件的元数据的更新,从而便于后续对第二文件的管理。
在一示例性实施例中,将元数据缓存至热存储区中,具体包括以下内容:在第一文件对应的字节数小于或者等于第二预设字节数的情况下,将第一文件和元数据,均缓存至热存储区中;在第一文件对应的字节数大于第二预设字节数、且小于或者等于第一预设字节数的情况下,将元数据缓存至热存储区中。
其中,第二预设字节数小于第一预设字节数;优选地,第二预设字节数为1kb。
具体地,文件存储和读取系统在将元数据缓存至热存储区时,需要先判断第一文件对应的字节数是否小于或者等于第二预设字节数,若小于或者等于,则说明第一文件较小,可以缓存在热存储区中,因此,将第一文件和元数据,均缓存至热存储区的同一缓存地址下;若第一文件对应的字节数大于第二预设字节数、且小于或者等于第一预设字节数,则只将元数据缓存至热存储区中。
本实施例中,文件存储和读取系统通过第一文件的字节数,确定是否需要将第一文件缓存至热存储区中,能够充分发挥热存储区空间小、读取速度快的特点。
在一示例性实施例中,如图3所示,提供了一种文件读取方法,本实施例以该方法应用于文件存储和读取系统进行举例说明,可以理解的是,具体可以应用于文件存储和读取系统的后台服务器,也可以应用于安装有文件存储和读取系统的终端,还可以应用于包括服务器和终端的系统,并通过服务器和终端的交互实现。其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现;终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。本实施例中,该方法包括以下步骤:
步骤S302,基于针对待读取文件的读取请求,在热存储区中确认待读取文件的目标元数据的缓存情况。
步骤S304,在热存储区中缓存有目标元数据的情况下,基于热存储区中缓存的目标元数据,对待读取文件进行读取。
步骤S306,在热存储区中未缓存目标元数据的情况下,在冷存储区中确定目标元数据,并基于冷存储区中存储的目标元数据,对待读取文件进行读取。
其中,待读取文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件。
具体地,用户登录文件存储和读取系统的客户端,并在客户端中选择需要下载的一个或多个待读取文件,并通过文件读取选项触发文件读取事件;客户端检测到文件读取事件触发后,基于用户选择的每个待读取文件的文件名,构建每个待读取文件各自对应的读取请求,并将读取请求发送给文件存储和读取系统。文件存储和读取系统接收到读取请求后,根据读取请求携带的文件名,确认热存储区中是否缓存有待读取文件的目标元数据;若热缓存区中缓存有目标元数据,则文件存储和读取系统根据目标元数据,确定待读取文件的存储地址,并访问待读取文件的存储地址,对待读取文件进行读取;若热缓存区中没有缓存目标元数据,则说明目标元数据仅仅只存储在了冷存储区中,因此文件存储和读取系统根据读取请求携带的文件名,在冷存储区中确定目标元数据,并根据目标元数据,确定待读取文件的存储地址,然后访问待读取文件的存储地址,对待读取文件进行读取。
能够理解的是,文件读取方法中的具体限定可以参见上文中对于文件存储方法的限定,在此不再赘述。
上述文件读取方法中,文件存储和读取系统首先基于针对待读取文件的读取请求,在热存储区中确认待读取文件的目标元数据的缓存情况;然后在热存储区中缓存有目标元数据的情况下,基于热存储区中缓存的目标元数据,对待读取文件进行读取;接着在热存储区中未缓存目标元数据的情况下,在冷存储区中确定目标元数据,并基于冷存储区中存储的目标元数据,对待读取文件进行读取。这样,通过现在热存储区中查询目标元数据,在热存储区中未缓存目标元数据的情况下,再到冷存储区中查询目标元数据,能够利用热存储区的读写速度快的特点,以及冷存储区持久化存储的特征,从而加快对待读取文件的读取,减少文件读取时所花费的时间,提高了文件读取时的资源利用率。
在一示例性实施例中,上述步骤S304,基于热存储区中缓存的目标元数据,对待读取文件进行读取,具体包括以下内容:基于热存储区中缓存的目标元数据,确定待读取文件对应的字节数;在待读取文件对应的字节数小于或者等于第二预设字节数的情况下,在目标元数据在热缓存区的缓存地址下,获取待读取文件;在待读取文件对应的字节数大于第二预设字节数、且小于或者等于第一预设字节数的情况下,根据目标元数据,确定待读取文件在冷存储区中的存储地址,基于存储地址,获取待读取文件。
上述步骤S306,基于冷存储区中存储的目标元数据,对待读取文件进行读取,具体包括以下内容:基于冷存储区存储的目标元数据,确定待读取文件在冷存储区中的存储地址,基于存储地址,获取待读取文件。
其中,第二预设字节数小于第一预设字节数。
具体地,文件存储和读取系统在热存储区中缓存有目标元数据的情况下,根据目标元数据确定待读取文件对应的字节数,确定待读取文件对应的字节数是否小于或者等于第二预设字节数;根据上文中的文件存储方法可知,在未进行文件合并之前,若文件的字节数小于第二预设字节数,那么会将文件和元数据缓存在热存储区中的同一缓存地址下,因此,文件存储和读取系统在目标元数据在热缓存区中的缓存地址下,获取待读取文件;若待读取文件对应的字节数大于第二预设字节数、且小于或者等于第一预设字节数,则说明待读取文件没有缓存在热存储区中,因此文件存储和读取系统根据目标元数据,确定待读取文件在冷存储区中的存储地址,基于存储地址,获取待读取文件。
文件存储和读取系统在热存储区中没有缓存目标元数据的情况下,根据读取请求携带的文件名,在冷存储区中确定目标元数据,进而确定待读取文件在冷存储区中的存储地址,基于存储地址,获取待读取文件。
若文件存储和读取系统在冷存储区中也查询不到目标元数据,则向文件存储和读取系统的客户端返回读取请求构建错误的提示信息。
本实施例中,一方面,文件存储和读取系统通过待读取文件的字节数,能够快速判断待读取文件是存在于热存储区内还是存在于冷存储区内,从而缩短了读取文件所花费的时间;另一方面,文件存储和读取系统通过热存储区或冷存储区中的目标元数据,能够快速地确定待读取文件的缓存地址或存储地址,进一步减少了读取文件所花费的时间,提高了文件读取时的资源利用率。
如图4所示,在一示例性实施例中,在上述步骤S304或步骤S306,对待读取文件进行读取之后,具体还包括以下步骤:
步骤S402,基于读取请求,更新待读取文件的历史读取信息。
步骤S404,在基于历史读取信息确定的读取频率大于或者等于预设读取频率的情况下,确认待读取文件在热存储区中的缓存情况。
步骤S406,在热存储区中未缓存待读取文件的情况下,在热存储区中确认目标元数据的缓存情况。
步骤S408,根据目标元数据在热存储区中的缓存情况,将待读取文件缓存至热存储区中。
具体地,文件存储和读取系统在读取文件之后,基于读取请求,更新待读取文件的历史读取信息,并根据待读取文件的历史读取信息,确认待读取文件在历史预设时间区间内的读取频率,例如过去一个月内的读取频率,并在待读取文件在历史预设时间区间内的读取频率大于或者等于预设读取频率的情况下,将待读取文件确定为被频繁读取的热文件;由于该文件的读取频率较高,因此为了后续能够对该文件进行快速读取,可以利用热缓存区读写速度快的特点,将该文件缓存至热缓存区中。
将热文件缓存至热缓存区中的具体过程如下:文件存储和读取系统首先确认待读取文件在热存储区中的缓存情况,若热存储区中未缓存待读取文件,那么在热存储区中确认目标元数据的缓存情况;若热存储区中缓存有待读取文件,那么文件存储和读取系统不需要做任何处理,若热存储区中未缓存待读取文件,那么文件存储和读取系统需要进一步确认目标元数据在热存储区中的缓存情况,并根据目标元数据在热存储区中的缓存情况,将待读取文件缓存至热存储区中。
本实施例中,文件存储和读取系统根据待读取文件的历史读取信息,确定待读取文件的读取频率,并在文件为被频繁读取的热文件的情况下,将待读取文件缓存至热存储区中,从而便于后续利用热存储区读写速度快的特点,缩短读取热文件时所花费的时间,提高了文件读取时的资源利用率。
在一示例性实施例中,上述步骤S408,根据目标元数据在热存储区中的缓存情况,将待读取文件缓存至热存储区中,具体包括以下内容:在热存储区中缓存有目标元数据的情况下,从冷存储区中获取待读取文件,将待读取文件缓存至热存储区中;在热存储区中未缓存目标元数据的情况下,从冷存储区中获取目标元数据和待读取文件,将目标元数据和待读取文件均缓存至热存储区中。
具体地,文件存储和读取系统在热存储区中缓存有目标元数据的情况下,将冷存储区中存储的待读取文件,缓存至热存储区中,在热存储区中没有缓存目标元数据的情况下,将冷存储区中存储的待读取文件和目标元数据,均缓存至热存储区中。
本实施例中,文件存储和读取系统通过将被频繁访问的待读取文件缓存在热存储区中,能够缩短后续读取热文件时所花费的时间,提高了文件读取时的资源利用率。
在一示例性实施例中,如图5所示,提供了一种文件存储和读取系统,文件存储和读取系统包括:存储处理器、存储区、内容感知处理器、空间释放处理器和读取处理器;存储区包括热存储区和冷存储区。
存储处理器,用于基于针对待存储的第一文件的存储请求,获取第一文件的元数据,在第一文件为目标文件的情况下,将存储请求发送至存储区,以及,将针对第一文件的内容感知请求发送至内容感知处理器。
存储区,用于响应于存储处理器发送的存储请求,将第一文件和元数据缓存至冷存储区中,将元数据缓存至热存储区中。
内容感知处理器,用于响应于存储处理器发送的内容感知请求,对第一文件进行内容感知处理,得到第一文件的语义特征,将语义特征添加至第一文件缓存在热存储区的元数据中,得到第一文件的第一元数据。
空间释放处理器,用于在热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除热存储区中缓存的各个第一元数据。
读取处理器,用于基于针对待读取文件的读取请求,在热存储区中确认待读取文件的目标元数据的缓存情况,在热存储区中缓存有目标元数据的情况下,基于热存储区中缓存的目标元数据,对待读取文件进行读取,在热存储区中未缓存目标元数据的情况下,在冷存储区中确定目标元数据,并基于冷存储区中存储的目标元数据,对待读取文件进行读取。
其中,目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件。
其中,待读取文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件。
具体地,文件存储和读取系统用于提供一种文件存储和读取方法,具体如下:
在用户需要存储文件时,登录文件存储和读取系统的客户端,并在客户端中选择待存储(待上传)的一个或多个第一文件,并通过文件存储选项触发文件存储事件;客户端检测到文件存储事件触发后,基于用户选择的每个第一文件的基本信息,构建每个第一文件各自对应的存储请求,并将存储请求发送给文件存储和读取系统。文件存储和读取系统接收到存储请求后,将存储请求放入写操作队列中。
然后,存储处理器从写操作队列中提取出存储请求,并从存储请求中提取出待存储的第一文件的各个基本信息,作为第一文件的元数据;然后在第一文件为目标文件的情况下,将存储请求发送给存储区,以及,将针对第一文件的内容感知请求放入内容感知队列中。
接着,存储区响应于存储请求,将第一文件和元数据缓存至冷存储区中,将元数据缓存至热存储区中。内容感知处理器从内容感知队列中取出内容感知请求,响应于内容感知请求对第一文件进行内容感知处理,得到第一文件的语义特征,将语义特征添加至第一文件缓存在热存储区的元数据中,得到第一文件的第一元数据。
再然后,空间释放处理器在热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据热存储区缓存的各个第一元数据,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除热存储区中缓存的各个第一元数据。
在用户需要读取文件时,登录文件存储和读取系统的客户端,并在客户端中选择需要下载的一个或多个待读取文件,并通过文件读取选项触发文件读取事件;客户端检测到文件读取事件触发后,基于用户选择的每个待读取文件的文件名,构建每个待读取文件各自对应的读取请求,并将读取请求发送给文件存储和读取系统。文件存储和读取系统接收到读取请求后,将读取请求放入读操作队列中。
接着,读取处理器从读操作队列中取出读取请求,根据读取请求携带的文件名,在热存储区中确认是否缓存有待读取文件的目标元数据;若热缓存区中缓存有目标元数据,则文件存储和读取系统根据目标元数据,确定待读取文件的存储地址,并访问待读取文件的存储地址,对待读取文件进行读取;若热缓存区中没有缓存目标元数据,则说明目标元数据仅仅只存储在了冷存储区中,因此文件存储和读取系统根据读取请求携带的文件名,在冷存储区中确定目标元数据,并根据目标元数据,确定待读取文件的存储地址,然后访问待读取文件的存储地址,对待读取文件进行读取。
能够理解的是,文件存储和读取系统将用户分为了普通用户和管理员用户;普通用户可以通过文件存储和读取系统查看文件列表、查询文件、存储文件、读取文件以及删除文件;管理员用户除了上述功能,还可以通过文件存储和读取系统对元数据进行管理,例如查看元数据、修改元数据和删除元数据。
还能够理解的是,文件存储和读取系统中的具体限定可以参见上文中对于文件存储方法和文件读取方法的限定,在此不再赘述。
本实施例中,文件存储和读取系统通过存储处理器对第一文件进行分析,通过存储区对第一文件及其元数据进行分区管理,通过内容感知处理器对第一文件进行内容感知处理,通过空间释放处理器及时释放热存储区的缓存空间,通过读取处理器对待读取文件进行读取。这样,一方面,通过对第一文件的内容感知,文件存储和读取系统可以得到包括了第一文件的语义特征的第一元数据,便于后续基于第一文件的第一元数据对各个第一文件进行合并,进而减少了文件存储所占用的空间资源,并减少了文件读取所花费的时间资源;另一方面,通过冷存储区和热存储区对数据的分区管理,能够充分发挥冷存储区和热存储区各自的特点,减少了文件读取所花费的时间资源;基于上述文件存储和读取系统,既能够减少小文件存储所占用的空间资源,又能够减少文件读取所花费的时间资源,因此提高了文件存储和读取时的资源利用率。
在一示例性实施例中,空间释放处理器,还用于从热存储区缓存的每个第一元数据中,提取出每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息;地域信息为上传第一文件的网际协议地址;基于每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息,对各个第一元数据在冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件。
在一示例性实施例中,空间释放处理器,还用于基于每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息,对各个第一元数据在冷存储区中对应的第一文件进行第一聚类处理,得到多个第一聚类结果;基于多个第一聚类结果中的任意两个第一聚类结果之间的相似性,对多个第一聚类结果进行第二聚类处理,得到至少一个第二聚类结果;合并每个第二聚类结果中的各个第一文件,得到每个第二聚类结果对应的第二文件。
在一示例性实施例中,空间释放处理器,还用于针对每个第二文件,确定组成第二文件的各个第一文件的第一元数据;根据组成第二文件的各个第一文件的第一元数据,得到第二元文件在冷存储区中的第二元数据。
在一示例性实施例中,存储区,还用于在第一文件对应的字节数小于或者等于第二预设字节数的情况下,将第一文件和元数据,均缓存至热存储区中;第二预设字节数小于第一预设字节数;在第一文件对应的字节数大于第二预设字节数、且小于或者等于第一预设字节数的情况下,将元数据缓存至热存储区中。
在一示例性实施例中,读取处理器,还用于基于热存储区中缓存的目标元数据,确定待读取文件对应的字节数;在待读取文件对应的字节数小于或者等于第二预设字节数的情况下,在目标元数据在热存储区的缓存地址下,获取待读取文件;第二预设字节数小于第一预设字节数;在待读取文件对应的字节数大于第二预设字节数、且小于或者等于第一预设字节数的情况下,根据目标元数据,确定待读取文件在冷存储区中的存储地址,基于存储地址,获取待读取文件。
在一示例性实施例中,读取处理器,还用于基于冷存储区存储的目标元数据,确定待读取文件在冷存储区中的存储地址,基于存储地址,获取待读取文件。
在一示例性实施例中,存储处理器,还用于基于读取请求,更新待读取文件的历史读取信息;在基于历史读取信息确定的读取频率大于或者等于预设读取频率的情况下,确认待读取文件在热存储区中的缓存情况;在热存储区中未缓存待读取文件的情况下,在热存储区中确认目标元数据的缓存情况;根据目标元数据在热存储区中的缓存情况,将待读取文件缓存至热存储区中。
在一示例性实施例中,存储处理器,还用于在热存储区中缓存有目标元数据的情况下,从冷存储区中获取待读取文件,将待读取文件缓存至热存储区中;在热存储区中未缓存目标元数据的情况下,从冷存储区中获取目标元数据和待读取文件,将目标元数据和待读取文件均缓存至热存储区中。
上述文件存储和读取系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
为了更清晰阐明本申请实施例提供的文件存储方法和文件读取方法,以下以一个具体的实施例对本申请实施例提供的文件存储方法和文件读取方法进行具体说明,但应当理解的是,本申请实施例并不限于此。在一示例性实施例中,本申请还提供了一种基于内容感知和数据分类的高效对象存储方法,具体包括两个阶段,存储阶段和读取阶段。
如图6所示,文件存储阶段包括以下步骤:
(1)用户登录文件存储和读取系统的客户端,选择需要存储的第一文件,客户端向文件存储和读取系统发送存储请求。
(2)文件存储和读取系统解析存储请求,并将存储请求放入到写操作队列中,以便后续异步处理。
(3)文件存储和读取系统从写操作队列中取出存储请求,从存储请求中得到第一文件的元数据。
(4)文件存储和读取系统根据第一文件及其元数据,判断第一文件是否为非二进制的非结构化小文件,若第一文件是非二进制的非结构化小文件,则将第一文件及其元数据存储至冷存储区中,将元数据缓存至热存储区中,若第一文件小于或者等于1kb,则将第一文件也缓存至热存储区中;同时,将第一文件发送至内容感知队列中,以便后续异步处理。
(5)文件存储和读取系统从内容感知队列中取出第一文件,对第一文件进行内容感知处理,提取出第一文件的语义特征。
(6)在热存储区的剩余缓存空间容量小于空间容量的情况下,将步骤(5)中提取出来的语义特征添加到第一文件缓存在热存储区中的元数据中,得到第一文件的第一元数据。
(7)文件存储和读取系统计算热存储区中缓存的第一元数据的数量,在热存储区中缓存的第一元数据的数量大于或者等于数量阈值的情况下,根据各个第一元数据,对各个第一元数据在冷存储区中对应的第一文件进行合并,得到冷存储区中的至少一个第二文件,并根据组成每个第二文件的各个第一文件的第一元数据,确定第二文件的第二元数据。
如图7所示,文件读取阶段包括以下步骤:
(1)用户登录文件存储和读取系统的客户端,选择需要下载的待读取文件,客户端向文件存储和读取系统的读操作队列发送读取请求,以便后续异步处理。
(2)文件存储和读取系统从读操作队列中取出读取请求,然后现在热存储区中查询待读取文件的元数据,若热存储区中存储有待读取文件的元数据,则根据待读取文件的元数据对待读取文件进行读取;具体地,可以先根据待读取文件的元数据确定待读取文件是否小于或者等于1kb,若待读取文件小于或者等于1kb,那么可以在元数据的缓存地址下直接获取待读取文件;若待读取文件大于1kb,那么根据元数据确定待读取文件在冷存储区中的存储地址,并基于存储地址进行读取。
(3)若热存储区中没有存储待读取文件的元数据,则在冷存储区中查询待读取文件的元数据,并基于元数据确定待读取文件在冷存储区中的存储地址,并基于存储地址进行读取。
(4)若基于待读取文件的历史访问记录,确定待读取文件为被频繁读取的热数据,则将待读取文件及其元数据缓存至热存储区中。
本实施例中,第一,通过合并具有相似或相同内容的小文件可以显著减少文件存储和读取系统的存储空间的占用,降低了存储成本;第二,通过合并文件可以降低文件存储和读取系统的管理负担,减少文件存储和读取系统对大量小文件的跟踪和管理,有助于提高文件存储和读取系统的性能和效率;第三,合并文件可以改善数据的访问速度,用户可以更快速地检索和访问文件,而无需查找多个小文件;第四,在备份和恢复时需要进行多次的文件读写操作,而将多个小文件合并为一个大文件减少读写操作的次数,从而提高备份和恢复的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储文件及其元数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件存储方法和一种文件读取方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个示例性的实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (13)

1.一种文件存储方法,其特征在于,所述方法包括:
基于针对待存储的第一文件的存储请求,获取所述第一文件的元数据;
在所述第一文件为目标文件的情况下,将所述第一文件和所述元数据存储至冷存储区中,将所述元数据缓存至热存储区中,以及,对所述第一文件进行内容感知处理,得到所述第一文件的语义特征;所述目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
将所述语义特征添加至所述第一文件缓存在所述热存储区的元数据中,得到所述第一文件的第一元数据;
在所述热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除所述热存储区中缓存的所述各个第一元数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,包括:
从所述热存储区缓存的每个第一元数据中,提取出所述每个第一元数据对应的第一文件的语义特征、历史读取信息以及地域信息;所述地域信息为上传所述第一文件的网际协议地址;
基于所述每个第一元数据对应的第一文件的所述语义特征、所述历史读取信息以及所述地域信息,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件。
3.根据权利要求2所述的方法,其特征在于,所述基于所述每个第一元数据对应的第一文件的所述语义特征、所述历史读取信息以及所述地域信息,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,包括:
基于所述每个第一元数据对应的第一文件的所述语义特征、所述历史读取信息以及所述地域信息,对所述各个第一元数据在所述冷存储区中对应的第一文件进行第一聚类处理,得到多个第一聚类结果;
基于所述多个第一聚类结果中的任意两个第一聚类结果之间的相似性,对所述多个第一聚类结果进行第二聚类处理,得到至少一个第二聚类结果;
合并每个第二聚类结果中的各个第一文件,得到所述每个第二聚类结果对应的第二文件。
4.根据权利要求1所述的方法,其特征在于,在根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件之后,还包括:
针对每个第二文件,确定组成所述第二文件的各个第一文件的第一元数据;
根据所述组成所述第二文件的各个第一文件的第一元数据,得到所述第二元文件在所述冷存储区中的第二元数据。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述将所述元数据缓存至热存储区中,包括:
在所述第一文件对应的字节数小于或者等于第二预设字节数的情况下,将所述第一文件和所述元数据,均缓存至所述热存储区中;所述第二预设字节数小于所述第一预设字节数;
在所述第一文件对应的字节数大于所述第二预设字节数、且小于或者等于所述第一预设字节数的情况下,将元数据缓存至所述热存储区中。
6.一种文件读取方法,其特征在于,所述方法包括:
基于针对待读取文件的读取请求,在热存储区中确认所述待读取文件的目标元数据的缓存情况;所述待读取文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
在所述热存储区中缓存有所述目标元数据的情况下,基于所述热存储区中缓存的所述目标元数据,对所述待读取文件进行读取;
在所述热存储区中未缓存所述目标元数据的情况下,在冷存储区中确定所述目标元数据,并基于所述冷存储区中存储的所述目标元数据,对所述待读取文件进行读取。
7.根据权利要求6所述的方法,其特征在于,所述基于所述热存储区中缓存的所述目标元数据,对所述待读取文件进行读取,包括:
基于所述热存储区中缓存的所述目标元数据,确定所述待读取文件对应的字节数;
在所述待读取文件对应的字节数小于或者等于第二预设字节数的情况下,在所述目标元数据在所述热存储区的缓存地址下,获取所述待读取文件;所述第二预设字节数小于所述第一预设字节数;
在所述待读取文件对应的字节数大于所述第二预设字节数、且小于或者等于所述第一预设字节数的情况下,根据所述目标元数据,确定所述待读取文件在所述冷存储区中的存储地址,基于所述存储地址,获取所述待读取文件;
所述基于所述冷存储区中存储的所述目标元数据,对所述待读取文件进行读取,包括:
基于所述冷存储区存储的所述目标元数据,确定所述待读取文件在所述冷存储区中的存储地址,基于所述存储地址,获取所述待读取文件。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
基于所述读取请求,更新所述待读取文件的历史读取信息;
在基于所述历史读取信息确定的读取频率大于或者等于预设读取频率的情况下,确认所述待读取文件在所述热存储区中的缓存情况;
在所述热存储区中未缓存所述待读取文件的情况下,在所述热存储区中确认所述目标元数据的缓存情况;
根据所述目标元数据在所述热存储区中的缓存情况,将所述待读取文件缓存至所述热存储区中。
9.根据权利要求8所述的方法,其特征在于,所述根据所述目标元数据在所述热存储区中的缓存情况,将所述待读取文件缓存至所述热存储区中,包括:
在所述热存储区中缓存有所述目标元数据的情况下,从所述冷存储区中获取所述待读取文件,将所述待读取文件缓存至所述热存储区中;
在所述热存储区中未缓存所述目标元数据的情况下,从所述冷存储区中获取所述目标元数据和所述待读取文件,将所述目标元数据和所述待读取文件均缓存至所述热存储区中。
10.一种文件存储和读取系统,其特征在于,所述系统包括:存储处理器、存储区、内容感知处理器、空间释放处理器和读取处理器;所述存储区包括热存储区和冷存储区;
所述存储处理器,用于基于针对待存储的第一文件的存储请求,获取所述第一文件的元数据,在所述第一文件为目标文件的情况下,将所述存储请求发送至所述存储区,以及,将针对所述第一文件的内容感知请求发送至所述内容感知处理器;所述目标文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件;
所述存储区,用于响应于所述存储处理器发送的存储请求,将所述第一文件和所述元数据缓存至所述冷存储区中,将所述元数据缓存至所述热存储区中;
所述内容感知处理器,用于响应于所述存储处理器发送的内容感知请求,对所述第一文件进行内容感知处理,得到所述第一文件的语义特征,将所述语义特征添加至所述第一文件缓存在所述热存储区的元数据中,得到所述第一文件的第一元数据;
所述空间释放处理器,用于在所述热存储区中缓存的第一元数据的数量达到数量阈值的情况下,根据所述热存储区缓存的各个第一元数据,对所述各个第一元数据在所述冷存储区中对应的各个第一文件进行合并处理,得到至少一个第二文件,并删除所述热存储区中缓存的所述各个第一元数据;
所述读取处理器,用于基于针对待读取文件的读取请求,在所述热存储区中确认所述待读取文件的目标元数据的缓存情况,在所述热存储区中缓存有所述目标元数据的情况下,基于所述热存储区中缓存的目标元数据,对所述待读取文件进行读取,在所述热存储区中未缓存所述目标元数据的情况下,在所述冷存储区中确定所述目标元数据,并基于所述冷存储区中存储的所述目标元数据,对所述待读取文件进行读取;所述待读取文件为存储的数据为非结构数据、且对应的字节数小于或者等于第一预设字节数的非二进制文件。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的文件存储方法或权利要求6至9中任一项所述的文件读取方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的文件存储方法或权利要求6至9中任一项所述的文件读取方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的文件存储方法或权利要求6至9中任一项所述的文件读取方法的步骤。
CN202311420184.2A 2023-10-30 2023-10-30 文件存储方法、文件读取方法、文件存储和读取系统 Active CN117493284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311420184.2A CN117493284B (zh) 2023-10-30 2023-10-30 文件存储方法、文件读取方法、文件存储和读取系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311420184.2A CN117493284B (zh) 2023-10-30 2023-10-30 文件存储方法、文件读取方法、文件存储和读取系统

Publications (2)

Publication Number Publication Date
CN117493284A true CN117493284A (zh) 2024-02-02
CN117493284B CN117493284B (zh) 2024-07-02

Family

ID=89671800

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311420184.2A Active CN117493284B (zh) 2023-10-30 2023-10-30 文件存储方法、文件读取方法、文件存储和读取系统

Country Status (1)

Country Link
CN (1) CN117493284B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723056A (zh) * 2020-06-09 2020-09-29 北京青云科技股份有限公司 小文件的处理方法、装置、设备和存储介质
US20210279227A1 (en) * 2020-03-03 2021-09-09 Komprise Inc. System and methods for capturing and storing metadata from access logs and storage systems and improving storage efficiency of data and method therefor
CN113704204A (zh) * 2021-04-07 2021-11-26 腾讯科技(深圳)有限公司 数据文件处理方法、装置、电子设备及存储介质
CN114936010A (zh) * 2022-07-20 2022-08-23 阿里巴巴(中国)有限公司 数据处理方法、装置、设备及介质
CN115481086A (zh) * 2022-08-26 2022-12-16 浙江大华技术股份有限公司 一种海量小文件读写方法、系统、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210279227A1 (en) * 2020-03-03 2021-09-09 Komprise Inc. System and methods for capturing and storing metadata from access logs and storage systems and improving storage efficiency of data and method therefor
CN111723056A (zh) * 2020-06-09 2020-09-29 北京青云科技股份有限公司 小文件的处理方法、装置、设备和存储介质
CN113704204A (zh) * 2021-04-07 2021-11-26 腾讯科技(深圳)有限公司 数据文件处理方法、装置、电子设备及存储介质
CN114936010A (zh) * 2022-07-20 2022-08-23 阿里巴巴(中国)有限公司 数据处理方法、装置、设备及介质
CN115481086A (zh) * 2022-08-26 2022-12-16 浙江大华技术股份有限公司 一种海量小文件读写方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
CN117493284B (zh) 2024-07-02

Similar Documents

Publication Publication Date Title
US9672267B2 (en) Hybrid data management system and method for managing large, varying datasets
KR102564170B1 (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
CN103020315B (zh) 一种基于主从分布式文件系统的海量小文件存储方法
US9715434B1 (en) System and method for estimating storage space needed to store data migrated from a source storage to a target storage
US8943032B1 (en) System and method for data migration using hybrid modes
US9367448B1 (en) Method and system for determining data integrity for garbage collection of data storage systems
CN110018998B (zh) 一种文件管理方法、系统及电子设备和存储介质
JP6050503B2 (ja) 階層キャッシュを用いたメールのインデックス化および検索
CN103595797B (zh) 一种分布式存储系统中的缓存方法
CN109766318B (zh) 文件读取方法及装置
US10909091B1 (en) On-demand data schema modifications
CN112416880A (zh) 一种基于实时归并的海量小文件存储性能优化方法及装置
Zhai et al. Hadoop perfect file: A fast and memory-efficient metadata access archive file to face small files problem in hdfs
CN117493284B (zh) 文件存储方法、文件读取方法、文件存储和读取系统
US20090259617A1 (en) Method And System For Data Management
US11943294B1 (en) Storage medium and compression for object stores
CN115576947A (zh) 一种数据管理方法、装置、组合库、电子设备及存储介质
CN114416676A (zh) 数据处理方法、装置、设备和存储介质
Bin et al. Storage and access optimization scheme based on correlation probabilities in the internet of vehicles
CN116756137B (zh) 大规模数据对象存储的重删方法、系统及设备
CN117076413B (zh) 一种支持多协议互通的对象多版本存储系统
CN116821102B (zh) 数据迁移方法、装置、计算机设备和存储介质
JP7377915B2 (ja) 個別データ検索サービスを提供する方法、コンピュータ装置、およびコンピュータプログラム
CN114138552B (zh) 数据动态重删方法、系统、终端及存储介质
CN117807174A (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
GR01 Patent grant