CN111858496B - 一种元数据的检索方法、装置、存储介质和电子设备 - Google Patents
一种元数据的检索方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN111858496B CN111858496B CN202010735353.1A CN202010735353A CN111858496B CN 111858496 B CN111858496 B CN 111858496B CN 202010735353 A CN202010735353 A CN 202010735353A CN 111858496 B CN111858496 B CN 111858496B
- Authority
- CN
- China
- Prior art keywords
- metadata
- directory
- queried
- retrieval
- database
- 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.)
- Active
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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种元数据的检索方法、装置、存储介质和电子设备,该检索方法应用于分布式文件系统中的服务端,服务端配置有用于缓存元数据的数据库,检索方法包括:接收客户端发送的检索请求;根据检索请求,从数据库中检索与检索请求对应的目标元数据;向客户端发送携带有目标元数据的信息。本申请实施例通过在数据库中缓存元数据,从而在服务端接收到客户端发送的检索请求时,服务端可通过查询数据库来直接获取目标元数据,从而减少了服务端和文件系统之间交互的流程,进而提高了元数据的检索效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种元数据的检索方法、装置、存储介质和电子设备。
背景技术
分布式文件系统因其海量存储的优势,在互联网领域正逐渐取代传统的本地文件系统。
目前,对于无元数据中心的分布式文件系统来说,当需要进行文件检索时,客户端将接收到的元数据操作请求下发到服务端,服务端从每一个存储设备brick所在的磁盘的本地文件系统中获取所需的元数据,随后服务端再将元数据发送给客户端。
在实现本发明的过程中,发明人发现现有技术中存在如下问题:现有的服务端在处理元数据操作时,需要向本地的低速的磁盘输入/输出(Input/Output,I/O)介质进行访问,且低速的磁盘I/O介质需要通过文件系统才可获取所需的元数据,从而严重地影响了元数据操作的速度。因此,现有技术中至少存在着元数据的检索效率比较低的问题。
发明内容
本申请实施例的目的在于提供一种元数据的检索方法、装置、存储介质和电子设备,以解决现有技术中存在着的元数据的检索效率比较低的问题。
第一方面,本申请实施例提供了一种元数据的检索方法,检索方法应用于分布式文件系统中的服务端,服务端配置有用于缓存元数据的数据库,检索方法包括:接收客户端发送的检索请求;根据检索请求,从数据库中检索与检索请求对应的目标元数据;向客户端发送携带有目标元数据的信息。
因此,本申请实施例通过在服务端中缓存元数据,从而在服务端接收到客户端发送的检索请求时,服务端可通过查询数据库来直接获取目标元数据,从而减少了服务端和文件系统及磁盘介质之间交互的流程,进而提高了元数据的检索效率。
在一个可能的实施例中,检索请求用于检索待查询目录的子目录项,根据检索请求,从数据库中检索与检索请求对应的目标元数据,包括:根据检索请求,创建用于标识待查询目录的句柄;根据句柄,从数据库中检索子目录项对应的目标元数据。
在一个可能的实施例中,分布式文件系统包括挂载在服务端上的存储设备,检索请求用于获取待查询目录项的属性,根据检索请求,从数据库中检索与检索请求对应的目标元数据,包括:根据检索请求,确定异步任务队列中是否存在待查询目录项的相关任务,其中,异步任务队列包括向存储设备中写入元数据的任务;在异步任务队列不存在待查询目录项的相关任务的情况下,从数据库中检索待查询目录项对应的目标元数据。
因此,本申请实施例可在数据库和文件系统中存储的元数据是一致的情况下,才执行目标元数据的获取操作,从而保证了结果的精准性。
在一个可能的实施例中,该检索方法还包括:在异步任务队列存在待查询目录项的相关任务的情况下,向存储设备发送检索请求;接收存储设备发送的携带有待查询目录项对应的目标元数据的信息。
在一个可能的实施例中,数据库为键值存储数据库。
因此,本申请实施例可通过键值存储数据库来同时满足所有目录项元数据以及目录结构的存储与查询的需求,并利用其内存可控的特性,来在有限内存的情况下,获得最优性能的效果。
在一个可能的实施例中,键位和键值均还包括待查询目录项的标识,根据组合信息和待查询目录项的元数据间的关联关系以及待查询键位,从键值存储数据库中检索目标元数据,包括:根据组合信息和待查询目录项的标识间的关联关系以及待查询键位,查询键值存储数据库,以获得待查询目录项的标识;根据待查询目录项的标识和待查询目录项的元数据间的关联关系以及待查询目录项的标识,再次查询键值存储数据库,以获得目标元数据。
在一个可能的实施例中,检索装置应用于分布式文件系统中的服务端,服务端配置有用于缓存元数据的数据库,检索装置包括:接收模块,用于接收客户端发送的检索请求;检索模块,用于根据检索请求,从数据库中检索与检索请求对应的目标元数据;发送模块,用于向客户端发送携带有目标元数据的信息。
因此,本申请实施例可通过上述技术方案避免硬链接的维护困难以及更新一个文件,需要更新多条数据库记录的问题。
第二方面,本申请实施例提供了一种元数据的检索装置,该处理装置应用于分布式文件系统中的服务端,服务端配置有用于缓存元数据的数据库,该处理装置包括:接收模块,用于接收客户端发送的检索请求;检索模块,用于根据检索请求,从数据库中检索与检索请求对应的目标元数据;发送模块,用于向客户端发送携带有目标元数据的信息。
第三方面,本申请实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面或第一方面的任一可选的实现方式的方法。
第四方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,存储器存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储器之间通过总线通信,机器可读指令被处理器执行时执行第一方面或第一方面的任一可选的实现方式的方法。
第五方面,本申请提供一种计算机程序产品,计算机程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。
为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种分布式文件系统的示意图;
图2示出了本申请实施例提供的一种元数据缓存系统的示意图;
图3示出了本申请实施例提供的一种元数据的检索方法的流程图;
图4示出了本申请实施例提供的一种执行目录打开请求的方法的流程图;
图5示出了本申请实施例提供的一种执行目录项读取请求的方法的流程图;
图6示出了本申请实施例提供的一种执行元数据请求的方法的流程图;
图7示出了本申请实施例提供的一种执行同步任务的方法的流程图;
图8示出了本申请实施例提供的一种执行异步任务的方法的流程图;
图9示出了本申请实施例提供的一种元数据的检索装置的结构框图;
图10是本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了解决现有技术中存在着的元数据的检索效率比较低的问题,本申请实施例巧妙地提出了一种元数据的检索方案,通过服务端接收客户端发送的检索请求,以及服务端根据检索请求,从服务端配置的数据库中检索与检索请求对应的目标元数据,以及服务端向客户端发送携带有目标元数据的信息。
因此,本申请实施例通过在数据库中缓存元数据,从而在服务端接收到客户端发送的检索请求时,服务端可通过查询数据库来直接获取目标元数据,从而减少了服务端和文件系统之间交互的流程,进而提高了元数据的检索效率。
请参见图1,图1示出了本申请实施例提供的一种分布式文件系统的示意图。如图1所示的分布式文件系统包括网络、客户端、服务端和挂载在服务端上的存储设备。
在一些可能的实施例中,客户端所包含的模块可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,如图1所示,客户端包括虚拟文件系统(Virtual File System,VFS)、解析模块、分发模块、分发子模块和传输接口等。
应理解,解析模块的具体模块、分发模块的具体模块、分发子模块的具体模块和传输接口的具体模块等均可根据实际需求来进行设置,本申请实施例并不局限于此。
在一些可能的实施例中,网络既可以支持TCP/IP协议,又可以支持IB通信协议等,本申请实施例并不局限于此。
在一些可能的实施例中,服务端所包含的模块可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,如图1所示,服务端包括服务端接口、元数据缓存系统和可移植操作系统接口(Portable Operating System Interface,POSIX)等。
应理解,服务端接口的具体接口和元数据缓存系统的具体系统等均可根据实际需求来进行设置,本申请实施例并不局限于此。
可选地,如图2所示,图2示出了本申请实施例提供的一种元数据缓存系统的示意图。如图2所示的元数据缓存系统包括数据库、加载模块、处理模块、后台处理模块和异步任务队列模块。数据库分别与处理模块、加载模块和后台处理模块连接,异步任务队列模块与处理模块连接,也可与后台处理模块连接。
其中,加载模块可用于在元数据缓存系统启动时,将挂载在服务端的磁盘中存储的目录结构和元数据加载到数据库中。其中,目录结构可以包括各个目录项间的目录关系;元数据可包括目录项的属性(例如,存储大小、创建时间等)和用于给数据对象添加说明注释的扩展属性等。
处理模块可用于处理同步任务,并根据处理结果更新数据数据库,还可用于将异步任务加载到异步任务队列模块中的异步任务队列中,还可用于从数据库中检索相应的目录项的目录信息和元数据(或者,只获取元数据),并将检索结果返回。其中,同步任务和异步任务可均为写任务。
后台处理模块可用于在元数据缓存系统启动时,创建数据库以及异步任务队列,还可用于在元数据缓存系统停止时,销毁数据库以及异步任务队列,还可用于在初始化数据库和异步任务队列后,启动加载模块,还可用于处理异步任务队列中的异步任务,并进行相应的数据库的操作。
此外,这里需要说明的是,该后台处理模块可在异步任务队列中的异步任务的数量达到第一阈值时唤醒,以及还可在异步任务队列中的异步任务的数量达到第二阈值时且处于休眠时间范围内进行休眠。
应理解,第一阈值的具体数量和第二阈值的具体数量均可根据实际需求来进行设置,本申请实施例并不局限于此。
数据库可用于缓存对应的存储设备的目标结构以及所有目录项的元数据信息。
异步任务队列模块可用于存储异步任务队列。此外,处理模块可将异步任务放入到异步任务队列中;后台处理模块可用于从异步任务队列中取出异步任务并进行处理。
此外,这里需要说明的是,每个服务端中的元数据缓存系统均可按照图2的方式来进行设置,本申请实施例并不局限于此。
为了便于理解本申请实施例,下面可通过具体的实施例来进行描述。
具体地,当用户发起检索操作时,该VFS可对检索请求进行解析,以生成标准的POSIX协议请求。随后,解析模块可接收并解析POSIX协议请求,获得解析后的请求。随后,该解析后的请求经过分发模块、分发子模块和传输接口等模块后,其被分发到相应的服务端。
服务端的服务端接口接收到请求,并将请求下发到元数据缓存系统。随后,元数据缓存系统接收到请求后,该元数据缓存系统中的处理模块可对请求进行处理,并将检索结果原路返回,从而不再继续向下层的POSIX接口和存储设备下发。
需要说明的是,本发明实施例提供的元数据的检索方案还可以进一步拓展到其他合适的分布式文件系统中,而不限于图1所示的分布式文件系统,只要保证本申请实施例中的分布式文件系统为无数据中心的分布式文件系统即可,本申请实施例并不局限于此。
请参见图3,图3示出了本申请实施例提供的一种元数据的检索方法的流程图。如图3所示的检索方法应用于分布式文件系统中的服务端,该服务端配置有用于缓存元数据的数据库,该检索方法包括:
步骤S310,服务端接收客户端发送的检索请求。
应理解,检索请求可用于检索待查询目录的子目录项,也可用于获取待查询目录项的属性等。也就是说,检索请求所对应的功能可根据实际需求来进行设置,本申请实施例并不局限于此。
还应理解,待查询文件也可称为待查询目录等,本申请实施例并不具有限于此。
还应理解,服务端接收客户端发送的检索请求的具体过程可参见图1的相关描述,在此不再重复描述。
步骤S320,服务端根据检索请求,从数据库中检索与检索请求对应的目标元数据。
应理解,数据库的具体类型可根据实际需求来进行设置,本申请实施例并不局限于此。
例如,数据库可为键值存储数据库(或者,K/V数据库)。也就是说,本申请实施例可通过键值存储数据库来同时满足所有目录项元数据以及目录结构的存储与查询的需求,并利用其内存可控的特性,来在有限内存的情况下,获得最优性能的效果。
还应理解,K/V数据库中的键位(或者,KEY)和键值(或者,Value)均可根据实际需求来进行设置,本申请实施例并不局限于此。
可选地,K/V数据库中的KEY可包括由当前目录项的父目录的标识和当前父目录的名称组成的组合信息,Value可包括当前目录项的元数据。
例如,在当前目录项的名称为“dir1”且当前目录项的父目录的标识为“0000000000000001”的情况下,该KEY可为0000000000000001_dir1。
从而,在检索请求包括待查询目录项的父目录信息的情况下,由于待查询目录项的父目录信息可包括父目录的名称、父目录对应的路径等属性信息,从而服务端可根据待查询目录项的父目录信息,生成目标元数据对应的待查询键位。以及,由于键值存储数据库可存储有键位和键值间(或者说,组合信息和待查询目录项的元数据间)的第一关联关系,从而服务端可根据待查询键位和第一关联关系,从键值存储数据库中匹配出与待查询键位匹配的目标元数据。
可选地,考虑到存在硬链接的文件,K/V数据库中的KEY和Value均可包括当前文件的标识,从而本申请实施例可采用当前文件的标识作为组合信息以及当前文件的元数据(或者,上个KEY和上个Value)之间的中间值。此外,在当前文件的父目录的标识和当前文件的名称为pargfid_name、当前文件的元数据为metadata和当前文件的标识为gfid的情况下,可通过pargfid_name:1gfid以及gfid:metadata(元数据)的方式进行保存。其中,1gfid中的1为标识位,该标识位用于确定该数据为当前文件的标识,并非是元数据。
也就是说,本申请实施例可先检索到与组合信息对应的当前文件的标识,再根据当前文件的标识检索到对应的元数据。
从而,由于数据库中存储有组合信息(或者,KEY)以及待查询文件的标识(或者,Value)间的第二关联关系,从而服务端可根据第二关联关系和待查询键位,查询键值存储数据库,以获得待查询文件的标识。以及,由于数据库中还存储有待查询文件的标识和待查询文件的元数据间的第三关联关系,服务端根据第三关联关系以及待查询文件的标识,查询键值存储数据库,以获得目标元数据,即将待查询文件的元数据作为目标元数据。
例如,请参见下表1,表1示出了K/V数据库的存储数据。
表1
KEY | Value |
0000000000000001_dir1 | 0metadata |
0000000000000001_linkfile1 | 10000000000000005 |
0000000000000005 | metadata |
其中,“0metadata”中的“0”为标识,该标识“0”是为了区分元数据metadata和当前文件的标识;在Value为“10000000000000005”的情况下,该当前文件的标识为“0000000000000005”。以及,“10000000000000005”中的“1”为标识,该标识“1”是为了区分当前文件的标识和元数据。从而,服务端可根据“0000000000000001_linkfile1”和“10000000000000005”之间的关联关系,确定当前文件的标识为“0000000000000005”。随后,服务端再根据“0000000000000005”和“metadata”间的关联关系,确定目标元数据为metadata。
因此,本申请实施例通过上述数据库设计方案,能够对所有元数据和目录项进行缓存,并且可通过前缀匹配查找某一个目录下的所有目录项。
同时,又十分友好的解决了硬链接的问题,避免硬链接情况下,维护硬链接困难以及更新一个文件,需要更新多条数据库记录的情况。
还应理解,服务端根据检索请求,从数据库中获取与检索请求对应的目标元数据的具体过程也可根据实际需求来进行设置,本申请实施例并不局限于此。
为了便于理解本申请实施例,下面通过具体的实施例来进行描述。
此外,这里需要说明的是,该检索请求可包括目录打开请求、目录项读取请求和元数据请求。
可选地,在检索请求包括目录打开请求的情况下,请参见图4,图4示出了本申请实施例提供的一种执行目录打开请求的方法的流程图。如图4所示的方法包括:
服务端获取目录打开请求,以及服务端可判断元数据缓存系统是否有效(例如,是否故障等)。以及,在元数据缓存系统有效的情况下,处理模块可根据目录打开请求,创建用于标识待查询目录项的句柄,并将句柄添加到句柄链表中,并将结果返回给上层;在元数据缓存系统没有效的情况下,则服务端将目录打开请求发送给POSIX接口,以及,POSIX接口可将目录打开请求发送给文件系统。以及,文件系统可按照现有的方式来执行目录打开请求。
以及,在检索请求还包括用于检索待查询目录下的子目录项的目录项读取请求的情况下,请参见图5,图5示出了本申请实施例提供的一种执行目录项读取请求的方法的流程图。如图5所示的方法包括:
服务端获取目录项读取请求,并判断之前生成的句柄是否有效。
此外,在句柄有效的情况下,说明目录打开请求在元数据缓存系统中执行成功,随后继续判断元数据缓存系统是否有效。在元数据缓存系统有效的情况下,服务端可等待句柄处理完成,并从元数据缓存系统的数据库中获取子目录项的目标元数据等所需信息,并将所需信息返回给上层。在元数据缓存系统没有效的情况下,则说明目录打开请求在元数据缓存系统中执行成功后,元数据缓存系统变成失效状态,则服务端直接返回给用户一个错误的状态码。
另外,在句柄没有效的情况下,则说明目录打开请求在元数据缓存系统中没有执行成功,则服务端将检索请求发送给下层的POSIX接口,以及,POSIX接口可将检索请求发送给文件系统。以及,文件系统可按照现有的方式来执行检索请求。
可选地,在检索请求包括用于获取待查询文件的属性的元数据请求的情况下,请参见图6,图6示出了本申请实施例提供的一种执行元数据请求的方法的流程图。如图6所示的方法包括:
服务端获取元数据请求。以及,服务端判断元数据缓存系统是否有效且异步任务队列中是否有待查询文件的相关任务。
此外,在元数据缓存系统无效或者异步任务队列中有待查询目录项的相关任务的情况下,则服务端确定数据库中存储的待查询目录项的元数据等信息和存储设备中存储的元数据等信息是不一致的,从而服务端可将元数据请求发送给下层的POSIX接口,以及,POSIX接口可将元数据请求发送给存储设备。以及,存储设备可按照现有的方式来执行元数据请求。
也就是说,在异步任务队列存在待查询目录项的相关任务的情况下,向磁盘发送元数据请求;接收磁盘发送的携带有待查询目录项对应的目标元数据的信息。
另外,在元数据缓存系统有效且异步任务队列中没有待查询目录项的相关任务的情况下,则服务端可从元数据缓存系统的数据库中获取待查询文件的元数据,并可从存储设备中获取待查询文件的父文件的属性信息,随后,服务端可将结果返回给上层。
其中,若信息足够,则可从数据库中获取父目录的信息;但是,若信息不够,无法构建父目录在数据库中的KEY,所以无法从数据库中获取父目录的元数据信息,所以,才要从存储设备获取。
这里还需要说明的,在有的分布式系统中,也不需要获取父目录的属性信息,可以直接把获取待查询目录项的父目录的属性信息这一步骤省略掉。
步骤S330,服务端向客户端发送携带有目标元数据的信息。
此外,这里需要说明的是,虽然上面对元数据的读操作过程进行了描述,但本领域的技术人员应当理解,元数据的操作除了读操作之外,还可包括写操作。
为了便于理解本申请实施例中的元数据的写操作,下面可分别通过同步任务和异步任务的方式来进行描述。
如图7所示,图7示出了本申请实施例提供的一种执行同步任务的方法的流程图。如图7所示的方法包括:
服务端接收到同步任务请求,以及将同步任务请求下发到元数据缓存系统。由于同步任务请求包括用于构建KEY值的必要信息(例如,目录项的名称和标识等),服务端可获取必要信息,并将获取的必要信息进行保存。随后,服务端将同步任务请求下发到POSIX接口。以及,POSIX接口可将同步任务请求发送给文件系统。随后,文件系统可执行同步任务请求,并将携带有同步任务请求对应的元数据的执行结果返回给元数据缓存系统。
随后,服务端可确定同步任务请求是否执行成功,以及还可判断元数据缓存系统是否可用。以及,服务端在确定同步任务请求执行成功且元数据缓存系统可用的情况下,可利用之前保存的必要信息构建KEY,以及还可利用元数据构建与KEY对应的Value。随后,服务端可利用KEY和KEY对应的Value,来更新数据库。随后,服务端将执行结果返回给用户。
此外,在同步任务请求执行失败,或者元数据缓存系统不可用的情况下,服务端向用户返回错误状态。
如图8所示,图8示出了本申请实施例提供的一种执行异步任务的方法的流程图。如图8所示的方法包括:
服务端接收到异步任务请求,以及将异步任务请求下发到元数据缓存系统。由于异步任务请求包括用于构建KEY值的必要信息(例如,目录项的名称和标识等),服务端可获取必要信息,并将获取的必要信息进行保存。随后,服务端将异步任务请求下发到POSIX接口。以及,POSIX接口可将异步任务请求发送给存储设备中的文件系统。随后,文件系统可执行异步任务请求,并将携带有异步任务请求对应的元数据的执行结果返回给元数据缓存系统。
随后,服务端可确定异步任务请求是否执行成功,以及还可判断元数据缓存系统是否可用。以及,服务端在确定异步任务请求执行成功且元数据缓存系统可用的情况下,可生成更新数据库的异步任务。以及,将更新数据库的异步任务添加到异步任务队列中,等待后台进行处理该更新数据库的异步任务。随后,服务端将执行结果返回给用户。
此外,在异步任务请求执行失败,或者元数据缓存系统不可用的情况下,服务端向用户返回错误状态。
因此,本申请实施例可采用高速的元数据缓存系统来提供服务,从而避免了低速的磁盘I/O介质的访问,进而提升了元数据操作的效率。
应理解,上述元数据的检索方法仅是示例性的,本领域技术人员根据上述的方法可以进行各种变形,修改或变形之后的内容也在本申请保护范围内。
请参见图9,图9示出了本申请实施例提供的一种元数据的检索装置900的结构框图,应理解,该检索装置900与上述方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该检索装置900具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该检索装置900包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在检索装置900的操作系统(operating system,OS)中的软件功能模块。具体地,该检索装置900可应用于分布式文件系统中的服务端,服务端配置有用于缓存元数据的数据库,该检索装置900包括:
接收模块910,用于接收客户端发送的检索请求;检索模块920,用于根据检索请求,从数据库中检索与检索请求对应的目标元数据;发送模块930,用于向客户端发送携带有目标元数据的信息。
在一个可能的实施例中,检索请求用于检索待查询目录的子目录项,检索模块920,用于:根据检索请求,创建用于标识待查询目录的句柄;根据句柄,从数据库中检索子目录项对应的目标元数据。
在一个可能的实施例中,分布式文件系统包括挂载在服务端上的存储设备,检索请求用于获取待查询目录项的属性,检索模块920,用于:根据检索请求,确定异步任务队列中是否存在待查询目录项的相关任务,其中,异步任务队列包括向存储设备中写入元数据的任务;在异步任务队列不存在待查询目录项的相关任务的情况下,从数据库中检索待查询目录项对应的目标元数据。
在一个可能的实施例中,发送模块930,还用于在异步任务队列存在待查询目录项的相关任务的情况下,向存储设备发送检索请求;接收模块910,还用于接收存储设备发送的携带有待查询目录项对应的目标元数据的信息。
在一个可能的实施例中,数据库为键值存储数据库。
在一个可能的实施例中,键值存储数据库中的键位包括由待查询目录项的父目录的标识和待查询目录项的名称组成的组合信息,键值存储数据库中的键值包括待查询目录项的元数据,检索请求包括待查询目录项的父目录信息,检索模块920,用于:根据父目录信息,生成目标元数据对应的待查询键位;根据组合信息和待查询目录项的元数据间的关联关系以及待查询键位,从键值存储数据库中检索目标元数据。
在一个可能的实施例中,键位和键值均还包括待查询目录项的标识,根据组合信息和待查询目录项的元数据间的关联关系以及待查询键位,检索模块920,用于:根据组合信息和待查询目录项的标识间的关联关系以及待查询键位,查询键值存储数据库,以获得待查询目录项的标识;根据待查询目录项的标识和待查询目录项的元数据间的关联关系以及待查询目录项的标识,查询键值存储数据库,以获得目标元数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
申请实施例还提供一种电子设备,请参见图10,图10是本申请实施例提供的一种电子设备1000的结构框图。电子设备1000可以包括处理器1010、通信接口1020、存储器1030和至少一个通信总线1040。其中,通信总线1040用于实现这些组件直接的连接通信。其中,本申请实施例中的通信接口1020用于与其他设备进行信令或数据的通信。处理器1010可以是一种集成电路芯片,具有信号的处理能力。上述的处理器1010可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器1010也可以是任何常规的处理器等。
存储器1030可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。存储器1030中存储有计算机可读取指令,当计算机可读取指令由处理器1010执行时,电子设备1000可以执行上述方法实施例中的各个步骤。
电子设备1000还可以包括存储控制器、输入输出单元、音频单元、显示单元。
存储器1030、存储控制器、处理器1010、外设接口、输入输出单元、音频单元、显示单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线1040实现电性连接。处理器1010用于执行存储器1030中存储的可执行模块。并且,电子设备1000用于执行下述方法:接收客户端发送的检索请求;根据检索请求,从数据库中检索与检索请求对应的目标元数据;向客户端发送携带有目标元数据的信息。
输入输出单元用于提供给用户输入数据实现用户与服务器(或本地终端)的交互。输入输出单元可以是,但不限于,鼠标和键盘等。
音频单元向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
显示单元在电子设备与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
可以理解,图10所示的结构仅为示意,电子设备1000还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。图10中所示的各组件可以采用硬件、软件或其组合实现。
本申请还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行方法实施例的方法。
本申请还提供一种计算机程序产品,计算机程序产品在计算机上运行时,使得计算机执行方法实施例的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种元数据的检索方法,其特征在于,所述检索方法应用于分布式文件系统中的服务端,所述服务端配置有用于缓存元数据的数据库,所述检索方法包括:
接收客户端发送的检索请求;
根据所述检索请求,从所述数据库中检索与所述检索请求对应的目标元数据;
向客户端发送携带有所述目标元数据的信息;
所述数据库为键值存储数据库;
所述键值存储数据库中的键位包括由待查询目录项的父目录的标识和所述待查询目录项的名称组成的组合信息,所述键值存储数据库中的键值包括所述待查询目录项的元数据,所述检索请求包括所述待查询目录项的父目录信息,所述根据所述检索请求,从所述数据库中检索与所述检索请求对应的目标元数据,包括:
根据所述父目录信息,生成所述目标元数据对应的待查询键位;
根据所述组合信息和所述待查询目录项的元数据间的关联关系以及所述待查询键位,从所述键值存储数据库中检索所述目标元数据;
所述键位和所述键值均还包括所述待查询目录项的标识,所述根据所述组合信息和所述待查询目录项的元数据间的关联关系以及所述待查询键位,从所述键值存储数据库中检索所述目标元数据,包括:
根据所述组合信息和所述待查询目录项的标识间的关联关系以及所述待查询键位,查询所述键值存储数据库,以获得所述待查询目录项的标识;
根据所述待查询目录项的标识和所述待查询目录项的元数据间的关联关系以及所述待查询目录项的标识,查询所述键值存储数据库,以获得所述目标元数据。
2.根据权利要求1所述的检索方法,其特征在于,所述检索请求用于检索待查询目录的子目录项,所述根据所述检索请求,从所述数据库中检索与所述检索请求对应的目标元数据,包括:
根据所述检索请求,创建用于标识所述待查询目录的句柄;
根据所述句柄,从所述数据库中检索所述子目录项对应的目标元数据。
3.根据权利要求1所述的检索方法,其特征在于,所述分布式文件系统包括挂载在所述服务端上的存储设备,所述检索请求用于获取待查询目录项的属性,所述根据所述检索请求,从所述数据库中检索与所述检索请求对应的目标元数据,包括:
根据所述检索请求,确定异步任务队列中是否存在所述待查询目录项的相关任务,其中,所述异步任务队列包括向所述存储设备中写入元数据的任务;
在所述异步任务队列不存在所述待查询目录项的相关任务的情况下,从所述数据库中检索所述待查询目录项对应的目标元数据。
4.根据权利要求3所述的检索方法,其特征在于,所述检索方法还包括:
在所述异步任务队列存在所述待查询目录项的相关任务的情况下,向所述存储设备发送所述检索请求;
接收所述存储设备发送的携带有所述待查询目录项对应的目标元数据的信息。
5.一种元数据的检索装置,其特征在于,所述检索装置应用于分布式文件系统中的服务端,所述服务端配置有用于缓存元数据的数据库,所述检索装置包括:
接收模块,用于接收客户端发送的检索请求;
检索模块,用于根据所述检索请求,从所述数据库中检索与所述检索请求对应的目标元数据;
发送模块,用于向客户端发送携带有所述目标元数据的信息;
所述数据库为键值存储数据库;
所述键值存储数据库中的键位包括由待查询目录项的父目录的标识和所述待查询目录项的名称组成的组合信息,所述键值存储数据库中的键值包括所述待查询目录项的元数据,所述检索请求包括所述待查询目录项的父目录信息;所述检索模块,用于:根据所述父目录信息,生成所述目标元数据对应的待查询键位;根据所述组合信息和所述待查询目录项的元数据间的关联关系以及所述待查询键位,从所述键值存储数据库中检索所述目标元数据;
所述键位和所述键值均还包括所述待查询目录项的标识;所述检索模块,用于:根据所述组合信息和所述待查询目录项的标识间的关联关系以及所述待查询键位,查询所述键值存储数据库,以获得所述待查询目录项的标识;根据所述待查询目录项的标识和所述待查询目录项的元数据间的关联关系以及所述待查询目录项的标识,查询所述键值存储数据库,以获得所述目标元数据。
6.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-4任一所述的元数据的检索方法。
7.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1-4任一所述的元数据的检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010735353.1A CN111858496B (zh) | 2020-07-27 | 2020-07-27 | 一种元数据的检索方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010735353.1A CN111858496B (zh) | 2020-07-27 | 2020-07-27 | 一种元数据的检索方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858496A CN111858496A (zh) | 2020-10-30 |
CN111858496B true CN111858496B (zh) | 2021-09-17 |
Family
ID=72947797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010735353.1A Active CN111858496B (zh) | 2020-07-27 | 2020-07-27 | 一种元数据的检索方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858496B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860625B (zh) * | 2021-02-01 | 2024-05-14 | 北京小米移动软件有限公司 | 数据获取方法、数据存储方法、装置、设备及存储介质 |
CN113051221B (zh) * | 2021-03-31 | 2023-06-30 | 网易(杭州)网络有限公司 | 数据存储方法、装置、介质、设备及分布式文件系统 |
CN113407623B (zh) * | 2021-05-31 | 2024-07-12 | 北京达佳互联信息技术有限公司 | 数据的处理方法、装置及服务器 |
CN113282854A (zh) * | 2021-06-01 | 2021-08-20 | 平安国际智慧城市科技股份有限公司 | 数据请求响应方法、装置、电子设备及存储介质 |
CN114329091A (zh) * | 2021-12-30 | 2022-04-12 | 杭州数梦工场科技有限公司 | 一种数据目录生成方法、装置及设备 |
CN114780564A (zh) * | 2022-04-21 | 2022-07-22 | 京东科技控股股份有限公司 | 数据处理方法、数据处理装置、电子设备和存储介质 |
CN116521744B (zh) * | 2023-06-30 | 2023-09-12 | 杭州拓数派科技发展有限公司 | 全双工元数据传输方法、装置、系统和计算机设备 |
CN117056102B (zh) * | 2023-08-17 | 2024-04-09 | 北京远舢智能科技有限公司 | 一种数据调用方法、系统、计算机设备及可读存储介质 |
CN117687970B (zh) * | 2024-02-02 | 2024-07-02 | 济南浪潮数据技术有限公司 | 一种元数据检索方法、装置及电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727465B (zh) * | 2008-11-03 | 2011-12-21 | 中国移动通信集团公司 | 分布式列存储数据库索引建立、查询方法及装置与系统 |
CN109933570B (zh) * | 2019-03-15 | 2020-02-07 | 中山大学 | 一种元数据管理方法、系统及介质 |
CN110674102A (zh) * | 2019-09-29 | 2020-01-10 | 北京浪潮数据技术有限公司 | 分布式文件系统目录配额方法、系统、装置及存储介质 |
CN111158597A (zh) * | 2019-12-28 | 2020-05-15 | 浪潮电子信息产业股份有限公司 | 一种元数据读取方法、装置及电子设备和存储介质 |
-
2020
- 2020-07-27 CN CN202010735353.1A patent/CN111858496B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111858496A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858496B (zh) | 一种元数据的检索方法、装置、存储介质和电子设备 | |
US20190182265A1 (en) | Facilitating cross-platform content access | |
JP5661104B2 (ja) | 検索エンジンインデクシング及びインデックスを使用する検索のための方法とシステム | |
US11586506B2 (en) | System and method for indexing image backups | |
JP4786945B2 (ja) | インデックス付与強制クエリ | |
US8620923B1 (en) | System and method for storing meta-data indexes within a computer storage system | |
JP2019153323A (ja) | 検索結果へのアクセスを改良するシステム、方法及び記憶媒体 | |
US9459969B1 (en) | Method and system for enhanced backup database indexing | |
US20090070419A1 (en) | Administering Feeds Of Presence Information Of One Or More Presentities | |
US20130066869A1 (en) | Computer system, method of managing a client computer, and storage medium | |
JP5146020B2 (ja) | 情報処理装置、リソース同定プログラム、リソース同定方法 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
US20140032703A1 (en) | System and method for an expandable computer storage system | |
US9886446B1 (en) | Inverted index for text searching within deduplication backup system | |
US9766949B2 (en) | System and method for locking exclusive access to a divided resource | |
US8549007B1 (en) | System and method for indexing meta-data in a computer storage system | |
CN112559913B (zh) | 一种数据处理方法、装置、计算设备及可读存储介质 | |
CN105574010B (zh) | 数据查询方法及装置 | |
CN113872994B (zh) | 组织架构同步方法、装置、计算机设备和存储介质 | |
US11070609B1 (en) | System and method for downloading a file | |
US20060212533A1 (en) | Minimizing Problems in Accessing Referred Content | |
JP6522261B1 (ja) | ファイルの属性情報を管理する方法及びコンピューティング装置{method for managing attribute information of file and computing device using the same} | |
WO2013182004A1 (zh) | 进行信息搜索的方法及服务器 | |
US20190034282A1 (en) | Offline repopulation of cache | |
CN115623008B (zh) | 一种Kubernetes资源的索引构建方法及系统 |
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 | ||
GR01 | Patent grant |