CN113204530B - 分布式文件系统的数据写入方法、装置、设备以及介质 - Google Patents
分布式文件系统的数据写入方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN113204530B CN113204530B CN202110437826.4A CN202110437826A CN113204530B CN 113204530 B CN113204530 B CN 113204530B CN 202110437826 A CN202110437826 A CN 202110437826A CN 113204530 B CN113204530 B CN 113204530B
- Authority
- CN
- China
- Prior art keywords
- data storage
- storage node
- data
- file system
- distributed file
- 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
Links
Images
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/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式文件系统的数据写入方法,包括:检测是否接收到由分布式文件系统的客户端发送的针对目标数据的写入请求;当检测到所述写入请求时,从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点;将所述目标数据写入至所述主数据存储节点;在完成所述目标数据在所述主数据存储节点的写入之后,将用于表示所述目标数据已成功写入至所述分布式文件系统的确认信息返回至所述客户端;基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点。可见,本发明能够缩短目标数据的写入耗时、提高目标数据的写入效率。本发明还涉及区块链技术领域。
Description
技术领域
本发明涉及集群存储技术领域,尤其涉及一种分布式文件系统的数据写入方法、装置、计算机设备以及存储介质。
背景技术
分布式文件系统(HDFS)是一种适用于廉价的机器上、能够用于存储大文件的系统。为保证数据的安全,分布式文件系统通常会以数据冗余的方式存储数据,即存储在分布式文件系统的文件通常会存在多个副本,且每个副本被存储在分布式文件系统的不同节点上。这样,在向分布式文件系统写入数据时,需要等待所写入的数据的多个副本成功写入至分布式文件系统之后,才能够确认所写入的数据写入成功,例如,分布式文件系统的数据的副本数量为三个,在将某一份数据写入分布式文件系统时,需要等待三份副本均成功写入,才能够确定该份数据已成功写入至分布式文件系统,且在写入三份副本时,通常使用级联的写入形式(即在第一份副本写入成功之后才开始进行第二份副本的写入,在第二份副本写入成功之后才开始进行第三份副本的写入),导致数据写入分布式文件系统的耗时较长。可见,目前的分布式文件系统的数据写入方法存在数据写入耗时长、数据写入效率低的问题。
发明内容
本发明所要解决的技术问题在于,目前的分布式文件系统的数据写入方法的数据写入耗时长、数据写入效率低。
为了解决上述技术问题,本发明第一方面公开了一种分布式文件系统的数据写入方法,所述方法包括:
检测是否接收到由分布式文件系统的客户端发送的针对目标数据的写入请求;
当检测到所述写入请求时,从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点;
将所述目标数据写入至所述主数据存储节点;
在完成所述目标数据在所述主数据存储节点的写入之后,将用于表示所述目标数据已成功写入至所述分布式文件系统的确认信息返回至所述客户端;
基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点。
本发明第二方面公开了一种分布式文件系统的数据写入装置,所述装置包括:
检测模块,用于检测是否接收到由分布式文件系统的客户端发送的针对目标数据的写入请求;
确定模块,用于当所述检测模块检测到所述写入请求时,从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点;
写入模块,用于将所述目标数据写入至所述主数据存储节点;
返回模块,用于在所述写入模块完成所述目标数据在所述主数据存储节点的写入之后,将用于表示所述目标数据已成功写入至所述分布式文件系统的确认信息返回至所述客户端;
所述写入模块,还用于基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点。
本发明第三方面公开了一种计算机设备,所述计算机设备包括:
存储有可执行程序代码的存储器;
与所述存储器连接的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的分布式文件系统的数据写入方法中的部分或全部步骤。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的分布式文件系统的数据写入方法中的部分或全部步骤。
本发明实施例中,在将目标数据写入分布式文件系统时,通过在目标数据成功写入主数据存储节点之后即返回写入成功的确认信息,然后使用预设的后台线程将目标数据写入至每个从数据存储节点,从而能够在保持分布式文件系统数据冗余的特性的同时,使分布式文件系统无需等待目标数据的多份副本都写入完成后才确认目标数据写入完成以开始进行下一份数据的写入,从而能够缩短目标数据的写入耗时、提高目标数据的写入效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种分布式文件系统的数据写入方法的流程示意图;
图2是本发明实施例公开的一种分布式文件系统的数据写入装置的结构示意图;
图3是本发明实施例公开的一种计算机设备的结构示意图;
图4是本发明实施例公开的一种计算机存储介质的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种分布式文件系统的数据写入方法、装置、计算机设备以及存储介质,在将目标数据写入分布式文件系统时,通过在目标数据成功写入主数据存储节点之后即返回写入成功的确认信息,然后使用预设的后台线程将目标数据写入至每个从数据存储节点,从而能够在保持分布式文件系统数据冗余的特性的同时,使分布式文件系统无需等待目标数据的多份副本都写入完成后才确认目标数据写入完成以开始进行下一份数据的写入,从而能够缩短目标数据的写入耗时、提高目标数据的写入效率。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种分布式文件系统的数据写入方法的流程示意图。如图1所示,该分布式文件系统的数据写入方法可以包括以下操作:
101、检测是否接收到由分布式文件系统的客户端发送的针对目标数据的写入请求;
在上述步骤101中,分布式文件系统通常由一个client(客户端)、一个namenode和若干个datanode组成。其中,client(客户端)可以用于发起目标数据的写入请求。可选地,client(客户端)还可以将需要写入的文件拆成多个数据块,然后将多个数据块逐一写入至分布式文件系统中。例如,待写入的文件的大小为300M,若datenode中的数据块的大小默认为128M,client(客户端)则可以将文件拆分成三个数据块,第一个数据块和第二个数据块的大小为128M,第三个数据块的大小为44M。
102、当检测到所述写入请求时,从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点;
在上述步骤102中,namenode用于进行所有的datanode的管理,在接收到由client(客户端)发送过来的写入请求之后,即可以将要用于存储所写入的目标数据的datanode的地址、内部位置等信息反馈至client(客户端)。可选地,client(客户端)发起的写入请求中还可以携带有需要写入的目标数据的副本的数量。例如,写入请求中记录有待写入的目标数据的副本数量为3个,则namenode可以从多个datanode(即数据存储节点)中选取出3个datanode,其中一个datanode可以作为一个主数据存储节点和另外两个datanode即作为两个从数据存储节点。
103、将所述目标数据写入至所述主数据存储节点;
在上述步骤103中,client(客户端)在接收到namenode反馈的用于存储所写入的目标数据的datanode的地址、内部位置等信息后,即可以根据接收到的datanode的地址、内部位置等信息开始将目标数据写入相应的datanode(即主数据存储节点)中。
104、在完成所述目标数据在所述主数据存储节点的写入之后,将用于表示所述目标数据已成功写入至所述分布式文件系统的确认信息返回至所述客户端;
在上述步骤104中,在client(客户端)成功将目标数据写入相应的datanode(主数据存储节点)之后,相应的datanode(主数据存储节点)或者namenode即可以将确认信息返回至client(客户端),这样,client(客户端)只需要在完成写入目标数据的一份副本就可以开始进行下一份数据的写入,无需再等待目标数据的多份副本都写入完成才开始进行下一份数据的写入,从而能够缩短目标数据的写入耗时、提高目标数据的写入效率。
105、基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点。
在上述步骤105中,由于要保持分布式文件系统数据冗余的特性,所以在目标数据成功写入至主数据存储节点之后,使用预先设置好的后台线程(数据同步后台线程)将目标数据复制至其他的datanode(即从数据存储节点),这样即能够实现在将目标数据的多份副本写入分布式文件系统的同时缩短目标数据的写入耗时。其中,数据同步后台线程可以是client(客户端)预先设置好的专门用于将目标数据写入至从数据存储节点的专用线程。
可见,实施图1所描述的分布式文件系统的数据写入方法,在将目标数据写入分布式文件系统时,通过在目标数据成功写入主数据存储节点之后即返回写入成功的确认信息,然后使用预设的后台线程将目标数据写入至每个从数据存储节点,从而能够在保持分布式文件系统数据冗余的特性的同时,使分布式文件系统无需等待目标数据的多份副本都写入完成后才确认目标数据写入完成以开始进行下一份数据的写入,从而能够缩短目标数据的写入耗时、提高目标数据的写入效率。
在一个可选的实施例中,所述从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点,包括:
从所述分布式文件系统的多个数据存储节点中确定出多个可用数据存储节点,所述可用数据存储节点是指能够用于进行所述目标数据的写入的数据存储节点;
获取每个所述可用数据存储节点的通信延迟值;
根据每个所述可用数据存储节点的通信延迟值,从多个所述可用数据存储节点中确定出一个主数据存储节点和至少一个从数据存储节点。
在该可选的实施例中,一个分布式文件系统通常会有多个datanode(即数据存储节点)。由于datanode的数据存储量有限、datanode会定期维护等原因,并不是所有的datanode都可以用于存储目标数据,所以需要先从多个datanode选取出可用的datanode(即可用数据存储节点),具体的选取过程稍后描述。不同的datanode可能分布在不同的地方,这容易导致不同的datanode的通信状态不同,继而导致目标数据在不同的datanode的写入速度有可能存在差异,所以选取通信状态较好的datanode作为主数据存储节点和从数据存储节点,有利于进一步缩短目标数据的写入耗时、提高目标数据的写入效率。具体地,分布式文件系统通常会设置有用于监控每个datanode的通信延迟值的机制,通过该机制即能够获取到每个可用的datanode的通信延迟值,然后可以选取出通信延迟值靠前的可用的datanode作为主数据存储节点和从数据存储节点。
可见,实施该可选的实施例,在选取主数据存储节点和从数据存储节点时,先选取出可用数据存储节点,然后根据可用数据存储节点的通信延迟值从可用数据存储节点中选取出主数据存储节点和从数据存储节点,有利于进一步缩短目标数据的写入耗时、提高目标数据的写入效率。
在一个可选的实施例中,所述从所述分布式文件系统的多个数据存储节点中确定出多个可用数据存储节点,包括:
确定所述分布式文件系统中每个所述数据存储节点的使用状态,每个所述数据存储节点的使用状态用于表示该数据存储节点可用或者不可用;
获取所述分布式文件系统中每个所述数据存储节点的可用存储空间大小值;
将所对应的可用存储空间大小值大于等于所述目标数据的数据大小值,且所对应的使用状态用于表示该数据存储节点可用的数据存储节点作为可用数据存储节点。
在该可选的实施例中,在分布式文件系统中,namenode用于进行所有的datanode的管理,可以将namenode和datanode设置为周期性地建立通信,例如,每30s建立起一次通信,然后即可以根据namenode和datanode之间建立起的通信的状态确定datanode的使用状态,例如,某一datanode已有较长的时间无法与namenode建立起通信,即可以确定该datanode的使用状态为不可用。另外,由于每个datanode的数据存储空间都是有限的,要将目标数据成功写入至datanode,datanode必须要具有足够大的存储空间,所以需要将具有足够大的数据存储空间的datanode作为可用数据存储节点。假设,使用状态为可用的datanode有两个,分别为datanodeA和datanodeB,其中,datanodeA的可用存储空间大小值为500M,datanodeB的可用存储空间大小值为100M,若目标数据的数据大小值为120M,则只将datanodeA作为可用数据存储节点,datanodeB不能作为可用数据存储节点。
可见,实施该可选的实施例,在确定可用数据存储节点时,将所对应的可用存储空间大小值大于等于目标数据的数据大小值,且所对应的使用状态用于表示该数据存储节点可用的数据存储节点作为可用数据存储节点,有利于保证目标数据成功写入分布式文件系统,提高分布式文件系统数据写入的可靠性。
在一个可选的实施例中,所述确定所述分布式文件系统中每个所述数据存储节点的使用状态,包括:
获取所述分布式文件系统中每个所述数据存储节点最近一次进行数据通信的通信时刻;
判断每个所述数据存储节点对应的通信时刻与所述分布式文件系统的系统时间的差值是否大于等于预设的时长阈值;
当判断出该数据存储节点对应的通信时刻与所述分布式文件系统的系统时间的差值大于等于所述时长阈值时,确定该数据存储节点的使用状态为用于表示该数据存储节点不可用;
当判断出该数据存储节点对应的通信时刻与所述分布式文件系统的系统时间的差值未大于等于所述时长阈值时,确定该数据存储节点的使用状态为用于表示该数据存储节点可用。
在该可选的实施例中,在分布式文件系统中,由于namenode和datanode通常会周期性地建立通信,所以可以将datanode与namenode最近一次建立通信的时刻作为该datanode最近一次进行数据通信的通信时刻。当datanode最近一次进行数据通信的通信时刻距离分布式文件系统的系统时间过远时,即该datanode已较长时间无法进行通信,即可以确定该datanode不可用,否则可以确定该datanode可用。例如,namenode和datanode建立通信的频率为10S一次,预设的时长阈值可以取值为60S,这样,若datanode在最近的60S内未与namenode建立通信,即可以确定该datanode不可用。分布式文件系统的系统时间是指分布式文件系统中的系统时钟所记录的时间。在每个计算机系统中,通常预先设置有一个系统时钟,用于记录当前的时间。如,当前时间为9:00,则计算机系统中的系统时钟所记录的时间即为9:00。
可见,实施该可选的实施例,在确定数据存储节点的使用状态时,通过数据存储节点最近一次通信的通信时刻来判断该数据存储节点是否可用,有利于正确地选取出可用数据存储节点,保证目标数据成功写入分布式文件系统,提高分布式文件系统数据写入的可靠性。
在一个可选的实施例中,所述从数据存储节点的数量为两个,两个所述从数据存储节点分别为第一从数据存储节点和第二从数据存储节点;
以及,所述基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点,包括:
基于预设的数据同步后台线程将所述目标数据从所述主数据存储节点复制至所述第一从数据存储节点;
在完成将所述目标数据复制至所述第一从数据存储节点之后,基于所述数据同步后台线程将所述目标数据从所述第一从数据存储节点复制至所述第二从数据存储节点,或者,
基于预设的数据同步后台线程将所述目标数据从所述主数据存储节点同时分别复制至所述第一从数据存储节点和所述第二从数据存储节点。
在该可选的实施例中,在分布式文件系统中虽然可以自由设置所写入的目标数据的副本数量,但是通常分布式文件系统中的目标数据的副本数量会被设置为三份。若分布式文件系统中的目标数据的副本数量设置为三份,则在使用数据同步后台线程将目标数据写入两个从数据存储节点时,可以使用级联的写入形式(即使用数据同步后台线程先将目标数据从主数据存储节点复制至第一个从数据存储节点,在目标数据成功复制至第一个从数据存储节点之后,再将目标数据从第一个从数据存储节点复制至第二个从数据存储节点)或者并发的写入形式(即使用数据同步后台线程将目标数据同时从主数据存储节点分别复制至第一从数据存储节点和第二从数据存储节点)。其中,由于级联的写入形式需要等待目标数据完成两次写入,所以级联的写入形式的写入效率相对并发的写入形式较低,但是,由于级联的写入形式在写入目标数据时同一时间内只需要写入一份目标数据,所以级联的写入形式所占用的线程资源会相对并发的写入形式要少。
可见,实施该可选的实施例,在使用数据同步后台线程将目标数据写入至从数据存储节点时,可以根据实际需要选择不同的数据写入形式,从而能够适应不同的应用场景。
在一个可选的实施例中,在检测到所述写入请求之后,所述从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点之前,所述方法还包括:
判断所述客户端是否具有在所述分布式文件系统写入数据的权限;
当判断出所述客户端有写入数据的权限时,判断所述分布式文件系统中是否已存在所述目标数据;
当判断出所述分布式文件系统中未存在所述目标数据时,触发执行所述从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点的操作。
在该可选的实施例中,在分布式文件系统中可以预先设置客户端IP地址的白名单,该白名单中包含有所有拥有分布式文件系统的数据写入权限的客户端的IP地址。判断发起写入请求的客户端是否拥有写入权限可以通过判断发起写入请求的客户端的IP地址是否在该白名单中来实现。在判断出发起写入请求的客户端具有写入权限之后,可以继续判断目标数据是否已经存在在分布式文件系统中,若判断出目标数据已在分布式文件系统中,则可以向客户端发出警告提示,并停止将目标数据写入分布式文件系统中,若判断出目标数据未在分布式文件系统中,则可以开始后续的数据写入流程。这样,能够避免将重复的数据写入分布式文件系统中,从而提高分布式文件系统的数据写入效率。
可见,实施该可选的实施例,能够在向分布式文件系统写入目标数据之前,判断客户端是否具有写入数据的权限以及目标数据是否已在分布式文件系统中,然后再根据判断结果确定是否继续将目标数据写入至分布式文件系统中,从而能够提高分布式文件系统数据写入的安全性以及效率。
可选地,还可以:将所述分布式文件系统的数据写入方法的分布式文件系统的数据写入信息上传至区块链中。
具体来说,分布式文件系统的数据写入信息是通过运行所述分布式文件系统的数据写入方法后得到的,用于记录分布式文件系统的数据写入情况,例如,检测到写入请求的时刻、确认信息返回的时刻、主存储节点的IP地址、使用的数据同步后台线程等等。将分布式文件系统的数据写入信息上传至区块链可保证其安全性和对用户的公正透明性。用户可以从区块链中下载得到该分布式文件系统的数据写入信息,以便查证所述分布式文件系统的数据写入方法的分布式文件系统的数据写入信息是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
可见,实施本发明实施例所公开的分布式文件系统的数据写入方法,在将目标数据写入分布式文件系统时,通过在目标数据成功写入主数据存储节点之后即返回写入成功的确认信息,然后使用预设的后台线程将目标数据写入至每个从数据存储节点,从而能够在保持分布式文件系统数据冗余的特性的同时,使分布式文件系统无需等待目标数据的多份副本都写入完成后才确认目标数据写入完成以开始进行下一份数据的写入,从而能够缩短目标数据的写入耗时、提高目标数据的写入效率。在选取主数据存储节点和从数据存储节点时,先选取出可用数据存储节点,然后根据可用数据存储节点的通信延迟值从可用数据存储节点中选取出主数据存储节点和从数据存储节点,有利于进一步缩短目标数据的写入耗时、提高目标数据的写入效率。在确定可用数据存储节点时,将所对应的可用存储空间大小值大于等于目标数据的数据大小值,且所对应的使用状态用于表示该数据存储节点可用的数据存储节点作为可用数据存储节点,有利于保证目标数据成功写入分布式文件系统,提高分布式文件系统数据写入的可靠性。在确定数据存储节点的使用状态时,通过数据存储节点最近一次通信的通信时刻来判断该数据存储节点是否可用,有利于正确地选取出可用数据存储节点,保证目标数据成功写入分布式文件系统,提高分布式文件系统数据写入的可靠性。在使用数据同步后台线程将目标数据写入至从数据存储节点时,可以根据实际需要选择不同的数据写入形式,从而能够适应不同的应用场景。能够在向分布式文件系统写入目标数据之前,判断客户端是否具有写入数据的权限以及目标数据是否已在分布式文件系统中,然后再根据判断结果确定是否继续将目标数据写入至分布式文件系统中,从而能够提高分布式文件系统数据写入的安全性以及效率。
实施例二
请参阅图2,图2是本发明实施例公开的一种分布式文件系统的数据写入装置的结构示意图。如图2所示,该分布式文件系统的数据写入装置可以包括:
检测模块201,用于检测是否接收到由分布式文件系统的客户端发送的针对目标数据的写入请求;
确定模块202,用于当所述检测模块检测到所述写入请求时,从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点;
写入模块203,用于将所述目标数据写入至所述主数据存储节点;
返回模块204,用于在所述写入模块203完成所述目标数据在所述主数据存储节点的写入之后,将用于表示所述目标数据已成功写入至所述分布式文件系统的确认信息返回至所述客户端;
所述写入模块203,还用于基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点。
对于上述分布式文件系统的数据写入装置的具体描述可以参照上述分布式文件系统的数据写入方法的具体描述,为避免重复,在此不再一一赘述。
实施例三
请参阅图3,图3是本发明实施例公开的一种计算机设备的结构示意图。如图3所示,该计算机设备可以包括:
存储有可执行程序代码的存储器301;
与存储器301连接的处理器302;
处理器302调用存储器301中存储的可执行程序代码,执行本发明实施例一公开的分布式文件系统的数据写入方法中的步骤。
实施例四
本发明实施例公开了一种计算机存储介质401,计算机存储介质401存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一公开的分布式文件系统的数据写入方法中的步骤。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(RandomAccess Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-OnlyMemory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种分布式文件系统的数据写入方法、装置、计算机设备以及存储介质所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
Claims (8)
1.一种分布式文件系统的数据写入方法,其特征在于,所述方法包括:
检测是否接收到由分布式文件系统的客户端发送的针对目标数据的写入请求;
当检测到所述写入请求时,从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点;
将所述目标数据写入至所述主数据存储节点;
在完成所述目标数据在所述主数据存储节点的写入之后,将用于表示所述目标数据已成功写入至所述分布式文件系统的确认信息返回至所述客户端;
基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点;
所述从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点,包括:
从所述分布式文件系统的多个数据存储节点中确定出多个可用数据存储节点,所述可用数据存储节点是指能够用于进行所述目标数据的写入的数据存储节点;
获取每个所述可用数据存储节点的通信延迟值;
根据每个所述可用数据存储节点的通信延迟值,从多个所述可用数据存储节点中确定出一个主数据存储节点和至少一个从数据存储节点。
2.根据权利要求1所述的分布式文件系统的数据写入方法,其特征在于,所述从所述分布式文件系统的多个数据存储节点中确定出多个可用数据存储节点,包括:
确定所述分布式文件系统中每个所述数据存储节点的使用状态,每个所述数据存储节点的使用状态用于表示该数据存储节点可用或者不可用;
获取所述分布式文件系统中每个所述数据存储节点的可用存储空间大小值;
将所对应的可用存储空间大小值大于等于所述目标数据的数据大小值,且所对应的使用状态用于表示该数据存储节点可用的数据存储节点作为可用数据存储节点。
3.根据权利要求2所述的分布式文件系统的数据写入方法,其特征在于,所述确定所述分布式文件系统中每个所述数据存储节点的使用状态,包括:
获取所述分布式文件系统中每个所述数据存储节点最近一次进行数据通信的通信时刻;
判断每个所述数据存储节点对应的通信时刻与所述分布式文件系统的系统时间的差值是否大于等于预设的时长阈值;
当判断出该数据存储节点对应的通信时刻与所述分布式文件系统的系统时间的差值大于等于所述时长阈值时,确定该数据存储节点的使用状态为用于表示该数据存储节点不可用;
当判断出该数据存储节点对应的通信时刻与所述分布式文件系统的系统时间的差值未大于等于所述时长阈值时,确定该数据存储节点的使用状态为用于表示该数据存储节点可用。
4.根据权利要求1-3任一项所述的分布式文件系统的数据写入方法,其特征在于,所述从数据存储节点的数量为两个,两个所述从数据存储节点分别为第一从数据存储节点和第二从数据存储节点;
以及,所述基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点,包括:
基于预设的数据同步后台线程将所述目标数据从所述主数据存储节点复制至所述第一从数据存储节点;
在完成将所述目标数据复制至所述第一从数据存储节点之后,基于所述数据同步后台线程将所述目标数据从所述第一从数据存储节点复制至所述第二从数据存储节点,或者,
基于预设的数据同步后台线程将所述目标数据从所述主数据存储节点同时分别复制至所述第一从数据存储节点和所述第二从数据存储节点。
5.根据权利要求1-3任一项所述的分布式文件系统的数据写入方法,其特征在于,在检测到所述写入请求之后,所述从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点之前,所述方法还包括:
判断所述客户端是否具有在所述分布式文件系统写入数据的权限;
当判断出所述客户端有写入数据的权限时,判断所述分布式文件系统中是否已存在所述目标数据;
当判断出所述分布式文件系统中未存在所述目标数据时,触发执行所述从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点的操作。
6.一种分布式文件系统的数据写入装置,其特征在于,所述装置包括:
检测模块,用于检测是否接收到由分布式文件系统的客户端发送的针对目标数据的写入请求;
确定模块,用于当所述检测模块检测到所述写入请求时,从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点;
写入模块,用于将所述目标数据写入至所述主数据存储节点;
返回模块,用于在所述写入模块完成所述目标数据在所述主数据存储节点的写入之后,将用于表示所述目标数据已成功写入至所述分布式文件系统的确认信息返回至所述客户端;
所述写入模块,还用于基于预设的数据同步后台线程将所述目标数据写入至每个所述从数据存储节点;
所述确定模块从所述分布式文件系统的多个数据存储节点确定出一个主数据存储节点和至少一个从数据存储节点的具体方式为:
从所述分布式文件系统的多个数据存储节点中确定出多个可用数据存储节点,所述可用数据存储节点是指能够用于进行所述目标数据的写入的数据存储节点;
获取每个所述可用数据存储节点的通信延迟值;
根据每个所述可用数据存储节点的通信延迟值,从多个所述可用数据存储节点中确定出一个主数据存储节点和至少一个从数据存储节点。
7.一种计算机设备,其特征在于,所述计算机设备包括:
存储有可执行程序代码的存储器;
与所述存储器连接的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-5任一项所述的分布式文件系统的数据写入方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的分布式文件系统的数据写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437826.4A CN113204530B (zh) | 2021-04-22 | 2021-04-22 | 分布式文件系统的数据写入方法、装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437826.4A CN113204530B (zh) | 2021-04-22 | 2021-04-22 | 分布式文件系统的数据写入方法、装置、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113204530A CN113204530A (zh) | 2021-08-03 |
CN113204530B true CN113204530B (zh) | 2023-06-30 |
Family
ID=77027976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110437826.4A Active CN113204530B (zh) | 2021-04-22 | 2021-04-22 | 分布式文件系统的数据写入方法、装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113204530B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114637475B (zh) * | 2022-04-13 | 2024-06-25 | 苏州浪潮智能科技有限公司 | 一种分布式存储系统控制方法、装置及可读存储介质 |
CN116561221B (zh) * | 2023-04-21 | 2024-03-19 | 清华大学 | 支持物联网场景的分布式时序数据库副本共识协议的方法 |
CN117312326A (zh) * | 2023-11-28 | 2023-12-29 | 深圳市移卡科技有限公司 | 基于云原生数据库的数据存储方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979652B1 (en) * | 2007-12-20 | 2011-07-12 | Amazon Technologies, Inc. | System and method for M-synchronous replication |
US20140047227A1 (en) * | 2012-08-07 | 2014-02-13 | Advanced Micro Devices, Inc. | System and method for configuring boot-time parameters of nodes of a cloud computing system |
CN110019093A (zh) * | 2017-12-28 | 2019-07-16 | 中国移动通信集团安徽有限公司 | 数据写入方法、装置、设备及介质 |
CN110287151A (zh) * | 2019-05-20 | 2019-09-27 | 平安科技(深圳)有限公司 | 分布式存储系统、数据写入方法、装置和存储介质 |
-
2021
- 2021-04-22 CN CN202110437826.4A patent/CN113204530B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979652B1 (en) * | 2007-12-20 | 2011-07-12 | Amazon Technologies, Inc. | System and method for M-synchronous replication |
US20140047227A1 (en) * | 2012-08-07 | 2014-02-13 | Advanced Micro Devices, Inc. | System and method for configuring boot-time parameters of nodes of a cloud computing system |
CN110019093A (zh) * | 2017-12-28 | 2019-07-16 | 中国移动通信集团安徽有限公司 | 数据写入方法、装置、设备及介质 |
CN110287151A (zh) * | 2019-05-20 | 2019-09-27 | 平安科技(深圳)有限公司 | 分布式存储系统、数据写入方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113204530A (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113204530B (zh) | 分布式文件系统的数据写入方法、装置、设备以及介质 | |
CN106899648B (zh) | 一种数据处理方法和设备 | |
CN114637475B (zh) | 一种分布式存储系统控制方法、装置及可读存储介质 | |
CN111797172B (zh) | 数据迁移方法、装置、设备、分布式系统及存储介质 | |
KR101574871B1 (ko) | 키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템 | |
WO2020232859A1 (zh) | 分布式存储系统、数据写入方法、装置和存储介质 | |
CN113342507B (zh) | 一种分布式锁服务实现方法、装置及计算机设备 | |
CN111177257A (zh) | 一种区块链的数据存储及访问方法、装置以及设备 | |
US20090132534A1 (en) | Remote replication synchronizing/accessing system and method thereof | |
CN114185558A (zh) | 基于K8s的原生应用选主方法、装置及存储介质 | |
CN113672255B (zh) | 一种分布式存储软件升级方法及装置 | |
CN113885797B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN112988777B (zh) | 对象处理方法、装置、计算机设备和存储介质 | |
CN114756624A (zh) | 全量节点的数据处理方法、装置、设备及存储介质 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN111339089B (zh) | 一种应用于区块链的数据存储与获取方法及装置 | |
CN111861613B (zh) | 一种电子锁操作记录方法及装置 | |
CN114584572B (zh) | 一种分布式对象存储中数据同步方法、装置、设备及介质 | |
CN113779155B (zh) | 区块链交易处理方法、装置及设备 | |
CN115486052B (zh) | 一种数据存储方法、系统及存储介质 | |
CN117555493B (zh) | 数据处理方法、系统、装置、存储介质及电子设备 | |
CN113065867B (zh) | 基于数据重放的非兼容性区块链升级系统、方法及介质 | |
CN117407460A (zh) | 跨环境数据同步方法、装置、存储介质及电子设备 | |
CN115268776A (zh) | 数据存储方法、装置、系统、电子设备及存储介质 | |
CN107545172B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |