CN105677754A - 获取文件系统中子项元数据的方法、装置和系统 - Google Patents

获取文件系统中子项元数据的方法、装置和系统 Download PDF

Info

Publication number
CN105677754A
CN105677754A CN201511020192.3A CN201511020192A CN105677754A CN 105677754 A CN105677754 A CN 105677754A CN 201511020192 A CN201511020192 A CN 201511020192A CN 105677754 A CN105677754 A CN 105677754A
Authority
CN
China
Prior art keywords
metadata
subitem
length
catalogue
data server
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
CN201511020192.3A
Other languages
English (en)
Other versions
CN105677754B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201511020192.3A priority Critical patent/CN105677754B/zh
Publication of CN105677754A publication Critical patent/CN105677754A/zh
Application granted granted Critical
Publication of CN105677754B publication Critical patent/CN105677754B/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/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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种获取文件系统中子项元数据的方法、装置和系统。该方法包括:客户端代理从元数据服务器中获取目标目录中的子项元数据;该客户端代理将该子项元数据写入预读缓存;若该预读缓存中子项元数据的长度等于或大于交付长度,该客户端代理向该协议客户端发送该预读缓存中长度为该交付长度的子项元数据,同时继续从该元数据服务器中获取尚未获取到的子项元数据,直到向该协议客户端发送了该目标目录中的全部子项元数据。本发明实施例的获取文件系统中子项元数据的方法、装置和系统,解决了协议客户端需要等待客户端代理从元数据服务器中获取子项元数据的问题,从而减少了协议客户端获取子项元数据的整体时延,提高了用户体验。

Description

获取文件系统中子项元数据的方法、装置和系统
技术领域
本发明实施例涉及信息技术领域,更具体地,涉及信息技术领域中获取文件系统中子项元数据的方法、装置和系统。
背景技术
文件系统的一个目录下可能含有大量子项,所有这些子项的元数据信息(简称为“子项元数据”)如果放在一个存储对象中则会使存储对象过于庞大,对象访问互斥性会导致业务并发度低下,因此文件系统通常会将一个目录下的子项元数据分散存放于多个元数据对象,即目录分片对象中。文件系统的协议客户端,即使用文件系统的应用,经常需要获取目标目录中的子项元数据,文件系统执行这类操作时就需要读取该目标目录中的所有目录分片对象,从中提取各子项的元数据信息,交付给该协议客户端。
在现有技术中,客户端代理(ClientAgent,简称为“CA”)收到协议客户端的读取请求消息之后,从元数据服务器(MetadataServer,简称为“MDS”)并发读取目标目录中多个目录分片对象的子项元数据,再将读取的子项元数据交付给该协议客户端。若一次未交付完,则再次读取该目标目录中多个目录分片对象的子项元数据并将读取的子项元数据交付给该协议客户端,直到该目标目录中所有子项元数据都交付完毕为止。因此,客户端代理向协议客户端交付子项元数据和客户端代理与元数据服务器读取子项元数据之间为串行操作,时延较长。
发明内容
有鉴于此,本发明实施例提供了一种获取文件系统中子项元数据的方法、装置和系统,解决了协议客户端获取子项元数据时延较长的问题,减少了串行等待的时延。
第一方面,提供了一种获取文件系统中子项元数据的方法,包括:客户端代理从元数据服务器中获取目标目录中的子项元数据;
该客户端代理将获取到的该子项元数据写入预读缓存;
若该预读缓存中缓存的子项元数据的长度等于或大于交付长度,该客户端代理向该协议客户端发送该预读缓存中缓存的长度为该交付长度的子项元数据,同时继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据,直到向该协议客户端发送了该目标目录中的全部子项元数据,其中,该交付长度小于或等于协议块大小,该协议块大小用于表示协议客户端与该客户端代理一次交互过程中能够传输的子项元数据的最大长度。
根据本发明实施例的获取文件系统中子项元数据的方法,通过客户端代理从元数据服务器中获取目标目录中长度大于协议块大小的多个目录分片对象的子项元数据,并将获取到的子项元数据存入预读缓存中,客户端代理向协议客户端发送预读缓存中缓存的子项元数据,同时继续获取目标目录中尚未获取到的子项元数据,这样该客户端代理向协议客户端发送子项元数据与该客户端代理从该元数据服务器中获取子项元数据的过程是并行执行的,协议客户端可以直接从预读缓存中获取已经缓存的子项元数据,解决了协议客户端需要等待客户端代理从元数据服务器中获取子项元数据的问题,从而减少了协议客户端获取子项元数据的整体时延,提高了用户体验。
在第一方面的第一种可能的实现方式中,该客户端代理从元数据服务器中获取目标目录中的子项元数据,包括:
在该客户端代理首次从该元数据服务器中获取该目标目录中的子项元数据时,该客户端代理以初始获取长度为单位从该元数据服务器中获取该目标目录中的子项元数据,该初始获取长度大于该协议块大小。
结合第一方面的上述可能的实现方式,在第一方面的第二种可能的实现方式中,在该客户端代理继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据之前,该方法还包括:
该客户端代理根据历史交付速度和历史预读速度,确定更新的获取长度,以使得该预读缓存中缓存的子项元数据的量逐渐增加,其中,该历史交付速度为该客户端代理已经向该协议客户端发送的该目标目录的子项元数据的长度与发送该目标目录中已发送的子项元数据所用的时长之比,该历史预读速度为该客户端代理已经从该元数据服务器中获取到的该目标目录中的子项元数据的长度与获取该目标目录中已获取到的子项元数据所用的时长之比;
该客户端代理继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据,包括:
该客户端代理以该更新的获取长度为单位继续从该元数据服务器中获取该目标目录中的尚未获取到的子项元数据。
结合第一方面的上述可能的实现方式,在第一方面的第三种可能的实现方式中,该更新的获取长度Li+1由下式确定:
Li+1=Li×(vs/vr)
其中,Li表示本次获取的获取长度,vs表示该历史交付速度,vr表示该历史预读速度。
本发明实施例的获取文件系统中子项元数据的方法,在采用预读缓存机制的基础上,通过客户端代理实时调整从元数据服务器中获取的子项元数据的长度,可以实时调整预读速度以匹配交付速度,从而最大限度地减少串行等待的时延,同时不影响元数据服务器的性能,提高了用户体验。
结合第一方面的上述可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:当该目录的所有子项元数据的总长度大于该初始获取长度时,该客户端代理重复从该元数据服务器中获取长度为该初始获取长度的子项元数据,并将获取的子项元数据写入该预读缓存,直到该所有子项元数据都获取完成为止。
结合第一方面的上述可能的实现方式,在第一方面的第五种可能的实现方式中,在该客户端代理从元数据服务器中获取目标目录中的子项元数据之前,该方法还包括:该客户端代理根据本次获取的获取长度,确定需要获取的该目标目录下的多个目录分片对象的标识;该客户端代理向该元数据服务器发送请求消息,该请求消息包括该多个目录分片对象的标识;该客户端代理从元数据服务器中获取目标目录中的子项元数据,包括:该客户端代理接收该元数据服务器根据该请求消息发送的该目标目录中的子项元数据。
结合第一方面的上述可能的实现方式,在第一方面的第六种可能的实现方式中,该初始获取长度为该协议块大小的N倍,该N为大于或等于2的整数。
第二方面,提供了一种获取文件系统中子项元数据的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
第三方面,提供了一种获取文件系统中子项元数据的装置,该装置包括:接收器、发送器、存储器、处理器和总线系统。其中,该接收器、该发送器、该存储器和该处理器通过该总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制接收器接收信号,并控制发送器发送信号,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,提供了一种获取文件系统中子项元数据的系统,该系统包括协议客户端、元数据服务器和上述第二方面的任一装置。
第五方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的获取文件系统中子项元数据的方法的示意性流程图。
图2是本发明实施例提供的另一获取文件系统中子项元数据的方法的示意性流程图。
图3是本发明实施例提供的获取文件系统中子项元数据的装置的示意性框图。
图4是本发明实施例提供的另一获取文件系统中子项元数据的装置的示意性框图。
图5是本发明实施例提供的获取文件系统中子项元数据的系统的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明实施例涉及信息技术领域中的文件系统,文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,作为底层存储资源的管理者,应该为上层应用提供灵活有效的服务,以更有效地利用底层存储资源。元数据是数据的数据,在文件系统中,每一个文件对应一个元数据结构体。这个结构体包括文件的属性,比如文件创建、修改及访问的时间,文件拥有者,文件权限,映射信息等。文件系统的一个目录下可能含有大量子项(文件或者目录),所有这些子项的元数据信息(简称为“子项元数据”)如果放在一个存储对象中则会使存储对象过于庞大,对象访问互斥性会导致业务并发度低下,因此文件系统通常会将一个目录下的子项元数据分散存放于多个元数据对象,即目录分片对象中。
文件系统一般涉及元数据服务器、客户端代理和协议客户端。协议客户端、客户端代理和元数据服务器可以理解为三个服务器,它们之间通过网络连接。元数据服务器负责管理本文件系统内所有文件的文件名、数据块等元数据信息,并向客户端代理提供元数据写入和查询等操作。协议客户端即为使用文件系统的应用程序。当协议客户端需要获取文件系统的目标目录下的子项元数据时,就需要客户端代理从元数据服务器中读取该目标目录的所有目录分片对象,从中提取各子项的元数据信息,交付给该协议客户端。本发明实施例涉及的就是客户端代理从元数据服务器中读取子项元数据,并将读取的子项元数据发送给协议客户端的过程。
图1是本发明实施例的获取文件系统中子项元数据的方法100的示意性流程图,如图1所示,该方法100包括:
S110,元数据服务器向客户端代理发送目标目录中的子项元数据;
具体地,一个目录下的子项元数据是分散存放于该目录下的多个目录分片对象中的,该元数据服务器向该客户端代理发送子项元数据是指该元数据服务器向该客户端代理并发发送该该目录下多个目录分片对象的子项元数据。
作为一个可选实施例,该元数据服务器在首次向客户端代理发送该目标目录中的子项元数据时,该元数据服务器以初始获取长度为单位向该客户端代理发送该目标目录中的子项元数据,该初始获取长度大于协议块大小,该协议块大小用于表示协议客户端与该客户端代理一次交互过程中能够传输的子项元数据的最大长度。
具体地,该元数据服务器向客户端代理发送长度大于协议块大小的子项元数据,该协议块大小可以是协议客户端在挂载文件系统时与客户端代理协商出来的。
作为一个可选实施例,该初始获取长度为该协议块大小的N倍,N为大于或等于2的整数。
在实际传输数据的过程中,数据会被转换和压缩,例如元数据服务器发送给客户端代理的子项元数据为100字节,然后该客户端代理将该100字节的子项元数据发送给协议客户端,经过转换和压缩,该协议客户端接收到的数据可能只有80字节。为了达到最佳效果,即每次都保证填满客户端代理与协议客户端传输数据的协议块,可以设置该初始获取长度尽可能大于该协议块大小,因此,可以设置该初始获取长度为该协议块大小的N倍,N可以大于等于2,本发明实施例对此不做限定。
应理解,该步骤可以包括元数据服务器向客户端代理发送一次子项元数据的情况,也可以包括该元数据服务器向该客户端代理发送多次子项元数据的情况,其中,该元数据服务器每次发送的该目标目录中的子项元数据的长度可以相同,也可以不同,本发明实施例对此也不做限定。
S120,该客户端代理获取该元数据服务器发送的目标目录中的子项元数据,并将该子项元数据写入预读缓存;
S130,若该预读缓存中缓存的子项元数据的长度等于或大于交付长度,该客户端代理向该协议客户端发送该预读缓存中缓存的长度为该交付长度的子项元数据,同时执行S140,继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据,直到向该协议客户端发送了该目标目录中的全部子项元数据,其中,该交付长度小于或等于上述协议块大小。
具体地,预读缓存中缓存的子项元数据的长度一旦达到交付长度,该客户端代理可以向该协议客户端发送预读缓存中长度为该交付长度的子项元数据,该交付长度小于或等于该协议块大小。在向该协议客户端发送长度为该交付长度的子项元数据的同时,该客户端代理继续获取该目标目录中尚未获取到的子项元数据,因此,该客户端代理向该协议客户端发送子项元数据与该客户端代理从该元数据服务器中获取子项元数据的过程是并行执行的。
应理解,在该步骤中,客户端代理以交付长度为单位向协议客户端发送子项元数据可以发送多次。可选地,客户端代理可以设置该交付长度每次都等于该协议块大小,多次以该交付长度为单位向协议客户端发送预读缓存中的子项元数据,直到该协议客户端所需要的目标目录下的所有目录分片对象的子项元数据都发送完为止。
还应理解,在本发明实施例中,元数据服务器可以指单个元数据服务器,也可以指元数据服务器集群(MetadataServerCluster,简称为“MDSCluster”),本发明实施例对此不做限定。
具体而言,例如协议客户端需要获取文件系统目标目录下的子项元数据时,文件系统就需要读取该目标目录下的所有目录分片对象,从中提取各目录分片对象的子项元数据,发送给协议客户端。在现有技术中,客户端代理收到协议客户端的读取请求之后,从元数据服务器中并发读取多个目录分片对象的子项元数据,再将读取的子项元数据交付给协议客户端。若一次未交付完,则再次读取多个目录分片对象的子项元数据并将读取的子项元数据交付给协议客户端,直到该目标目录中的所有子项元数据都交付完毕为止。因此,客户端代理向协议客户端交付子项元数据和客户端代理与元数据服务器读取子项元数据之间为串行操作,时延较长。
在本发明实施例中,客户端代理从元数据服务器中获取目标目录中多个目录分片对象的子项元数据,并写入预读缓存,客户端代理向协议客户端发送长度为交付长度的预读缓存中的子项元数据。除了初始时预读缓存中没有子项元数据,客户端代理需要等待元数据服务器发送的子项元数据之外,在接下来的执行过程中,该客户端代理可以向协议客户端发送预读缓存中缓存的子项元数据,这样便减少了串行等待时延。
因此,本发明实施例的获取文件系统中子项元数据的方法,通过元数据服务器向客户端代理发送目标目录中多个目录分片对象的子项元数据,由客户端代理将该子项元数据存入预读缓存中,该客户端代理向协议客户端发送预读缓存中缓存的子项元数据,同时继续获取该目标目录中尚未获取到的子项元数据,这样该客户端代理向协议客户端发送子项元数据与该客户端代理从该元数据服务器中获取子项元数据的过程是并行执行的,该客户端代理可以直接向协议客户端发送该预读缓存中的子项元数据,解决了协议客户端需要等待客户端代理从元数据服务器中获取子项元数据的问题,从而减少了协议客户端获取子项元数据的整体时延,提高了用户体验。
作为一个可选实施例,在该客户端代理继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据之前,该方法还包括:
该客户端代理根据历史交付速度和历史预读速度,确定更新的获取长度,以使得该预读缓存中缓存的子项元数据的量逐渐增加,其中,该历史交付速度为该客户端代理已经向该协议客户端发送的该目标目录中的子项元数据的长度与发送该目标目录中已发送的子项元数据所用的时长之比,该历史预读速度为该客户端代理已经从该元数据服务器中获取到的该目标目录中的子项元数据的长度与获取该目标目录中已获取到的子项元数据所用的时长之比;
该客户端代理继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据,包括:
该客户端代理以该更新的获取长度为单位继续从该元数据服务器中获取该目标目录中的尚未获取到的子项元数据。
在该实施例中,多个目录分片对象的所有子项元数据的总长度大于该初始获取长度,该客户端代理需要重复获取多次才能够获取完所有子项元数据。在下一次的获取开始之前,客户端代理可以根据之前从元数据服务器中已获取的该目录的子项元数据的平均速度和向协议客户端已发送的该目录的子项元数据的平均速度,即历史交付速度和历史预读速度,来调整该客户端代理从该元数据服务器中获取的子项元数据的长度,本发明实施例将调整后的长度称为更新的获取长度。然后,该客户端代理继续从该元数据服务器中获取长度为更新的获取长度的尚未获取到的子项元数据。
具体而言,客户端代理根据从元数据服务器中已获取的子项元数据的平均速度和向协议客户端已发送的子项元数据的平均速度,确定更新的获取长度,可以采用多种方式。例如,若该客户端代理从元数据服务器已获取的子项元数据的平均速度比向协议客户端已发送的子项元数据的平均速度大,则该客户端代理可以设置该更新的获取长度小于初始获取长度,若该客户端代理从元数据服务器已获取的子项元数据的平均速度比向协议客户端已发送的子项元数据的平均速度小,则该客户端代理可以设置该更新的获取长度大于初始获取长度。在该实施例中,忽略每个目录分片对象中的子项元数据长度不等,假设每一次并发读取多个目录分片对象的时间是一样的,因此便可以通过调整读取长度来调整读取速度。上述调整都是为了客户端代理在向协议客户端发送预读缓存中的子项元数据时,预读缓存中有长度为上述交付长度的子项元数据可以发送,以便于该协议客户端能够及时获取子项元数据,不必进行过多等待。本发明实施例不限于此。
应理解,该客户端代理调整该初始获取长度可以调整一次,也可以调整多次,可以由客户端代理根据实际情况来确定,本发明实施例对此不做限定。
作为一个可选实施例,该更新的获取长度Li+1由下式确定:
Li+1=Li×(vs/vr)
其中,Li表示本次获取的获取长度,vs表示该历史交付速度,vr表示该历史预读速度。
具体而言,在本发明实施例中,可以将初始获取长度理解为更新的获取长度的预估值,即在没有完成子项元数据的交付之前,该客户端代理都是以该预估值为单位从元数据服务器中获取子项元数据的。当完成了子项元数据的交付之后,该客户端代理就可以根据实际交付状况来实时调整后续获取子项元数据的单位,即更新的获取长度。在本发明实施例中,i表示客户端代理获取子项元数据的次数,首次获取子项元数据时初始获取长度即为L1,第二次获取子项元数据时的获取长度即为L2,以此类推。
当完成首批子项元数据的交付之后,该客户端代理可以将历史交付速度与历史预读速度之比乘以该初始获取长度的值确定为更新的获取长度。该历史交付速度用于表示该客户端代理向该协议客户端已发送的该目录的子项元数据的平均发送速度,该历史预读速度用于表示该客户端代理从该元数据服务器中已获取的该目录的子项元数据的平均获取速度。该历史预读速度为已预读长度除以预读时延,其中,该已预读长度用于表示该客户端代理从该元数据服务器集群中读取的子项元数据的累计长度,该预读时延用于表示该客户端代理从该元数据服务器集群中读取该初始获取长度的子项元数据的时间。该交付速度为已交付长度除以已交付时延,其中,该已交付长度用于表示该客户端代理向该协议客户端发送的子项元数据的累计长度,该已交付时延用于表示该客户端代理完成一次向该协议客户端发送子项元数据到再次开始向该协议客户端发送子项元数据的时间间隔的累计。应理解,在后续的获取子项元数据的过程中,可以将历史交付速度与历史预读速度之比乘以上次更新的获取长度的值作为本次更新的获取长度,即该更新的获取长度是可以根据之前所有的获取子项元数据及交付子项元数据的情况来实时调整的。
在本发明实施例中,客户端代理可以通过历史交付速度与历史预读速度之比乘以该获取长度来计算更新的获取长度,这样能够保证下一次的预读速度大于或等于下一次的交付速度,使得客户端代理在向协议客户端发送预读缓存中的子项元数据时,预读缓存中有缓存的上述交付长度的子项元数据可以发送,以便于该协议客户端能够及时获取子项元数据,不必进行过多等待。考虑到元数据服务器的性能,并不是预读速度越快越好,本发明实施例中确定更新的获取长度的方式可以使预读速度合理匹配交付速度,在保证减少时延的同时,不影响元数据服务器的性能。
因此,本发明实施例的获取文件系统中子项元数据的方法,在采用预读缓存机制的基础上,通过客户端代理实时调整从元数据服务器中获取的子项元数据的长度,可以实时调整预读速度以匹配交付速度,从而最大限度地减少串行等待的时延,同时不影响元数据服务器的性能,提高了用户体验。
作为一个可选实施例,该客户端代理可以重复从该元数据服务器中获取长度为该获取长度的子项元数据,并将获取的子项元数据写入该预读缓存,直到该所有子项元数据都获取完成为止。
作为一个可选实施例,在该客户端代理从元数据服务器中获取目标目录中的子项元数据之前,该方法还包括:
该客户端代理根据本次获取的长度,确定需要获取的该目标目录下的多个目录分片对象的标识;
该客户端代理向该元数据服务器发送请求消息,该请求消息包括该多个目录分片对象的标识;
该客户端代理从元数据服务器中获取目标目录中的子项元数据,包括:
该客户端代理接收该元数据服务器根据该请求消息发送的该目标目录中的子项元数据。
在本发明实施例中,该客户端代理可以先确定需要从元数据服务器中获取的子项元数据的长度,即本次获取的长度,根据本次获取的长度,该客户端代理确定需要获取的该目录下的多个目录分片对象的标识。这里,本次获取的长度可以是首次获取该目标目录中的子项元数据时采用的初始获取长度,也可以是后续获取该目标目录中的子项元数据时采用的更新的获取长度,本发明实施例对此不做限定。
具体而言,该客户端代理可以确定协议客户端需要获取的子项元数据所在目标目录的目标目录标识,该客户端代理将该目标目录标识发送给元数据服务器,该元数据服务器就可以根据该目标目录标识确定该目标目录对应的多个目录分片对象,继而确定该多个目录分片对象中存储的子项元数据。在该客户端代理从该元数据服务器中获取子项元数据之前,该客户端代理会根据该本次获取的长度,计算需要读取的多个目录分片对象的个数,并确定其中每一个目录分片对象的标识。然后该客户端代理向元数据服务器发送包括该多个目录分片对象的标识的请求消息,该元数据服务器会根据该请求消息,向该客户端代理发送与该多个目录分片对象的标识相对应的多个目录分片对象中存储的子项元数据。
作为一个可选实施例,可以将客户端代理分为前端和后端两部分:前端负责与协议客户端交互,即可以负责接收该协议客户端的请求和响应,从预读缓存中读取缓存的子项元数据并发送给该协议客户端;后端负责与元数据服务器交互,即可以负责读取并接收该元数据服务器发送的子项元数据,将其写入预读缓存中。应理解,上述划分仅仅是从功能上对客户端代理的划分,本发明实施例对此不做限定。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例的获取文件系统中子项元数据的方法,通过元数据服务器向客户端代理发送目标目录中多个目录分片对象的子项元数据,由客户端代理将该子项元数据存入预读缓存中,该客户端代理可以直接向协议客户端发送该预读缓存中的子项元数据,同时继续获取目标目录中尚未获取到的子项元数据,这样该客户端代理向协议客户端发送子项元数据与该客户端代理从该元数据服务器中获取子项元数据的过程是并行执行的,解决了协议客户端需要等待客户端代理从元数据服务器中获取子项元数据的问题,从而减少了协议客户端获取子项元数据的整体时延,提高了用户体验。
图2是本发明实施例的另一获取文件系统中子项元数据的方法200的示意性流程图。
在S201中,协议客户端与客户端代理协商协议块大小,该协议块大小用于表示协议客户端与该客户端代理一次交互过程中能够传输的目录分片对象的子项元数据的最大长度。
在S202中,该协议客户端向该客户端代理发送请求消息,该请求消息携带该协议客户端需要获取的子项元数据所在目标目录的目标目录标识和用于标识获取序号的cookie值。该协议客户端初始指定cookie为0,表示从头遍历该目标目录下的目录分片对象。
在S203中,该客户端代理根据该协议客户端发送的该请求消息,获取目录元数据,即该目标目录的元数据信息。该目标目录的元数据信息包括该目标目录下各个目录分片对象的路由信息和属性信息,其中,该属性信息中包括其对应的目录分片对象中存储的子项元数据的长度。
具体而言,该客户端代理获取目录元数据,包括:该客户端代理查询缓存,若缓存中有该目标目录的元数据信息,则该客户端代理直接获取该目标目录的元数据信息;若缓存中没有该目标目录的元数据信息,则该客户端代理向元数据服务器发送携带该目标目录标识的请求消息,元数据服务器根据该请求消息向该客户端代理发送该目标目录的元数据信息,客户端代理接收该元数据服务器发送的该目标目录的元数据信息。
在S204中,该客户端代理启动预读任务,初始化设置已交付长度为0,已交付时延为0。
在S205中,该客户端代理确定首批需要预读的目录分片对象的标识列表,并将该标识列表发送给元数据服务器。
具体而言,该客户端代理首先将预读长度,即上述的初始获取长度,设置为该协议块大小的两倍,再根据在S203中获取的该目标目录下各个目录分片对象中子项元数据的长度,计算出本次需要读取的目录分片对象的个数,分别确定对应的目录分片对象的标识列表,最后将需要预读的目录分片对象的标识列表发送给该元数据服务器。
在S206中,该元数据服务器在收到该客户端代理发送的需要读取的目录分片对象的标识列表之后,可以根据该标识列表向该客户端代理发送该目录分片对象中存储的子项元数据。
应理解,该元数据服务器向该客户端代理发送各个目录分片对象中存储的子项元数据是并发进行的,该客户端代理接收该子项元数据也是并发接收多个目录分片对象中存储的子项元数据的。
在S207中,该客户端代理接收该元数据服务器发送的子项元数据,并将该子项元数据写入预读缓存。
在S208中,当预读缓存中的子项元数据的长度达到上述协议块大小时,该客户端代理向该协议客户端发送该预读缓存中的子项元数据,该子项元数据的长度即为交付长度,在本发明实施例中为该协议块大小。同时,该客户端代理向该协议客户端发送用于指示未读取完成所有目录分片对象中存储的子项元数据的指示信息FALSE。
具体而言,在该客户端代理使用预读缓存中的内容向该协议客户端发送子项元数据的同时,该客户端代理可以向该协议客户端发送指示信息,该指示信息用于指示是否发送完该目标目录下所有目录分片对象的子项元数据。例如,可以将该指示信息设置为TRUE或者FALSE,TRUE表示发送完了所有目录分片对象的子项元数据,FALSE表示未发送完所有目录分片对象的子项元数据,需要该协议客户端继续请求获取子项元数据;也可以将该指示信息设置为1或者0,1表示发送完了所有目录分片对象的子项元数据,0表示未发送完所有目录分片对象的子项元数据,本发明实施例对此不做限定。
应理解,在该客户端代理以交付长度为单位向该协议客户端发送预读缓存中的子项元数据时,该客户端代理同时在以初始获取长度为单位获取该元数据服务器中多个目录分片对象的子项元数据并将其写入预读缓存中,这两个过程是并行执行的。
在S209中,当该客户端代理完成了首批子项元数据的获取之后,该客户端代理统计预读速度,该预读速度用于表示该客户端代理从该元数据服务器中已获取的子项元数据的平均速度。
具体而言,该预读速度为已预读长度除以预读时延,其中,该已预读长度用于表示该客户端代理从该元数据服务器集群中读取的子项元数据的累计长度,该预读时延用于表示该客户端代理从该元数据服务器集群中读取该初始获取长度的子项元数据的累计时间。
在S210中,当该客户端代理完成了首批子项元数据的交付之后,该客户端代理计算已交付长度,该已交付长度为初始化的已交付长度加上本次交付长度,即为本次交付长度。同时,该客户端代理记录应答时刻,该应答时刻即为该客户端代理完成子项元数据交付的时刻。
在S211中,该协议客户端接收该客户端代理发送的子项元数据和指示信息,由于该指示信息为FALSE,表示未获取完所有目录分片对象的子项元数据,因此,该协议客户端继续向该客户端代理发送请求消息,用于请求获取剩余目录分片对象的子项元数据。
该请求消息携带该协议客户端需要获取的子项元数据所在目录(即上述目标目录)的目标目录标识和用于标识获取序号的cookie值。此刻,该协议客户端设置cookie为已交付子项的哈希值的最大值,即为本次起点。
在S212中,当接收到该协议客户端发送的请求消息时,该客户端代理计算上次交付时延和已交付时延,该上交付时延为当前时刻减去上述应答时刻,该已交付时延为之前的已交付时延加上次交付时延,用于表示该客户端代理完成一次向该协议客户端发送子项元数据到再次开始向该协议客户端发送子项元数据的时间间隔的累计。
在S213中,该客户端代理调整需要预读的目录分片对象的标识列表。
具体地,该客户端代理先计算出历史交付速度,该交付速度为已交付长度除以已交付时延,其中,该已交付长度用于表示该客户端代理向该协议客户端发送的子项元数据的累计长度。然后,该客户端代理根据历史交付速度和历史预读速度,计算本次读取子项元数据的预读长度,即更新的获取长度。该客户端代理计算该历史交付速度与该历史预读速度之比乘以该获取长度的值,并将其确定为更新的获取长度。该客户端代理根据该更新的获取长度和该目标目录下各个目录分片对象中子项元数据的长度,补充需要预读的目录分片对象的标识列表,使得尚未交付的子项元数据,即本次已从该元数据服务器中读取的子项元数据,和即将预读的子项元数据的总长度为该更新的获取长度。该客户端代理将确定的需要预读的目录分片对象的标识列表发送给该元数据服务器。
在S214中,该元数据服务器在收到该客户端代理发送的需要读取的目录分片对象的标识列表之后,根据该标识列表向该客户端代理并发发送该目录分片对象中存储的子项元数据。
在S215中,该客户端代理接收该元数据服务器发送的子项元数据,并将该子项元数据写入预读缓存。
在S216中,当该预读缓存中的子项元数据长度达到上述协议块大小时,该客户端代理向该协议客户端发送该预读缓存中的子项元数据,该子项元数据的长度即为交付长度,在本发明实施例中为该协议块大小。同时,该客户端代理向该协议客户端发送未读取完成所有目录分片对象中存储的子项元数据的指示信息FALSE。
在S217中,该客户端代理统计已获取子项元数据的预读速度。
在S218中,该客户端代理计算已交付长度,该已交付长度为上次的已交付长度加本次交付长度。同时,该客户端代理记录应答时刻,该应答时刻即为该客户端代理完成子项元数据交付的时刻。
重复S211至S216,直到该协议客户端需要获取最后一批子项元数据为止。其中,该客户端代理是将历史交付速度与历史预读速度之比乘以上次的更新的获取长度的值确定为本次的更新的获取长度的,即该更新的获取长度是根据已获取的子项元数据的情况及已交付的子项元数据的情况来实时调整的。
在S219中,该元数据服务器在收到该客户端代理发送的需要读取的目录分片对象的标识列表之后,根据该标识列表向该客户端代理并发发送该目录分片对象中存储的子项元数据,该子项元数据为最后一批子项元数据。
在S220中,该客户端代理将该最后一批子项元数据写入预读缓存,这里将长度小于或等于该更新的获取长度的一批子项元数据称为最后一批子项元数据。
在S221中,该协议客户端向该客户端代理发送请求消息。
在S222中,该客户端代理根据该请求消息向该协议客户端发送预读缓存中的最后一批子项元数据,这里将长度小于或者等于该交付长度的一批子项元数据称为最后一批子项元数据;同时该客户端代理向该协议客户端发送指示信息TRUE,表示该目标目录下所有目录分片对象的子项元数据已经全部发送完毕。该协议客户端在收到该指示信息之后便不会再向该客户端代理发送请求消息了。
在S223中,该客户端代理删除该目标目录的预读缓存,这样便完成了获取该目标目录下所有目录分片对象中的子项元数据的过程。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例的获取文件系统中子项元数据的方法,通过元数据服务器向客户端代理发送目标目录中多个目录分片对象的子项元数据,由客户端代理将该子项元数据存入预读缓存中,该客户端代理可以直接向协议客户端发送该预读缓存中的子项元数据,解决了协议客户端需要等待客户端代理从元数据服务器中获取子项元数据的问题,同时通过该客户端代理实时调整从该元数据服务器中获取的子项元数据的长度,可以实时调整预读速度以匹配交付速度,从而最大限度地减少了协议客户端获取子项元数据的整体时延,同时不影响该元数据服务器的性能,提高了用户体验。
上文中结合图1至图2,详细描述了根据本发明实施例的获取文件系统中子项元数据的方法,下面将结合图3至图5,详细描述根据本发明实施例的获取文件系统中子项元数据的装置和系统。
图3示出了本发明实施例的获取文件系统中子项元数据的装置300,该装置300包括:
获取单元310,用于从元数据服务器中获取目标目录中的子项元数据;
写入单元320,用于将获取的该子项元数据写入预读缓存;
发送单元330,用于若该预读缓存中缓存的子项元数据的长度等于或大于交付长度,向该协议客户端发送该预读缓存中缓存的长度为该交付长度的子项元数据,其中,该交付长度小于或等于协议块大小,该协议块大小用于表示协议客户端与该装置一次交互过程中能够传输的子项元数据的最大长度。
该获取单元310还用于:
在该发送单元向该协议客户端发送该预读缓存中缓存的长度为该交付长度的子项元数据的同时,继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据,直到向该协议客户端发送了该目标目录中的全部子项元数据。
可选地,该获取单元具体用于:
在该装置首次从该元数据服务器中获取该目标目录中的子项元数据时,以初始获取长度为单位从该元数据服务器中获取该目标目录中的子项元数据,该初始获取长度大于该协议块大小。
可选地,该装置还包括:
确定单元,用于在该装置继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据之前,根据历史交付速度和历史预读速度,确定更新的获取长度,以使得该预读缓存中缓存的子项元数据的量逐渐增加,其中,该历史交付速度为该装置已经向该协议客户端发送的该目标目录的子项元数据的长度与发送该目标目录中已发送的子项元数据所用的时长之比,该历史预读速度为该装置已经从该元数据服务器中获取到的该目标目录中的子项元数据的长度与获取该目标目录中已获取到的子项元数据所用的时长之比;
该获取单元还用于:
以该更新的获取长度为单位继续从该元数据服务器中获取该目标目录中的尚未获取到的子项元数据。
可选地,该更新的获取长度Li+1由下式确定:
Li+1=Li×(vs/vr)
其中,Li表示本次获取的获取长度,vs表示该历史交付速度,vr表示该历史预读速度。
可选地,该确定单元还用于:
在该从元数据服务器中获取目标目录中的子项元数据之前,根据本次获取的获取长度,确定需要获取的该目标目录下的多个目录分片对象的标识;
该发送单元还用于:
向该元数据服务器发送请求消息,该请求消息包括该多个目录分片对象的标识;
该获取单元还用于:
接收该元数据服务器根据该请求消息发送的该目标目录中的子项元数据。
可选地,该第一长度为该协议块大小的N倍,该N为大于或等于2的整数。
应理解,这里的装置300以功能单元的形式体现。这里的术语“单元”可以指应用特有集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置300可以具体为上述实施例中的客户端代理,装置300可以用于执行上述方法实施例中与客户端代理对应的各个流程和/或步骤,为避免重复,在此不再赘述。
图4示出了本发明实施例提供的获取文件系统中子项元数据的装置400,该装置400包括接收器410、处理器420、发送器430、存储器440和总线系统450。其中,接收器410、处理器420、发送器430和存储器440通过总线系统450相连,该存储器440用于存储指令,该处理器420用于执行该存储器440存储的指令,以控制该接收器410接收信号,并控制该发送器430发送指令。
其中,该接收器410用于从元数据服务器中获取目标目录中的子项元数据;
该处理器420用于将获取的该子项元数据写入预读缓存;
该发送器430用于若该预读缓存中缓存的子项元数据的长度等于或大于交付长度,向该协议客户端发送该预读缓存中缓存的长度为该交付长度的子项元数据,其中,该交付长度小于或等于协议块大小,该协议块大小用于表示协议客户端与该装置一次交互过程中能够传输的子项元数据的最大长度;
该接收器410还用于在该发送单元向该协议客户端发送该预读缓存中缓存的长度为该交付长度的子项元数据的同时,继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据,直到向该协议客户端发送了该目标目录中的全部子项元数据。
可选地,该接收器410具体用于在该装置首次从该元数据服务器中获取该目标目录中的子项元数据时,以初始获取长度为单位从该元数据服务器中获取该目标目录中的子项元数据,该初始获取长度大于该协议块大小。。
可选地,该处理器420具体用于在该装置继续从该元数据服务器中获取该目标目录中尚未获取到的子项元数据之前,根据历史交付速度和历史预读速度,确定更新的获取长度,以使得该预读缓存中缓存的子项元数据的量逐渐增加,其中,该历史交付速度为该装置已经向该协议客户端发送的该目标目录的子项元数据的长度与发送该目标目录中已发送的子项元数据所用的时长之比,该历史预读速度为该装置已经从该元数据服务器中获取到的该目标目录中的子项元数据的长度与获取该目标目录中已获取到的子项元数据所用的时长之比;
该接收器410还用于以该更新的获取长度为单位继续从该元数据服务器中获取该目标目录中的尚未获取到的子项元数据。
可选地,该更新的获取长度Li+1由下式确定:
Li+1=Li×(vs/vr)
其中,Li表示本次获取的获取长度,vs表示该历史交付速度,vr表示该历史预读速度。
可选地,该处理器420具体用于:
在该装置从元数据服务器中获取目标目录中的子项元数据之前,根据该本次获取的获取长度,确定需要获取的该目标目录下的多个目录分片对象的标识;
该发送器430还用于向该元数据服务器发送请求消息,该请求消息包括该多个目录分片对象的标识;
该接收器410还用于接收该元数据服务器根据该请求消息发送的该目标目录中的子项元数据。
可选地,该第一长度为该协议块大小的N倍,该N为大于或等于2的整数。
应理解,装置400可以具体为上述实施例中的客户端代理,并且可以用于执行上述方法实施例中与客户端代理对应的各个步骤和/或流程。可选地,该存储器440可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器420可以用于执行存储器中存储的指令,并且该处理器执行该指令时,该处理器可以执行上述方法实施例中与终端设备对应的各个步骤和/或流程。
应理解,在本发明实施例中,该处理器可以是中央处理单元(CentralProcessingUnit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
另外,根据本发明实施例的获取文件系统中子项元数据的系统500,如图5所示,可以包括协议客户端、元数据服务器和上述获取文件系统中子项元数据的装置300。在一个可选例子中,本领域技术人员可以理解,装置300可以用于执行上述方法实施例中与客户端代理对应的各个流程和/或步骤,为避免重复,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称为“ROM”)、随机存取存储器(RandomAccessMemory,简称为“RAM”)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种获取文件系统中子项元数据的方法,其特征在于,包括:
客户端代理从元数据服务器中获取目标目录中的子项元数据;
所述客户端代理将获取到的所述子项元数据写入预读缓存;
若所述预读缓存中缓存的子项元数据的长度等于或大于交付长度,所述客户端代理向所述协议客户端发送所述预读缓存中缓存的长度为所述交付长度的子项元数据,同时继续从所述元数据服务器中获取所述目标目录中尚未获取到的子项元数据,直到向所述协议客户端发送了所述目标目录中的全部子项元数据,其中,所述交付长度小于或等于协议块大小,所述协议块大小用于表示协议客户端与所述客户端代理一次交互过程中能够传输的子项元数据的最大长度。
2.根据权利要求1所述的方法,其特征在于,所述客户端代理从元数据服务器中获取目标目录中的子项元数据,包括:
在所述客户端代理首次从所述元数据服务器中获取所述目标目录中的子项元数据时,所述客户端代理以初始获取长度为单位从所述元数据服务器中获取所述目标目录中的子项元数据,所述初始获取长度大于所述协议块大小。
3.根据权利要求1或2所述的方法,其特征在于,在所述客户端代理继续从所述元数据服务器中获取所述目标目录中尚未获取到的子项元数据之前,所述方法还包括:
所述客户端代理根据历史交付速度和历史预读速度,确定更新的获取长度,以使得所述预读缓存中缓存的子项元数据的量逐渐增加,其中,所述历史交付速度为所述客户端代理已经向所述协议客户端发送的所述目标目录中的子项元数据的长度与发送所述目标目录中已发送的子项元数据所用的时长之比,所述历史预读速度为所述客户端代理已经从所述元数据服务器中获取到的所述目标目录中的子项元数据的长度与获取所述目标目录中已获取到的子项元数据所用的时长之比;
所述客户端代理继续从所述元数据服务器中获取所述目标目录中尚未获取到的子项元数据,包括:
所述客户端代理以所述更新的获取长度为单位继续从所述元数据服务器中获取所述目标目录中的尚未获取到的子项元数据。
4.根据权利要求3所述的方法,其特征在于,所述更新的获取长度Li+1由下式确定:
Li+1=Li×(vs/vr)
其中,Li表示本次获取的获取长度,vs表示所述历史交付速度,vr表示所述历史预读速度。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述客户端代理从元数据服务器中获取目标目录中的子项元数据之前,所述方法还包括:
所述客户端代理根据本次获取的获取长度,确定需要获取的所述目标目录下的多个目录分片对象的标识;
所述客户端代理向所述元数据服务器发送请求消息,所述请求消息包括所述多个目录分片对象的标识;
所述客户端代理从元数据服务器中获取目标目录中的子项元数据,包括:
所述客户端代理接收所述元数据服务器根据所述请求消息发送的所述目标目录中的子项元数据。
6.根据权利要求2所述的方法,其特征在于,所述初始获取长度为所述协议块大小的N倍,所述N为大于或等于2的整数。
7.一种获取文件系统中子项元数据的装置,其特征在于,包括:
获取单元,用于从元数据服务器中获取目标目录中的子项元数据;
写入单元,用于将获取的所述子项元数据写入预读缓存;
发送单元,用于若所述预读缓存中缓存的子项元数据的长度等于或大于交付长度,向所述协议客户端发送所述预读缓存中缓存的长度为所述交付长度的子项元数据,其中,所述交付长度小于或等于协议块大小,所述协议块大小用于表示协议客户端与所述装置一次交互过程中能够传输的子项元数据的最大长度;
所述获取单元还用于:在所述发送单元向所述协议客户端发送所述预读缓存中缓存的长度为所述交付长度的子项元数据的同时,继续从所述元数据服务器中获取所述目标目录中尚未获取到的子项元数据,直到向所述协议客户端发送了所述目标目录中的全部子项元数据。
8.根据权利要求7所述的装置,其特征在于,所述获取单元具体用于:
在所述装置首次从所述元数据服务器中获取所述目标目录中的子项元数据时,以初始获取长度为单位从所述元数据服务器中获取所述目标目录中的子项元数据,所述初始获取长度大于所述协议块大小。
9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
确定单元,用于在所述装置继续从所述元数据服务器中获取所述目标目录中尚未获取到的子项元数据之前,根据历史交付速度和历史预读速度,确定更新的获取长度,以使得所述预读缓存中缓存的子项元数据的量逐渐增加,其中,所述历史交付速度为所述装置已经向所述协议客户端发送的所述目标目录的子项元数据的长度与发送所述目标目录中已发送的子项元数据所用的时长之比,所述历史预读速度为所述装置已经从所述元数据服务器中获取到的所述目标目录中的子项元数据的长度与获取所述目标目录中已获取到的子项元数据所用的时长之比;
所述获取单元具体用于:
以所述更新的获取长度为单位继续从所述元数据服务器中获取所述目标目录中的尚未获取到的子项元数据。
10.根据权利要求9所述的装置,其特征在于,所述更新的获取长度Li+1由下式确定:
Li+1=Li×(vs/vr)
其中,Li表示本次获取的获取长度,vs表示所述历史交付速度,vr表示所述历史预读速度。
11.根据权利要求7至10中任一项所述的装置,其特征在于,所述确定单元还用于:
在所述从元数据服务器中获取目标目录中的子项元数据之前,根据本次获取的获取长度,确定需要获取的所述目标目录下的多个目录分片对象的标识;
所述发送单元还用于:
向所述元数据服务器发送请求消息,所述请求消息包括所述多个目录分片对象的标识;
所述获取单元具体用于:
接收所述元数据服务器根据所述请求消息发送的所述目标目录中的子项元数据。
12.根据权利要求8所述的装置,其特征在于,所述初始获取长度为所述协议块大小的N倍,所述N为大于或等于2的整数。
13.一种获取文件系统中子项元数据的系统,其特征在于,包括:协议客户端、元数据服务器和权利要求7至12中任一项所述的装置。
CN201511020192.3A 2015-12-30 2015-12-30 获取文件系统中子项元数据的方法、装置和系统 Active CN105677754B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511020192.3A CN105677754B (zh) 2015-12-30 2015-12-30 获取文件系统中子项元数据的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511020192.3A CN105677754B (zh) 2015-12-30 2015-12-30 获取文件系统中子项元数据的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN105677754A true CN105677754A (zh) 2016-06-15
CN105677754B CN105677754B (zh) 2019-03-26

Family

ID=56189745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511020192.3A Active CN105677754B (zh) 2015-12-30 2015-12-30 获取文件系统中子项元数据的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN105677754B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107491545A (zh) * 2017-08-25 2017-12-19 郑州云海信息技术有限公司 一种分布式存储系统的目录读取方法及客户端
CN109542361A (zh) * 2018-12-04 2019-03-29 郑州云海信息技术有限公司 一种分布式存储系统文件读取方法、系统及相关装置
CN110674093A (zh) * 2019-08-28 2020-01-10 金蝶汽车网络科技有限公司 文件数据处理方法、装置、计算机设备和存储介质
CN111198885A (zh) * 2019-12-30 2020-05-26 北京奇艺世纪科技有限公司 数据的处理方法及装置
CN112860780A (zh) * 2021-03-30 2021-05-28 中国工商银行股份有限公司 数据导出方法、装置和终端设备
CN113986838A (zh) * 2021-12-28 2022-01-28 成都云祺科技有限公司 基于文件系统的海量小文件处理方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354726A (zh) * 2008-09-17 2009-01-28 中国科学院计算技术研究所 一种机群文件系统的内存元数据管理方法
CN101697168A (zh) * 2009-10-22 2010-04-21 中国科学技术大学 一种分布式文件系统动态元数据管理方法及系统
US20110153606A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method of managing metadata in asymmetric distributed file system
CN101616007B (zh) * 2008-06-24 2012-04-18 华为技术有限公司 一种map服务器的实现方法、系统和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616007B (zh) * 2008-06-24 2012-04-18 华为技术有限公司 一种map服务器的实现方法、系统和设备
CN101354726A (zh) * 2008-09-17 2009-01-28 中国科学院计算技术研究所 一种机群文件系统的内存元数据管理方法
CN101697168A (zh) * 2009-10-22 2010-04-21 中国科学技术大学 一种分布式文件系统动态元数据管理方法及系统
US20110153606A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method of managing metadata in asymmetric distributed file system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107491545A (zh) * 2017-08-25 2017-12-19 郑州云海信息技术有限公司 一种分布式存储系统的目录读取方法及客户端
CN109542361A (zh) * 2018-12-04 2019-03-29 郑州云海信息技术有限公司 一种分布式存储系统文件读取方法、系统及相关装置
CN109542361B (zh) * 2018-12-04 2022-06-07 郑州云海信息技术有限公司 一种分布式存储系统文件读取方法、系统及相关装置
CN110674093A (zh) * 2019-08-28 2020-01-10 金蝶汽车网络科技有限公司 文件数据处理方法、装置、计算机设备和存储介质
CN111198885A (zh) * 2019-12-30 2020-05-26 北京奇艺世纪科技有限公司 数据的处理方法及装置
CN112860780A (zh) * 2021-03-30 2021-05-28 中国工商银行股份有限公司 数据导出方法、装置和终端设备
CN113986838A (zh) * 2021-12-28 2022-01-28 成都云祺科技有限公司 基于文件系统的海量小文件处理方法、系统及存储介质

