CN116166177A - 一种元数据读取方法和相关设备 - Google Patents
一种元数据读取方法和相关设备 Download PDFInfo
- Publication number
- CN116166177A CN116166177A CN202111407681.XA CN202111407681A CN116166177A CN 116166177 A CN116166177 A CN 116166177A CN 202111407681 A CN202111407681 A CN 202111407681A CN 116166177 A CN116166177 A CN 116166177A
- Authority
- CN
- China
- Prior art keywords
- metadata
- file data
- target file
- user equipment
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种元数据读取方法和相关设备,用于降低读取元数据的时延。本申请实施例方法包括:当用户设备接收对目标文件数据的读取请求时,从本地NVM中获取目标文件数据的元数据,得到第一元数据,并根据第一元数据读取第一文件数据,作为目标文件数据,相比较通过RDMA从服务器中读取目标文件数据的元数据,由于从本地NVM读取数据的速率较高,从而提高了对目标文件数据的元数据的读取速率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种元数据读取方法和相关设备,用于降低读取元数据的时延。
背景技术
远程直接内存访问(remote direct memory access,RDMA)是一种网络通信技术,允许一个网络节点通过网络直接访问另一个网络节点的内存,无需经对端的处理器处理,可以有效降低网络通信带来的性能影响,提升网络吞吐量。而非易失内存(non-volatilememory,NVM)是一种内存技术,具有传统内存的低延迟、高带宽、可字节寻址特性,同时兼具磁盘等存储设备的持久存储能力,在系统断电后其内数据不会丢失。
分布式系统由多个计算机节点构成,计算机节点区分为服务器与用户设备。服务器或用户设备由RDMA网络互联的计算机节点集群构成,文件数据与元数据分散存储在集群内。每个计算机节点装配有NVM,用于存储文件数据,各计算机节点可以通过RDMA直接访问其他计算机节点的NVM。
用户设备在访问服务器上的文件数据之前,需要首先获取该文件数据对应的元数据,再根据元数据访问服务器以获取文件数据。当前,元数据存储在分布式系统的多个计算节点中,用户设备需要通过RDMA访问这些计算节点,才能获得这些元数据,由于需要通过网络连接和通信,造成了一定的时延。
发明内容
本申请实施例提供了一种元数据读取方法和相关设备,用于降低读取元数据的时延。
本申请的第一方面提供了一种数据读取方法,包括:当用户设备接收对目标文件数据的读取请求时,从本地NVM中获取目标文件数据的元数据,得到第一元数据,并根据第一元数据读取第一文件数据,作为目标文件数据,相比较通过RDMA从服务器中读取目标文件数据的元数据,由于从本地NVM读取数据的速率较高,从而提高了对目标文件数据的元数据的读取速率。
在一些可行的实现方式中,所述用户设备从所述服务器中获取所述目标文件数据的元数据,得到第二元数据,所述用户设备比对所述第一元数据和所述第二元数据,若所述第一元数据和所述第二元数据不一致,则所述用户设备根据所述第二元数据读取第二文件数据,作为所述目标文件数据,并丢弃所述第一文件数据。那么,若缓存在本地NVM中的目标文件数据的元数据未更新,那么可以从服务器中读取到目标文件数据的第二元数据来来读取第二文件数据,作为目标文件数据。
在一些可行的实现方式中,若所述第一元数据和所述第二元数据不一致,则所述用户设备缓存所述第二元数据,作为所述目标文件数据的元数据,并丢弃所述第一元数据。那么,用户设备可以更新在本地NVM中缓存的目标文件数据的元数据。
在一些可行的实现方式中,所述用户设备通过RDMA从所述服务器中获取所述目标文件数据的元数据,得到第二元数据,通过RDMA从服务器中读取元数据,读取速率较高。
在一些可行的实现方式中,所述用户设备确定在所述本地NVM中缓存有所述目标文件数据的元数据,若在所述本地NVM中未缓存所述目标文件数据的元数据,则可以从服务器中获取所述目标文件数据的元数据。
第二方面,本申请提供一种用户设备,所述用户设备用于执行前述第一方面中任一项所述的方法。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面中任一项所述的方法。
本申请第四方面提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述第一方面或者第一方面的任一种可能的实现方式所提供的方法。
本申请第五方面提供一种通信装置,该通信装置,可以包括至少一个处理器、存储器和通信接口。至少一个处理器与存储器和通信接口耦合。存储器用于存储指令,至少一个处理器用于执行该指令,通信接口用于在至少一个处理器的控制下与其他通信装置进行通信。该指令在被至少一个处理器执行时,使至少一个处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
本申请第六方面提供了一种芯片系统,该芯片系统包括处理器,用于支持通信装置实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。
在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存通信装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第三至第六方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面不同可能实现方式所带来的技术效果,此处不再赘述。
附图说明
图1-1为本申请实施例提供的一种存储系统的组成结构示意图;
图1-2为本申请实施例提供的一种通信系统为分布式的存储系统的组成结构示意图;
图2为本申请实施例提供的一种数据读取方法的流程示意图;
图3为本申请实施例提供的一种用户设备的结构示意图;
图4为本申请实施例提供的一种通信装置的结构示意图。
具体实施方式
本申请实施例提供了一种元数据读取方法和相关设备,用于降低读取元数据的时延。
下面结合附图,对本申请的实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
请参阅图1-1所示,为本申请实施例提供的一种存储系统的组成结构示意图。本申请实施例提供一种存储系统100,包括:服务器110和用户设备120。
在本申请中,服务器110用于存储文件数据。在一些可行的实现方式中,服务器110可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式存储系统。需要说明的是,分布式存储系统由多个服务器构成,服务器之间由RDMA网络互联,文件数据分散存储在多个服务器内,其中,每个服务器都装配有NVM,用于存储文件数据。
在一些可行的实现方式中,服务器110还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。其中,服务器也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求并进行处理,提供可靠的服务,因此一般来说服务器应具备承担服务并且保障服务的能力,该服务器需要具备较强的处理能力、高稳定性、高可靠性、高安全性、可扩展性以及可管理性。
其中,用户设备120可以为终端(terminal)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。其中,终端可以为手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmentedreality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请的实施例对用户设备120所采用的具体技术和具体设备形态不做限定。用户设备120以及服务器110可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一些可行的实现方式中,如图1-2所示,存储系统100也可能为分布式的存储系统,其中,服务器110包括用于多个服务器,多个服务器构成分布式存储系统。服务器110还包括无线带宽(InfiniBand)网卡。需要说明的是,RDMA技术源于InfiniBand,是一种高速网络传输技术,用户设备120读取数据时可以绕过服务器110的操作系统而直接对服务器110的内存进行读写。用户设备120包括DRAM、NVM和InfiniBand网卡。
远程直接内存访问(remote direct memory access,RDMA)是一种网络通信技术,允许一个网络节点通过网络直接访问另一个网络节点的内存,无需经对端的处理器处理,可以有效降低网络通信带来的性能影响,提升网络吞吐量。而非易失内存(non-volatilememory,NVM)是一种内存技术,具有传统内存的低延迟、高带宽、可字节寻址特性,同时兼具磁盘等存储设备的持久存储能力,在系统断电后其内数据不会丢失。
分布式系统由多个计算机节点构成,计算机节点区分为服务器与用户设备。服务器或用户设备由RDMA网络互联的计算机节点集群构成,文件数据与元数据分散存储在集群内。每个计算机节点装配有NVM,用于存储文件数据,各计算机节点可以通过RDMA直接访问其他计算机节点的NVM。
用户设备在访问服务器上的文件数据之前,需要首先获取该文件数据对应的元数据,再根据元数据访问服务器以获取文件数据。当前,元数据存储在分布式系统的多个计算节点中,用户设备需要通过RDMA访问这些计算节点,才能获得这些元数据,由于需要通过网络连接和通信,造成了一定的时延。
因此,在本申请实施例中,在用户设备120本地的NVM(下称本地NVM)缓存着存储系统中的部分元数据,InfiniBand网卡用于与服务器110建立RDMA连接。
在本申请实施例中,用户设备120可以通过RDMA的发送/接收(Send/Receive)操作获取从服务器中获取元数据信息,同时根据元数据信息中的文件句柄查找本地NVM中是否缓存有元数据。若用户设备120根据文件句柄查找到元数据,即缓存命中时,可以直接从本地NVM中读取缓存的元数据。
在本申请实施例中,当用户设备120从服务器110中读取到元数据时,判断与本地NVM中读取的元数据是否一致,若一致,则确定本地NVM缓存的元数据未失效。否则失效,需要丢弃,根据从服务器中读取的元数据缓存在本地NVM中,相当于更新本地NVM中缓存的元数据。若用户设备确定本地NVM缓存的元数据未失效,则根据元数据读取文件数据。
在本申请实施例中,当用户设备120读取到元数据时,若本地NVM的元数据失效,可以在进行通过RDMA的写(write)操作时,将从服务器110读取的元数据在本地NVM上增加/更新缓存的元数据。
在本申请实施例中,用户设备120可以将本地NVM的缓存区进行初始化,以缓存元数据:1、将位图(bitmap)全设置为0,其他数据无需处理;2、增设本地NVM中用于存储元数据的缓存,其中,可以设置每个元数据的数据量大小固定,例如4KB;3、顺序扫描bitmap,找到第一个0的比特位n,根据(本地NVM的起始地址+bitmap的大小+n*元数据的数据量大小)确定元数据的地址;4、将元数据存入缓存区中,同时更新优先队列,即更新<文件句柄,元数据的地址>键值对集合。在一些可行的实现方式中,若顺序扫描bitmap发现没有足够大的存储区域能缓存元数据时,可以触发本地NVM的缓存换出机制。
前述实施例介绍了本申请提供给的存储系统100,接下来介绍基于该存储系统100执行的数据读取方法,请参阅图2所示,本申请实施例提供的数据读取方法主要包括如下步骤:
201、用户设备接收对目标文件数据的读取请求。
例如,用户通过操作用户设备中的应用程序,调用目标文件数据。例如,用户设备为智能终端,应用程序为视频软件,用户通过点击屏幕上的一个视频的视频链接,用户设备则接收到读取该视频对应的目标文件数据,例如1Gb的视频数据。
202、用户设备从本地NVM中获取目标文件数据的元数据,得到第一元数据。
元数据是存储在服务器中的,用户设备可以通过RDMA从服务器中读取元数据。在本申请实施例中,当用户设备从服务器中读取到目标文件数据的元数据后,可以缓存在本地NVM中,那么再次需要读取这些元数据时,可以从本地NVM中读取,而不需要再次从服务器中读取。相比较用户设备通过RDMA从服务器中读取,从本地NVM中读取这些元数据,读取速率较高,而且免去了与服务器的通信过程,可节省时间,降低时延。
在一些可行的实现方式中,用户设备可以在本地NVM中维护缓存最近最少使用算法(least recently used,LRU)链表,该LRU链表中的一个表项对应一个本地NVM中的文件块,其中,一个文件块对应一个块粒度,即一个文件块可以存储一个块粒度的元数据,例如4KB。示例性的,用户设备可以根据LRU链表分配文件块,从而在本地NVM中划分一块临时空间,该临时空间对应LRU链表中的若干表项,该临时空间用于存储元数据。那么,用户设备可以从本地NVM中的文件块中读取元数据。
在一些可行的实现方式中,元数据在用户设备的本地NVM中按照一定块粒度进行存储。示例性的,元数据可以按照4千字节(KB)作为一个块粒度在用户设备的本地NVM中进行存储,假设有1兆字节(MB)的元数据,则有1MB/4KB=256个以4KB为粒度的文件块,即每各文件块存储4KB的数据。
需要说明的是,用户设备从本地NVM中读取目标文件数据对应的元数据的结果,可以包括:1、用户设备从本地NVM中读取到目标文件数据对应的所有元数据;2、用户设备从本地NVM中读取到目标文件数据对应的部分元数据,即用户设备未从本地NVM中读取到目标文件数据对应的另一部分元数据;3、用户设备未能从本地NVM中读取到目标文件数据对应的任意元数据。
举例说明,1MB的元数据对应256个文件块(每个文件块的数据量为4KB,即块粒度为4KB)。那么,可能有256个文件块都在本地NVM中,也有可能200个文件块都在本地NVM中,也有可能0个文件块都在本地NVM中。
在一些可行的实现方式中,若用户设备在本地NVM中可以读取到目标文件数据对应的完整的元数据,即可认为用户设备完成从本地NVM中读取目标文件数据对应的元数据的步骤,用户设备即可继续执行步骤203。那么,若用户设备在本地NVM中仅能读取到目标文件数据对应的部分元数据,那么认为用户设备未完成从本地NVM中读取目标文件数据对应的元数据的步骤,则用户设备跳过步骤203,而执行步骤204、206和208。
在一些可行的实现方式中,若用户设备在本地NVM中可以读取到目标文件数据对应的部分元数据,即可认为用户设备完成从本地NVM中读取目标文件数据对应的元数据的步骤,用户设备即可继续执行步骤203。那么,若用户设备在本地NVM中未能读取到目标文件数据对应的任意部分元数据,那么认为用户设备未完成从本地NVM中读取目标文件数据对应的元数据的步骤,则用户设备跳过步骤203,而执行步骤204、206和208。
在本申请实施例中,用户设备通过在本地NVM中读取元数据,能使避免用户设备与服务器通过RDMA的通信,而且用户设备使用本地NVM读取元数据相比通过RDMA从服务器中读取元数据的速度较快,从而降低对元数据的访问时延。
在本申请实施例中,用户设备通过本地NVM缓存元数据,相比较将元数据缓存在动态随机存储器(dynamic random access memory,DRAM),在本地NVM具有接近DRAM的读写速率的情况,具有巨大的存储容量。由于DRAM的容量有限,过多的占用影响其他应用,而存储系统中的海量数据对应有海量的元数据,而用户设备的本地NVM有足够的存储空间可以缓存这些元数据。另外,当用户设备掉电后,在RDAM中缓存的元数据会丢失,再次重启用户设备后,需要重新对元数据进行读取以及缓存。但是,通过NVM读取并缓存元数据后,若用户设备断电,缓存的元数据不会丢失,再次重启用户设备后,不需要重新对元数据进行读取以及缓存,可以迅速恢复元数据的使用,提高了缓存元数据的安全性和稳定性。
在本申请实施例中,用户设备通过本地NVM缓存元数据,相比较在固态硬盘(solidstate disk,SSD)中缓存元数据,读写速度较快。需要说明的是,在SSD中,其访问过慢,即使是元数据的缓存命中也需要花费大量时间进行读取。
综上所述,在本申请实施例中,使用本地NVM作为元数据的缓存,具有大存储容量(相比较DRAM)、单位容量价格低(相比较DRAM)、掉电不丢失(相比较DRAM)、读写速度快(相比较SSD)和低时延(相比较RDMA)等特性。
203、用户设备根据第一元数据读取第一文件数据,作为目标文件数据。
在本申请实施例中,若用户设备在本地NVM中读取到目标文件数据对应的元数据,则可以根据元数据读取对应的第一文件数据,作为目标文件数据。在一些可行的实现方式,若第一文件数据的全部缓存在本地NVM中,用户设备可以在本地NVM中读取第一文件数据。在一些可行的实现方式,若第一文件数据的一部分缓存在本地NVM中,用户设备可以在本地NVM中读取第一文件数据中缓存在本地NVM中的一部分,从RDMA中读取另一部分第一文件数据。在一些可行的实现方式中,若第一文件数据未缓存在本地NVM中,用户设备可以通过RDMA从服务器中读取第一文件数据。
示例性的,用户设备可以通过RDMA向服务器发送对第一文件数据的读取请求,对第一文件数据的读取请求携带该目标文件数据的元数据。在一些可行的实现方式中,用户设备可以通过RDMA向服务器发送对第一文件数据的读取请求的方式可以是双边操作或单边操作,此处不做限定。需要说明的是,双边操作(即双边读/写操作)需要对方(在本申请实施例中,即服务器)发起对应的写/读操作,而单边操作(即双边读/写操作)则不需要对方(在本申请实施例中,即服务器)参与。
举例说明,运行在用户设备上的应用程序请求读取一个1GB的文件数据。设块粒度为4KB,那么1GB的文件数据一共有262144个文件块。则用户设备可以在本地NVM中提供1GB的临时空间,作为缓冲区,用于存储读取到的1GB的文件数据。然后,用户设备通过RDMA(单边操作或双边操作)向服务器发送对文件数据的读取请求。需要说明的是,若用户设备通过RDMA的单边操作向服务器发送对文件数据的读取请求,其从服务器中获取文件数据的速度更快。
在本申请实施例中,当服务器接收到对第一文件数据的读取请求后,可以根据元数据确定第一文件数据对应的各个文件块所在的存储位置,以确定该第一文件数据对应的内存区列表。需要说明的是,内存区列表的表项为一个内存区,一个内存区对应一个文件块,每个文件块用于存储1个块粒度的数据。例如,块粒度为4KB,文件数据为1GB,那么内存区列表包括1GB/4KB=262144个内存区。当服务器确定内存区列表后,可以使用RDMA的单边写操作向用户设备发送对应该内存区列表。
在本申请实施例中,当用户设备接收到服务器发送的文件数据的内存区列表后,可以根据第一文件数据的内存区列表确定第一文件数据在本地NVM中的文件块。在一些可行的实现方式中,用户设备可以根据内存区列表查找缓存地址搜索树,以确认本地NVM中是否有缓存有第一文件数据中文件块。为此,用户设备可以在本地维护缓存地址搜索树,缓存地址搜索树用于根据第一文件数据的内存区查找出特定的文件块在本地NVM中是否有缓存。举例说明,当用户设备接收到内存区列表后,可以根据内存区列表查找缓存地址搜索树,从而获知262144个文件块中的其中182331个文件块已在本地NVM中缓存。
在本申请实施例,当用户设备确定了根据内存区列表确定第一文件数据中在本地NVM的文件块后,可以从本地NVM读取第一文件数据的一部分,第一文件数据的一部分对应于第一文件数据中在本地NVM的文件块,第一文件数据的其余部分通过RDMA从服务器中读取。
在一些可行的实现方式中,用户设备可以从本地NVM中读取第一文件数据中在本地NVM的文件块,文件数据的其余部分通过RDMA从服务器中读取。举例说明,1GB的文件数据的262144个文件块中的其中182331个文件块已在本地NVM中缓存(每个文件块的数据量为4KB,即块粒度为4KB),那么用户设备可以从本地NVM中读取这182331个文件块中的文件数据。而剩余的262144-182331=79813个文件块存储在服务器之中,那么用户设备可以通过RDMA从服务器中读取这79813个文件块中的第一文件数据。在本申请实施例中,由于用户设备从本地NVM和通过RDMA从服务器中分别读取第一文件数据,相对于仅从服务器中读取第一文件数据,提高了第一文件数据的读取速率。在一些可行的实现方式中,若文件数据未缓存在本地NVM中,用户设备可以通过RDMA从服务器中读取第一文件数据,即用户设备可以通过RDMA从服务器中读取这262144个文件块中的数据。
需要说明的是,当用户设备通过RDMA向服务器发送对第一文件数据的读取请求之前,可以将根据内存区列表中确定待读取的数据的内存区的地址注册至本地的RDMA网卡,然后通过该本地的RDMA网卡单边或者双边的方式访问服务器,从而读取对应的第一文件数据。
在本申请实施例中,用户设备可以将读取到的第一文件数据缓存在LRU链表中分配的文件块中。在一些可行的实现方式中,用户设备可以不需要再次缓存在本地NVM中已缓存的第一文件数据的部分,而将从RDMA中读取的第一文件数据中在本地NVM中未缓存的部分进行缓存。
204、用户设备从服务器中获取目标文件数据的元数据,得到第二元数据。
在一些可行的实现方式中,用户设备在执行步骤202的同时,可以从服务器中获取目标文件数据的元数据,得到第二元数据。示例性的,用户设备可以通过RDMA从服务器中获取目标文件数据的元数据,得到第二元数据。
在一些可行的实现方式中,若元数据完全未缓存在本地NVM中,用户设备也可以从服务器中读取全部元数据。需要说明的是,当用户设备从服务器读取元数据之前,可以将首先获取内存区列表,并确定待读取的元数据的内存区的地址注册至本地的RDMA网卡,然后通过本地的RDMA网卡单边或者双边的方式访问服务器,从而读取对应的元数据。
205、用户设备比对第一元数据和第二元数据。
在本申请实施例中,若第一元数据和第二元数据一致,则结束本次读取目标文件数据的流程。若第一元数据和第二元数据不一致,则说明元数据在服务器已经更新,在本地NVM上未更新,则可以执行下述步骤206-208。
在一些可行的实现方式中,当用户设备从本地NVM读取目标文件数据的一部分元数据,以及从通过RDMA从服务器中读取元数据后,可以将从本地NVM读取的一部分元数据,和从通过RDMA从服务器中读取的对应部分元数据进行比对。若二者一致,则结束本次读取文件数据的流程。若二者不一致,则说明该目标文件数据的该部分元数据在服务器已经更新,在本地NVM上未更新,则可以执行下述步骤206-208。
206、若第一元数据和第二元数据不一致,则用户设备缓存第二元数据,作为目标文件数据的元数据,并丢弃第二元数据。
在本申请实施例中,若第一元数据和第二元数据不一致,则用户设备缓存第二元数据,作为目标文件数据的元数据,并丢弃第一元数据,从而实现替换。
在一些可行的实现方式中,当用户设备从本地NVM读取的目标文件数据的任意元数据和从通过RDMA从服务器中读取的目标文件数据的任意元数据存在差异,则用户设备在本地NVM中删除缓存的第一元数据,替换为缓存通过RDMA从服务器中读取的第二元数据。
在一些可行的实现方式中,当用户设备从本地NVM读取的目标文件数据的任意元数据和从通过RDMA从服务器中读取的目标文件数据的任意元数据存在差异,则用户设备在本地NVM中删除有差异部分的元数据,替换为缓存通过RDMA从服务器中读取的第二元数据的对应部分。
207、若第一元数据和第二元数据不一致,则用户设备根据第二元数据读取第二文件数据,作为目标文件数据,并丢弃第一文件数据。
在一些可行的实现方式中,若第一元数据和第二元数据不一致,则用户设备根据第二元数据读取第二文件数据,作为目标文件数据。
在一些可行的实现方式中,若用户设备从本地NVM读取的第一元数据和通过RDMA从服务器中读取的第二元数据不一致,则用户设备根据第二元数据读取第二文件数据,作为目标文件数据,且丢弃通过第一元数据读取第一文件数据。
在一些可行的实现方式中,若用户设备从本地NVM读取的第一元数据和从通过RDMA从服务器中读取的第二元数据不一致,则用户设备确定不一致的部分元数据,根据第二元数据中与第一元数据不一致的部分元数据读取部分文件数据,并丢弃根据第一元数据中与第二元数据不一致的部分元数据读取的部分文件数据。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
为便于更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图3所示,本申请实施例提供的一种用户设备300,可以包括:收发模块301和处理模块302,其中,
收发模块301,用于接收对目标文件数据的读取请求;
处理模块302,用于从本地NVM中获取所述目标文件数据的元数据,得到第一元数据;
所述处理模块302,还用于根据所述第一元数据读取第一文件数据,作为所述目标文件数据。
在一些可行的实现方式中,
所述处理模块302,还用于从所述服务器中获取所述目标文件数据的元数据,得到第二元数据;
所述处理模块302,还用于比对所述第一元数据和所述第二元数据;
所述处理模块302,还用于若所述第一元数据和所述第二元数据不一致,则根据所述第二元数据读取第二文件数据,作为所述目标文件数据,并丢弃所述第一文件数据。
在一些可行的实现方式中,
所述处理模块302,还用于若所述第一元数据和所述第二元数据不一致,则缓存所述第二元数据,作为所述目标文件数据的元数据,并丢弃所述第一元数据。
在一些可行的实现方式中,
所述处理模块302,具体用于:通过RDMA从所述服务器中获取所述目标文件数据的元数据,得到第二元数据。
在一些可行的实现方式中,所述处理模块302,还用于所述用户设备确定在所述本地NVM中缓存有所述目标文件数据的元数据。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本申请实施例提供的另一种通信装置,请参阅图4所示,通信装置400包括:
接收器401、发射器402、处理器403和存储器404。
在本申请的一些实施例中,接收器401、发射器402、处理器403和存储器404可通过总线或其它方式连接,其中,图4中以通过总线连接为例。
存储器404可以包括只读存储器和随机存取存储器,并向处理器403提供指令和数据。存储器404的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器404存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器403控制通信装置400的操作,处理器403还可以称为中央处理单元(central processing unit,CPU)。具体的应用中,通信装置400的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器403中,或者由处理器403实现。处理器403可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器403中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器403可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器404,处理器403读取存储器404中的信息,结合其硬件完成上述方法的步骤。
接收器401可用于接收输入的数字或字符信息,以及产生与通信装置400的相关设置以及功能控制有关的信号输入,发射器402可包括显示屏等显示设备,发射器402可用于通过外接接口输出数字或字符信息。
本申请实施例中,处理器403,用于执行前述通信装置400执行的数据读取方法方法。
在另一种可能的设计中,当通信装置400和用户设备300为芯片时,包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端内的芯片执行上述第一方面任意一项的无线报告信息的发送方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (14)
1.一种数据读取方法,其特征在于,包括:
用户设备接收对目标文件数据的读取请求;
所述用户设备从本地NVM中获取所述目标文件数据的元数据,得到第一元数据;
所述用户设备根据所述第一元数据读取第一文件数据,作为所述目标文件数据。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
所述用户设备从所述服务器中获取所述目标文件数据的元数据,得到第二元数据;
所述用户设备比对所述第一元数据和所述第二元数据;
若所述第一元数据和所述第二元数据不一致,则所述用户设备根据所述第二元数据读取第二文件数据,作为所述目标文件数据,并丢弃所述第一文件数据。
3.根据权利要求2所述方法,其特征在于,所述方法还包括:
若所述第一元数据和所述第二元数据不一致,则所述用户设备缓存所述第二元数据,作为所述目标文件数据的元数据,并丢弃所述第一元数据。
4.根据权利要求2或3所述方法,其特征在于,所述用户设备从所述服务器中获取所述目标文件数据的元数据,得到第二元数据,包括:
所述用户设备通过RDMA从所述服务器中获取所述目标文件数据的元数据,得到第二元数据。
5.根据权利要求1-4中任一项所述方法,其特征在于,所述用户设备从所述本地NVM中获取所述目标文件数据的元数据,得到第一元数据之前,还包括:
所述用户设备确定在所述本地NVM中缓存有所述目标文件数据的元数据。
6.一种用户设备,其特征在于,包括:
收发模块,用于接收对目标文件数据的读取请求;
处理模块,用于从本地NVM中获取所述目标文件数据的元数据,得到第一元数据;
所述处理模块,还用于根据所述第一元数据读取第一文件数据,作为所述目标文件数据。
7.根据权利要求6所述用户设备,其特征在于,
所述处理模块,还用于从所述服务器中获取所述目标文件数据的元数据,得到第二元数据;
所述处理模块,还用于比对所述第一元数据和所述第二元数据;
所述处理模块,还用于若所述第一元数据和所述第二元数据不一致,则根据所述第二元数据读取第二文件数据,作为所述目标文件数据,并丢弃所述第一文件数据。
8.根据权利要求7所述用户设备,其特征在于,
所述处理模块,还用于若所述第一元数据和所述第二元数据不一致,则缓存所述第二元数据,作为所述目标文件数据的元数据,并丢弃所述第一元数据。
9.根据权利要求7或8所述用户设备,其特征在于,所述处理模块,具体用于:
通过RDMA从所述服务器中获取所述目标文件数据的元数据,得到第二元数据。
10.根据权利要求6-9中任一项所述用户设备,其特征在于,
所述处理模块,还用于所述用户设备确定在所述本地NVM中缓存有所述目标文件数据的元数据。
11.一种计算机可读存储介质,其特征在于,该计算机可读存储介质存储有程序,所述程序使得计算机设备执行如权利要求1-5中任一项的方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机执行指令,所述计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器从所述计算机可读存储介质中读取所述计算机执行指令,所述至少一个处理器执行所述计算机执行指令使得所述设备执行如权利要求1-5中任一项的方法。
13.一种通信装置,其特征在于,所述通信装置包括至少一个处理器、存储器和通信接口;
所述至少一个处理器与所述存储器和所述通信接口耦合;
所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述至少一个处理器的控制下与其他通信装置进行通信;
所述指令在被所述至少一个处理器执行时,使所述至少一个处理器执行如权利要求1-5中任一项的方法。
14.一种芯片系统,其特征在于,所述芯片系统包括处理器和存储器,所述存储器和所述处理器通过线路互联,所述存储器中存储有指令,所述处理器用于执行如权利要求1-5中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111407681.XA CN116166177A (zh) | 2021-11-24 | 2021-11-24 | 一种元数据读取方法和相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111407681.XA CN116166177A (zh) | 2021-11-24 | 2021-11-24 | 一种元数据读取方法和相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116166177A true CN116166177A (zh) | 2023-05-26 |
Family
ID=86413731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111407681.XA Pending CN116166177A (zh) | 2021-11-24 | 2021-11-24 | 一种元数据读取方法和相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166177A (zh) |
-
2021
- 2021-11-24 CN CN202111407681.XA patent/CN116166177A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190361609A1 (en) | Data storage method, apparatus and storage medium | |
US20160132541A1 (en) | Efficient implementations for mapreduce systems | |
US20150039712A1 (en) | Direct access persistent memory shared storage | |
WO2022007470A1 (zh) | 一种数据传输的方法、芯片和设备 | |
KR20190033284A (ko) | PCIe P2P 접속된 스토리지 장치들 사이의 데이터 전송 방법 및 시스템 | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
CN114860329B (zh) | 动态一致性偏置配置引擎及方法 | |
US20210326270A1 (en) | Address translation at a target network interface device | |
CN113014662A (zh) | 数据处理方法及基于NVMe-oF协议的存储系统 | |
CN115374046B (zh) | 一种多处理器数据交互方法、装置、设备及存储介质 | |
CN116185553A (zh) | 数据迁移方法、装置及电子设备 | |
CN103595720A (zh) | 卸载数据传输方法、装置和客户端 | |
CN110383254B (zh) | 优化与网络节点相关联的内存映射 | |
CN116414735A (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
WO2016131175A1 (zh) | 多核系统中数据访问者目录的访问方法及设备 | |
US20200341653A1 (en) | Method, network adapter and computer program product for processing data | |
CN113535611A (zh) | 数据处理方法及装置、异构系统 | |
CN116166177A (zh) | 一种元数据读取方法和相关设备 | |
CN113612863B (zh) | 一种gpu中地址转换优化方法、系统、设备及存储介质 | |
CN112395245B (zh) | 处理器的访问装置、方法及计算机设备 | |
CN116418848A (zh) | 网络节点的配置和访问请求的处理方法、装置 | |
CN116149539A (zh) | 一种数据读取方法和相关设备 | |
CN112395244B (zh) | 处理器的访问装置及方法 | |
WO2024082702A1 (zh) | 数据处理方法、装置、芯片以及计算机可读存储介质 | |
CN115729649A (zh) | 一种数据缓存方法、有限状态机、处理器和存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |