WO2024001827A1 - 数据访问方法、装置及系统 - Google Patents
数据访问方法、装置及系统 Download PDFInfo
- Publication number
- WO2024001827A1 WO2024001827A1 PCT/CN2023/100708 CN2023100708W WO2024001827A1 WO 2024001827 A1 WO2024001827 A1 WO 2024001827A1 CN 2023100708 W CN2023100708 W CN 2023100708W WO 2024001827 A1 WO2024001827 A1 WO 2024001827A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- metadata
- computing node
- storage medium
- storage
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000012549 training Methods 0.000 claims description 84
- 238000013507 mapping Methods 0.000 claims description 38
- 238000013473 artificial intelligence Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 23
- 230000002085 persistent effect Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 12
- 230000008569 process Effects 0.000 description 21
- 238000007781 pre-processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/13—File access structures, e.g. distributed indices
-
- 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/14—Details of searching files based on file metadata
-
- 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/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- 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/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Abstract
一种数据访问方法、装置及系统,属于数据处理领域。该方法应用于计算节点,该计算节点包括第一存储介质和第二存储介质,第一存储介质的数据访问速率大于第二存储介质的数据访问速率,第二存储介质中存储有第一数据集的元数据,第一数据集存储在存储系统中,该存储系统与该计算节点通过网络连接。该方法包括:获取第一输入输出请求;根据第一输入输出请求在第一存储介质中查找第一数据的元数据;在第一存储介质中没有查找到第一数据的元数据时,从第二存储介质中获取第一数据的元数据;根据第一数据的元数据从存储系统中获取第一数据。本申请通过在计算节点的第二存储介质中存储第一数据集的元数据,提高了获取第一数据集的元数据的效率。
Description
本申请要求申请日为2022年06月28日、申请号为202210749781.9、申请名称为“数据访问方法、装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及数据处理领域,特别涉及一种数据访问方法、装置及系统。
人工智能(artificial intelligence,AI)训练使用的数据集通常包括海量的小文件(lots of small files,LOSF),这些数据集的元数据较多,且数据集的数据总量巨大,训练节点本地不足以存储全量的数据集,因此,这些数据集通常存储在与该训练节点通信连接的分布式存储系统中。其中,元数据是描述与数据相关信息或属性的数据,数据集的元数据可以包括数据集的名称、规格、大小等,并且,数据集的元数据通常包括该数据集的目录数据、该数据集包括的文件的元数据、该数据集包括的文件中的数据的元数据等,文件的元数据例如文件所在目录名称、文件名称、访问权限、创建时间、访问时间、文件大小等,文件包括的数据的元数据例如该数据的长度、该数据的存储地址、该数据所在文件的信息等。
在进行AI训练时,训练节点首先遍历分布式存储系统中存储的该AI训练所用的数据集,以获取该数据集的元数据(例如该数据集的名称、规格、大小等),然后,该训练节点根据该数据集的元数据和训练任务的配置参数确定每次需要获取的数据量,该训练节点根据每次需要获取的数据量从分布式存储系统获取该数据集中的数据。训练节点每次从分布式存储系统获取该数据集中的数据之后,该训练节点根据该次获取到的数据进行AI训练。训练节点不断根据获取到的数据进行AI训练,直至完成训练任务。
但是,由于元数据管理、网络通信等方面的原因,训练节点从分布式存储系统获取数据集的元数据的效率较低,导致训练节点获取数据集的数据的效率较低。
发明内容
本申请提供了一种数据访问方法、装置及系统,有助于提高获取数据集的元数据的效率,从而提高获取数据集的效率。本申请的技术方案如下:
第一方面,提供了一种数据访问方法,应用于计算节点,该计算节点包括第一存储介质和第二存储介质,第一存储介质的数据访问速率大于第二存储介质的数据访问速率,第二存储介质中存储有第一数据集的元数据,第一数据集存储在存储系统中,该存储系统与该计算节点通过网络连接。该方法包括:获取第一输入输出(input output,IO)请求,第一IO请求用于访问第一数据集中的第一数据;根据第一IO请求在第一存储介质中查找第一数据的元数据;在第一存储介质中没有查找到第一数据的元数据时,从第二存储介质中获取第一数据的元数据;根据获取到的第一数据的元数据,从存储系统中获取第一数据。
本申请提供的技术方案,由于计算节点的第二存储介质中存储第一数据集的元数据,因此,该计算节点根据第一IO请求在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点可以从该计算节点的第二存储介质中获取第一数据的元数据,并根据第一数据的元数据从存储系统中获取第一数据。相比于从存储系统中获取第一数据的元数据,计算节点从该计算节点的第二存储介质中获取第一数据的元数据的速度更快,效率更高,在该计算节点的第二存储介质中存储第一数据集的元数据,可以提高该计算节点获取第一数据集的元数据的效率,从而提高该计算节点获取第一数据集的效率。
可选的,第一IO请求携带第一数据在存储系统中的存储路径,从第二存储介质中获取第一数据的元数据,包括:根据第一IO请求携带的第一数据在存储系统中的存储路径,确定第一数据的元数据在第二存储介质中的存储路径;根据第一数据的元数据在第二存储介质中的存储路径,获取第一数据的元数据。
本申请提供的技术方案,由于第一IO请求中携带第一数据在存储系统中的存储路径,因此,计算节点可以根据第一IO请求中携带的第一数据在存储系统中的存储路径确定第一数据的元数据在第二存储介质中的存储路径,进而根据第一数据的元数据在第二存储介质中的存储路径从第二存储介质中获取第一数据的元数据。
可选的,计算节点存储有第一数据集在存储系统中的存储路径与第一数据集的元数据在第二存储介质中的存储路径的映射关系;根据第一IO请求携带的第一数据在存储系统中的存储路径,确定第一数据的元数据在第二存储介质中的存储路径,包括:根据第一IO请求携带的第一数据在存储系统中的存储路径以及该映射关系,确定第一数据的元数据在第二存储介质中的存储路径。
本申请提供的技术方案,由于计算节点存储第一数据集在存储系统中的存储路径与第一数据集的元数据在第二存储介质中的存储路径的映射关系,因此,该计算节点可以根据第一IO请求携带的第一数据在存储系统中的存储路径和该映射关系确定第一数据集的元数据在第二存储介质中的存储路径,从而确定第一数据的元数据在第二存储介质中的存储路径。
可选的,该方法还包括:响应用于访问第一数据集中的数据的第一个IO请求,将第一数据集的元数据从存储系统读取至第二存储介质,并建立所述映射关系。也即,计算节点在处理用于访问第一数据集中的数据的第一个IO请求时,该计算节点将第一数据集的元数据从存储系统读取至该计算节点第二存储介质,之后该计算节点根据第一数据集在存储系统中的存储路径与第一数据集的元数据在第二存储介质中的存储路径建立所述映射关系。
本申请提供的技术方案,计算节点处理用于访问第一数据集中的数据的第一个IO请求时将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质,可以便于该计算节点处理用于访问第一数据集中的数据的IO请求时,从该计算节点的第二存储介质中获取第一数据集中的数据的元数据,提高获取第一数据集的元数据的效率。此外,计算节点将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质中之后,该计算节点建立第一数据集在存储系统中的存储路径与第一数据集的元数据在第二存储介质中的存储路径的映射关系,可以便于该计算节点在处理用于访问第一数据集中的数据的IO请求时,根据该映射关系确定该IO请求所请求访问的数据的元数据在第二存储介质中的存储路径。
可选的,该方法还包括:响应用于访问第一数据集中的数据的第一个IO请求,根据所述
映射关系将第一数据集的元数据从存储系统读取至第二存储介质。也即,所述映射关系是预先配置好的,计算节点在处理用于访问第一数据集中的数据的第一个IO请求时,根据预先配置的该映射关系将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质。
本申请提供的技术方案,计算节点处理用于访问第一数据集中的数据的第一个IO请求时将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质,可以便于该计算节点处理用于访问第一数据集中的数据的IO请求时,从该计算节点的第二存储介质中获取第一数据集中的数据的元数据,提高获取第一数据集的元数据的效率。
可选的,第一IO请求是用于访问第一数据集中的数据的第一个IO请求。
可选的,第一IO请求不是用于访问第一数据集中的数据的第一个IO请求,计算节点将第一数据集的元数据从存储系统读取至第二存储介质之前,该方法还包括:该计算节点获取用于访问第一数据集中的数据的第一个IO请求。
可选的,第一存储介质为非持久性存储介质,第二存储介质为持久性存储介质。
可选的,第一存储介质为缓存(cache),第二存储介质为硬盘。其中,缓存是一个高速的数据存储层,缓存的数据访问效率大于硬盘的数据访问效率,可以将硬盘中的部分数据存储在缓存中,这样后续再次访问该数据时,先从缓存中查找该数据,如果从缓存中没有查找到该数据,再从硬盘中查找该数据。缓存存在的作用就是加速数据访问效率。
可选的,计算节点为AI模型训练集群中的任意一个训练节点,第一数据集为用于AI模型训练的数据集。例如,第一数据集为小文件数据集,第一数据集包括海量的小文件。
可选的,所述存储系统为分布式存储系统。例如,该分布式存储系统是分布式文件系统。其中,分布式存储系统是指将数据分散存储在多个独立的存储节点(例如存储服务器)上的系统,分布式存储系统采用可扩展的系统结构,利用多台存储节点分担存储负荷,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
可选的,计算节点包括拦截模块,在从第二存储介质中获取第一数据的元数据之前,该方法还包括:通过该拦截模块拦截第一IO请求。
本申请提供的技术方案,计算节点根据第一IO请求在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点通过该计算节点中的拦截模块拦截第一IO请求,使得该计算节点可以从该计算节点的第二存储介质中获取第一数据的元数据,而不是从存储系统中获取第一数据的元数据,提高了该计算节点获取第一数据集的元数据的效率。
可选的,拦截模块包括动态链接库,该动态链接库包括拦截函数,该拦截函数用于拦截第一IO请求。
可选的,计算节点还包括应用程序,获取第一IO请求,包括:通过该应用程序获取第一IO请求。
可选的,在将第一数据集的元数据从存储系统读取至第二存储介质之前,该方法还包括:遍历存储系统存储的第一数据集,以获取第一数据集的元数据,在该存储系统中存储第一数据集的元数据。
可选的,在存储系统中,第一数据集的元数据存储在第一数据集的下级目录中。
第二方面,提供了一种数据访问装置,包括用于执行如上述第一方面或第一方面的任一可选方式所提供的方法的各个模块。所述模块可以基于软件、硬件或软件和硬件的结合实现,
且所述模块可以基于具体实现进行任意组合或分割。
第三方面,提供了一种数据访问装置,包括存储器和处理器;存储器用于存储计算机程序;处理器用于执行存储器中存储的计算机程序以使得该数据访问装置执行如上述第一方面或第一方面的任一可选方式所提供的方法。
第四方面,提供了一种数据访问系统,包括计算节点和存储系统,计算节点与存储系统通过网络连接,该计算节点包括如上述第二方面或第二方面的任一可选方式所提供的装置。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被执行时实现如上述第一方面或第一方面的任一可选方式所提供的方法。
第六方面,提供了一种计算机程序产品,该计算机程序产品包括程序或代码,该程序或代码被执行时实现如上述第一方面或第一方面的任一可选方式所提供的方法。
第七方面,提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,该芯片运行时用于实现如上述第一方面或第一方面的任一可选方式所提供的方法。
本申请提供的技术方案带来的有益效果是:
本申请提供的数据访问方法、装置及系统,该方法应用于计算节点,该计算节点包括第一存储介质和第二存储介质,第一存储介质的数据访问速率大于第二存储介质的数据访问速率,第二存储介质中存储有第一数据集的元数据,第一数据集存储在与该计算节点通过网络连接的存储系统中。该计算节点接收到用于访问第一数据集中的第一数据的第一IO请求之后,该计算节点在该计算节点的第一存储介质中查找第一数据的元数据,在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点从该计算节点的第二存储介质中获取第一数据的元数据,并根据第一数据的元数据从存储系统中获取第一数据。本申请通过在计算节点的第二存储介质中存储第一数据集的元数据,使得该计算节点根据第一IO请求在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点可以从该计算节点的第二存储介质中获取第一数据的元数据。相比于从存储系统中获取第一数据的元数据,该计算节点从该计算节点的第二存储介质中获取第一数据的元数据的速度更快,效率更高。因此,在计算节点的第二存储介质中存储第一数据集的元数据,可以提高该计算节点获取第一数据集的元数据的效率,从而提高该计算节点获取第一数据集的效率。
图1是本申请实施例提供的一种数据访问系统的结构示意图;
图2是本申请实施例提供的另一种数据访问系统的结构示意图;
图3是本申请实施例提供的一种数据访问方法的流程图;
图4是本申请实施例提供的一种从第二存储介质中获取第一数据的元数据的流程图;
图5是本申请实施例提供的另一种数据访问方法的流程图;
图6是本申请实施例提供的一种数据访问装置的结构示意图;
图7是本申请实施例提供的另一种数据访问装置的结构示意图。
下面将结合附图对本申请实施方式作进一步地详细描述。
AI训练使用的数据集通常包括LOSF,这些数据集的元数据较多,且数据集的数据总量巨大,训练节点本地不足以存储全量的数据集,因此,这些数据集通常存储在分布式存储系统中。在进行AI训练时,训练节点首先从分布式存储系统获取该AI训练所用的数据集的元数据,然后根据该数据集的元数据分多次从分布式存储系统获取该数据集中的数据,并根据获取到的数据进行AI训练,直至完成训练任务。但是,由于元数据管理、网络通信等方面的原因,训练节点从分布式存储系统获取数据集的元数据的效率较低。
小文件合并存储策略是目前优化LOSF最成功的策略,该策略通过将多个小文件合并成一个大文件存储(也即将多个小文件中的数据存储到一个大文件中),并建立从大文件查找小文件的索引结构,实现了LOSF的高效存储。客户端通过查找该索引结构确定小文件中的数据所在的大文件以及该小文件中的数据在该大文件中的偏移量,并根据该小文件中的数据在该大文件中的偏移量访问该大文件中的数据,这部分数据即为该小文件中的数据。该策略可以减少元数据的数据量,提高元数据的查找效率,降低文件读写的I/O操作延时,并且可以将可能连续访问的多个小文件存储在一个大文件中,增加了小文件之间的局部性,将原本小文件的随机访问变为了顺序访问,提高了访问性能。同时,该策略能够减少小文件独立存储所产生的磁盘碎片问题,提高了磁盘的利用率。合并之后小文件的访问流程由原来许多的打开(open)操作转变为在大文件中的查找(seek)操作,只要打开大文件即可访问小文件。该策略虽然减少了元数据的数据量,但是增加了从大文件查找小文件的索引结构,该索引结构存储在分布式存储系统中,实际元数据的访问(该索引结构的访问)并没有加速,并且该策略需要修改客户端的IO流程以适配从读小文件到读合并的大文件的转变,使用代价较大。该策略在AI训练场景中使用时需要对数据集重新打包,且需要训练框架适配打包后的数据集,使用代价较大。
虚拟文件系统(virtual file system,VFS)是Linux内核的子系统之一,它为应用程序(或称为客户端)提供操作文件和文件系统的统一接口,屏蔽不同文件系统的差异和操作细节。为了减少对磁盘的访问,VFS每次访问磁盘中的文件时,都会将访问的文件的元数据缓存下来,当VFS下次访问该文件时,VFS直接从该VFS的缓存中获取该文件的元数据,而无需从磁盘中获取该文件的元数据,由此提高了获取元数据的效率。但是,对于某个文件,该文件需要被VFS访问至少一次之后,该文件的元数据才能缓存到VFS中,该VFS第一次访问该文件时,仍然需要从磁盘中获取该文件的元数据,该VFS第一次访问该文件时没有任何加速。此外,VFS的缓存较小,缓存中的数据很容易被淘汰,缓存中的元数据被淘汰之后仍然需要从磁盘中获取文件的元数据,获取元数据的效率较低。
有鉴于此,本申请实施例提供一种数据访问方法、装置及系统,该方法应用于计算节点,该计算节点与存储系统通过网络连接,该计算节点包括第一存储介质和第二存储介质,第一存储介质的数据访问速率大于第二存储介质的数据访问速率,第二存储介质中存储有第一数据集的元数据,第一数据集存储在该存储系统中。例如,第一存储介质为缓存,第二存储介质为硬盘。该计算节点获取到用于访问第一数据集中的第一数据的第一IO请求之后,该计算节点根据第一IO请求在该计算节点的第一存储介质中查找第一数据的元数据,在该第一存储介质中没有查找到第一数据的元数据时,该计算节点从该计算节点的第二存储介质中获取第一数据的元数据,并根据第一数据的元数据从存储系统中获取第一数据。由于计算节点的第
二存储介质中存储有第一数据集的元数据,因此该计算节点根据第一IO请求在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点可以从该计算节点的第二存储介质中获取第一数据的元数据。相比于从存储系统中获取第一数据的元数据,该计算节点从该计算节点的第二存储介质中获取第一数据的元数据的速度更快,效率更高,可以提高获取第一数据集的元数据的效率,从而提高获取第一数据集的效率。此外,本申请无需将小文件合并为大文件存储,无需修改客户端的IO流程,使用代价较小。并且,本申请中的第二存储介质可以为硬盘,第二存储介质的存储空间较大,第二存储介质中的数据被淘汰的概率较小,在第二存储介质中查找第一数据的元数据的命中率较高。
下面结合附图介绍本申请的技术方案。首先介绍本申请的应用场景。
本申请实施例提供的技术方案所涉及的应用场景是一种数据访问系统。请参考图1,其示出了本申请实施例提供的一种数据访问系统的结构示意图。该数据访问系统包括计算节点10和存储系统20,计算节点10与存储系统20通过网络连接。计算节点10包括第一存储介质和第二存储介质,第一存储介质的数据访问速率大于第二存储介质的数据访问速率,第二存储介质中存储有第一数据集的元数据,第一数据集存储在存储系统20中。
可选的,第一存储介质是非持久性存储介质,第二存储介质是持久性存储介质。非持久性存储介质用于临时存储数据,系统断电之后,非持久性存储介质中存储的数据会丢失。持久性存储介质用于持久化存储数据,系统断电之后,持久性存储介质中存储的数据不会丢失。示例的,非持久性存储介质是缓存,该缓存可以包括中央处理器(central processing unit,CPU)缓存或随机存取存储器(random access memory,RAM)等。持久性存储介质可以是硬盘,该硬盘可以包括机械硬盘、磁盘、固态硬盘或者叠瓦式磁记录硬盘等。
如图1所示,存储系统20中还存储有第一数据集的元数据,在存储系统20中,第一数据集的元数据可以存储在第一数据集的下级目录中。在本申请实施例中,计算节点10获取到用于访问第一数据集中的数据的第一个IO请求时,计算节点10根据该第一个IO请求将第一数据集的元数据从存储系统20读取至计算节点10的第二存储介质,使得计算节点10的第二存储介质中存储有第一数据集的元数据。之后,计算节点10在处理用于访问第一数据集中的任一数据的IO请求时,计算节点10可以从计算节点10的第二存储介质中获取该任一数据的元数据,并根据该任一数据的元数据从存储系统20中获取该任一数据,以及,计算节点10可以将从计算节点10的第二存储介质中获取到的该任一数据的元数据缓存至计算节点10的第一存储介质中。其中,用于访问第一数据集中的数据的第一个IO请求可以是计算节点10获取到的用于访问第一数据集中的数据的一个IO请求,并且计算节点10获取到该一个IO请求时,计算节点10的第二存储介质中未存储有第一数据集的元数据。用于访问第一数据集中的数据的第一个IO请求可以是计算节点10获取到的第一个用于访问第一数据集中的数据的IO请求,也可以不是计算节点10获取到的第一个用于访问第一数据集中的数据的IO请求。例如,计算节点10获取到用于访问第一数据集中的数据的IO请求1时,计算节点10的第二存储介质中未存储有第一数据集的元数据,IO请求1可以是计算节点10获取到的用于访问第一数据集中的数据的第一个IO请求,计算节点10根据IO请求1将第一数据集的元数据从存储系统20读取至计算节点10的第二存储介质;之后,由于某些原因,计算节点10删除了
计算节点10的第二存储介质中的第一数据集的元数据,那么,计算节点10获取到用于访问第一数据集中的数据的IO请求2时,计算节点10的第二存储介质中仍未存储有第一数据集的元数据,IO请求2也是计算节点10获取到的用于访问第一数据集中的数据的第一个IO请求,计算节点10根据IO请求2将第一数据集的元数据从存储系统20读取至计算节点10的第二存储介质。
可选的实施例中,计算节点10获取到用于访问第一数据集中的任一数据的IO请求时,计算节点10根据该IO请求在计算节点10的第一存储介质中查找该任一数据的元数据。如果计算节点10在计算节点10的第一存储介质中查找到该任一数据的元数据,计算节点10从计算节点10的第一存储介质中获取该任一数据的元数据,并根据该任一数据的元数据从存储系统20中获取该任一数据。如果计算节点10在计算节点10的第一存储介质中没有查找到该任一数据的元数据,计算节点10根据该IO请求在计算节点10的第二存储介质中查找该任一数据的元数据。如果计算节点10在计算节点10的第二存储介质中查找到该任一数据的元数据,计算节点10从计算节点10的第二存储介质中获取该任一数据的元数据,并根据该任一数据的元数据从存储系统20中获取该任一数据,以及,计算节点10将从计算节点10的第二存储介质中获取该任一数据的元数据缓存至计算节点10的第一存储介质中。如果计算节点10在计算节点10的第二存储介质中没有查找到该任一数据的元数据(这种情况下可以认为用于访问该任一数据的IO请求是用于访问第一数据集中的数据的第一个IO请求),计算节点10根据该IO请求将第一数据集的元数据从存储系统20读取至计算节点10的第二存储介质,之后,计算节点10从计算节点10的第二存储介质中获取该任一数据的元数据,并根据该任一数据的元数据从存储系统20中获取该任一数据,以及,计算节点10将从计算节点10的第二存储介质中获取该任一数据的元数据缓存至计算节点10的第一存储介质中。其中,该任一数据的元数据可以包括该任一数据的长度、该任一数据在存储系统20中的存储地址等等。
按照目前的IO处理流程,计算节点在处理用于访问第一数据集中的任一数据的IO请求时,如果该计算节点在该计算节点的缓存中没有查找到该任一数据的元数据,该计算节点直接从存储系统中获取该任一数据的元数据,而不会在该计算节点的硬盘中查找该任一数据的元数据。在本申请实施例中,计算节点10在处理用于访问第一数据集中的任一数据的IO请求时,如果计算节点10在计算节点10的第一存储介质(例如缓存)中没有查找到该任一数据的元数据,计算节点10可以通过IO拦截技术拦截该IO请求,并将该IO请求的访问路径改变为该任一数据的元数据在计算节点10的第二存储介质(例如硬盘)中的存储路径,计算节点10根据改变后的访问路径从计算节点10的第二存储介质中获取该任一数据的元数据,而不从存储系统20中获取该任一数据的元数据,这样一来,可以提高计算节点10获取元数据的效率。可选的,如图1所示,计算节点10包括拦截模块,计算节点10通过该拦截模块拦截IO请求。其中,该拦截模块是基于IO拦截技术开发的功能模块,例如该IO拦截技术是基于Linux系统的环境变量LD_PRELOAD的拦截技术,该拦截模块可以包括动态链接库,该动态链接库包括拦截函数,该拦截函数用于拦截IO请求,计算节点10通过执行该拦截函数拦截IO请求。
可选的实施例中,计算节点10还包括应用程序(或称为客户端),应用程序可以生成用于访问第一数据集中的数据的IO请求或者接收来自计算节点10外部的用于访问第一数据集
中的数据的IO请求,计算节点10通过该应用程序获取用于访问第一数据集中的数据的IO请求。
在本申请实施例中,存储系统20中存储的第一数据集的元数据可以是对存储系统20中存储的第一数据集进行预处理得到的,该预处理可以由计算节点10执行,也可以由存储系统20执行,还可以由与存储系统20通信连接的除计算节点10之外的其他节点或设备执行。本申请实施例以该预处理由计算节点10执行为例说明。计算节点10可以通过遍历存储系统20中存储的第一数据集来获取第一数据集的元数据,并在存储系统20中存储第一数据集的元数据。例如,计算节点10获取第一数据集的元数据之后,计算节点10对第一数据集的元数据进行打包,得到第一数据集的元数据加速包,并在存储系统20中存储第一数据集的元数据加速包,计算节点10获取到用于访问第一数据集中的数据的第一个IO请求时,计算节点10根据该第一个IO请求将第一数据集的元数据加速包从存储系统20读取至计算节点10的第二存储介质。
在本申请实施例中,存储系统20可以存储有多个数据集和该多个数据集中的每个数据集的元数据,第一数据集可以是该多个数据集中的任一数据集。存储系统20可以是分布式存储系统,例如存储系统20是分布式文件系统,具体可以是PFS。其中,分布式存储系统是指将数据分散存储在多个独立的存储节点上的系统,分布式存储系统采用可扩展的系统结构,利用多台存储节点分担存储负荷,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
可选的,第一数据集是用于AI模型训练的数据集,计算节点10是用于AI训练的训练节点,例如计算节点10是AI模型训练集群中的任意一个训练节点。下面以计算节点10是AI模型训练集群中的一个训练节点,第一存储介质是缓存,第二存储介质是硬盘,存储系统20是分布式存储系统为例说明。请参考图2,其示出了本申请实施例提供的另一种数据访问系统的结构示意图。该数据访问系统包括AI模型训练集群和分布式存储系统,该AI模型训练集群包括训练节点1~n(n为大于1的整数),每个训练节点与该分布式存储系统通过网络连接,并且每个训练节点可以包括应用程序、拦截模块、缓存和硬盘。其中,该分布式存储系统可以包括多个存储节点(图2中均未示出),训练节点1~n中的每个训练节点可以访问该多个存储节点中的任一存储节点。如图2所示,该分布式存储系统存储有数据集1~m(m为大于1的整数)和数据集1~m中的每个数据集的元数据。例如该分布式存储系统存储有数据集1和元数据1,元数据1可以存储在数据集1的下级目录中,元数据1是通过对数据集1进行预处理得到的数据集1的元数据;该分布式存储系统存储有数据集2和元数据2,元数据2可以存储在数据集2的下级目录中,元数据2是通过对数据集2进行预处理得到的数据集2的元数据......该分布式存储系统存储有数据集m和元数据m,元数据m可以存储在数据集m的下级目录中,元数据m是通过对数据集m进行预处理得到的数据集m的元数据。其中,同一个数据集中的数据可以分散存储在至少两个存储节点中,同一个数据集的元数据可以存储在同一个存储节点中。
第一数据集可以是数据集1~m中的任一数据集,计算节点10可以是训练节点1~n中的任意一个训练节点。以第一数据集是数据集1,计算节点10是训练节点1为例说明。训练节点1获取到用于访问数据集1中的数据的第一个IO请求时,训练节点1根据该第一个IO请求将数据集1的元数据(也即元数据1)从分布式存储系统读取至训练节点1的硬盘(也即
第二存储介质)。训练节点1在处理用于访问数据集1中的任一数据的IO请求时,训练节点1根据该IO请求在训练节点1的缓存(也即第一存储介质)中查找该任一数据的元数据。如果训练节点1在训练节点1的缓存中查找到该任一数据的元数据,训练节点1从训练节点1的缓存中获取该任一数据的元数据,并根据该任一数据的元数据从分布式存储系统中获取该任一数据。如果训练节点1在训练节点1的缓存中没有查找到该任一数据的元数据,训练节点1根据该IO请求从训练节点1的硬盘中获取该任一数据的元数据,并根据该任一数据的元数据从分布式存储系统中获取该任一数据,以及训练节点1将该任一数据的元数据缓存至训练节点1的缓存。
本领域技术人员可以理解,图1和图2所示的数据访问系统仅用于举例,并非用于限制本申请技术方案。在实现过程中,数据访问系统还可能包括其他节点或设备,计算节点、训练节点、存储节点等中还可能包括其他结构或器件。例如,计算节点、训练节点、存储节点等中还可以包括处理器、网卡等,存储节点还可以包括硬盘等存储器件。其中,处理器用于实现相关处理功能,例如,计算节点、训练节点等中的处理器用于实现IO请求的处理、元数据的查找、元数据的获取等。网卡用于实现网络连接,计算节点、训练节点等中的网卡用于实现该计算节点、训练节点等与存储系统的连接。上述计算节点、训练节点、存储节点还可能包括其他结构,这里不再一一赘述。
以上是对本申请应用场景的介绍,下面介绍本申请的数据访问方法的实施例。
请参考图3,其示出了本申请实施例提供的一种数据访问方法的流程图。该数据访问方法应用于计算节点,该计算节点可以是图1中的计算节点10或者是图2中的任一训练节点。参见图3,该方法可以包括如下步骤S301至S304。
S301.计算节点获取第一IO请求,第一IO请求用于访问第一数据集中的第一数据,第一数据集存储在存储系统中,该存储系统与该计算节点通过网络连接,该计算节点包括第一存储介质和第二存储介质,第一存储介质的数据访问速率大于第二存储介质的数据访问速率,第二存储介质中存储有第一数据集的元数据。
可选的实施例中,第一存储介质是非持久性存储介质,第二存储介质是持久性存储介质。例如,第一存储介质是缓存,第二存储介质是硬盘。其中,第二存储介质中存储有第一数据集的元数据,第一数据集可以是用于AI模型训练的数据集,第一数据集可以包括海量的小文件。示例的,第一数据集的元数据可以包括第一数据集的目录数据、第一数据集包括的文件的元数据、第一数据集包括的文件中的数据的元数据等。文件的元数据可以包括文件所在的目录名称(或者说文件的存储路径)、文件名称、文件的访问权限、文件的创建时间、文件的访问时间、文件大小。文件包括的任一数据的元数据可以包括该任一数据在存储系统中的存储地址、该任一数据的长度、该任一数据所在文件的信息等。
可选的实施例中,计算节点中包括应用程序,该计算节点通过该应用程序获取第一IO请求。例如,该应用程序可以生成第一IO请求,该计算节点可以获取该应用程序生成的第一IO请求。在其他实施例中,该计算节点可以接收来自该计算节点外部的其他节点或设备的第一IO请求,本申请实施例对该计算节点获取第一IO请求的方式不做限定。其中,第一IO请求可以是stat请求、opendir请求、access请求等,本申请实施例对此不做限定。
在本申请实施例中,第一IO请求用于访问第一数据集中的第一数据,第一IO请求可以携带第一数据的信息。可选的,第一IO请求携带第一数据在存储系统中的存储路径。第一数据可以是一个文件或是该一个文件中的数据,第一数据在存储系统中的存储路径可以是该一个文件在该存储系统中的存储路径,并且第一数据在该存储系统中的存储路径可以是第一数据集在该存储系统中的存储路径的下级目录路径(或称为子路径、延伸路径等)。例如,第一数据集在存储系统中的存储路径为“/pfs/Imagenet2012”,第一数据在该存储系统中的存储路径可以为“pfs/Imagenet2012/aaa”,“Imagenet2012”为第一数据集的名称,“aaa”为第一数据所在文件的名称,例如第一数据是一个文件,“aaa”为第一数据的名称。
S302.计算节点根据第一IO请求在该计算节点的第一存储介质中查找第一数据的元数据。
计算节点在处理IO请求的过程中,该计算节点可以在该计算节点的第一存储介质中缓存该IO请求所请求访问的数据的元数据。对于该计算节点访问过的任一数据,该计算节点的第一存储介质中可以存储有该任一数据的元数据。因此,计算节点获取到第一IO请求之后,该计算节点可以根据第一IO请求在该计算节点的第一存储介质中查找第一数据的元数据。
一个可选实施例中,对于存储系统中被计算节点访问过的任一数据(例如文件),该计算节点在该计算节点的第一存储介质中缓存该任一数据的元数据和该任一数据在该存储系统中的存储路径的对应关系(为了便于描述,将此对应关系称为对应关系1),第一IO请求携带第一数据在该存储系统中的存储路径(为了便于描述,将第一IO请求携带的第一数据在该存储系统中的存储路径称为存储路径1)。该计算节点可以获取第一IO请求携带的存储路径1,并根据存储路径1和对应关系1查找第一数据的元数据。例如,该计算节点在对应关系1中查找存储路径1;如果该计算节点在对应关系1中查找到存储路径1,该计算节点确定该计算节点的第一存储介质中存储有第一数据的元数据,并且确定对应关系1中与存储路径1对应的元数据为第一数据的元数据;如果该计算节点在对应关系1中没有查找到存储路径1,该计算节点确定该计算节点的第一存储介质中未存储有第一数据的元数据。
另一个可选实施例中,对于存储系统中被计算节点访问过的任一数据(例如文件),该计算节点在该计算节点的第一存储介质中缓存该任一数据的元数据和该任一数据在该存储系统中的存储路径的关键信息(例如哈希值)的对应关系(为了便于描述,将此对应关系称为对应关系2),第一IO请求携带第一数据在该存储系统中的存储路径(为了便于描述,将第一IO请求携带的第一数据在该存储系统中的存储路径称为存储路径1)。该计算节点可以获取第一IO请求携带的存储路径1的关键信息,并根据存储路径1的关键信息和对应关系2查找第一数据的元数据。例如,该计算节点在该对应关系2中查找存储路径1的关键信息;如果该计算节点在对应关系2中查找到存储路径1的关键信息,该计算节点确定该计算节点的第一存储介质中存储有第一数据的元数据,并且确定对应关系2中与存储路径1的关键信息对应的元数据为第一数据的元数据;如果该计算节点在对应关系2中没有查找到存储路径1的关键信息,该计算节点确定该计算节点的第一存储介质中未存储有第一数据的元数据。
再一个可选实施例中,对于存储系统中被计算节点访问过的任一数据(例如文件),该计算节点在该计算节点的第一存储介质中缓存该任一数据的标识和该任一数据在该存储系统中的存储路径的对应关系(为了便于描述,将此对应关系称为对应关系3),以及,在该计算节点的第一存储介质中缓存该任一数据的标识和该任一数据的元数据的对应关系(为了便
于描述,将此对应关系称为对应关系4),第一IO请求携带第一数据在该存储系统中的存储路径(例如存储路径1)。该计算节点可以获取第一IO请求携带的存储路径1,并根据存储路径1、对应关系3和对应关系4查找第一数据的元数据。例如,该计算节点在对应关系3中查找存储路径1;如果该计算节点在对应关系3中查找到存储路径1,该计算节点将对应关系3中与存储路径1对应的数据标识确定为第一数据的标识,之后,该计算节点在对应关系4中查找第一数据的标识;如果该计算节点在对应关系4中查找到第一数据的标识,该计算节点确定该计算节点的第一存储介质中存储有第一数据的元数据,并且确定对应关系4中与第一数据的标识对应的元数据为第一数据的元数据;如果该计算节点在对应关系3中没有查找到存储路径1,和/或,该计算节点在对应关系4中没有查找到第一数据的标识,该计算节点确定该计算节点的第一存储介质中未存储有第一数据的元数据。
需要说明的是,S302提供的计算节点在该计算节点的第一存储介质中查找第一数据的元数据的实现方式仅仅是示例性的,计算节点还可以采用其他方式在该计算节点的第一存储介质中查找第一数据的元数据,计算节点在该计算节点的第一存储介质中查找第一数据的元数据的方式与该计算节点在该计算节点的第一存储介质中缓存元数据的方式相关,本申请实施例对计算节点查找第一数据的元数据的实现方式不做限定,只要能实现相关的查找操作即可。
S303a.计算节点在该计算节点的第一存储介质中查找到第一数据的元数据时,计算节点从该计算节点的第一存储介质中获取第一数据的元数据。
如果在S302中计算节点在该计算节点的第一存储介质中查找到第一数据的元数据,该计算节点执行S303a。示例的,该计算节点从该计算节点的第一存储介质中缓存的上述对应关系1、对应关系2或对应关系4中获取第一数据的元数据。
S303b.计算节点在该计算节点的第一存储介质中没有查找到第一数据的元数据时,计算节点从该计算节点的第二存储介质中获取第一数据的元数据。
如果在S302中计算节点在该计算节点的第一存储介质中没有查找到第一数据的元数据,该计算节点执行S303b。可选的,该计算节点首先通过该计算节点的拦截模块拦截第一IO请求,并将第一IO请求的访问路径改变为第一数据的元数据在该计算节点的第二存储介质中的存储路径,进而该计算节点根据第一数据的元数据在第二存储介质中的存储路径从第二存储介质中获取第一数据的元数据。其中,第一IO请求的访问路径可以是第一IO请求携带第一数据在存储系统中的存储路径,该计算节点将第一IO请求的访问路径改变为第一数据的元数据在该计算节点的第二存储介质中的存储路径,实现了第一IO请求的重定向。
需要说明的是,如果计算节点不拦截第一IO请求,该计算节点根据第一IO请求在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点直接根据第一IO请求从存储系统中获取第一数据的元数据,而不会从该计算节点的第二存储介质中获取第一数据的元数据。本申请实施例中,计算节点通过拦截第一IO请求,可以使得该计算节点根据第一IO请求在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点从该计算节点的第二存储介质中获取第一数据的元数据,而不从存储系统中获取第一数据的元数据,如此一来,可以提高该计算节点获取第一数据的元数据的效率。
作为一个示例,请参考图4,其示出了本申请实施例提供的一种计算节点从第二存储介质中获取第一数据的元数据的方法流程图。该方法流程包括如下子步骤S303b1至S303b2。
S303b1.计算节点根据第一IO请求携带的第一数据在存储系统中的存储路径,确定第一数据的元数据在该计算节点的第二存储介质中的存储路径。
计算节点可以存储有第一数据集在存储系统中的存储路径与第一数据集的元数据在该计算节点的第二存储介质中的存储路径的映射关系(为了便于描述,将此映射关系称为第一映射关系),该计算节点可以根据第一IO请求携带的第一数据在存储系统中的存储路径和该第一映射关系,确定第一数据的元数据在该计算节点的第二存储介质中的存储路径。
在本申请实施例中,由于第一数据包括在第一数据集中,因此第一数据在存储系统中的存储路径是第一数据集在该存储系统中的存储路径的下级目录路径(或称为子路径、延伸路径等)。由于第一数据的元数据包括在第一数据集的元数据中,因此第一数据的元数据在第二存储介质中的存储路径是第一数据集的元数据在第二存储介质中的存储路径的下级目录路径(或称为子路径、延伸路径等)。可选的,计算节点首先根据第一IO请求携带的第一数据在存储系统中的存储路径和第一映射关系,确定第一数据集在该存储系统中的存储路径,然后,该计算节点根据第一数据集在该存储系统中的存储路径和第一映射关系,确定第一数据集的元数据在该计算节点的第二存储介质中的存储路径,之后,该计算节点根据第一数据集的元数据在该计算节点的第二存储介质中的存储路径,确定第一数据的元数据在该计算节点的第二存储介质中的存储路径。例如,该计算节点将第一数据在存储系统中的存储路径中包括的第一数据集在该存储系统中的存储路径,替换为第一数据集的元数据在该计算节点的第二存储介质中的存储路径,得到第一数据的元数据在第二存储介质中的存储路径。
示例的,第一映射关系如下表1所示:
表1
在表1所示的第一映射关系中,“/pfs/Imagenet2012”为第一数据集在存储系统中的存储路径,“/home/cache/meta”为第一数据集的元数据在计算节点的第二存储介质中的存储路径。
假设第一IO请求携带的存储路径为“/pfs/Imagenet2012/aaa”(也即是第一数据在存储系统中的存储路径为“/pfs/Imagenet2012/aaa”),计算节点首先根据该存储路径“/pfs/Imagenet2012/aaa”和表1所示的第一映射关系,确定第一数据集在该存储系统中的存储路径为“/pfs/Imagenet2012”,然后,该计算节点根据第一数据集在存储系统中的存储路径“/pfs/Imagenet2012”和表1所示的第一映射关系,确定第一数据集的元数据在该计算节点的第二存储介质中的存储路径为“/home/cache/meta”,之后,该计算节点将存储路径“/pfs/Imagenet2012/aaa”中包括的第一数据集在该存储系统中的存储路径“/pfs/Imagenet2012”替换为第一数据集的元数据在该计算节点的第二存储介质中的存储路径“/home/cache/meta”,得到第一数据的元数据在第二存储介质中的存储路径为“/home/cache/meta/aaa”。
S303b2.计算节点根据第一数据的元数据在该计算节点的第二存储介质中的存储路径,获取第一数据的元数据。
计算节点可以根据第一数据的元数据在该计算节点的第二存储介质中的存储路径,从该计算节点的第二存储介质中读取第一数据的元数据。例如,第一数据的元数据在该计算节点
的第二存储介质中的存储路径为“/home/cache/meta/aaa”,该计算节点根据存储路径“/home/cache/meta/aaa”,从该计算节点的第二存储介质中获取第一数据的元数据。
S304.计算节点根据第一数据的元数据从存储系统中获取第一数据。
可选的实施例中,第一数据的元数据包括第一数据在存储系统中的存储地址,计算节点根据第一数据在存储系统中的存储地址,从存储系统中获取第一数据。
可选的实施例中,第一数据为文件,第一数据的元数据包括该文件中的各个数据块在存储系统中的存储地址,计算节点根据该文件中的每个数据块在该存储系统中的存储地址,从存储系统中获取该每个数据块,进而该计算节点可以获取到第一数据。
综上所述,本申请实施例提供的数据访问方法,由于计算节点的第二存储介质中存储有第一数据集的元数据,该计算节点获取到第一IO请求之后,该计算节点根据第一IO请求在该计算节点的第一存储介质中查找第一数据的元数据,在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点可以从该计算节点的第二存储介质中获取第一数据的元数据。相比于从存储系统中获取第一数据的元数据,该计算节点从该计算节点的第二存储介质中获取第一数据的元数据的速度更快,效率更高。因此,在计算节点的第二存储介质中存储第一数据集的元数据,可以提高该计算节点获取第一数据集的元数据的效率,从而提高该计算节点获取第一数据集的效率。
可选的实施例中,计算节点从该计算节点的第二存储介质中获取第一数据的元数据之前,该计算节点将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质。例如,计算节点处理用于访问第一数据集中的数据的第一个IO请求时,该计算节点将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质。其中,用于访问第一数据集中的数据的第一个IO请求可以是前述第一IO请求,也可以不是前述第一IO请求,本申请实施例以用于访问第一数据集中的数据的第一个IO请求不是前述第一IO请求为例说明。
示例的,请参考图5,其示出了本申请实施例提供的另一种数据访问方法的流程图。该数据访问方法应用于计算节点。例如,该计算节点是图1中的计算节点10或者是图2中的任一训练节点。参见图5,该方法可以包括如下步骤S501至S502。
S501.计算节点获取用于访问第一数据集中的数据的第一个IO请求,第一数据集存储在存储系统中,该存储系统与该计算节点通过网络连接,该计算节点包括第一存储介质和第二存储介质,第一存储介质的数据访问速率大于第二存储介质的数据访问速率,第二存储介质中存储有第一数据集的元数据。
可选的,计算节点通过该计算节点中的应用程序获取该第一个IO请求,该第一个IO请求可以携带该第一个IO请求所要访问的数据在存储系统中的存储路径。
S502.计算节点响应第一个IO请求,将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质。
在本申请实施例中,存储系统中可以存储有第一数据集的元数据,计算节点获取到用于访问第一数据集中的数据的第一个IO请求之后,该计算节点可以根据该第一个IO请求,将第一数据集的元数据从该存储系统读取至该计算节点的第二存储介质,使得该计算节点的第二存储介质中可以存储有第一数据集的元数据。示例的,该存储系统中存储有第一数据集的
元数据加速包,该元数据加速包中包括第一数据集的元数据,该计算节点可以根据该第一个IO请求,将第一数据集的元数据加速包从该存储系统读取至该计算节点的第二存储介质,以将第一数据集的元数据从该存储系统读取至该计算节点的第二存储介质。
可选的实施例中,计算节点获取到用于访问第一数据集中的数据的第一个IO请求之后,计算节点首先通过该计算节点的拦截模块拦截该第一个IO请求,然后根据该第一个IO请求将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质。需要说明的是,如果计算节点不拦截该第一个IO请求,该计算节点会根据该第一个IO请求从存储系统中获取该第一个IO请求所要访问的数据的元数据。本申请实施例中,计算节点通过拦截该第一个IO请求,可以使得该计算节点根据该第一个IO请求将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质,而不从存储系统中获取该第一个IO请求所要访问的数据的元数据。
可选的实施例中,在存储系统中,第一数据集的元数据(例如第一数据集的元数据加速包)存储在第一数据集的下级目录中,用于访问第一数据集中的数据的第一个IO请求可以携带该第一个IO请求所要访问的数据在该存储系统中的存储路径,该第一个IO请求所要访问的数据在该存储系统中的存储路径可以是第一数据集在该存储系统中的存储路径的下级目录路径。计算节点可以根据该第一个IO请求携带的存储路径确定第一数据集在该存储系统中的存储路径,并根据第一数据集在该存储系统中的存储路径访问第一数据集,以从该第一数据集的下级目录中获取第一数据集的元数据,并将第一数据集的元数据读取至该计算节点的第二存储介质。需要说明的是,第一数据集的下级目录中可以存在多个文件,这多个文件可以包括数据文件和元数据文件(例如元数据加速包),元数据文件的文件名称中可以包括元数据标识(例如meta),计算节点可以根据第一数据集的下级目录中包括的文件的名称,确定第一数据集的元数据文件,从而获取该元数据文件中包括的第一数据集的元数据。
在本申请实施例中,第一数据集在存储系统中的存储路径与第一数据集的元数据在计算节点的第二存储介质中的存储路径的映射关系可以是预先配置好的,也可以是该计算节点将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质之后建立的。一个可选实施例中,所述映射关系是预先配置好的,例如,计算节点预先通过配置文件或该计算节点的环境变量,在该计算节点中配置该映射关系。该计算节点将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质之前,该计算节点根据第一数据集在存储系统中的存储路径和预先配置的该映射关系,确定第一数据集的元数据在该计算节点的第二存储介质中的存储路径,进而,该计算节点根据第一数据集的元数据在该计算节点的第二存储介质中的存储路径,将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质。另一个可选实施例中,所述映射关系是计算节点将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质之后建立的,该计算节点先将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质,然后该计算节点根据第一数据集在存储系统中的存储路径与第一数据集的元数据在该计算节点的第二存储介质中的存储路径建立所述映射关系。
可选的实施例中,在S502之前,计算节点根据所述第一个IO请求,在该计算节点的第一存储介质中查找该第一个IO请求所要访问的数据的元数据。如果该计算节点在该计算节点的第一存储介质中查找到该第一个IO请求所要访问的数据的元数据,该计算节点从该计算节点的第一存储介质中获取该第一个IO请求所要访问的数据的元数据,并根据该第一个IO请
求所要访问的数据的元数据从存储系统中获取该第一个IO请求所要访问的数据。如果该计算节点在该计算节点的第一存储介质中没有查找到该第一个IO请求所要访问的数据的元数据,该计算节点在该计算节点的第二存储介质中查找该第一个IO请求所要访问的数据的元数据。如果该计算节点在该计算节点的第二存储介质中查找到该第一个IO请求所要访问的数据的元数据,该计算节点从该计算节点的第二存储介质中获取该第一个IO请求所要访问的数据的元数据,并根据该第一个IO请求所要访问的数据的元数据从存储系统中获取该第一个IO请求所要访问的数据,以及,该计算节点在该计算节点的第一存储介质中缓存该第一个IO请求所要访问的数据的元数据。如果该计算节点在该计算节点的第二存储介质中没有查找到该第一个IO请求所要访问的数据的元数据,该计算节点确定该第一个IO请求是该计算节点获取到的用于访问第一数据集中的数据的第一个IO请求,该计算节点执行S502。本申请实施例以该计算节点在该计算节点的第一存储介质和该计算节点的第二存储介质中都没有查找到该第一个IO请求所要访问的数据的元数据为例说明,因此该计算节点执行S502。
可选的实施例中,在S502之后,该数据访问方法还包括如下步骤S503至S504。
S503.计算节点从该计算节点的第二存储介质中获取第一个IO请求所要访问的数据的元数据。
S504.计算节点根据第一个IO请求所要访问的数据的元数据,从存储系统中获取该第一个IO请求所要访问的数据。
S503至S504的实现过程可以参考S303b至S304,这里不再赘述。
综上所述,本申请实施例提供的数据访问方法,计算节点获取用于访问第一数据集中的数据的第一个IO请求之后,该计算节点根据该第一个IO请求将第一数据集的元数据从存储系统读取至该计算节点的第二存储介质,这样一来,该计算节点在处理用于访问第一数据集中的数据的IO请求时,该计算节点可以从该计算节点的第二存储介质中获取第一数据集中的数据的元数据,提高了该计算节点获取第一数据集的元数据的效率。
在本申请实施例中,存储系统中存储的第一数据集的元数据是对该存储系统中存储的第一数据集进行预处理得到的。该预处理可以由计算节点执行,也可以由存储系统执行,还可以由与存储系统通信连接的除该计算节点之外的其他节点或设备执行。例如,该预处理由向该存储系统中存储第一数据集的节点执行,该节点可以在将第一数据集存储至存储系统之后,对第一数据集进行预处理,以获取第一数据集的元数据,并在该存储系统中存储第一数据集的元数据。本申请实施例以预处理由计算节点执行为例说明。可选的,计算节点在获取用于访问第一数据集中的数据的IO请求之前,该计算节点通过遍历存储系统中存储的第一数据集来获取第一数据集的元数据,并在存储系统中存储第一数据集的元数据。例如,该计算节点对第一数据集的元数据进行打包,得到第一数据集的元数据加速包,该计算节点在该第一数据集的下级目录中存储第一数据集的元数据加速包。
可选的实施例中,计算节点包括用于对第一数据集进行预处理的可执行程序,由该可执行程序对存储系统中存储的第一数据集进行预处理,以获取第一数据集的元数据,并在存储系统中存储第一数据集的元数据。本领域技术人员可以理解,如果由该计算节点之外的其他节点或设备对第一数据集进行预处理,则该其他节点或设备同样可以包括用于对第一数据集
进行预处理的可执行程序,本申请实施例对此不做限定。
本申请实施例提供的技术方案,通过对第一数据集进行预处理获得第一数据集的元数据,并在存储系统中存储一数据集的元数据,计算节点在处理用于访问第一数据集中的数据的第一个IO请求时,该计算节点将第一数据集的元数据从该存储系统读取到该计算节点本地的硬盘中,该计算节点在处理用于访问第一数据集中的数据的IO请求的过程中,结合IO拦截技术改变IO请求的访问路径实现IO请求重定向,使得该计算节点从该计算节点本地的硬盘中获取该IO请求所要访问的数据的元数据,大大提高了该计算节点获取第一数据集的元数据的效率。本申请提供的技术方案适用于各种数据集的访问,尤其适用于AI模型训练的数据集的访问,可以大大提高这些数据集的元数据的访问效率,解决数据集的访问加速问题。
前述实施例以计算节点从存储系统中获取(即读取)第一数据集中的数据为例说明。该计算节点还可以向存储系统中写入数据。例如,该计算节点还可以向该存储系统中写入文件。对于写入操作,该计算节点可以在该存储系统中写入该文件和该文件的元数据,并且该计算节点可以在该计算节点的第二存储介质中写入该文件的元数据,以便于后续访问该计算节点的第二存储介质的该文件的元数据,提高元数据的访问效率。
以上是本申请的方法实施例的介绍,下面介绍本申请的装置实施例,本申请的装置可以用于执行本申请的方法。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图6,其示出了本申请实施例提供的一种数据访问装置600的结构示意图,数据访问装置600应用于计算节点,例如,数据访问装置600是计算节点或者是计算节点中的功能组件。该计算节点可以是图1所示的计算节点10,或者是图2中的任一训练节点,该计算节点包括第一存储介质和第二存储介质,第一存储介质的数据访问速率大于第二存储介质的数据访问速率,第二存储介质中存储有第一数据集的元数据,第一数据集存储在存储系统中,存储系统与所述计算节点通过网络连接。参见图6,数据访问装置600包括:第一获取模块610、查找模块620、第二获取模块630和第三获取模块640。
第一获取模块610,用于获取第一IO请求,第一IO请求用于访问第一数据集中的第一数据。第一获取模块610的功能实现可以参考S301中的相关描述。
查找模块620,用于根据第一IO请求在第一存储介质中查找第一数据的元数据。查找模块620的功能实现可以参考S302中的相关描述。
第二获取模块630,用于在第一存储介质中没有查找到第一数据的元数据时,从第二存储介质中获取第一数据的元数据。第二获取模块630的功能实现可以参考S303b中的相关描述。
第三获取模块640,用于根据获取到的第一数据的元数据,从存储系统中获取第一数据。第三获取模块640的功能实现可以参考S304中的相关描述。
可选的,第一IO请求携带第一数据在存储系统中的存储路径,第二获取模块630,用于:根据第一IO请求携带的第一数据在存储系统中的存储路径,确定第一数据的元数据在第二存储介质中的存储路径;根据第一数据的元数据在第二存储介质中的存储路径,获取第一数据的元数据。
可选的,计算节点存储有第一数据集在存储系统中的存储路径与第一数据集的元数据在第二存储介质中的存储路径的映射关系,第二获取模块630,用于根据第一IO请求携带的第一数据在存储系统中的存储路径以及该映射关系,确定第一数据的元数据在第二存储介质中的存储路径。
可选的,数据访问装置600还包括:读取模块650,用于响应用于访问第一数据集中的数据的第一个IO请求,将第一数据集的元数据从存储系统读取至第二存储介质;建立模块660,用于建立第一数据集在存储系统中的存储路径与第一数据集的元数据在第二存储介质中的存储路径的映射关系。读取模块650和建立模块660的功能实现可以参考S502中的相关描述。
可选的,数据访问装置600还包括:读取模块650,用于响应用于访问第一数据集中的数据的第一个IO请求,根据所述映射关系将第一数据集的元数据从存储系统读取至第二存储介质。读取模块650的功能实现可以参考S502中的相关描述。
可选的,第一存储介质为非持久性存储介质,第二存储介质为持久性存储介质。
可选的,计算节点为AI模型训练集群中的任意一个训练节点,第一数据集为用于AI模型训练的数据集。
可选的,所述存储系统为分布式存储系统。
综上所述,本申请实施例提供的数据访问装置,由于计算节点的第二存储介质中存储有第一数据集的元数据,该计算节点获取到第一IO请求之后,该计算节点根据第一IO请求在该计算节点的第一存储介质中查找第一数据的元数据,在该计算节点的第一存储介质中没有查找到第一数据的元数据时,该计算节点可以从该计算节点的第二存储介质中获取第一数据的元数据。相比于从存储系统中获取第一数据的元数据,该计算节点从该计算节点的第二存储介质中获取第一数据的元数据的速度更快,效率更高。因此,在计算节点的第二存储介质中存储第一数据集的元数据,可以提高该计算节点获取第一数据集的元数据的效率,从而提高该计算节点获取第一数据集的效率。
应理解的是,本申请实施例提供的数据访问装置还可以用应用专用集成电路(application-specific integrated circuit,ASIC)或可编程逻辑器件(programmable logic device,PLD)实现,该PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现上述方法实施例提供的数据访问方法,当通过软件实现上述方法实施例提供的数据访问方法时,数据访问装置中的各个模块可以为软件模块。
请参考图7,其示出了本申请实施例提供的一种数据访问装置700的结构示意图。数据访问装置700包括处理器702、存储器704、通信接口706和总线708,处理器702、存储器704和通信接口706通过总线708彼此通信连接。图7所示的处理器702、存储器704和通信接口706之间的连接方式仅仅是示例性的,在实现过程中,处理器702、存储器704和通信接口706也可以采用除了总线708之外的其他连接方式彼此通信连接。
其中,存储器704可以用于存储计算机程序7042,该计算机程序7042可以包括指令和
数据。存储器704可以是各种类型的存储介质,例如只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、非易失性RAM(non-volatile RAM,NVRAM)、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)、闪存、光存储器和寄存器等。图7中的存储器704泛指数据访问装置700可能包括的各种可能的存储介质,而不特指数据访问装置700包括的某一具体的存储介质。例如,图7中的存储器704可以包括但不限于前述第一存储介质和第二存储介质,第一存储介质可以是缓存,第二存储介质可以是硬盘。也即,图7中的存储器704可以包括缓存和硬盘。
其中,处理器702可以是通用处理器,通用处理器可以是通过读取并执行存储器(例如存储器704)中存储的计算机程序(例如计算机程序7042)来执行特定步骤和/或操作的处理器,通用处理器在执行上述步骤和/或操作的过程中可能用到存储在存储器(例如存储器704)中的数据。该存储的计算机程序例如可以被执行以实现前述第一获取模块610、查找模块620、第二获取模块630、第三获取模块640、读取模块650以及建立模块660的相关功能。通用处理器可以是,例如但不限于CPU。此外,处理器702也可以是专用处理器,专用处理器可以是专门设计的用于执行特定步骤和/或操作的处理器,该专用处理器可以是,例如但不限于,数字信号处理器(digital signal processor,DSP)、ASIC和FPGA等。此外,处理器702还可以是多个处理器的组合,例如多核处理器。处理器702可以包括至少一个电路,以执行上述实施例提供数据访问方法的全部或部分步骤。
其中,通信接口706可以包括输入/输出(input/output,I/O)接口、物理接口和逻辑接口等用于实现数据访问装置700内部的器件互连的接口,以及用于实现数据访问装置700与其他设备或系统(例如存储系统)互连的接口。物理接口可以是千兆的以太接口(gigabit Ethernet,GE),其可以用于实现数据访问装置700与其他设备互连,逻辑接口是数据访问装置700内部的接口,其可以用于实现数据访问装置700内部的器件互连。通信接口706可以用于数据访问装置700与存储系统通信,例如,用于数据访问装置700与存储系统之间数据的收发。
其中,总线708可以是任何类型的,用于实现处理器702、存储器704和通信接口706互连的通信总线,例如系统总线。
上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本申请实施例对上述器件的具体实现形式不做限定。
图7所示的数据访问装置700仅仅是示例性的,在实现过程中,数据访问装置700还可以包括其他组件,本文不再一一列举。图7所示的数据访问装置700可以通过执行上述实施例提供数据访问方法的全部或部分步骤来进行数据访问。
与图1对应,图7中的数据访问装置700是图1中的计算节点10或者是计算节点10中的功能模块。
与图2对应,图7中的数据访问装置700是图2中的任一训练节点或者是该训练节点中的功能模块。
对于图6所示的数据访问装置600在图7所示的数据访问装置700中实现的情形,图6所示的数据访问装置600中的各个模块在产品实际实现中其功能可以由图7中的处理器702来实现,或者由图7中的处理器702调用存储器704中的计算机程序7042来实现。
本申请实施例提供了一种数据访问系统,包括计算节点和存储系统,该计算节点与该存储系统通过网络连接,该计算节点包括如图6或图7所示的数据访问装置。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被执行(例如被计算节点、一个或多个处理器执行)时,实现如上述方法实施例提供的数据访问方法的全部或部分步骤。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序或代码,该程序或代码被执行(例如被计算节点、一个或多个处理器执行)时,实现如上述方法实施例提供的数据访问方法的全部或部分步骤。
本申请实施例提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,该芯片运行时用于实现如上述方法实施例提供的数据访问方法的全部或部分步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
应当理解的是,本申请中的术语“至少一个”指一个或多个,“多个”指两个或两个以上。在本申请中,除非另有说明,符号“/”一般表示或的意思,例如,A/B可以表示A或B。本申请中的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述,在本申请中,采用了“第一”、“第二”、“第三”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”、“第三”等字样并不对数量和执行次序进行限定。
本申请实施例提供的方法实施例和装置实施例等不同类型的实施例均可以相互参考,本申请实施例对此不做限定。本申请实施例提供的方法实施例操作的先后顺序能够进行适当调整,操作也能够根据情况进行响应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
在本申请提供的相应实施例中,应该理解到,所揭露的装置等可以通过其它的构成方式
实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元描述的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个节点上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的示例性实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (20)
- 一种数据访问方法,其特征在于,应用于计算节点,所述计算节点包括第一存储介质和第二存储介质,所述第一存储介质的数据访问速率大于所述第二存储介质的数据访问速率,所述第二存储介质中存储有第一数据集的元数据,所述第一数据集存储在存储系统中,所述存储系统与所述计算节点通过网络连接,所述方法包括:获取第一输入输出IO请求,所述第一IO请求用于访问所述第一数据集中的第一数据;根据所述第一IO请求在所述第一存储介质中查找所述第一数据的元数据;在所述第一存储介质中没有查找到所述第一数据的元数据时,从所述第二存储介质中获取所述第一数据的元数据;根据获取到的所述第一数据的元数据,从所述存储系统中获取所述第一数据。
- 根据权利要求1所述的方法,其特征在于,所述第一IO请求携带所述第一数据在所述存储系统中的存储路径,所述从所述第二存储介质中获取所述第一数据的元数据,包括:根据所述第一IO请求携带的所述第一数据在所述存储系统中的存储路径,确定所述第一数据的元数据在所述第二存储介质中的存储路径;根据所述第一数据的元数据在所述第二存储介质中的存储路径,获取所述第一数据的元数据。
- 根据权利要求2所述的方法,其特征在于,所述计算节点存储有所述第一数据集在所述存储系统中的存储路径与所述第一数据集的元数据在所述第二存储介质中的存储路径的映射关系;所述根据所述第一IO请求携带的所述第一数据在所述存储系统中的存储路径,确定所述第一数据的元数据在所述第二存储介质中的存储路径,包括:根据所述第一IO请求携带的所述第一数据在所述存储系统中的存储路径以及所述映射关系,确定所述第一数据的元数据在所述第二存储介质中的存储路径。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:响应用于访问所述第一数据集中的数据的第一个IO请求,将所述第一数据集的元数据从所述存储系统读取至所述第二存储介质,并建立所述映射关系。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:响应用于访问所述第一数据集中的数据的第一个IO请求,根据所述映射关系将所述第一数据集的元数据从所述存储系统读取至所述第二存储介质。
- 根据权利要求1至5任一项所述的方法,其特征在于,所述第一存储介质为非持久性存储介质,所述第二存储介质为持久性存储介质。
- 根据权利要求1至6任一项所述的方法,其特征在于,所述计算节点为人工智能AI模型训练集群中的任意一个训练节点,所述第一数据集为用于AI模型训练的数据集。
- 根据权利要求1至7任一项所述的方法,其特征在于,所述存储系统为分布式存储系统。
- 一种数据访问装置,其特征在于,应用于计算节点,所述计算节点包括第一存储介质和第二存储介质,所述第一存储介质的数据访问速率大于所述第二存储介质的数据访问速率,所述第二存储介质中存储有第一数据集的元数据,所述第一数据集存储在存储系统中,所述存储系统与所述计算节点通过网络连接,所述装置包括:第一获取模块,用于获取第一输入输出IO请求,所述第一IO请求用于访问所述第一数据集中的第一数据;查找模块,用于根据所述第一IO请求在所述第一存储介质中查找所述第一数据的元数据;第二获取模块,用于在所述第一存储介质中没有查找到所述第一数据的元数据时,从所述第二存储介质中获取所述第一数据的元数据;第三获取模块,用于根据获取到的所述第一数据的元数据,从所述存储系统中获取所述第一数据。
- 根据权利要求9所述的装置,其特征在于,所述第一IO请求携带所述第一数据在所述存储系统中的存储路径,所述第二获取模块,用于:根据所述第一IO请求携带的所述第一数据在所述存储系统中的存储路径,确定所述第一数据的元数据在所述第二存储介质中的存储路径;根据所述第一数据的元数据在所述第二存储介质中的存储路径,获取所述第一数据的元数据。
- 根据权利要求10所述的装置,其特征在于,所述计算节点存储有所述第一数据集在所述存储系统中的存储路径与所述第一数据集的元数据在所述第二存储介质中的存储路径的映射关系;所述第二获取模块,用于根据所述第一IO请求携带的所述第一数据在所述存储系统中的存储路径以及所述映射关系,确定所述第一数据的元数据在所述第二存储介质中的存储路径。
- 根据权利要求11所述的装置,其特征在于,所述装置还包括:读取模块,用于响应用于访问所述第一数据集中的数据的第一个IO请求,将所述第一数据集的元数据从所述存储系统读取至所述第二存储介质;建立模块,用于建立所述映射关系。
- 根据权利要求11所述的装置,其特征在于,所述装置还包括:读取模块,用于响应用于访问所述第一数据集中的数据的第一个IO请求,根据所述映射关系将所述第一数据集的元数据从所述存储系统读取至所述第二存储介质。
- 根据权利要求9至13任一项所述的装置,其特征在于,所述第一存储介质为非持久 性存储介质,所述第二存储介质为持久性存储介质。
- 根据权利要求9至14任一项所述的装置,其特征在于,所述计算节点为人工智能AI模型训练集群中的任意一个训练节点,所述第一数据集为用于AI模型训练的数据集。
- 根据权利要求9至15任一项所述的装置,其特征在于,所述存储系统为分布式存储系统。
- 一种数据访问装置,其特征在于,包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器用于执行所述存储器中存储的计算机程序以使得所述数据访问装置执行如权利要求1至8任一项所述的方法。
- 一种数据访问系统,其特征在于,包括计算节点和存储系统,所述计算节点与所述存储系统通过网络连接,所述计算节点包括如权利要求9至17任一项所述的装置。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现如权利要求1至8任一项所述的方法。
- 一种计算机程序产品,其特征在于,所述计算机程序产品包括程序或代码,所述程序或代码被执行时实现如权利要求1至8任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210749781.9 | 2022-06-28 | ||
CN202210749781.9A CN117349232A (zh) | 2022-06-28 | 2022-06-28 | 数据访问方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024001827A1 true WO2024001827A1 (zh) | 2024-01-04 |
Family
ID=89356256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/100708 WO2024001827A1 (zh) | 2022-06-28 | 2023-06-16 | 数据访问方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117349232A (zh) |
WO (1) | WO2024001827A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
US20140032595A1 (en) * | 2012-07-25 | 2014-01-30 | Netapp, Inc. | Contention-free multi-path data access in distributed compute systems |
CN109521962A (zh) * | 2018-11-14 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种元数据查询方法、装置、设备及计算机可读存储介质 |
US20190340374A1 (en) * | 2018-04-27 | 2019-11-07 | Nutanix, Inc. | Low latency access to physical storage locations by implementing multiple levels of metadata |
CN113032335A (zh) * | 2021-05-24 | 2021-06-25 | 北京世纪好未来教育科技有限公司 | 文件访问方法、装置、设备及存储介质 |
CN113792885A (zh) * | 2021-08-20 | 2021-12-14 | 山东英信计算机技术有限公司 | 一种深度学习训练的执行方法及相关装置 |
-
2022
- 2022-06-28 CN CN202210749781.9A patent/CN117349232A/zh active Pending
-
2023
- 2023-06-16 WO PCT/CN2023/100708 patent/WO2024001827A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
US20140032595A1 (en) * | 2012-07-25 | 2014-01-30 | Netapp, Inc. | Contention-free multi-path data access in distributed compute systems |
US20190340374A1 (en) * | 2018-04-27 | 2019-11-07 | Nutanix, Inc. | Low latency access to physical storage locations by implementing multiple levels of metadata |
CN109521962A (zh) * | 2018-11-14 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种元数据查询方法、装置、设备及计算机可读存储介质 |
CN113032335A (zh) * | 2021-05-24 | 2021-06-25 | 北京世纪好未来教育科技有限公司 | 文件访问方法、装置、设备及存储介质 |
CN113792885A (zh) * | 2021-08-20 | 2021-12-14 | 山东英信计算机技术有限公司 | 一种深度学习训练的执行方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117349232A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10210191B2 (en) | Accelerated access to objects in an object store implemented utilizing a file storage system | |
Wasi-ur-Rahman et al. | High-performance RDMA-based design of Hadoop MapReduce over InfiniBand | |
US10083193B2 (en) | Efficient remote pointer sharing for enhanced access to key-value stores | |
TW201220197A (en) | for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment | |
CN114201421B (zh) | 一种数据流处理方法、存储控制节点及可读存储介质 | |
EP4318251A1 (en) | Data access system and method, and device and network card | |
CN109714229B (zh) | 一种分布式存储系统的性能瓶颈定位方法 | |
CN114625762A (zh) | 一种元数据获取方法、网络设备及系统 | |
US11226778B2 (en) | Method, apparatus and computer program product for managing metadata migration | |
CN112286457B (zh) | 对象重删方法、装置、电子设备及机器可读存储介质 | |
US11625192B2 (en) | Peer storage compute sharing using memory buffer | |
US20230325277A1 (en) | Memory controller performing selective and parallel error correction, system including the same and operating method of memory device | |
US20180143906A1 (en) | Memory access architecture with coherence | |
US10261722B2 (en) | Performing caching utilizing dispersed system buffers | |
WO2024001827A1 (zh) | 数据访问方法、装置及系统 | |
US11734246B2 (en) | Systems and methods for multiplexing data of an underlying index | |
WO2022073399A1 (zh) | 存储节点、存储设备及网络芯片 | |
CN116594551A (zh) | 一种数据存储方法及装置 | |
US11093169B1 (en) | Lockless metadata binary tree access | |
CN114756509A (zh) | 文件系统的操作方法、系统、设备以及存储介质 | |
CN115599532A (zh) | 一种访问索引的方法以及计算机集群 | |
WO2023077846A1 (zh) | 数据处理方法、设备、系统及装置 | |
WO2024001280A1 (zh) | 数据流动感知方法及相关装置 | |
US11875151B1 (en) | Inter-process serving of machine learning features from mapped memory for machine learning models | |
US20230361944A1 (en) | Systems and methods for processing and distributing service requests to computational storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23830007 Country of ref document: EP Kind code of ref document: A1 |