Also Published As

Publication number Publication date
CN105677754B (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN105677754A (zh) 获取文件系统中子项元数据的方法、装置和系统
CN109862065B (zh) 文件下载方法、装置和电子设备
KR20200027413A (ko) 데이터 저장 방법, 장치 및 시스템
CN109284464B (zh) 页面加载方法及终端、页面响应方法及服务器
CN108429777B (zh) 一种基于缓存的数据更新方法及服务器
CN110166523B (zh) 内容更新方法、装置、设备和计算机可读存储介质
CN110247985B (zh) 一种资源下载方法、装置、电子设备及介质
CN102546836A (zh) 一种上传文件的方法、终端、服务器及系统
CN106817388B (zh) 虚拟机、宿主机获取数据的方法、装置及访问数据的系统
CN111159436A (zh) 一种推荐多媒体内容的方法、装置及计算设备
CN109471843B (zh) 一种元数据缓存方法、系统及相关装置
KR102098415B1 (ko) 캐시 관리 기법
CN104618444A (zh) 一种基于反向代理服务器处理请求的方法和装置
JP6972714B2 (ja) データ取得プログラム、装置、及び方法
CN103036948B (zh) 网络文件处理方法、执行节点、软件即服务SaaS平台
EP3842955A2 (en) File directory traversal method, apparatus, device, and medium
CN108804515B (zh) 一种网页加载方法、网页加载系统和服务器
CN110324681B (zh) 多媒体数据的切片方法、装置、存储介质及传输系统
CN110784534B (zh) 数据服务方法、装置、系统及电子设备
CN113742131A (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN111835801A (zh) 文件下载方法、装置、服务器、边缘设备、终端及介质
CN111680014B (zh) 共享文件的获取方法、装置、电子设备及存储介质
CN104767801A (zh) 一种两线程ftp的传输方法及系统
CN112887349B (zh) 分发文件的方法和装置
CN113744013A (zh) 订单号的生成方法、装置、服务器及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant