CN113704204A - 数据文件处理方法、装置、电子设备及存储介质 - Google Patents
数据文件处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113704204A CN113704204A CN202110373852.5A CN202110373852A CN113704204A CN 113704204 A CN113704204 A CN 113704204A CN 202110373852 A CN202110373852 A CN 202110373852A CN 113704204 A CN113704204 A CN 113704204A
- Authority
- CN
- China
- Prior art keywords
- file
- data file
- data
- storage space
- metadata
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据文件处理方法、装置、电子设备及计算机可读存储介质;方法包括:响应于针对数据文件的读取请求,调用文件读取接口对数据文件的读取请求进行解析,得到数据文件的标识;基于数据文件的标识遍历第一存储空间,确定数据文件的存储状态;当数据文件的存储状态表征数据文件已缓存时,基于数据文件的标识,从第一存储空间获取数据文件的元数据;基于数据文件的元数据,从第二存储空间获取数据文件的文件数据。通过本申请,能够加快数据文件的读取效率。
Description
技术领域
本申请涉及计算机数据技术,尤其涉及一种数据文件处理方法、装置、电子设备及计算机可读存储介质。
背景技术
在大数据爆发的时代,通常存在海量的数据文件,例如计算机视觉方向需要用到上亿级别的数据文件进行模型训练,电商应用需要用到上万的商品图片信息进行商品展示,人员管理系统需要用到上千的人员照片信息进行签到等。
面对数据的大爆炸,相关技术将数据文件存储到文件服务器中。由于文件服务器存储了上千万个数据文件时,导致在需要读取某个数据文件时,读取速度远远满足不了现实的读取要求,相关技术缺乏高效的文件读取方法。
发明内容
本申请实施例提供一种数据文件处理方法、装置、电子设备及计算机可读存储介质,能够加快数据文件的读取效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据文件处理方法,包括:
响应于针对数据文件的读取请求,调用文件读取接口对所述数据文件的读取请求进行解析,得到所述数据文件的标识;
基于所述数据文件的标识遍历第一存储空间,确定所述数据文件的存储状态;
当所述数据文件的存储状态表征所述数据文件已缓存时,基于所述数据文件的标识,从所述第一存储空间获取所述数据文件的元数据;
基于所述数据文件的元数据,从第二存储空间获取所述数据文件的文件数据。
上述技术方案中,所述基于所述数据文件的标识遍历第一存储空间,确定所述数据文件的存储状态之后,所述方法还包括:
当所述数据文件的存储状态表征所述数据文件未缓存时,基于所述数据文件的标识,调用所述文件读取接口从元数据服务器中获取所述数据文件的元数据;
基于所述数据文件的元数据,调用所述文件读取接口从文件服务器获取所述数据文件的文件数据。
上述技术方案中,所述基于所述数据文件的标识,调用所述文件读取接口从元数据服务器中获取所述数据文件的元数据之后,所述方法还包括:
将所述数据文件的元数据存储至所述第一存储空间,并
将所述数据文件的文件数据存储至所述第二存储空间。
上述技术方案中,所述将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间,包括:
遍历所述数据文件的历史日志,确定所述数据文件的读取频率;
当所述数据文件的读取频率大于读取频率阈值时,将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
上述技术方案中,所述将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间,包括:
对所述数据文件进行特征提取处理,得到所述数据文件的特征信息;
基于所述数据文件的特征信息进行预测处理,得到所述数据文件的缓存等级;
当所述数据文件的缓存等级表征所述数据文件需要缓存时,将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
上述技术方案中,所述方法还包括:
当所述第一存储空间的可用的存储空间小于第一存储空间阈值时,或者,当设定的第一缓存清理时刻到达时,删除所述第一存储空间中的部分所述数据文件的元数据,直至所述第一存储空间的可用的存储空间不小于所述第一存储空间阈值;
当所述第二存储空间的可用的存储空间小于第二存储空间阈值时,或者,当设定的第二缓存清理时刻到达时,删除所述第二存储空间中的部分所述数据文件的文件数据,直至所述第二存储空间的可用的存储空间不小于所述第二存储空间阈值。
上述技术方案中,所述删除所述第二存储空间中的部分所述数据文件的文件数据,包括:
基于所述文件数据未读取的时长,对所述第二存储空间中的所述数据文件的文件数据进行降序排序,删除所述降序排序在前的部分所述数据文件的文件数据;或者,
基于所述文件数据的读取次数,对所述第二存储空间中的所述数据文件的文件数据进行升序排序,删除所述升序排序在前的部分所述数据文件的文件数据。
本申请实施例提供一种数据文件处理装置,包括:
调用模块,用于响应于针对数据文件的读取请求,调用文件读取接口对所述数据文件的读取请求进行解析,得到所述数据文件的标识;
确定模块,用于基于所述数据文件的标识遍历第一存储空间,确定所述数据文件的存储状态;
第一读取模块,用于当所述数据文件的存储状态表征所述数据文件已缓存时,基于所述数据文件的标识,从所述第一存储空间获取所述数据文件的元数据;基于所述数据文件的元数据,从第二存储空间获取所述数据文件的文件数据。
上述技术方案中,所述装置还包括:
第二读取模块,用于当所述数据文件的存储状态表征所述数据文件未缓存时,基于所述数据文件的标识,调用所述文件读取接口从元数据服务器中获取所述数据文件的元数据;
基于所述数据文件的元数据,调用所述文件读取接口从文件服务器获取所述数据文件的文件数据。
上述技术方案中,所述装置还包括:
存储模块,用于将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
上述技术方案中,所述存储模块还用于遍历所述数据文件的历史日志,确定所述数据文件的读取频率;
当所述数据文件的读取频率大于读取频率阈值时,将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
上述技术方案中,所述存储模块还用于对所述数据文件进行特征提取处理,得到所述数据文件的特征信息;
基于所述数据文件的特征信息进行预测处理,得到所述数据文件的缓存等级;
当所述数据文件的缓存等级表征所述数据文件需要缓存时,将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
上述技术方案中,所述存储模块还用于将所述第一存储空间划分为多个第一区块,其中,所述第一区块与所述缓存等级一一对应;
将所述第二存储空间划分为多个第二区块,其中,所述第二区块与所述缓存等级一一对应;
将所述数据文件的元数据存储至与所述数据文件的缓存等级对应的所述第一区块中;
将所述数据文件的文件数据存储至与所述数据文件的缓存等级对应的所述第二区块中。
上述技术方案中,所述装置还包括:
第一处理模块,用于当已读取的历史数据文件与所述数据文件的相似度大于相似度阈值时,调用所述文件读取接口预先从元数据服务器中获取所述数据文件的元数据,并将所述数据文件的元数据存储至所述第一存储空间;
基于所述数据文件的元数据,调用所述文件读取接口预先从文件服务器获取所述数据文件的文件数据,并将所述数据文件的文件数据存储至所述第二存储空间。
上述技术方案中,所述装置还包括:
更新模块,用于对从所述第二存储空间获取的所述数据文件的文件数据进行更新验证;
当通过更新验证确定文件服务器对应的所述数据文件的文件数据发生更新时,从所述文件服务器获取更新的所述数据文件的文件数据,并基于更新的所述数据文件的文件数据更新所述第二存储空间。
上述技术方案中,所述更新模块还用于对从所述第二存储空间获取的所述数据文件的文件数据进行编码,得到对应的验证码;
当从所述文件服务器获取的验证码与编码得到的验证码不一致时,确定所述第二存储空间存储的所述数据文件的文件数据需要进行更新。
上述技术方案中,所述装置还包括:
第二处理模块,用于当所述第一存储空间的可用的存储空间小于第一存储空间阈值时,或者,当设定的第一缓存清理时刻到达时,删除所述第一存储空间中的部分所述数据文件的元数据,直至所述第一存储空间的可用的存储空间不小于所述第一存储空间阈值;
当所述第二存储空间的可用的存储空间小于第二存储空间阈值时,或者,当设定的第二缓存清理时刻到达时,删除所述第二存储空间中的部分所述数据文件的文件数据,直至所述第二存储空间的可用的存储空间不小于所述第二存储空间阈值。
上述技术方案中,所述第二处理模块还用于基于所述文件数据未读取的时长,对所述第二存储空间中的所述数据文件的文件数据进行降序排序,删除所述降序排序在前的部分所述数据文件的文件数据;或者,
基于所述文件数据的读取次数,对所述第二存储空间中的所述数据文件的文件数据进行升序排序,删除所述升序排序在前的部分所述数据文件的文件数据。
本申请实施例提供一种用于数据文件处理的电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的数据文件处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的数据文件处理方法。
本申请实施例提供一种计算机程序,用于引起处理器执行时,实现本申请实施例提供的数据文件处理方法。
本申请实施例具有以下有益效果:
通过调用文件读取接口读取数据文件的文件数据,减少系统中用户态与内核态之间的切换开销,提高系统的稳定性;并且,通过数据文件的标识,确定数据文件是否已缓存,当数据文件已缓存时,从第二存储空间中获取数据文件的文件数据,从而提高数据文件的读取效率。
附图说明
图1是本申请实施例提供的分布式文件系统的应用场景示意图;
图2是本申请实施例提供的用于数据文件处理的电子设备的结构示意图;
图3-图5是本申请实施例提供的数据文件处理方法的流程示意图;
图6是本申请实施例提供的数据文件处理方法的流程示意图;
图7是本申请实施例提供的未命中缓存时的数据流的示意图;
图8是本申请实施例提供的命中缓存时的数据流的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)客户端:终端中运行的用于提供各种服务的应用程序,例如视频播放客户端、游戏客户端等。
2)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
3)人工智能(Artificial Intelligence,AI):计算机科学的一个综合技术,通过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理技术以及机器学习/深度学习等几大方向,随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
4)Ceph:一种分布式文件系统,专为对象存储和云基础架构而设计,能够在维护POSIX兼容性的同时加入了复制和容错功能。其中,Ceph最底层的存储单元是数据文件,每个数据文件包含元数据和文件数据。
5)Ceph文件系统(CephFS,Ceph File System):一种POSIX兼容的文件系统,它使用Ceph存储集群来存储数据,通过CephFS可以像访问本地硬盘一样直接访问Ceph文件。
6)元数据服务器(MDS,Metadata Server):Ceph元数据服务器,是Ceph集群中存储文件的元数据的模块。CephFS客户端在访问Ceph内的文件时,会请求MDS得到文件的元数据信息。其中,元数据包括数据文件的文件名和属性信息,元数据与数据是隔离开的。
7)文件服务器(RADOS,Reliable Autonomic Distributed Object Store):一种可靠自主的分布式对象存储,能够在多存储设备机群之上提供一种稳定、可扩展、高性能的单一逻辑对象(Object)存储接口和能够实现节点的自适应和自管理的存储系统,用于存储数据文件的文件数据。
8)Linux文件系统:Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。
9)用户态(User Mode):在中央处理器(CPU,Central Processing Unit)的设计中,用户态指非特权状态。在此状态下,执行的代码被硬件限定,不能进行某些操作,比如写入其他进程的存储空间,以防止给操作系统带来安全隐患。在操作系统的设计中,用户态也类似,指非特权的执行状态。内核禁止此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。
10)内核态:在处理器的存储保护中,也被称为特权态。内核态是操作系统内核所运行的模式,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。
用户态切换到内核态的方式包括:系统调用,这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作;异常,当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中;外围设备的中断,当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序。
本申请实施例提供了一种数据文件处理方法、装置、电子设备及计算机可读存储介质,能够加快数据文件的读取效率。
本申请实施例所提供的数据文件处理方法,可以由终端或服务器独自实现;也可以由终端和服务器协同实现,例如终端独自承担下文所述的数据文件处理方法,或者,终端向服务器发送针对数据文件的读取请求,服务器根据接收的针对数据文件的读取请求执行数据文件处理方法,从第二存储空间获取数据文件的文件数据,以实现读取数据文件的操作。
本申请实施例提供的用于数据文件处理的电子设备可以是各种类型的终端或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CD N、以及大数据和人工智能平台等基础云计算服务的云服务器;终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
以服务器为例,例如可以是部署在云端的服务器集群,向用户开放人工智能云服务(AI as a Service,AIaaS),AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务,这种服务模式类似于一个AI主题商城,所有的用户都可以通过应用程序编程接口的方式来接入使用AIaaS平台提供的一种或者多种人工智能服务。
例如,其中的一种人工智能云服务可以为数据文件处理服务,即云端的服务器封装有本申请实施例提供的数据文件处理的程序。用户通过终端(运行有客户端)调用云服务中的数据文件处理服务,以使部署在云端的服务器调用封装的数据文件处理的程序,响应于针对数据文件的读取请求,调用文件读取接口,确定数据文件的存储状态,当数据文件的存储状态表征数据文件已缓存时,从第二存储空间获取数据文件的文件数据。
参见图1,图1是本申请实施例提供的分布式文件系统10的应用场景示意图,终端200通过网络300连接服务器(示例性示出元数据服务器100-1、文件服务器100-2),网络300可以是广域网或者局域网,又或者是二者的组合。
终端(运行有客户端,例如模型训练客户端、音乐客户端、视频客户、教育客户端等)可以被用来获取针对数据文件的读取请求,例如,当用户打开终端上运行的模型训练客户端后,并选择需要训练的模型,终端自动获取针对数据文件的读取请求,以通过读取的数据文件训练该模型。
在一些实施例中,终端200获取针对数据文件的读取请求后,调用文件读取接口,确定数据文件的存储状态,当数据文件的存储状态表征数据文件已缓存时,从终端200本地的第二存储空间获取数据文件的文件数据,以响应针对数据文件的读取请求。
在一些实施例中,终端200获取针对数据文件的读取请求后,调用文件读取接口,确定数据文件的存储状态,当数据文件的存储状态表征数据文件未缓存时,调用文件读取接口,基于数据文件的标识,从元数据服务器100-1中获取训练数据文件的元数据,从文件服务器100-2获取训练数据文件的文件数据,将训练数据文件的元数据存储至终端200本地的第一存储空间,并将训练数据文件的文件数据存储至终端200本地的第二存储空间,基于数据文件的文件数据响应针对数据文件的读取请求。
作为一个应用示例,对于模型训练应用(通过大量的训练数据进行模型训练),当用户打开终端上运行的模型训练客户端后,并选择需要训练的模型,终端自动获取针对训练数据文件的读取请求,终端基于针对训练数据文件的读取请求,调用文件读取接口,基于针对训练数据文件的读取请求,确定训练数据文件的存储状态,当训练数据文件的存储状态表征训练数据文件已缓存时,从终端本地的第二存储空间获取训练数据文件的文件数据,以响应针对训练数据文件的读取请求,从而基于读取的训练数据文件进行模型训练,避免从文件服务器中获取训练数据文件,以加快模型训练的速度;当训练数据文件的存储状态表征训练数据文件未缓存时,基于训练数据文件的标识,调用文件读取接口从元数据服务器中获取训练数据文件的元数据,从文件服务器获取训练数据文件的文件数据,将训练数据文件的元数据存储至终端本地的第一存储空间,并将训练数据文件的文件数据存储至终端本地的第二存储空间,后续再读取该训练数据文件时,可以直接从终端本地的第二存储空间获取,避免从文件服务器中获取训练数据文件,以加快模型训练的速度。
作为另一个应用示例,对于音乐应用(可播放海量的音乐),当用户打开终端上运行的音乐客户端后,并选择需要播放的音乐,终端自动获取针对音乐文件的读取请求,终端基于针对音乐文件的读取请求,调用文件读取接口,基于针对音乐文件的读取请求,确定音乐文件的存储状态,当音乐文件的存储状态表征音乐文件已缓存时,从终端本地的第二存储空间获取音乐文件的文件数据,以响应针对音乐文件的读取请求,从而基于读取的音乐文件进行音乐播放,避免从文件服务器中获取音乐文件,以加快音乐播放的速度。
本申请实施例可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
下面说明本申请实施例提供的用于数据文件处理的电子设备的结构,参见图2,图2是本申请实施例提供的用于数据文件处理的电子设备500的结构示意图,以电子设备500是终端为例说明,图2所示的用于数据文件处理的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的数据文件处理装置可以采用软件方式实现,本申请实施例提供的数据文件处理装置可以提供为各种软件实施例,包括应用程序、软件、软件模块、脚本或代码在内的各种形式。
图2示出了存储在存储器550中的数据文件处理装置555,其可以是程序和插件等形式的软件,并包括一系列的模块,包括调用模块5551、确定模块5552、第一读取模块5553、第二读取模块5554、存储模块5555、第一处理模块5556、更新模块5557以及第二处理模块5558,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
如前所述,本申请实施例提供的数据文件处理方法可以由各种类型的电子设备实施。参见图3,图3是本申请实施例提供的数据文件处理方法的流程示意图,结合图3示出的步骤进行说明。
在下面步骤中,第一存储空间用于存储元数据,第二存储空间用于存储文件数据。第一存储空间和第二存储空间可以相同,也可以不同,例如,由于内存的读取速度快、但存储空间小,适用于存储元数据,由于固态硬盘的存储空间大、但读取速度慢,适用于存储文件数据,因此第一存储空间可以是内存,第二存储空间可以是固态硬盘;若不考虑存储大小,对读取速度要求比较高时,第一存储空间和第二存储空间也可以都是内存;若不考虑读取速度,对存储空间要求比较高时,第一存储空间和第二存储空间也可以都是固态硬盘。
在下面步骤中,文件数据可以是文本、图像、音频、视频等形式的数据,例如,在新闻推荐场景,文件数据可以是文本形式的新闻;在人脸识别场景,文本数据可以是图像形式的人脸图像等。
在步骤101中,响应于针对数据文件的读取请求,调用文件读取接口对数据文件的读取请求进行解析,得到数据文件的标识。
作为获取针对数据文件的读取请求的示例,当用户打开终端上运行的模型训练客户端后,并选择需要训练的模型,终端的用户程序自动获取针对数据文件的读取请求,以通过读取的数据文件训练该模型。
在获取针对数据文件的读取请求后,终端调用文件读取接口,直接基于针对数据文件的读取请求获取数据文件,以避免调用Linux文件系统,从而减小用户态与内核态的切换开销,以提高后续读取文件数据的速度,并提高文件读取的稳定性。
在步骤102中,基于数据文件的标识遍历第一存储空间,确定数据文件的存储状态。
其中,数据文件的标识用于唯一标识数据文件,例如数据文件的标识可以是文件名、文件身份标识(ID)等。在获取针对数据文件的读取请求后,解析数据文件,获取数据文件的标识,并基于数据文件的标识遍历第一存储空间,当在第一存储空间遍历到该数据文件的元数据,则命中缓存,确定数据文件的存储状态为已缓存,则可通过调用文件读取接口直接从本地获取文件数据,无需通过网络访问文件服务器,从而提升获取数据文件的速度;当在第一存储空间未遍历到该数据文件的元数据,则未命中缓存,确定数据文件的存储状态为未缓存,则可通过调用文件读取接口从文件服务器中获取文件数据,解决终端存储空间不足的问题。
参见图4,图4是本申请实施例提供的数据文件处理方法的一个可选的流程示意图,图4示出图3还包括步骤106-步骤109实现:在步骤106中,当数据文件的存储状态表征数据文件未缓存时,基于数据文件的标识,调用文件读取接口从元数据服务器中获取数据文件的元数据;在步骤107中,基于数据文件的元数据,调用文件读取接口从文件服务器获取数据文件的文件数据;在步骤108中,将数据文件的元数据存储至第一存储空间;在步骤109中,将数据文件的文件数据存储至第二存储空间。
例如,当数据文件的存储状态表征数据文件未缓存时,则说明该数据文件是第一次读取,需要从元数据服务器中获取数据文件的元数据,从文件服务器获取数据文件的文件数据,并将数据文件的元数据缓存至内存,将数据文件的文件数据缓存至SSD中,避免下次读取该数据文件时,再次从元数据服务器中获取数据文件的元数据,从文件服务器获取数据文件的文件数据,避免与Ceph进行交互,大大缩短了输入输出(I/O)时间。
在一些实施例中,将数据文件的元数据存储至第一存储空间,并将数据文件的文件数据存储至第二存储空间,包括:遍历数据文件的历史日志,确定数据文件的读取频率;当数据文件的读取频率大于读取频率阈值时,将数据文件的元数据存储至第一存储空间,并将数据文件的文件数据存储至第二存储空间。
承接上述示例,当数据文件不是经常使用的文件,即少量读取该数据文件,无需将数据文件缓存至终端本地,节省终端的存储空间。通过数据文件的历史日志,确定在设定的时间间隔内数据文件的读取次数,以确定数据文件的读取频率,当数据文件的读取频率大于读取频率阈值时,则说明经常使用该数据文件,将数据文件的元数据存储至第一存储空间,并将数据文件的文件数据存储至第二存储空间,以便下次读取该数据文件,避免与Ceph进行交互,大大缩短了I/O时间;当数据文件的读取频率小于或者等于读取频率阈值时,则说明不经常使用该数据文件,则无需将数据文件缓存至终端本地,节省终端的存储空间,下次仍可以从元数据服务器中获取数据文件的元数据,从文件服务器获取数据文件的文件数据。
在一些实施例中,将数据文件的元数据存储至第一存储空间,并将数据文件的文件数据存储至第二存储空间,包括:对数据文件进行特征提取处理,得到数据文件的特征信息;基于数据文件的特征信息进行预测处理,得到数据文件的缓存等级;当数据文件的缓存等级表征数据文件需要缓存时,将数据文件的元数据存储至第一存储空间,并将数据文件的文件数据存储至第二存储空间。
承接上述示例,通过神经网络模型对数据文件进行特征提取处理,得到数据文件的特征信息,基于数据文件的特征信息进行预测处理,得到数据文件的缓存等级,当数据文件的缓存等级表征数据文件需要缓存时,将数据文件的元数据存储至第一存储空间,并将数据文件的文件数据存储至第二存储空间;当数据文件的缓存等级表征数据文件不需要缓存时,则无需将数据文件缓存至终端本地,节省终端的存储空间,下次仍可以从元数据服务器中获取数据文件的元数据,从文件服务器获取数据文件的文件数据。
例如,通过神经网络模型对数据文件进行特征提取处理,得到数据文件的多个模态的特征,对数据文件的多个模态的特征进行融合处理,得到数据文件的多模态融合特征,对目标用户的历史交互行为数据进行特征提取处理,得到目标用户的兴趣特征,将数据文件的多模态融合特征与目标用户的兴趣特征进行相似度处理,得到数据文件与目标用户之间的相似度,将该相似度作为数据文件的缓存等级。其中,多个模态的特征包括:文本表示特征、音频表示特征、图像表示特征。其中,神经网络模型并不局限于循环神经网络(RNN,Recurrent Neural Network)、卷积神经网络(CNN,Convolutional Neural Networks)、深度神经网络(DNN,Deep Neural Networks)等。
承接上述示例,通过多个神经网络模型对数据文件进行预测,得到多个神经网络模型的缓存等级,基于多个神经网络模型的权重,对多个神经网络模型的缓存等级进行加权求和,得到数据文件的缓存等级,从而通过多个神经网络模型的预测,使得数据文件的缓存等级的准确度越高,避免某个神经网络模型出现错误,导致预测的数据文件的缓存等级出现错误。
在一些实施例中,将数据文件的元数据存储至第一存储空间之前,方法还包括:将第一存储空间划分为多个第一区块,其中,第一区块与缓存等级一一对应;将第二存储空间划分为多个第二区块,其中,第二区块与缓存等级一一对应;相应地,将数据文件的元数据存储至第一存储空间,包括:将数据文件的元数据存储至与数据文件的缓存等级对应的第一区块中;相应地,将数据文件的文件数据存储至第二存储空间,包括:将数据文件的文件数据存储至与数据文件的缓存等级对应的第二区块中。
例如,数据文件的缓存等级可以是多个等级,例如一级、二级、三级等,将第一存储空间划分成与缓存等级对应的多个第一区块,将第二存储空间划分成与缓存等级对应的多个第二区块,例如,缓存等级是5个等级,则将第一存储空间划分成5个第一区块,将第二存储空间划分成5个第二区块。在存储元数据时,将数据文件的元数据存储至与数据文件的缓存等级对应的第一区块中,在存储文件数据时,将数据文件的文件数据存储至与数据文件的缓存等级对应的第二区块中,以便后续在已知数据文件的缓存等级的情况下,只需读取与缓存等级对应的区块,从而加快数据文件的读取速度。
在一些实施例中,基于数据文件的标识遍历第一存储空间,确定数据文件的存储状态之前,方法还包括:当已读取的历史数据文件与数据文件的相似度大于相似度阈值时,调用文件读取接口预先从元数据服务器中获取数据文件的元数据,并将数据文件的元数据存储至第一存储空间;基于数据文件的元数据,调用文件读取接口预先从文件服务器获取数据文件的文件数据,并将数据文件的文件数据存储至第二存储空间。
例如,为了避免在需要读取数据文件时,再从文件服务器中读取数据文件,可以先预先从文件服务器中读取数据文件,并将数据文件的文件数据存储至第二存储空间。在读取历史数据文件后,基于数据文件的文件类型或者文件的内容,确定已读取的历史数据文件与数据文件的相似度,例如已读取的历史数据文件与数据文件的文件类型都为人脸训练样本,则已读取的历史数据文件与数据文件的相似度为100%,当已读取的历史数据文件与数据文件的相似度大于相似度阈值时,则说明后续很有可能读取该数据文件,因此,可以调用文件读取接口预先从元数据服务器中获取数据文件的元数据,并将数据文件的元数据存储至第一存储空间;当已读取的历史数据文件与数据文件的相似度小于或者等于相似度阈值时,则说明后续很可能不会读取该数据文件,因此,无需预先从元数据服务器中获取数据文件的元数据。
在步骤103中,当数据文件的存储状态表征数据文件已缓存时,基于数据文件的标识,从第一存储空间获取数据文件的元数据。
例如,当数据文件的存储状态表征数据文件已缓存时,则说明该数据文件的元数据缓存于终端本地的第一存储空间中,因此,可以直接从终端本地的第一存储空间中获取数据文件的元数据,以便后续基于数据文件的元数据从终端本地的获取数据文件的文件数据。
在步骤104中,基于数据文件的元数据,从第二存储空间获取数据文件的文件数据。
例如,元数据包括数据文件的地址,在获取数据文件的元数据后,基于元数据中数据文件的地址,从第二存储空间获取数据文件的文件数据,从而基于数据文件的文件数据响应针对数据文件的读取请求。
参见图5,图5是本申请实施例提供的数据文件处理方法的一个可选的流程示意图,图5示出图4还包括步骤110-步骤111实现:在步骤110中,对从第二存储空间获取的数据文件的文件数据进行更新验证;在步骤111中,当通过更新验证确定文件服务器对应的数据文件的文件数据发生更新时,从文件服务器获取更新的数据文件的文件数据,并基于更新的数据文件的文件数据更新第二存储空间。
例如,当文件服务器中的文件数据发生更新时,则第二存储空间缓存的文件数据已过期,需要与文件服务器中的文件数据同步。因此,在从终端本地的第二存储空间获取数据文件的文件数据后,需要对从第二存储空间获取的数据文件的文件数据进行更新验证,当确定第二存储空间的文件数据已过期,需要进行更新时,从文件服务器获取更新的数据文件的文件数据,并基于更新的数据文件的文件数据更新第二存储空间。
在一些实施例中,对从第二存储空间获取的数据文件的文件数据进行更新验证,包括:对从第二存储空间获取的数据文件的文件数据进行编码,得到对应的验证码;当从文件服务器获取的验证码与编码得到的验证码不一致时,确定第二存储空间存储的数据文件的文件数据需要进行更新。
例如,对从第二存储空间获取的数据文件的文件数据进行编码,得到第二存储空间对应的验证码,对文件服务器中的数据文件的文件数据进行编码,得到文件服务器对应的验证码,当文件服务器对应的验证码与第二存储空间对应的验证码不一致时,则说明第二存储空间的文件数据已过期,第二存储空间存储的数据文件的文件数据需要进行更新;当文件服务器对应的验证码与第二存储空间对应的验证码一致时,则说明第二存储空间的文件数据未过期,第二存储空间存储的数据文件的文件数据不需要进行更新。其中,编码算法并不局限于ASCII编码、Base64编码等。
在一些实施例中,由于第一存储空间有限,因此,当第一存储空间的可用的存储空间小于第一存储空间阈值时,或者,当设定的第一缓存清理时刻到达时,删除第一存储空间中的部分数据文件的元数据,直至第一存储空间的可用的存储空间不小于第一存储空间阈值。
在一些实施例中,由于第二存储空间有限,因此,当第二存储空间的可用的存储空间小于第二存储空间阈值时,或者,当设定的第二缓存清理时刻到达时,删除第二存储空间中的部分数据文件的文件数据,直至第二存储空间的可用的存储空间不小于第二存储空间阈值。
例如,删除第二存储空间中的部分数据文件的文件数据,包括:基于文件数据未读取的时长,对第二存储空间中的数据文件的文件数据进行降序排序,删除降序排序在前的部分数据文件的文件数据。例如,第二存储空间有100个文件数据,基于文件数据未读取的时长,对这100个文件数据进行降序排序,删除降序排序在前的50个文件数据,直至第二存储空间的可用的存储空间不小于第二存储空间阈值。
例如,删除第二存储空间中的部分数据文件的文件数据,包括:基于文件数据的读取次数,对第二存储空间中的数据文件的文件数据进行升序排序,删除升序排序在前的部分数据文件的文件数据。例如,第二存储空间有100个文件数据,基于文件数据的读取次数,对这100个文件数据进行升序排序,删除升序排序在前的50个文件数据,直至第二存储空间的可用的存储空间不小于第二存储空间阈值。
在步骤105中,基于数据文件的文件数据响应针对数据文件的读取请求。
例如,当在第一存储空间遍历到该数据文件的元数据,则命中缓存,确定数据文件的存储状态为已缓存,则可通过调用文件读取接口直接从本地获取文件数据,并响应针对数据文件的读取请求,无需通过网络访问文件服务器,从而提升获取数据文件的速度;当在第一存储空间未遍历到该数据文件的元数据,则未命中缓存,确定数据文件的存储状态为未缓存,则可通过调用文件读取接口从文件服务器中获取文件数据,并响应针对数据文件的读取请求,解决终端存储空间不足的问题。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
在AI和大数据的背景下,机器学习平台承载着提供计算能力的功能。而该场景下通常存在海量的数据文件,例如,计算机视觉方向需要用到上亿级别的数据文件进行模型训练。一般情况下,由于训练会采用多机多卡分布式训练的方式,在机器学习计算平台中,训练的文件会放在云端Ceph中进行存储。
在机器学习训练过程中,一般会对相同的数据集(数据集中的一个训练样本对应一个数据文件)进行多轮训练直至满足训练收敛精度要求后方可停止。因此,相同的数据集会被多次访问,且被访问的频率相同。
相关技术中的Ceph MDS多节点元数据缓存,在Ceph集群中通过元数据缓存备份技术,搭建MDS集群,MDS集群的使用使得系统可以缓存上亿甚至更多的文件的元数据信息在内存中,每次CephFS客户端请求Ceph MDS时,请求可以负载均衡到各个MDS节点上,从而缓解Ceph的MDS过载的问题。
申请人发现,虽然相关技术中的MDS多节点元数据缓存通过增加服务器节点数以提高元数据缓存的性能,来防止MDS集群过载。但是存在以下问题:1)提高元数据缓存性能有上限的,增加服务器节点数导致成本增加;2)该方案最多只能保证MDS集群不过载,而无法防止CephFS客户端请求读取海量文件时自身出现奔溃的情况。
相关技术中的Ceph客户端本地元数据缓存,在Ceph客户端中进行元数据缓存逻辑的执行,每当Ceph-FUSE(Ceph分布式文件系统的用户空间文件系统(FUSE)客户端)从Ceph中读取文件时将文件的元数据缓存在本地,然后不进行清除,从而避免反复读取同一文件的元数据的操作,提升数据读取速度。
申请人发现,虽然相关技术中的Ceph客户端本地元数据缓存通过Ceph客户端将文件的元数据缓存在本地,从而在后续读取相同文件时无需访问MDS。但是存在以下问题:1)只缓存了元数据缓存而没有缓存文件数据,对于文件数据的访问还是需要请求访问RADOS;2)所有的数据请求仍然会经过Linux文件系统,存在较大的用户态与内核态的切换开销。
为了解决上述问题,本申请实施例在AI训练过程中,通过CephFS应用程序接口(API,Application Programming Interface)的方式直接获取Ceph RADOS中的训练数据文件(文件数据),然后异步缓存在本地固态硬盘(SSD,Solid-state Disk)中,后续训练过程中需要访问相同的训练数据文件时可直接从本地SSD中读取,从而加快AI训练速度。
其中,本申请实施例通过CephFS API(文件读取接口)的方式提升初次获取训练数据文件的速度,当AI训练过程中第一次获取训练数据文件时,需要通过网络与CephFS进行交互,此时使用CephFS API可以绕过Linux文件系统,直接读取RADOS中的数据,减少用户态与内核态的切换开销(当发生系统调用、中断、异常时用户态转入内核态),从而提升初次获取训练数据文件的速度;通过本地SSD缓存的方式进行训练数据文件缓存,减少与CephFS的交互,在初次获取训练数据文件时将训练数据文件缓存在本地,后续训练过程中需要访问相同的训练数据文件时可直接从本地SSD中读取,无需通过网络访问CephF S,从而提升获取训练数据文件的速度。
其中,本申请实施例还可通过Ceph-FUSE客户端与Ceph进行交互,将请求的数据文件的元数据和文件数据缓存在Ceph-FUSE客户端,即将本文的技术方案全部放在Ceph-FUSE客户端中进行。
如图6所示,本申请实施例的调用流程如下步骤11-步骤13所示:
步骤11、用户调用文件读取接口;
步骤12、判断该数据文件是否已经命中缓存,
若该数据文件未命中缓存则进行下列操作:
步骤12.1A、根据文件名通过CephFS API从MDS中获取数据文件的元数据(包括文件名、属性、地址);
步骤12.2A、根据数据文件的元数据通过CephFS API从RADOS中读取数据文件的文件数据;
步骤12.3A、将数据文件的元数据缓存在内存中,文件数据保存在本地SSD;
若该数据文件命中缓存,则进行下列操作:
步骤12.1B、根据文件名从内存中获取数据文件的元数据;
步骤12.2B、根据数据文件的元数据,在本地SSD中读取已缓存的文件数据;
步骤13、返回读取的文件数据。
其中,当文件未命中缓存时,数据流如图7所示,如下步骤21-步骤28所示:
步骤21、用户程序向缓存模块发起读取文件请求;
步骤22、缓存模块向MDS发起文件元数据读取请求;
步骤23、MDS将数据文件的元数据返回至缓存模块;
步骤24、缓存模块将数据文件的元数据存储至内存中;
步骤25、缓存模块根据数据文件的元数据,直接向RADOS发起文件数据读取请求;
步骤26、RADOS返回文件数据;
步骤27、缓存模块将文件数据存储至SSD中;
步骤28、缓存模块将文件数据返回至用户程序。
其中,当文件命中缓存时,数据流如图8所示,如下步骤31-步骤34所示:
步骤31、用户程序向缓存模块发起文件读取请求;
步骤32、缓存模块从内存中获取数据文件的元数据;
步骤33、缓存模块从SSD中获取文件数据;
步骤34、缓存模块将文件数据返回至用户程序。
综上,本申请实施例具有以下有益效果:
1)防止Ceph MDS过载,当Ceph中目标路径存储的文件数达到百万级别时,每次训练时请求MDS获取文件元数据会造成大量MDS请求,导致Ceph集群中的MDS过载,本申请实施例能够从源头限制该情况的发生;
2)提升AI训练速度,在AI训练场景下在每轮训练都会读取相同的数据文件,在整个训练过程中这些数据文件被读取的频次相同,针对这种带有一定规律的文件读取方式,本申请实施例能够在第一次训练过程将读取的数据文件的元数据和文件数据缓存下来,后续训练无需与Ceph进行交互,大大缩短了I/O时间。
3)绕过Linux文件系统,加快数据读取速度,本申请实施例直接通过CephFS API的方式进行数据读取,无需在用户态与内核态之间频繁切换,能加快第一次训练的数据读取速度。
至此已经结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的数据文件处理方法,下面继续说明本申请实施例提供的数据文件处理装置555中各个模块配合实现数据文件处理的方案。
调用模块5551,用于响应于针对数据文件的读取请求,调用文件读取接口对所述数据文件的读取请求进行解析,得到所述数据文件的标识;确定模块5552,用于基于所述数据文件的标识遍历第一存储空间,确定所述数据文件的存储状态;第一读取模块5553,用于当所述数据文件的存储状态表征所述数据文件已缓存时,基于所述数据文件的标识,从所述第一存储空间获取所述数据文件的元数据;基于所述数据文件的元数据,从第二存储空间获取所述数据文件的文件数据。
在一些实施例中,所述数据文件处理装置555还包括:第二读取模块5554,用于当所述数据文件的存储状态表征所述数据文件未缓存时,基于所述数据文件的标识,调用所述文件读取接口从元数据服务器中获取所述数据文件的元数据;基于所述数据文件的元数据,调用所述文件读取接口从文件服务器获取所述数据文件的文件数据。
在一些实施例中,所述数据文件处理装置555还包括:存储模块5555,用于将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
在一些实施例中,所述存储模块5555还用于遍历所述数据文件的历史日志,确定所述数据文件的读取频率;当所述数据文件的读取频率大于读取频率阈值时,将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
在一些实施例中,所述存储模块5555还用于对所述数据文件进行特征提取处理,得到所述数据文件的特征信息;基于所述数据文件的特征信息进行预测处理,得到所述数据文件的缓存等级;当所述数据文件的缓存等级表征所述数据文件需要缓存时,将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
在一些实施例中,所述存储模块5555还用于将所述第一存储空间划分为多个第一区块,其中,所述第一区块与所述缓存等级一一对应;将所述第二存储空间划分为多个第二区块,其中,所述第二区块与所述缓存等级一一对应;将所述数据文件的元数据存储至与所述数据文件的缓存等级对应的所述第一区块中;将所述数据文件的文件数据存储至与所述数据文件的缓存等级对应的所述第二区块中。
在一些实施例中,所述数据文件处理装置555还包括:第一处理模块5556,用于当已读取的历史数据文件与所述数据文件的相似度大于相似度阈值时,调用所述文件读取接口预先从元数据服务器中获取所述数据文件的元数据,并将所述数据文件的元数据存储至所述第一存储空间;基于所述数据文件的元数据,调用所述文件读取接口预先从文件服务器获取所述数据文件的文件数据,并将所述数据文件的文件数据存储至所述第二存储空间。
在一些实施例中,所述数据文件处理装置555还包括:更新模块5557,用于对从所述第二存储空间获取的所述数据文件的文件数据进行更新验证;当通过更新验证确定文件服务器对应的所述数据文件的文件数据发生更新时,从所述文件服务器获取更新的所述数据文件的文件数据,并基于更新的所述数据文件的文件数据更新所述第二存储空间。
在一些实施例中,所述更新模块5557还用于对从所述第二存储空间获取的所述数据文件的文件数据进行编码,得到对应的验证码;当从所述文件服务器获取的验证码与编码得到的验证码不一致时,确定所述第二存储空间存储的所述数据文件的文件数据需要进行更新。
在一些实施例中,所述数据文件处理装置555还包括:第二处理模块5558,用于当所述第一存储空间的可用的存储空间小于第一存储空间阈值时,或者,当设定的第一缓存清理时刻到达时,删除所述第一存储空间中的部分所述数据文件的元数据,直至所述第一存储空间的可用的存储空间不小于所述第一存储空间阈值;当所述第二存储空间的可用的存储空间小于第二存储空间阈值时,或者,当设定的第二缓存清理时刻到达时,删除所述第二存储空间中的部分所述数据文件的文件数据,直至所述第二存储空间的可用的存储空间不小于所述第二存储空间阈值。
在一些实施例中,所述第二处理模块5558还用于基于所述文件数据未读取的时长,对所述第二存储空间中的所述数据文件的文件数据进行降序排序,删除所述降序排序在前的部分所述数据文件的文件数据;或者,基于所述文件数据的读取次数,对所述第二存储空间中的所述数据文件的文件数据进行升序排序,删除所述升序排序在前的部分所述数据文件的文件数据。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本申请实施例上述的数据文件处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的数据文件处理方法,例如,如图3-图5示出的数据文件处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种数据文件处理方法,其特征在于,所述方法包括:
响应于针对数据文件的读取请求,调用文件读取接口对所述数据文件的读取请求进行解析,得到所述数据文件的标识;
基于所述数据文件的标识遍历第一存储空间,确定所述数据文件的存储状态;
当所述数据文件的存储状态表征所述数据文件已缓存时,基于所述数据文件的标识,从所述第一存储空间获取所述数据文件的元数据;
基于所述数据文件的元数据,从第二存储空间获取所述数据文件的文件数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据文件的标识遍历第一存储空间,确定所述数据文件的存储状态之后,所述方法还包括:
当所述数据文件的存储状态表征所述数据文件未缓存时,基于所述数据文件的标识,调用所述文件读取接口从元数据服务器中获取所述数据文件的元数据;
基于所述数据文件的元数据,调用所述文件读取接口从文件服务器获取所述数据文件的文件数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述数据文件的标识,调用所述文件读取接口从元数据服务器中获取所述数据文件的元数据之后,所述方法还包括:
将所述数据文件的元数据存储至所述第一存储空间,并
将所述数据文件的文件数据存储至所述第二存储空间。
4.根据权利要求3所述的方法,其特征在于,所述将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间,包括:
遍历所述数据文件的历史日志,确定所述数据文件的读取频率;
当所述数据文件的读取频率大于读取频率阈值时,将所述数据文件的元数据存储至所述第一存储空间,并将所述数据文件的文件数据存储至所述第二存储空间。
5.根据权利要求3所述的方法,其特征在于,
所述将所述数据文件的元数据存储至所述第一存储空间之前,所述方法还包括:
将所述第一存储空间划分为多个第一区块,其中,所述第一区块与缓存等级一一对应;
将所述第二存储空间划分为多个第二区块,其中,所述第二区块与所述缓存等级一一对应;
所述将所述数据文件的元数据存储至所述第一存储空间,包括:
将所述数据文件的元数据存储至与所述数据文件的缓存等级对应的所述第一区块中;
所述将所述数据文件的文件数据存储至所述第二存储空间,包括:
将所述数据文件的文件数据存储至与所述数据文件的缓存等级对应的所述第二区块中。
6.根据权利要求1所述的方法,其特征在于,所述基于所述数据文件的标识遍历第一存储空间,确定所述数据文件的存储状态之前,所述方法还包括:
当已读取的历史数据文件与所述数据文件的相似度大于相似度阈值时,调用所述文件读取接口预先从元数据服务器中获取所述数据文件的元数据,并将所述数据文件的元数据存储至所述第一存储空间;
基于所述数据文件的元数据,调用所述文件读取接口预先从文件服务器获取所述数据文件的文件数据,并将所述数据文件的文件数据存储至所述第二存储空间。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对从所述第二存储空间获取的所述数据文件的文件数据进行更新验证;
当通过更新验证确定文件服务器对应的所述数据文件的文件数据发生更新时,从所述文件服务器获取更新的所述数据文件的文件数据,并基于更新的所述数据文件的文件数据更新所述第二存储空间。
8.根据权利要求7所述的方法,其特征在于,所述对从所述第二存储空间获取的所述数据文件的文件数据进行更新验证,包括:
对从所述第二存储空间获取的所述数据文件的文件数据进行编码,得到对应的验证码;
当从所述文件服务器获取的验证码与编码得到的验证码不一致时,确定所述第二存储空间存储的所述数据文件的文件数据需要进行更新。
9.一种数据文件处理装置,其特征在于,所述装置包括:
调用模块,用于响应于针对数据文件的读取请求,调用文件读取接口对所述数据文件的读取请求进行解析,得到所述数据文件的标识;
确定模块,用于基于所述数据文件的标识遍历第一存储空间,确定所述数据文件的存储状态;
第一读取模块,用于当所述数据文件的存储状态表征所述数据文件已缓存时,基于所述数据文件的标识,从所述第一存储空间获取所述数据文件的元数据;
基于所述数据文件的元数据,从第二存储空间获取所述数据文件的文件数据。
10.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的数据文件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110373852.5A CN113704204A (zh) | 2021-04-07 | 2021-04-07 | 数据文件处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110373852.5A CN113704204A (zh) | 2021-04-07 | 2021-04-07 | 数据文件处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113704204A true CN113704204A (zh) | 2021-11-26 |
Family
ID=78647965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110373852.5A Pending CN113704204A (zh) | 2021-04-07 | 2021-04-07 | 数据文件处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704204A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493276A (zh) * | 2024-01-03 | 2024-02-02 | 柏科数据技术(深圳)股份有限公司 | 针对Ceph文件的读取方法、装置、服务器及存储介质 |
CN117493284A (zh) * | 2023-10-30 | 2024-02-02 | 安徽鼎甲计算机科技有限公司 | 文件存储方法、文件读取方法、文件存储和读取系统 |
-
2021
- 2021-04-07 CN CN202110373852.5A patent/CN113704204A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117493284A (zh) * | 2023-10-30 | 2024-02-02 | 安徽鼎甲计算机科技有限公司 | 文件存储方法、文件读取方法、文件存储和读取系统 |
CN117493276A (zh) * | 2024-01-03 | 2024-02-02 | 柏科数据技术(深圳)股份有限公司 | 针对Ceph文件的读取方法、装置、服务器及存储介质 |
CN117493276B (zh) * | 2024-01-03 | 2024-04-09 | 柏科数据技术(深圳)股份有限公司 | 针对Ceph文件的读取方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10560465B2 (en) | Real time anomaly detection for data streams | |
US11032140B2 (en) | Using a template to update a stack of resources | |
US20190068690A1 (en) | Automated management of resource attributes across network-based services | |
CN110062025B (zh) | 数据采集的方法、装置、服务器及存储介质 | |
CN108304431B (zh) | 一种图像检索方法及装置、设备、存储介质 | |
CN109074377B (zh) | 用于实时处理数据流的受管理功能执行 | |
US10922357B1 (en) | Automatically mapping natural language commands to service APIs | |
US20190102237A1 (en) | Recommending applications based on call requests between applications | |
CN111163072B (zh) | 机器学习模型中特征值的确定方法、装置及电子设备 | |
CN113704204A (zh) | 数据文件处理方法、装置、电子设备及存储介质 | |
CN113010818A (zh) | 访问限流方法、装置、电子设备及存储介质 | |
CN109522501B (zh) | 页面内容管理方法及其装置 | |
US20220229657A1 (en) | Extensible resource compliance management | |
CN113703867A (zh) | 一种无服务计算中加速启动方法及系统 | |
CN113254320A (zh) | 记录用户网页操作行为的方法及装置 | |
CN112044078A (zh) | 虚拟场景应用的接入方法、装置、设备及存储介质 | |
CN116016702A (zh) | 一种应用可观测数据采集处理方法、装置及介质 | |
CN112988062B (zh) | 一种元数据读取限制方法、装置、电子设备及介质 | |
CN114022711A (zh) | 工业标识数据缓存处理方法及装置、介质及电子设备 | |
CN114330353B (zh) | 虚拟场景的实体识别方法、装置、设备、介质及程序产品 | |
CN115686811A (zh) | 进程管理方法、装置、计算机设备及存储介质 | |
CN114968505A (zh) | 任务处理系统、方法、装置、设备、存储介质及程序产品 | |
CN117311909B (zh) | 虚拟场景的资源处理方法、装置、设备及存储介质 | |
CN116743589B (zh) | 云主机迁移方法、装置及电子设备 | |
US11809992B1 (en) | Applying compression profiles across similar neural network architectures |
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 |