CN110781137A - 分布式***的目录读取方法、装置、服务器和存储介质 - Google Patents

分布式***的目录读取方法、装置、服务器和存储介质 Download PDF

Info

Publication number
CN110781137A
CN110781137A CN201911030300.3A CN201911030300A CN110781137A CN 110781137 A CN110781137 A CN 110781137A CN 201911030300 A CN201911030300 A CN 201911030300A CN 110781137 A CN110781137 A CN 110781137A
Authority
CN
China
Prior art keywords
directory
reading
directory reading
subtasks
client
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
Application number
CN201911030300.3A
Other languages
English (en)
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.)
Data Technology (shenzhen) Ltd By Share Ltd
Original Assignee
Data Technology (shenzhen) Ltd By Share 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 Data Technology (shenzhen) Ltd By Share Ltd filed Critical Data Technology (shenzhen) Ltd By Share Ltd
Priority to CN201911030300.3A priority Critical patent/CN110781137A/zh
Publication of CN110781137A publication Critical patent/CN110781137A/zh
Pending legal-status Critical Current

Links

Images

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/13File access structures, e.g. distributed indices
    • 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/18File system types
    • G06F16/182Distributed 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

本发明公开了一种分布式***的目录读取方法,应用于局部服务器,包括:接收客户端发送的目录读取请求;基于所述目录读取请求生成目录读取任务;基于预设规则将所述目录读取任务分成N个子任务;异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。本发明还提供了一种分布式***的目录读取装置、服务器和存储介质。本发明通过将客户端的读取任务分成N个子任务异步执行,使读取时间缩短,同时根据子任务完成的时间顺序依次返回客户端,避免了部分目录读取失败即造成整体读取任务失败。

Description

分布式***的目录读取方法、装置、服务器和存储介质
技术领域
本发明实施例涉及集群文件***的元数据服务在处理文件接口中的超大目录的读取技术,尤其涉及一种分布式***的目录读取方法、装置、服务器和存储介质。
背景技术
集群文件***按照对存储空间的访问方式,可分为共享存储型集群文件***和分布式集群文件***,前者是多台计算机识别到同样的存储空间,并相互协调共同管理其上的文件,又被称为共享文件***;后者则是每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。大规模集群文件***无一例外都属于分布式集群文件***。分布式集群文件***可扩展性更强。
现有技术中,超大目录执行列目录的操作时,无法有效的列出目录或列目录时间非常长的情况,容易导致超大目录加载时间超长,耗费大量时间,当超大目录加载失败时即无法读出目录,导致读取失败。
本发明通过将客户端的读取任务分成N个子任务异步执行,使读取时间缩短,同时根据子任务完成的时间顺序依次返回客户端,避免了部分目录读取失败即造成整体读取任务失败。
发明内容
本发明提供一种分布式***的目录读取方法,应用于局部服务器,以实现读取时间缩短,避免了部分目录读取失败即造成整体读取任务失败的效果。
第一方面,本发明实施例提供了一种分布式***的目录读取方法,包括:
接收客户端发送的目录读取请求;
基于所述目录读取请求生成目录读取任务;
基于预设规则将所述目录读取任务分成N个子任务;
异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;
基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
第二方面,本发明实施例还提供了一种分布式***的目录读取装置,包括如下模块:
接收模块,用于接收客户端发送的目录读取请求;
任务生成模块,用于基于所述目录读取请求生成目录读取任务;
分组模块,用于基于预设规则将所述目录读取任务分成N个子任务;
执行模块,用于异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;
第一发送模块,用于基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
第三方面,本发明实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如上述任一所述的分布式***的目录读取方法。
第四方面,本发明实施例还提供了一种终端可读存储介质,其上存储有程序,所述程序被处理器执行时能够实现如上述任一所述的分布式***的目录读取方法。
本发明通过通过将客户端的读取任务分成N个子任务异步执行,使读取时间缩短,同时根据子任务完成的时间顺序依次返回客户端,避免了部分目录读取失败即造成整体读取任务失败。
附图说明
图1是本发明实施例一中的分布式***的目录读取方法流程图。
图2是本发明实施例二中的分布式***的目录读取方法流程图。
图3是本发明实施例三中的分布式***的目录读取方法流程图。
图4是本发明实施例三替代实施例中的步骤流程图。
图5是本发明实施例四的一种分布式***的目录读取装置结构图。
图6是本发明实施例四替代实施例的一种分布式***的目录读取装置结构图。
图7是本发明实施例五中的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
如图1所示,本发明实施例一提供了一种分布式***的目录读取方法,本实施例及以下实施例均以分布式集群文件***Ceph为例进行说明,该方法具体包括如下步骤:
S101、接收客户端发送的目录读取请求。
在分布式文件***中,对于目录的读取操作一般是指元数据操作,比如列目录获取目录下所有文件的信息等。开源分布式集群文件***Ceph的文件接口对目录的读取的流程为,客户端发出读取目录下文件信息的请求,元数据管理服务生成目录读取任务,执行目录读取任务查询得到目录下文件数总量N,一次性的获取N个文件的所有元数据信息,将获取到的元数据信息一起返回给客户端。
S102、基于所述目录读取请求生成目录读取任务。
在大数据环境下,目录的体量也非常大,目录的存取性能是整个分布式文件***性能的关键。该步骤中,分布式存储***的服务器收到读取请求消息之后,从元数据服务器并发读取目标目录中多个目录分片对象的目录项。读取目录任务指的是读取目录中每条描述数据的元数据,再将读取的目录项交付给该客户端的操作。
S103、基于预设规则将所述目录读取任务分成N个子任务。
该步骤中,服务器通过扫描文件***中存储的数据文件目录的记录,获取到待读取的目录的文件数,基于文件数将目录读取任务分成N个子任务。在接收到客户端发送的目标目录请求后,分布式文件***的客户端向元数据服务器请求目标目录的目录大小,目录大小可以用目录中所含有的目录项数量来表示,这里所述的目录项指的是描述具体文件的属性的数据,也就是通常所说的描述数据的数据,包括文件的属性,比如文件创建、修改及访问的时间,文件拥有者,文件权限,映射信息等,也可以称为元数据。
优选地,目录读取请求中包括待读取目录文件数,预设的每组文件个数根据所述待读取目录文件数确定。在本实施例中,优选地,每组文件个数M相同,且每组文件个数M的值使分组后的子任务数N为正整数。可选地,每组文件个数M与子任务数N的取值设置与文件***剩余IOPS和进行平均IOPS相关。
S104、异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果。
该步骤使用异步执行。异步执行是指任务在异步执行模式下,各语句执行结束的顺序与任务执行开始的顺序并不一定相同。在本实施例的操作中,服务器执行读取目录文件的所述N个子任务,每个子任务读取元数据中的文件目录,执行完成后直接将任务结果返回给客户端,而不需要等到服务器将查询结果合并后再一起返回客户端。
S105、基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
由于读取的目录文件的大小和数量不同,异步执行的N个子任务执行结束的时间也不相同。按照时间先后顺序,将首先生成的目录读取结果返回给客户端,后续生成的目录读取结果后返回给客户端。
该步骤中,文件***处理N个子任务,由于分布式文件***的目录文件有时候容量很大,如果将处理后的N个子任务合并后在返回客户端,可能导致耗时过长。同时,如果N个子任务中出现读取失败的子任务,导致无法将处理结果合并返回客户端,一个子任务失败则导致读取失败。
本实施例通过将客户端的读取任务分成N个子任务异步执行,使读取时间缩短,同时根据子任务完成的时间顺序依次返回客户端,避免了部分目录读取失败即造成整体读取任务失败。
实施例二
如图2所示,本实施例在上述实施例的基础上,对将所述目录读取任务分成N个子任务的步骤进行了细分,具体如下:
S201、接收客户端发送的目录读取请求。
S202、基于所述目录读取请求生成目录读取任务。
S2031、根据所述目录读取任务扫描待读取目录文件,获取待读取目录文件的目录文件数。
S2032、基于预设的每组文件个数,将所述目录文件分为N个分组,其中,分组数N=目录文件数/预设的每组文件个数。
该步骤中,预设的每组文件个数可以有参数自定义设置,也可以根据实际环境的使用情况进行动态调整以达到最优数量。分组数N由目录文件数/预设的每组文件个数向上取整得到。
S2033、基于所述分组数N将所述目录读取任务分成N个子任务。
S204、异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果。
该步骤中,每个子任务执行从服务器中读取自身分配的任务的元数据信息。
S205、基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
该步骤中,由于读取的目录文件的大小和数量不同,异步执行的N个子任务执行结束的时间也不相同。按照时间先后顺序,将首先生成的目录读取结果返回给客户端,后续生成的目录读取结果后返回给客户端。可选地,当出现一个或多个子任务的读取失败,无法生成目录读取结果,则向所述客户端返回对应的子任务读取失败信息。
本实施例基于预设的每组文件个数确定分组个数,使分组个数为整数,使子任务的处理更加便捷,避免了部分目录读取失败即造成整体读取任务失败。
实施例三
如图3所示,本实施例在上述实施例的基础上增加了缓存的步骤,使处理完成的目录读取结果缓存在分布式文件***的客户端中,具体步骤如下:
S301、接收客户端发送的目录读取请求。
S302、判断是否有缓存的所述目录读取结果。
该步骤中,在历史操作中,本地缓存可能储存有历史操作中需要向业务端发送的目录项。若每次都获取客户端的读取任务、执行读取任务再向客户端返回目录文件,则需要经过生成读取任务、服务器拆分子任务、服务器执行目录项读取目录文件的时间,而直接读取缓存任务,则方案无需等待时间,从而加快元数据服务器上目录的读取速度。
当获取到客户端发起的目录读取请求,服务器判断本地缓存中是否存在缓存的所述目录,如果是,则说明在历史操作中已读取过这一部分目录信息,可直接在所述本地缓存中获取目录读取结果,执行步骤S303;如果没有缓存,则生成目录读取任务,执行步骤S304。
S303、若有,则将缓存的所述目录读取结果发送至客户端。
S304、若没有,则基于所述目录读取请求生成目录读取任务。
该步骤中,若没有缓存,则表明历史操作中没有读取过这一部分的目录文件,需要重新读取,经过生成读取任务、服务器拆分子任务、服务器执行目录项读取目录文件的时间,即执行下述步骤S305。
S305、基于所述目录读取请求生成目录读取任务。
S306、基于预设规则将所述目录读取任务分成N个子任务。
S307、异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果。
S308、依次将生成的所述目录读取结果进行缓存。
该步骤中,N个子任务依次执行完成,生成目录读取结果。将所述目录读取结果保存至分布式文件***的本地缓存,服务器在本地开辟缓存空间,以存储读取后生成并向客户端返回的目录项。
本实施例中,所述将生成的目录读取结果进行缓存,可以是:缓存在局部服务器中、缓存在文件***挂载的其他客户端中、缓存在元数据服务器中等,不局限于上述几种缓存方式。示例性地,缓存在文件***挂载的其他客户端中,具体为:在返回目录读取结果的同时,将目录读取结果发送给发起读取请求的客户端,同时将目录读取结果分发到分布式文件***中其它已经挂载的客户端。
309、将所述目录读取结果发送至元数据服务器和/或其他局部服务器。
在分布式文件***中,允许文件通过网络在多台主机上分享的文件***,可以让多台机器上的多用户分享文件和存储空间。如上述步骤所述,目录读取结果可缓存至元数据服务器和/或其他局部服务器。
该步骤中,需要指出的是,元数据服务器和局部服务器的存储空间均有限,若目录读取结果容量过大,可能会占用元数据服务器和/或局部服务器的存储空间,导致分布式文件***的资源分配出现不平衡。因此在该步骤中,优选地,为缓存的目录读取结果设置限额阈值,若超出限额阈值,表明元数据服务器和/或局部服务器的空间没有余量,不缓存所述目录读取结果。可选地,元数据服务器中的全局配额空间能够对局部服务器的配额空间进行动态调整,因此若出现局部服务器空间不足导致无法缓存,可向元数据服务器发送限额调整请求,以对局部服务器动态分配调整空间,缓存目录读取结果,为下一次的目录读取操作节省时间。
S310、基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
如4所示,在替代实施例中,在步骤S308之后,还包括:
S311、判断是否接收到客户端发送的文件读写请求,所述文件读写请求包括待写入的文件目录。
上述步骤S308缓存了历史操作中的目录读取结果,在缓存和发送至其他客户端和/或服务器的同时,目录读取结果会生成当前的时间戳,以记录所述目录读取结果的生成时间信息。当本客户端或其它客户端在该时间戳之后对该目录有写入或删除操作时,目录文件的内容发生变化,所有已缓存的目录读取结果将会自动失效。
该步骤中,判断在缓存目录读取结果后,是否接收到客户端的文件读写请求,所述文件读写请求包括对文件数据的写入、删除、修改等操作。文件读写请求还包括待写入的文件目录,服务器判断所述待写入的文件目录在历史操作中是否存有目录读取结果的缓存数据,以确定是否需要删除所述缓存数据。
S312、若接收到,则判断所述文件目录是否对应已缓存的所述目录读取结果。
若接收到客户端的写入请求,对文件内容进行修改,则目录读取结果发生变化,历史操作中缓存的数据失效,执行步骤S313。若未接收到写入请求,则不操作。
S313、若对应,则删除缓存的所述目录读取结果。
本实施例通过将执行完的子任务缓存在文件***的局部服务器和元数据服务器中,使客户端下一次需要读取目录时能够首先通过缓存获取数据,提高了读取效率,避免浪费时间。同时在获取到客户端对文件数据的读写操作后,删除缓存数据,能够避免缓存数据与当前文件情况不符,避免了读取错误。
实施例四
如图5所示,本实施例提供了一种分布式***的目录读取装置4,包括如下模块:
接收模块401,用于接收客户端发送的目录读取请求。
任务生成模块402,用于基于所述目录读取请求生成目录读取任务。
分组模块403,用于基于预设规则将所述目录读取任务分成N个子任务。
执行模块404,用于异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果。
第一发送模块405,用于基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
如图6所示,在替代实施例中,所述分组模块403还包括:
扫描单元4031,用于根据所述目录读取任务扫描待读取目录文件,获取待读取目录文件的目录文件数。
组数确认单元4032,用于基于预设的每组文件个数,将所述目录文件分为N个分组,其中,分组数N=目录文件数/预设的每组文件个数。所述预设的每组文件个数根据所述待读取目录文件数确定
子任务拆分单元4033,用于基于所述分组数N将所述目录读取任务分成N个子任务。
在替代实施例中,还包括:
缓存模块406,用于在所述基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端之前,依次将生成的所述目录读取结果进行缓存。
在替代实施例中,还包括:
缓存读取模块407,用于在接收客户端发送的目录读取请求之后,判断是否有缓存的所述目录读取结果;若有,则将缓存的所述目录读取结果发送至客户端;若没有,则基于所述目录读取请求生成目录读取任务。
第二发送模块408,用于将所述目录读取结果发送至元数据服务器和/或其他局部服务器。
判断模块409,判断是否接收到客户端发送的文件读写请求,所述文件读写请求包括待写入的文件目录;若接收到,则判断所述文件目录是否对应已缓存的所述目录读取结果;若对应,则删除缓存的所述目录读取结果。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例五
本实施例提供了一种服务器的结构示意图,如图7所示,该服务器包括处理器501、存储器502、输入装置503和输出装置504;服务器中处理器501的数量可以是一个或多个,图中以一个处理器501为例;设备/终端/服务器中的处理器501、存储器502、输入装置503和输出装置504可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器502作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的主题更新方法对应的程序指令/模块(例如接收模块401,任务生成模块402等)。处理器501通过运行存储在存储器502中的软件程序、指令以及模块,从而执行设备/终端/服务器的各种功能应用以及数据处理,即实现上述的分布式***的目录读取方法。
存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器502可进一步包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置503可用于接收输入的数字或字符信息,以及产生与设备/终端/服务器的用户设置以及功能控制有关的键信号输入。输出装置504可包括显示屏等显示设备。
本发明实施例五通过提供一种服务器,可执行本发明任意实施例所提供的分布式***的目录读取方法,具备执行方法相应的功能模块和有益效果。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的一种分布式***的目录读取方法,该方法可以包括:
接收客户端发送的目录读取请求;
基于所述目录读取请求生成目录读取任务;
基于预设规则将所述目录读取任务分成N个子任务;
异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;
基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种分布式***的目录读取方法,应用于局部服务器,其特征在于,包括:
接收客户端发送的目录读取请求;
基于所述目录读取请求生成目录读取任务;
基于预设规则将所述目录读取任务分成N个子任务;
异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;
基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
2.基于权利要求1所述的分布式***的目录读取方法,其特征在于,所述基于预设规则将所述目录读取任务分成N个子任务,包括:
根据所述目录读取任务扫描待读取目录文件,获取待读取目录文件的目录文件数;
基于预设的每组文件个数,将所述目录文件分为N个分组,其中,分组数N=目录文件数/预设的每组文件个数;
基于所述分组数N将所述目录读取任务分成N个子任务。
3.基于权利要求2所述的分布式***的目录读取方法,其特征在于,所述目录读取请求中包括待读取目录文件数,所述预设的每组文件个数根据所述待读取目录文件数确定。
4.基于权利要求1所述的分布式***的目录读取方法,其特征在于,在所述基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端之前,还包括:依次将生成的所述目录读取结果进行缓存。
5.基于权利要求4所述的分布式***的目录读取方法,其特征在于,在所述接收客户端发送的目录读取请求之后,还包括:
判断是否有缓存的所述目录读取结果;
若有,则将缓存的所述目录读取结果发送至客户端;
若没有,则基于所述目录读取请求生成目录读取任务。
6.基于权利要求4所述的分布式***的目录读取方法,其特征在于,在所述依次将生成的所述目录读取结果进行缓存之后,还包括:
将所述目录读取结果发送至元数据服务器和/或其他局部服务器。
7.基于权利要求4所述的分布式***的目录读取方法,其特征在于,在所述依次将生成的所述目录读取结果进行缓存之后,还包括:
判断是否接收到客户端发送的文件读写请求,所述文件读写请求包括待写入的文件目录;
若接收到,则判断所述文件目录是否对应已缓存的所述目录读取结果;
若对应,则删除缓存的所述目录读取结果。
8.一种分布式***的目录读取装置,其特征在于,包括如下模块:
接收模块,用于接收客户端发送的目录读取请求;
任务生成模块,用于基于所述目录读取请求生成目录读取任务;
分组模块,用于基于预设规则将所述目录读取任务分成N个子任务;
执行模块,用于异步执行所述N个子任务,每个子任务执行后生成一组目录读取结果;
第一发送模块,用于基于N个子任务的执行进度,依次按结果生成的时间先后顺序将所述目录读取结果发送至客户端。
9.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一所述的分布式***的目录读取方法。
10.一种终端可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时能够实现如权利要求1-7任一所述的分布式***的目录读取方法。
CN201911030300.3A 2019-10-28 2019-10-28 分布式***的目录读取方法、装置、服务器和存储介质 Pending CN110781137A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911030300.3A CN110781137A (zh) 2019-10-28 2019-10-28 分布式***的目录读取方法、装置、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911030300.3A CN110781137A (zh) 2019-10-28 2019-10-28 分布式***的目录读取方法、装置、服务器和存储介质

Publications (1)

Publication Number Publication Date
CN110781137A true CN110781137A (zh) 2020-02-11

Family

ID=69386858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911030300.3A Pending CN110781137A (zh) 2019-10-28 2019-10-28 分布式***的目录读取方法、装置、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN110781137A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625357A (zh) * 2020-05-22 2020-09-04 柏科数据技术(深圳)股份有限公司 基于飞腾平台的目录读取方法、装置、服务器和存储介质
CN111930771A (zh) * 2020-07-21 2020-11-13 银盛支付服务股份有限公司 一种基于bi***的数据处理方法及***
CN116701299A (zh) * 2022-12-09 2023-09-05 荣耀终端有限公司 一种目录管理方法及相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120226872A1 (en) * 2011-03-03 2012-09-06 Zoran Rajic Prefetching content of a directory by executing a directory access command
CN104331255A (zh) * 2014-11-17 2015-02-04 中国科学院声学研究所 一种基于嵌入式文件***的流式数据读取方法
CN106777180A (zh) * 2016-12-22 2017-05-31 北京京东金融科技控股有限公司 高性能分布式数据转换的方法、装置及***
CN107491545A (zh) * 2017-08-25 2017-12-19 郑州云海信息技术有限公司 一种分布式存储***的目录读取方法及客户端
CN108319634A (zh) * 2017-12-15 2018-07-24 创新科存储技术(深圳)有限公司 分布式文件***的目录访问方法和装置
CN110019024A (zh) * 2019-04-11 2019-07-16 苏州浪潮智能科技有限公司 一种目录查询方法、***及电子设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120226872A1 (en) * 2011-03-03 2012-09-06 Zoran Rajic Prefetching content of a directory by executing a directory access command
CN104331255A (zh) * 2014-11-17 2015-02-04 中国科学院声学研究所 一种基于嵌入式文件***的流式数据读取方法
CN106777180A (zh) * 2016-12-22 2017-05-31 北京京东金融科技控股有限公司 高性能分布式数据转换的方法、装置及***
CN107491545A (zh) * 2017-08-25 2017-12-19 郑州云海信息技术有限公司 一种分布式存储***的目录读取方法及客户端
CN108319634A (zh) * 2017-12-15 2018-07-24 创新科存储技术(深圳)有限公司 分布式文件***的目录访问方法和装置
CN110019024A (zh) * 2019-04-11 2019-07-16 苏州浪潮智能科技有限公司 一种目录查询方法、***及电子设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄文海 著: "《Java多线程编程实战指南 核心篇》", 30 April 2017, 电子工业出版社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625357A (zh) * 2020-05-22 2020-09-04 柏科数据技术(深圳)股份有限公司 基于飞腾平台的目录读取方法、装置、服务器和存储介质
CN111930771A (zh) * 2020-07-21 2020-11-13 银盛支付服务股份有限公司 一种基于bi***的数据处理方法及***
CN116701299A (zh) * 2022-12-09 2023-09-05 荣耀终端有限公司 一种目录管理方法及相关装置
CN116701299B (zh) * 2022-12-09 2024-03-26 荣耀终端有限公司 一种目录管理方法及相关装置

Similar Documents

Publication Publication Date Title
JP6778795B2 (ja) データを記憶するための方法、装置及びシステム
CN107391653B (zh) 一种分布式NewSQL数据库***及图片数据储存方法
US10896102B2 (en) Implementing secure communication in a distributed computing system
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
US10235047B2 (en) Memory management method, apparatus, and system
CN111506269B (zh) 一种磁盘存储空间分配方法、装置、设备及存储介质
CN104954468A (zh) 资源的分配方法及装置
CN110781137A (zh) 分布式***的目录读取方法、装置、服务器和存储介质
CN111930489B (zh) 一种任务调度方法、装置、设备及存储介质
KR101634403B1 (ko) 공유 디스크 데이터베이스 시스템에서 락 통신들을 감소시키기 위한 접근 방법들
CN103729247A (zh) 数据获取请求的处理方法、***及服务器
CN104881466A (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN114138776A (zh) 图结构和图属性分离设计的方法、***、装置和介质
CN109522043B (zh) 一种配置数据的管理方法、装置及存储介质
CN113051221A (zh) 数据存储方法、装置、介质、设备及分布式文件***
CN110781159B (zh) Ceph目录文件信息读取方法、装置、服务器及存储介质
CN110706148B (zh) 人脸图像处理方法、装置、设备和存储介质
CN113885780A (zh) 数据同步方法、装置、电子设备、***和存储介质
CN117321581A (zh) 用于加速sql查询的确定性分布式高速缓存的技术
CN113051102A (zh) 文件备份方法、装置、***、存储介质和计算机设备
CN104517067A (zh) 访问数据的方法、装置及***
CN113127430A (zh) 镜像信息处理方法、装置、计算机可读介质及电子设备
CN113448967B (zh) 一种对数据库操作进行加速的方法和装置
US11176097B2 (en) Accelerated deduplication block replication
CN114116655A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200211