CN113051244B - 数据访问方法和装置、数据获取方法和装置 - Google Patents

数据访问方法和装置、数据获取方法和装置 Download PDF

Info

Publication number
CN113051244B
CN113051244B CN202110303163.7A CN202110303163A CN113051244B CN 113051244 B CN113051244 B CN 113051244B CN 202110303163 A CN202110303163 A CN 202110303163A CN 113051244 B CN113051244 B CN 113051244B
Authority
CN
China
Prior art keywords
data
end node
node
identifier
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110303163.7A
Other languages
English (en)
Other versions
CN113051244A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110303163.7A priority Critical patent/CN113051244B/zh
Publication of CN113051244A publication Critical patent/CN113051244A/zh
Application granted granted Critical
Publication of CN113051244B publication Critical patent/CN113051244B/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/18File system types
    • G06F16/182Distributed file systems
    • 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
    • G06F16/134Distributed 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/14Details of searching files based on file metadata
    • G06F16/148File search processing

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)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种数据访问方法和装置,涉及云计算技术领域,进一步涉及云存储技术领域。具体实现方案为:基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求;接收前端节点发送的数据、后端节点的地址以及数据访问标识;基于后端节点的地址和数据访问标识,向分布式文件***的后端节点发送后端数据读请求;接收后端节点返回的与数据访问标识对应的数据;组合前端节点返回的数据和后端节点返回的数据,并将组合后的数据发送给客户端。该实施方式提高了分布式文件***数据传输的灵活性。

Description

数据访问方法和装置、数据获取方法和装置
技术领域
本申请涉及计算机技术领域,涉及云计算技术领域,进一步涉及云存储技术领域,尤其涉及一种数据访问方法和装置、数据获取方法和装置、电子设备、计算机可读介质以及计算机程序产品。
背景技术
当前主流的分布式文件***采用低速介质、高速介质分别存储冷热数据时,一般将高速介质视为前端节点,低速介质视为后端节点。
在分布式文件***中,对于客户端的读请求,一般先在前端节点查找与读请求对应的数据,如果找到读请求的所有对应的数据则直接返回,否则从后端节点读取数据到前端节点,由前端节点返回客户端并更新数据,这种数据访问方式不仅带来了额外的数据传输开销,前端节点的更新机制也不够灵活。
发明内容
提供了一种数据访问方法和装置、数据获取方法和装置、电子设备、计算机可读介质以及计算机程序产品。
根据第一方面,提供了一种数据访问方法,该方法包括:基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求;接收前端节点发送的数据、后端节点的地址以及数据访问标识;基于后端节点的地址和数据访问标识,向分布式文件***的后端节点发送后端数据读请求;接收后端节点返回的与数据访问标识对应的数据;组合前端节点返回的数据和后端节点返回的数据,并将组合后的数据发送给客户端。
根据第二方面,提供了一种数据获取方法,该方法包括:接收并解析前端数据读请求,得到本地数据标识和数据访问标识;获取与数据访问标识对应的后端节点的地址;获取与本地数据标识对应的数据;发送数据、数据访问标识、后端节点的地址。
根据第三方面,提供了一种数据访问装置,该装置包括:前端发送单元,被配置成基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求;前端接收单元,被配置成接收前端节点发送的数据、后端节点的地址以及数据访问标识;后端发送单元,被配置成基于后端节点的地址和数据访问标识,向分布式文件***的后端节点发送后端数据读请求;后端接收单元,被配置成接收后端节点返回的与数据访问标识对应的数据;组合数据单元,被配置成组合前端节点返回的数据和后端节点返回的数据;数据发送单元,被配置成将组合后的数据发送给客户端。
根据第四方面,提供了一种数据获取装置,该装置包括:请求接收单元,被配置成接收并解析前端数据读请求,得到本地数据标识和数据访问标识;地址获取单元,被配置成获取与数据访问标识对应的后端节点的地址;数据获取单元,被配置成获取与数据访问标识对应的后端节点的地址;数据发送单元,被配置成发送数据、数据访问标识、后端节点的地址。
根据第五方面,提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面或第二方面任一实现方式描述的方法。
根据第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面或第二方面任一实现方式描述的方法。
根据第七方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如第一方面或第二方面任一实现方式描述的方法。
本申请的实施例提供的数据访问方法和装置,首先,基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求;其次,接收前端节点发送的数据、后端节点的地址以及数据访问标识;再次,基于后端节点的地址和数据访问标识,向分布式文件***的后端节点发送后端数据读请求;从次,接收后端节点返回的与数据访问标识对应的数据;最后,组合前端节点返回的数据和后端节点返回的数据,并将组合后的数据发送给客户端。由此,在客户端读取分布式文件***的数据时,仅需前端节点提供后端节点的地址和数据访问标识,无需将后端节点的数据传输到前端节点,减少了数据的额外传输开销以及存储空间的浪费,提高了分布式文件***数据传输的灵活性。
本申请的实施例提供的数据获取方法和装置,首先,接收并解析到前端数据读请求之后,得到本地数据标识和数据访问标识;其次,获取与数据访问标识对应的后端节点的地址;再次,获取与本地数据标识对应的数据;最后,发送数据、数据访问标识、后端节点的地址。由此,分布式文件***的前端节点基于前端数据读请求,得到并发送后端节点的地址,以使访问方直接基于后端节点的地址读取后端节点的数据,无需将后端节点的数据传输到前端节点,减少了数据的额外传输开销以及存储空间的浪费,提高了分布式文件***数据传输的灵活性。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请数据访问方法的一个实施例的流程图;
图2是本申请客户端与分布式文件***相连接的结构示意图;
图3是根据本申请数据获取方法的一个实施例的流程图;
图4是根据本申请数据访问装置的实施例的结构示意图;
图5是根据本申请数据获取装置的实施例的结构示意图;
图6是用来实现本申请实施例的数据访问方法或数据获取方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了理解本申请实施例中提及的技术方案,下面对本申请中涉及的若干技术术语进行简要说明。
分布式文件***在物理结构上是由计算机集群中的多个节点构成的,分布式文件***是指文件***管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连的文件***。分布式文件***为分布在网络上任意位置的资源提供一个逻辑上的树形文件***结构,从而使用户访问分布在网络上的共享文件更加简便。
热数据,按照数据被使用的频繁程度而定义,比如可是用户半年以内经常查询、使用的数据。
冷数据,按照数据被使用的频繁程度而定义,比如可是用户两年内不经常使用的数据,这种数据可以存储在性能较低、价格较便宜的文件***中。
图1示出了根据本申请数据访问方法的一个实施例的流程100,上述数据访问方法包括以下步骤:
步骤101,基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求。
本实施例中,数据访问方法运行于其上的执行主体可以是分布式文件***中的协议服务器,例如在管理分布式***中传输协议的NFS(Network File System)服务器,或SMB(Server Message Block)服务器,该执行主体可以与客户端进行信息交互,在客户端具有从分布式文件***读取数据的需求时,还可以接收客户端发送的数据读取请求,并将接收到的数据读取请求转化为访问各个节点的前端数据读请求,具体地参见图2所示,分布式文件***与客户端相连接的结构示意图。
本实施例中,数据读取请求是客户端向数据分布式文件***发送的数据读取请求,为了得到分布式文件***中与数据读取请求相对应的数据,执行主体需要将客户端的数据读取请求转化可以访问前端节点的前端数据读请求,其中,数据读取请求中数据或标识的排序顺序可以与前端数据读请求中一致。
分布式文件***为多台单机存储***的各司其职、协同合作,统一的对外提供存储服务的***,分布式文件***主要可以满足以下需求(但不仅限于):基本读写功能、性能、可扩展性、可靠性、可用性。在分布式文件***中,数据存放在一个数据服务器集群上,由集群中的数据服务器,各尽其责,通力合作,提供整个分布式文件***的服务。本实施例中,分布式文件***可以是云存储中采用的分布式文件***,云存储是实现云计算***架构中的一个重要组成部分,云存储通过集群应用、网格技术、分布式文件***等,将网络中大量类型各异的存储设备整合起来,并对外提供数据存储和业务访问功能的***。简单来说,云存储是对虚拟化存储资源的管理和使用。
本实施例中的,前端节点、后端节点均为数据服务器集群中的一个或多个数据服务器,前端节点和后端节点可以由用户根据存储需求以及数据服务器的存储介质而定义,例如,热数据存放在高速介质,该高速介质即为前端节点,冷数据存放在低速介质,该低速介质即为后端节点;前端节点和后端节点还可以由基于客户端请求处理先后排序得到,例如,NFS服务器或SMB服务器首次访问的数据服务器为前端节点,数据服务器集群中除NFS服务器或SMB服务器首次访问的数据服务器之外的数据服务器为后端节点。
前端节点和后端节点的是相对而言的,在其他客户端的访问流程中,本实施例的前端节点可以作为此访问流程的后端节点,而本实施例的后端节点可以作为此访问流程的前端节点。
本实施例中,前端数据读请求为执行主体向前端节点发送的读取前端节点的数据的请求,基于解析的前端数据读请求的内容不同,前端节点向执行主体反馈的内容可以不同。
步骤102,接收前端节点发送的数据、后端节点的地址以及数据访问标识。
本实施例中,基于前端数据读请求的内容不同,前端节点向执行主体反馈的内容不同。前端节点在接收到前端数据读请求中,解析前端数据读请求,识别前端数据读请求中的本地数据标识和区别本地数据标识的可以访问分布式文件***中其他数据服务器的数据访问标识。
例如,当解析到该前端数据读请求包括:本地数据标识时,前端节点向执行主体反馈与本地数据标识对应的数据。
当前端数据读请求包括:本地数据标识和访问数据标识时,前端节点向执行主体反馈与本地数据标识对应数据,并查询与访问数据标识相对应的后端节点的地址。
本实施例中,后端节点的地址是记载在前端节点中可以确定后端节点的地址,通过后端节点的地址可以访问后端节点。数据访问标识是在前端节点中记载的且与分布式文件***中数据服务器对应的标识,通过数据访问标识可以访问与数据访问标识对应的后端节点的数据。
步骤103,基于后端节点的地址和数据访问标识,向分布式文件***的后端节点发送后端数据读请求。
本实施例中,后端数据读请求为执行主体向后端节点发送的读取后端节点的数据的请求,基于解析的后端数据读请求的内容不同,后端节点向执行主体反馈的内容可以不同。
数据访问方法运行于其上的执行主体将数据访问标识封装在后端数据读请求中,并向后端节点的地址所指示的数据服务器发送后端数据读请求中。
步骤104,接收后端节点返回的与数据访问标识对应的数据。
本实施例中,后端节点接收到后端数据读请求之后,向执行主体反馈与数据访问标识对应的数据,数据访问方法的执行主体可以接收到后端节点返回的与数据访问标识对应的数据。
步骤105,组合前端节点返回的数据和后端节点返回的数据。
本实施例中,前端数据读请求可以包括本地数据标识和数据访问标识,其中,本地数据标识是前端节点中存储的数据的标识,数据访问标识是后端节点中存储的数据的标识。并且本地数据标识和数据访问标识在前端数据读请求中具有先后顺序,基于前端数据读请求中本地数据标识和数据访问标识的先后顺序,可以得到与本地数据标识对应的前端节点的数据,和与数据访问标识对应的后端节点的数据两种数据之间的先后顺序,并基于该先后顺序,前端节点返回的数据和后端节点返回的数据。
前端数据读请求由客户端的数据读取请求转化得到,客户端的数据读取请求也包括本地数据标识和数据访问标识。可选地,还可以基于客户端的数据读取请求中本地数据标识和数据访问标识的先后顺序,得到与本地数据标识对应的前端节点的数据,和与数据访问标识对应的后端节点的数据两种数据之间的先后顺序,并基于该先后顺序,组合前端节点返回的数据和后端节点返回的数据。
步骤106,将组合后的数据发送给客户端。
本实施例中,执行主体在得到客户端的数据读取请求后,依次向前端节点发送前端数据读请求、向后端节点发送后端数据读请求,并对前端节点和后端节点返回的数据按客户端的数据读取请求中要求的数据顺序进行组合,最后将组合后的数据发送给客户端,由于数据读取过程中无需将后端节点的数据传输到前端节点,减少了数据传输时间,从而使客户端可以快速得到分布式文件***中存储的数据。
可选地,执行主体在得到客户端的数据写请求之后,可以将数据写请求中的数据写入到前端节点,进一步地,当前端节点中的热数据变成冷数据之后,可以由执行主体中的调度模块将前端节点中的冷数据下刷到后端节点。可选地,执行主体还可以首先获取后端节点的地址,并将数据写请求中数据根据后端节点的地址访问后端,并将数据写请求中的数据写入到后端节点。
在分布式文件***中,传统的数据访问方法为:针对客户端的数据读取请求,首先协议服务器在前端节点中查找与数据读取请求对应的待读取数据,如果数据读取请求对应的所有待读取的数据都在前端节点,则读取前端节点的数据;如果数据读取请求对应的所有待读取的数据不是全部都在前端节点,控制前端节点向后端节点请求缺失的数据,并将该缺失的数据存储到前端节点,以使该缺失的数据和前端节点的数据组合后返回给协议服务器,并将从后端节点读取的数据异步更新到前端节点。
相对于该传统的数据访问方法,本申请提供的数据访问方法,在如下场景下更加高效和灵活:
一方面,在本申请的数据访问方法的流程中,存在于后端节点的数据由执行主体直接请求,取消了传统场景下数据从后端到前端,再到协议服务器的路径,不但减少网络带宽的额外开销,又能够有效地减少读请求的访问延时。
另一方面,本申请的数据访问方法的流程节省了前、后端节点直接交互的环节,也避免了将所有读取到的后端节点的数据都直接更新到前端节点的问题,可以在前端节点存储空间有限时,为前端节点更好地利用本地存储空间提供可靠的基础。
本申请的实施例提供的数据访问方法,首先,基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求;其次,接收前端节点发送的数据、后端节点的地址以及数据访问标识;再次,基于后端节点的地址和数据访问标识,向分布式文件***的后端节点发送后端数据读请求;从次,接收后端节点返回的与数据访问标识对应的数据;最后,组合前端节点返回的数据和后端节点返回的数据,并将组合后的数据发送给客户端。由此,在客户端读取分布式文件***的数据时,仅需前端节点提供后端节点的地址和数据访问标识,无需将后端节点的数据传输到前端节点,减少了数据的额外传输开销以及存储空间的浪费,提高了分布式文件***数据传输的灵活性。
本实施例中,当前端节点与后端节点分级存储数据(例如后端节点是前端节点的下一级存储设备)时,若前端节点和后端节点之间需要进行数据迁移(例如,需要将后端节点中的数据迁移到前端节点),可以对前端节点的数据发起一次传统的数据访问方法的流程,通过该传统的数据访问方法,将后端节点的数据迁移到前端节点。
采用传统的数据访问方法进行数据迁移的好处是:直接使用传统读取接口,无需提供额外的功能,但是采用传统的数据访问方法迁移后端节点的数据到前端节点的同时,也会引入额外的读IO。由于分布式文件***的数据的存储位置本身对于客户端是透明的,因此通过传统的数据访问方法迁移数据只有读取整个数据块的数据才会确保所有的后端节点的数据都被同步到前端节点,例如,假设某个数据块有64M数据,其中有63M数据在前端节点,而只有1M数据在后端节点,那么通过传统的数据访问方法迁移后端节点的数据会在迁移之外引入对前端节点中63M数据的读取,从而引入额外的读IO操作,对分布式文件***的性能造成影响。
在本实施例的一些可选实现方式中,当前端节点与后端节点分级存储数据时,本实施提供的数据访问方法还可以包括:查询前端节点的数据状态和后端节点的数据状态;响应于同一位置前端节点的数据为空且后端节点具有数据,将后端节点的位置中的数据迁移至前端节点。
本实施例中,前端节点可以记录有分布式文件***中相关节点(与前端节点进行通信的节点,比如后端节点)的数据块的数据目录,数据目录比如包括与各个相关节点对应的数据块、数据块的大小等。进一步,数据目录还可以记录有上述相关节点的数据块的各个数据段中数据状态(状态包括:空、有数值),比如,某节点的数据块的第2位数据段的数据为空。
执行主体通过与前端节点通信可以获取到前端节点的数据状态和后端节点的数据状态,前端节点的数据状态是指前端节点中本地存储的数据的状态;而后端节点的数据状态是指后端节点中存储的数据的状态。
执行主体将前端节点存储的数据的状态与后端节点存储的数据的状态进行对比,可以确定前端节点与后端节点中存储的数据是否一致,当前端节点中与后端节点对应数据块中某段数据为空,而后端节点对应数据块中某段数据有值,需要将后端节点中该段数据迁移至前端节点中。
本可选实现方式中,上述同一位置是指前端节点中与后端节点对应的数据位置。
对于以数据块为存储单位的分布式文件***,同一位置可以是前端节点中的数据块的数据段,并且前端节点的数据块的数据段与后端节点的数据库的数据段相对应。进一步地,前端节点中每个数据块假设分成64段,同一位置可以是同一个索引代表的数据段。而同一个索引是指0到63之间的任何一个值。例如,同一个数据块中前端节点为2数据段和后端节点为2的数据段都代表的同一个范围的数据。
为了避免对分布式文件***正常IO性能产生影响,可选地,可以将后端节点的该位置中的数据迁移至前端节点的步骤的优先权设置为小于接收客户端的数据读取请求的步骤的优先权,通过对前、后节点的数据迁移任务定义优先级控制,并默认对后台的数据迁移步骤设定较低的优先级,以保证外部IO请求的访问延时。
本可选实现方式中,通过查询前端节点和后端节点数据状态,在同一位置前端节点的数据为空而后端节点具有数据时,将后端节点的该位置中的数据迁移至前端节点,可以在不影响分布式文件***的IO性能时,快速、便捷地在前端节点和后端节点分级存储时,实现两者之间的数据迁移,提高了多节点之间数据迁移的灵活性。
当前端节点和后端节点分级存储时,前端节点存储热数据,后端节点存储冷数据,在前端节点的热数据变冷之后,该冷数据需要下刷到后端节点,并且删除前端节点中该冷数据以释放前端节点的空间给更多的热数据使用。而在后端节点的数据拉回前端节点(即同一位置前端节点的数据为空且后端节点具有数据)时,可选地,可以将前端节点作为数据缓存,直接将后端节点的同一位置中的数据复制至前端节点,并且维持后端节点中同一位置中的数据不变。该可选方式适用于后端节点存储空间远大于前端节点、后端节点的成本较低或前、后端节点数据迁移频率较高的场景。
当前端节点和后端节点分级存储,且后端节点的数据需要拉回前端节点时,在本实施例的一些可选实现方式,将后端节点的同一位置中的数据迁移至前端节点后,删除后端节点的该位置中的数据。
在数据从后端节点迁移到前端节点后,此时该数据将同时存在于前后端节点,基于分布式文件***的数据存储以“前端节点为准”的原则,后端节点中的数据实际上是多余的,并且在数据迁移之后,增加对后端节点的数据删除步骤也不会对分布式文件***的IO性能有影响,这种模式更适用于前、后端节点存储空间相差不悬殊、前、后端节点的数据迁移频率比较低、对分布式文件***的成本要求比较严苛的场景。
本可选实现方式中,删除后端节点的该位置中的数据,可以减少后端节点的存储空间的浪费。
图3示出了根据本申请数据获取方法的一个实施例的流程300,上述数据访问方法包括以下步骤:
步骤301,接收并解析前端数据读请求,得到本地数据标识和数据访问标识。
本实施例中,数据获取方法应用于分布式文件***,而数据获取方法运行于其上的执行主体可以是分布式文件***的数据服务器集群中的任意一个数据服务器,该任意一个数据服务器还是前端节点。前端节点可以由用户根据存储需求以及数据服务器的存储介质而定义得到,例如,热数据存放在高速介质,该高速介质即为前端节点;前端节点还可以由基于客户端请求处理先后排序得到,例如,文件分布***中由NFS服务器或SMB服务器首次访问的数据服务器为前端节点。
本实施例中,前端数据读请求为分布式文件***中协议服务器向执行主体发送的读取执行主体中的数据的请求,基于解析的前端数据读请求的内容不同,执行主体得到的内容不同。
例如,当解析到该前端数据读请求包括:本地数据标识时,执行主体获取本地数据标识对应的数据,本地数据标识是指存储在执行主体中的数据的标识。
本实施例中,数据访问标识是在执行主体中记载的,且与分布式文件***中数据服务器对应的标识,通过数据访问标识可以访问与数据访问标识对应的后端节点的数据。
步骤302,获取与数据访问标识对应的后端节点的地址。
本实施例中,由于前端数据读请求包括:访问数据标识,执行主体需要查询与访问数据标识相对应的后端节点的地址。
在分布式文件***中,后端节点是与执行主体相对的节点,当执行主体为高速介质,而分布式文件***中布置的低速介质为后端节点;而当NFS服务器或SMB服务器首次访问的数据服务器为前端节点,在分布式文件***中除NFS服务器或SMB服务器首次访问的数据服务器之外的数据服务器为后端节点。
需要说明的是,在分布式文件***的数据服务器集群中的各个数据服务器均存储有其他数据服务器的目录,该目录记载有其他数据服务器的地址、数据状态等信息。执行主体通过查询其他数据服务器的目录可以得到与其连接的后端节点的地址并将后端节点的地址发送给NFS服务器或SMB服务器。
在分布式文件***中,NFS服务器或SMB服务器在得到后端节点的地址之后,通过后端节点的地址可以访问后端节点。
步骤303,获取与本地数据标识对应的数据。
本实施例中,前端数据读请求包括:本地数据标识,本地数据标识是指示执行主体中数据的标识,通过本地数据标识,执行主体可以得到与本地数据标识对应的数据。
步骤304,发送数据、数据访问标识、后端节点的地址。
本实施例中,执行主体在得到本地数据标识对应数据、数据访问标识、后端节点的地址之后,可以将本地数据标识对应的数据、数据访问标识、后端节点的地址发送给NFS服务器或SMB服务器。
进一步地,NFS服务器或SMB服务器在得到后端节点的地址之后,通过后端节点的地址可以访问后端节点,通过数据访问标识读取后端节点中的数据。
本申请的实施例提供的数据获取方法,首先,接收并解析到前端数据读请求之后,得到本地数据标识和数据访问标识;其次,获取与数据访问标识对应的后端节点的地址;再次,获取与本地数据标识对应的数据;最后,发送数据、数据访问标识、后端节点的地址。由此,分布式文件***的前端节点基于前端数据读请求,得到并发送后端节点的地址,以使访问方直接基于后端节点的地址读取后端节点的数据,无需将后端节点的数据传输到前端节点,减少了数据的额外传输开销以及存储空间的浪费,提高了分布式文件***数据传输的灵活性。
在本实施例的一些可选实现方式中,上述数据获取方法还包括:接收数据状态查询请求;基于数据状态查询请求,发送本地数据状态和后端节点的数据状态;在同一位置本地数据为空且后端节点具有数据时,接收并存储后端节点位置中的数据。
本可选实现方式中,数据状态查询请求可以是由分布式文件***的协议服务器中的调度模块发出的请求,数据状态查询请求包括:本地数据状态查询请求和后端节点数据状态查询请求;基于数据状态查询请求,可以获取到本地存储的分布式文件***中各个节点的数据状态,比如,某节点的数据块的第2位数据为空。
本实施例中,执行主体可以记录有分布式文件***中相关节点(与执行主体进行通信的节点,比如后端节点)的数据块的数据目录,数据目录比如包括与各个相关节点对应的数据块、数据块的大小等。进一步,数据目录还可以记录有上述相关节点的数据块的各个数据段中数据状态(状态包括:空、有数值),比如,某节点的数据块的第2位数据段的数据为空。执行主体通过该数据目录可以确定后端节点的数据状态。
执行主体将本地数据存储状态与后端节点的存储状态进行对比,可以确定执行主体与后端节点中存储的数据是否一致,当执行主体中与后端节点对应数据块中某段数据为空,而后端节点对应数据块中某段数据有值,需要将后端节点中该段数据迁移至执行主体中。
本可选实现方式中,上述同一位置是指从执行主体中与后端节点对应的数据位置。
对于以数据块为存储单位的分布式文件***,同一位置可以是执行主体中的数据块的数据段,并且执行主体的数据块的数据段与后端节点的数据库的数据段相对应。进一步地,执行主体中每个数据块假设分成64段,同一位置可以是同一个索引代表的数据段。而同一个索引是指0到63之间的任何一个值。例如,同一个数据块中执行主体为2的数据段和后端节点为2的数据段都代表的同一个范围的数据。
本可选实现方式中,通过查询前端节点和后端节点数据状态,在同一位置前端节点的数据为空而后端节点具有数据时,将后端节点的该位置中的数据迁移至前端节点,可以在不影响分布式文件***的IO性能时,快速、便捷地在前端节点和后端节点分级存储时,实现两者之间的数据迁移,提高了多节点之间数据迁移的灵活性。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了数据访问装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可应用于各种电子设备中。
如图4所示,本实施例提供的数据访问装置400包括:前端发送单元401,前端接收单元402,后端发送单元403,后端接收单元404,组合数据单元405,数据发送单元406。其中,上述前端发送单元401,被配置成基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求。上述前端接收单元402,被配置成接收前端节点发送的数据、后端节点的地址以及数据访问标识。上述后端发送单元403,被配置成基于后端节点的地址和数据访问标识,向分布式文件***的后端节点发送后端数据读请求。上述后端接收单元404,被配置成接收后端节点返回的与数据访问标识对应的数据。上述组合数据单元405,被配置成组合前端节点返回的数据和后端节点返回的数据。上述数据发送单元406,被配置成将组合后的数据发送给客户端。
在本实施例中,数据访问装置400中:前端发送单元401,前端接收单元402,后端发送单元403,后端接收单元404,组合数据单元405,数据发送单元406的具体处理及其所带来的技术效果可分别参考图1对应实施例中的步骤101、步骤102、步骤103、步骤104、步骤105、步骤106的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述装置400还包括:查询单元(图中未示出),迁移单元(图中未示出)。其中,上述查询单元,可以被配置成查询前端节点的数据状态和后端节点的数据状态。上述迁移单元,可以被配置成响应于同一位置前端节点的数据为空且后端节点具有数据,将后端节点的位置中的数据迁移至前端节点。
在本实施例的一些可选的实现方式中,上述装置400还包括:删除单元(图中未示出)。其中,上述删除单元,可以被被配置成删除后端节点的位置中的数据。
本申请的实施例提供的数据访问装置,首先,前端发送单元401基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求;其次,前端接收单元402接收前端节点发送的数据、后端节点的地址以及数据访问标识;再次,后端发送单元403基于后端节点的地址和数据访问标识,向分布式文件***的后端节点发送后端数据读请求;从次,后端接收单元404接收后端节点返回的与数据访问标识对应的数据;最后,组合数据单元405组合前端节点返回的数据和后端节点返回的数据,数据发送单元406将组合后的数据发送给客户端。由此,在客户端读取分布式文件***的数据时,仅需前端节点提供后端节点的地址和数据访问标识,无需将后端节点的数据传输到前端节点,减少了数据的额外传输开销以及存储空间的浪费,提高了分布式文件***数据传输的灵活性。
如图5所示,本实施例提供的数据获取装置500包括:请求接收单元501,地址获取单元502,数据获取单元503,数据发送单元504。其中,上述请求接收单元501,被配置成接收并解析前端数据读请求,得到本地数据标识和数据访问标识。上述地址获取单元502,被配置成获取与数据访问标识对应的后端节点的地址。上述数据获取单元503,被配置成获取与数据访问标识对应的后端节点的地址。上述数据发送单元504,被配置成发送数据、数据访问标识、后端节点的地址。
在本实施例中,数据获取装置500中:请求接收单元501,地址获取单元502,数据获取单元503,数据发送单元504的具体处理及其所带来的技术效果可分别参考图3对应实施例中的步骤301、步骤302、步骤303、步骤304的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,上述装置500还包括:查询单元(图中未示出),状态发送单元(图中未示出),数据接收单元(图中未示出)。其中,上述查询单元,可以被配置成接收数据状态查询请求。上述状态发送单元,可以被配置成基于数据状态查询请求,发送本地数据状态和后端节点的数据状态。上述数据接收单元,可以被配置成在同一位置本地数据为空且后端节点具有数据时,接收并存储后端节点位置中的数据。
本申请的实施例提供的数据获取装置,首先,请求接收单元501接收并解析到前端数据读请求之后,得到本地数据标识和数据访问标识;其次,地址获取单元502获取与数据访问标识对应的后端节点的地址;再次,数据获取单元503获取与本地数据标识对应的数据;最后,数据发送单元504发送数据、数据访问标识、后端节点的地址。由此,分布式文件***的前端节点基于前端数据读请求,得到并发送后端节点的地址,以使访问方直接基于后端节点的地址读取后端节点的数据,无需将后端节点的数据传输到前端节点,减少了数据的额外传输开销以及存储空间的浪费,提高了分布式文件***数据传输的灵活性。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本申请的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如数据访问方法或数据获取方法。例如,在一些实施例中,数据访问方法或数据获取方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的数据访问方法或数据获取方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据访问方法或数据获取方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (12)

1.一种数据访问方法,所述方法包括:
基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求;其中,所述前端数据读请求包括:本地数据标识和访问数据标识,所述前端节点向执行主体反馈与所述本地数据标识对应数据,并查询与所述访问数据标识相对应的后端节点的地址;
接收所述前端节点返回的数据、后端节点的地址以及数据访问标识;
基于所述后端节点的地址和所述数据访问标识,向所述分布式文件***的后端节点发送后端数据读请求;
接收所述后端节点返回的与所述数据访问标识对应的数据;
组合所述前端节点返回的数据和所述后端节点返回的数据,并将组合后的数据发送给所述客户端。
2.根据权利要求1所述的方法,所述方法还包括:
查询所述前端节点的数据状态和所述后端节点的数据状态;
响应于同一位置所述前端节点的数据为空且所述后端节点具有数据,将所述后端节点的所述位置中的数据迁移至所述前端节点。
3.根据权利要求2所述的方法,所述方法还包括:
在所述后端节点的所述位置中的数据迁移至所述前端节点后,删除所述后端节点的所述位置中的数据。
4.一种数据获取方法,所述方法包括:
接收并解析前端数据读请求,得到本地数据标识和数据访问标识;
获取与所述数据访问标识对应的后端节点的地址;
获取与所述本地数据标识对应的数据;
发送所述数据、所述数据访问标识、所述后端节点的地址。
5.根据权利要求4所述的方法,所述方法还包括:
接收数据状态查询请求;
基于所述数据状态查询请求,发送本地数据状态和后端节点的数据状态;
在同一位置本地数据为空且所述后端节点具有数据时,接收并存储所述后端节点所述位置中的数据。
6.一种数据访问装置,所述装置包括:
前端发送单元,被配置成基于客户端的数据读取请求,向分布式文件***的前端节点发送前端数据读请求;其中,所述前端数据读请求包括:本地数据标识和访问数据标识,所述前端节点向执行主体反馈与所述本地数据标识对应数据,并查询与所述访问数据标识相对应的后端节点的地址;
前端接收单元,被配置成接收所述前端节点返回的数据、后端节点的地址以及数据访问标识;
后端发送单元,被配置成基于所述后端节点的地址和所述数据访问标识,向所述分布式文件***的后端节点发送后端数据读请求;
后端接收单元,被配置成接收所述后端节点返回的与所述数据访问标识对应的数据;
组合数据单元,被配置成组合所述前端节点返回的数据和所述后端节点返回的数据;
数据发送单元,被配置成将组合后的数据发送给所述客户端。
7.根据权利要求6所述的装置,所述装置还包括:
查询单元,被配置成查询所述前端节点的数据状态和所述后端节点的数据状态;
迁移单元,被配置成响应于同一位置所述前端节点的数据为空且所述后端节点具有数据,将所述后端节点的所述位置中的数据迁移至所述前端节点。
8.根据权利要求7所述的装置,所述装置还包括:
删除单元,被配置成在所述后端节点的所述位置中的数据迁移至所述前端节点后,删除所述后端节点的所述位置中的数据。
9.一种数据获取装置,所述装置包括:
请求接收单元,被配置成接收并解析前端数据读请求,得到本地数据标识和数据访问标识;
地址获取单元,被配置成获取与所述数据访问标识对应的后端节点的地址;
数据获取单元,被配置成获取与所述本地数据标识对应的数据;
数据发送单元,被配置成发送所述数据、所述数据访问标识、所述后端节点的地址。
10.根据权利要求9所述的装置,所述装置还包括:
查询单元,被配置成接收数据状态查询请求;
状态发送单元,被配置成基于所述数据状态查询请求,发送本地数据状态和后端节点的数据状态;
数据接收单元,被配置成在同一位置本地数据为空且所述后端节点具有数据时,接收并存储所述后端节点所述位置中的数据。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的方法。
CN202110303163.7A 2021-03-22 2021-03-22 数据访问方法和装置、数据获取方法和装置 Active CN113051244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110303163.7A CN113051244B (zh) 2021-03-22 2021-03-22 数据访问方法和装置、数据获取方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110303163.7A CN113051244B (zh) 2021-03-22 2021-03-22 数据访问方法和装置、数据获取方法和装置

Publications (2)

Publication Number Publication Date
CN113051244A CN113051244A (zh) 2021-06-29
CN113051244B true CN113051244B (zh) 2023-07-21

Family

ID=76514523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110303163.7A Active CN113051244B (zh) 2021-03-22 2021-03-22 数据访问方法和装置、数据获取方法和装置

Country Status (1)

Country Link
CN (1) CN113051244B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864215A (zh) * 2017-11-21 2018-03-30 中国科学院上海微***与信息技术研究所 对等网络文件***、访问控制/管理方法/***、及终端
CN111680015A (zh) * 2020-05-29 2020-09-18 北京百度网讯科技有限公司 文件资源处理方法、装置、设备和介质
CN111966471A (zh) * 2020-10-21 2020-11-20 北京首都在线科技股份有限公司 访问方法、装置、电子设备及计算机存储介质
CN112084204A (zh) * 2020-09-10 2020-12-15 北京百度网讯科技有限公司 浏览数据处理方法、装置、终端及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240136B2 (en) * 2004-12-16 2007-07-03 International Business Machines Corporation System and method for request priority transfer across nodes in a multi-tier data processing system network
US8593866B2 (en) * 2011-11-11 2013-11-26 Sandisk Technologies Inc. Systems and methods for operating multi-bank nonvolatile memory
US11175831B2 (en) * 2016-10-14 2021-11-16 Netapp, Inc. Read and write load sharing in a storage array via partitioned ownership of data blocks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864215A (zh) * 2017-11-21 2018-03-30 中国科学院上海微***与信息技术研究所 对等网络文件***、访问控制/管理方法/***、及终端
CN111680015A (zh) * 2020-05-29 2020-09-18 北京百度网讯科技有限公司 文件资源处理方法、装置、设备和介质
CN112084204A (zh) * 2020-09-10 2020-12-15 北京百度网讯科技有限公司 浏览数据处理方法、装置、终端及存储介质
CN111966471A (zh) * 2020-10-21 2020-11-20 北京首都在线科技股份有限公司 访问方法、装置、电子设备及计算机存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Teng Ma 等.AsymNVM: An Efficient Framework for Implementing Persistent Data Structures on Asymmetric NVM Architecture.《ASPLOS '20: Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems》.2020,757–773. *
嵌入式集群***的自动管理监测***设计;陈亮;郭成城;;计算机工程与应用(13);全文 *

Also Published As

Publication number Publication date
CN113051244A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
US11882054B2 (en) Terminating data server nodes
CN109254733B (zh) 用于存储数据的方法、装置和***
CN112445626B (zh) 一种基于消息中间件的数据处理方法和装置
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN107818111B (zh) 一种缓存文件数据的方法、服务器及终端
CN113364877B (zh) 数据处理方法、装置、电子设备和介质
US10262024B1 (en) Providing consistent access to data objects transcending storage limitations in a non-relational data store
CN113961510B (zh) 一种文件处理方法、装置、设备及存储介质
WO2024041022A1 (zh) 数据库表变更方法、装置、设备和存储介质
CN113204600B (zh) 基于表路由分片引擎的InfluxDB分布式集群方法
US11093493B1 (en) Dynamically switching between query and scan for optimizing table reads
CN113051244B (zh) 数据访问方法和装置、数据获取方法和装置
CN114490540B (zh) 数据存储方法、介质、装置和计算设备
CN115374078A (zh) 一种数据存储与读取***及其工作方法
US10114864B1 (en) List element query support and processing
CN113742376A (zh) 一种同步数据的方法、第一服务器以及同步数据的***
CN112578996B (zh) 一种存储***的元数据的发送方法及存储***
JP7458610B2 (ja) データベースシステム、及びクエリ実行方法
CN114116613B (zh) 基于分布式文件***的元数据查询方法、设备和存储介质
CN112783925B (zh) 分页检索方法和装置
CN113641711B (zh) 一种针对saas租户的数据缓存处理方法、装置及介质
CN117093161B (zh) 一种基于光收发芯片的内存管理***、方法、介质及设备
WO2024001280A1 (zh) 数据流动感知方法及相关装置
EP3972222B1 (en) Method, apparatus, electronic device, readable storage medium and program for adjusting instance number
US20240126778A1 (en) Large object data replication

Legal Events

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