CN114625702A - 数据的存储方法、装置、系统及电子设备 - Google Patents
数据的存储方法、装置、系统及电子设备 Download PDFInfo
- Publication number
- CN114625702A CN114625702A CN202011464272.9A CN202011464272A CN114625702A CN 114625702 A CN114625702 A CN 114625702A CN 202011464272 A CN202011464272 A CN 202011464272A CN 114625702 A CN114625702 A CN 114625702A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- stored
- data storage
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- 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
Abstract
本发明提供了一种数据的存储方法、装置、系统及电子设备,涉及数据存储的技术领域,该方法包括接收服务端根据数据写入请求返回的存储地址列表,基于存储地址列表向服务端并发发送待存储数据,以使服务端在数据存储节点中对待存储数据进行并发存储处理;接收服务端返回的存储反馈信息,记录存储反馈信息的条数,如果存储反馈信息的条数超过数据存储节点的数量对应的数量阈值,则确定待存储数据存储完成。本发明提供的数据的存储方法、装置、系统及电子设备,可以大幅降低数据写入的延时,且无需等待全部的存储反馈信息即可确定存储完成,提高了数据存储的效率。
Description
技术领域
本发明涉及数据存储的技术领域,尤其是涉及一种数据的存储方法、装置、系统及电子设备。
背景技术
文件系统的核心是数据的可靠存储。写入文件系统的数据要能在系统重启之后正确无误的读取出来,否则就是一个不可靠的文件系统。
单机文件系统能保证在硬盘,机器正常的场景下可靠的存储数据;作为面向大容量高并发场景下的分布式文件系统,能够在单机文件系统的基础上提供即使出现硬盘级别,机器级别的故障,也能保证用户成功写入的数据后,仍然正常的读取。
因此,分布式文件系统通常通过多副本来保证数据的可靠性,而分布式文件系统通常由客户端和服务端组成,客户端写入数据时需要先跟服务端通讯,获取到数据需要写入的存储节点地址,然后通过流水线方式依次完成多节点的数据写入。但是,由于数据需要在每个存储节点依次复制,只有最后一个存储节点成功返回存储完成后,才最终返回到客户端,会导致较高的延时,并且,由于需要节点全部成功才能返回客户端,如果最后一个节点失败,会导致整个操作失败,降低了整体的存储效率。
发明内容
有鉴于此,本发明的目的在于提供一种数据的存储方法、装置、系统及电子设备,以缓解上述技术问题。
第一方面,本发明实施例提供了一种数据的存储方法,应用于客户端,所述客户端与服务端通信,该方法包括:接收所述服务端根据数据写入请求返回的存储地址列表,其中,所述存储地址列表包括至少一个数据存储节点,以及每个所述数据存储节点的地址;基于所述存储地址列表向所述服务端并发发送待存储数据,以使所述服务端在所述数据存储节点中对所述待存储数据进行并发存储处理;接收所述服务端返回的存储反馈信息,其中,所述服务端被配置为在任意一个所述数据存储节点存储完成后均向所述客户端发送所述存储反馈信息;记录所述存储反馈信息的条数,如果所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值,则确定所述待存储数据存储完成。
优选地,在一种可能的实施方式中,接收所述服务端根据数据写入请求返回的存储地址列表之前,所述方法还包括:如果监测到用户输入的数据写入操作,向所述服务端发送数据写入请求。
优选地,在一种可能的实施方式中,上述基于所述存储地址列表向所述服务端并发发送待存储数据的步骤包括:提取每个所述数据存储节点的地址;基于所述地址向每个所述数据存储节点并发发送所述待存储数据。
优选地,在一种可能的实施方式中,上述接收所述服务端根据所述数据写入请求返回的存储地址列表之后,该方法还包括:统计所述存储地址列表中包括的所述数据存储节点的数量;根据所述数据存储节点的数量确定所述数量阈值。
优选地,在一种可能的实施方式中,上述根据所述数据存储节点的数量确定所述数量阈值的步骤包括:计算所述数据存储节点的数量的一半对应的值;将所述数据存储节点的数量的一半对应的值确定为所述数量阈值。
优选地,在一种可能的实施方式中,上述确定所述待存储数据存储完成之后,该方法还包括:向所述服务端反馈存储完成的信息,以使所述服务端发起副本恢复操作,在至少一个所述数据存储节点中完成对所述待存储数据进行存储。
第二方面,本发明实施例还提供一种数据的存储方法,应用于服务端,所述服务端与客户端通信,该方法包括:接收所述客户端发送的数据写入请求,其中,所述数据写入请求为所述客户端监测到用户输入的数据写入操作时发送的;获取预先存储的存储地址列表,其中,所述存储地址列表包括至少一个当前可用的数据存储节点,以及每个所述数据存储节点的地址;将所述存储地址列表发送至所述客户端,以使所述客户端基于所述存储地址列表向所述服务端并发发送待存储数据;通过至少一个所述数据存储节点接收所述待存储数据,在至少一个所述数据存储节点中对所述待存储数据进行并发存储处理,并在监测到任意所述数据存储节点存储完成后均向所述客户端发送存储反馈信息,以使所述客户端记录所述存储反馈信息的条数,并在所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值时确定所述待存储数据存储完成。
优选地,在一种可能的实施方式中,上述方法还包括:获取当前可用的数据存储节点,以及所述数据存储节点的地址;基于所述数据存储节点以及所述数据存储节点的地址生成所述存储地址列表,并将所述存储地址列表保存至预设的位置。
优选地,在一种可能的实施方式中,上述方法还包括:如果监测到所述客户端反馈的存储完成的信息,发起副本恢复操作,在至少一个所述数据存储节点中完成对所述待存储数据进行存储。
第三方面,本发明实施例还提供一种数据的存储装置,应用于客户端,所述客户端与服务端通信,该装置包括:第一接收模块,用于接收所述服务端根据数据写入请求返回的存储地址列表,其中,所述存储地址列表包括至少一个数据存储节点,以及每个所述数据存储节点的地址;并发发送模块,用于基于所述存储地址列表向所述服务端并发发送待存储数据,以使所述服务端在所述数据存储节点中对所述待存储数据进行并发存储处理;反馈模块,用于接收所述服务端返回的存储反馈信息,其中,所述服务端被配置为在任意一个所述数据存储节点存储完成后均向所述客户端发送所述存储反馈信息;确定模块,用于记录所述存储反馈信息的条数,如果所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值,则确定所述待存储数据存储完成。
第四方面,本发明实施例还提供一种数据的存储装置,应用于服务端,所述服务端与客户端通信,该装置包括:第二接收模块,用于接收所述客户端发送的数据写入请求,其中,所述数据写入请求为所述客户端监测到用户输入的数据写入操作时发送的;获取模块,用于获取预先存储的存储地址列表,其中,所述存储地址列表包括至少一个当前可用的数据存储节点,以及每个所述数据存储节点的地址;第二发送模块,用于将所述存储地址列表发送至所述客户端,以使所述客户端基于所述存储地址列表向所述服务端并发发送待存储数据;并发存储模块,用于通过至少一个所述数据存储节点接收所述待存储数据,在至少一个所述数据存储节点中对所述待存储数据进行并发存储处理,并在监测到任意一个所述数据存储节点存储完成后均向所述客户端发送存储反馈信息,以使所述客户端记录所述存储反馈信息的条数,并在所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值时确定所述待存储数据存储完成。
第五方面,本发明实施例还提供一种数据存储系统,包括服务端和客户端,其中,所述客户端与所述服务端通信;客户端配置有第三方面所述的装置,所述服务端配置有第四方面所述的装置。
第六方面,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一至第二方面所述的方法。
第七方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一至第二方面所述的方法。
本发明实施例带来了以下有益效果:
本发明实施例提供的数据的存储方法、装置、系统及电子设备,能够接收服务端根据数据写入请求返回的存储地址列表,进而基于该存储地址列表向服务端并发发送待存储数据,以使服务端在数据存储节点中对待存储数据进行并发存储处理,然后进一步接收并记录服务端返回的存储反馈信息的条数,并在存储反馈信息的条数超过数据存储节点的数量对应的数量阈值时确定待存储数据存储完成,由于客户端在发送待存储数据时是并发发送的,因此,大幅降低了数据写入的延时,尤其是在副本数较多的场景下,有效减小了延时时间,并且,当存储反馈信息的条数超过一定数量阈值时,即可确定待存储数据存储完成,无需等待全部的存储反馈信息,有效降低了个别数据存储节点异常导致的请求失败的概率,提高了数据存储的效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据的存储方法的流程图;
图2为本发明实施例提供的另一种数据的存储方法的流程图;
图3为本发明实施例提供的一种数据存储的交互示意图;
图4为本发明实施例提供的一种数据存储的交互流程图;
图5为本发明实施例提供的一种数据的存储装置的结构示意图;
图6为本发明实施例提供的另一种数据的存储装置的结构示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的分布式文件系统通常由客户端和服务端组成,而服务端通常设置有元数据管理节点和数据存储节点,以便于对数据进行写入和存储。
现有的分布式文件存储的数据写入操作,大致流程如下:
1、客户端请求元数据管理节点,告知服务端需要写入数据;
2、元数据管理节点返回多个可用的数据节点地址组成的列表;
3、客户端将数据写入到2中的列表的第一个数据存储节点;
4、数据存储节点将数据写入本地,同时转发数据到节点列表中下一个数据存储节点(下游节点);
5、依次重复步骤4,直到最后一个数据存储节点将数据写入本地;
6、数据存储节点依次逆向通知上游节点,直至返回到客户端;
基于上述写入流程,数据需要在每个数据存储节点依次复制,只有最后一个数据存储节点返回才算返回到客户端,会导致较高的延时;并且,必须在数据存储节点全部成功才能返回至客户端,如果最后一个节点失败,则会导致整个操作失败,大幅降低了数据写入效率。
基于此,本发明实施例提供的一种数据的存储方法、装置、系统及电子设备,可以有效缓解上述技术问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据的存储方法进行详细介绍。
在一种可能的实施方式中,本发明实施例提供了一种数据的存储方法,该方法应用于客户端,且客户端与服务端通信,具体地,该客户端与服务端可以组成数据存储系统,并用于对数据进行分布式存储,并且,客户端的数量通常有多个,且构成该客户端的终端设备可以是智能手机、平板电脑、台式机、掌上电脑等可设置在用户一侧的终端设备。
具体地,如图1所示的一种数据的存储方法的流程图,该方法包括以下步骤:
步骤S102,接收服务端根据数据写入请求返回的存储地址列表;
其中,该存储地址列表包括至少一个数据存储节点,以及每个数据存储节点的地址;
通常,上述数据写入请求是客户端向服务端发送数据写入请求时,由服务端反馈的,因此,在接收服务端返回的存储地址列表之前,还包括以下过程:如果监测到用户输入的数据写入操作,向服务端发送数据写入请求。
具体地,上述数据写入操作是用户需要将数据写入至数据存储系统时在客户端上执行的操作。通常,为了实现可靠的数据存储,上述数据存储系统一般配置有多个数据存储节点,实现多副本进行存储,以保证数据的可靠性。因此,配置有多副本的数据存储系统也可以称为分布式文件系统,每个副本相当于上述数据存储节点,以实现数据的分布式存储。
进一步,服务端还通常配置有元数据管理节点,可以对数据存储节点进行管理,例如,接收客户端发送的数据写入请求,确定当前数据存储节点是否可用,以及,根据可用的数据存储节点生成上述存储地址列表并返回值客户端等等。
步骤S104,基于存储地址列表向服务端并发发送待存储数据,以使服务端在数据存储节点中对待存储数据进行并发存储处理;
具体地,数据存储系统在保证数据的可靠性存储时,在服务端通常采用多副本复制的方式,其核心目标是将用户写入的数据复制多份,从而保证在硬盘故障,机器宕机时仍然能读取正常的数据。现有技术中,由于数据存储节点需要依次复制,因此,客户端将待存储数据发送给其中一个数据存储节点即可,然后服务端可以按照管道(pipeline)方式,或者基于raft的主从方式对待存储数据进行复制,直至最后一个数据存储节点返回存储完成的信息,导致较高的延时,而上述步骤S106中,客户端基于存储地址列表向服务端并发发送待存储数据的方式,可以实现多线程并发处理,同时,也使服务端对待存储数据进行并发存储至相应的数据存储节点,这样,整个延时只取决于数据存储节点中最慢的那个节点,而不是所有节点的延时累加,有效降低了延时。
步骤S106,接收服务端返回的存储反馈信息;
其中,服务端被配置为在任意一个数据存储节点存储完成后均向客户端发送一条存储反馈信息;
具体地,服务端的数据存储节点在接收到待存储数据时,可以将待存储数据进行本地写入,通过上述配置方式,服务端监测到该写入完成后,可以向客户端反馈存储反馈信息,通知客户端在该数据存储节点存储完成,以便于客户端继续执行下述步骤S108,对存储反馈信息进行记录。
步骤S108,记录存储反馈信息的条数,如果存储反馈信息的条数超过数据存储节点的数量对应的数量阈值,则确定待存储数据存储完成。
具体地,通常服务端在监测到数据存储节点将待存储数据存储完成之后,可以向客户端反馈一条存储反馈信息,以便于客户端进行记录和统计,进而确定待存储数据是否存储完成。
因此,本发明实施例提供的数据的存储方法,能够接收服务端根据数据写入请求返回的存储地址列表,进而基于该存储地址列表向服务端并发发送待存储数据,以使服务端在数据存储节点中对待存储数据进行并发存储处理,然后进一步接收并记录服务端返回的存储反馈信息的条数,并在存储反馈信息的条数超过数据存储节点的数量对应的数量阈值时确定待存储数据存储完成,由于客户端在发送待存储数据时是并发发送的,因此,大幅降低了数据写入的延时,尤其是在副本数较多的场景下,有效减小了延时时间,并且,当存储反馈信息的条数超过一定数量阈值时,即可确定待存储数据存储完成,无需等待全部的存储反馈信息,有效降低了个别数据存储节点异常导致的请求失败的概率,提高了数据存储的效率。
在实际使用时,为了实现上述步骤S104中待存储数据的并发发送,可以在客户端上预先配置多线程,该多线程的数量可以根据存储地址列表中包括的数据存储节点的数量来确定,因此,上述步骤S104中,向服务端发送待存储数据时,可以提取每个数据存储节点的地址;基于该地址向每个数据存储节点并发发送上述待存储数据,进而在服务端实现待存储数据在每个数据存储节点中进行并发写入。
进一步,上述步骤S108中,客户端确定待存储数据是否存储完成时所用的数量阈值,通常是基于数据存储节点的数量确定的,具体地,可以在客户端接收到上述存储地址列表时确定上述数量阈值,然后存储在预设的位置,以便于在接收到存储反馈信息时获取该数量阈值,因此,客户端在执行完上述步骤S102接收存储地址列表之后,还可以进一步统计存储地址列表中包括的数据存储节点的数量,以便于根据数据存储节点的数量确定上述数量阈值。
进一步,在确定数量阈值时,通常计算数据存储节点的数量的一半对应的值;将该数据存储节点的数量的一半对应的值确定为数量阈值。
具体地,可以在客户端按照下述计算公式确定数量阈值:N0=N/2+1;其中,N0表示数量阈值,N为数据存储节点的数量。
进一步,当客户端通过上述数量阈值确定待存储数据存储完成之后,还可以进一步向服务端反馈存储完成的信息,以使服务端发起副本恢复操作,进而在至少一个数据存储节点中完成对待存储数据进行存储。
例如,客户端通过图1所示的方法将待存储数据并发写入服务端的N个数据存储节点,只要客户端确定出有N/2+1个数据存储节点成功存储完成,即,超过半数的数据存储节点成功存储完成,即可以向服务端提交存储完成的信息,通过服务端已确定待存储数据成功存储完成,此时,服务端的元数据管理节点可以发起副本恢复操作,从而有效避免了极个别数据存储节点异常导致整个过程失败的问题,增加了系统的稳定性。
进一步,基于上述在客户端执行的数据的存储方法,本发明实施例还提供了另一种数据的存储方法,该方法应用于服务端,服务端与上述客户端通信,具体地,图2示出了另一种数据的存储方法的流程图,对服务端执行的数据存储过程进行描述,如图2所示,包括以下步骤:
步骤S202,接收客户端发送的数据写入请求;
其中,该数据写入请求为客户端监测到用户输入的数据写入操作时发送的;
步骤S204,获取预先存储的存储地址列表;
其中,该存储地址列表包括至少一个当前可用的数据存储节点,以及每个数据存储节点的地址;
步骤S206,将存储地址列表发送至客户端,以使客户端基于存储地址列表向服务端并发发送待存储数据;
在实际使用时,上述存储地址列表可以是服务端在接收到客户端发送的数据写入请求之后根据当前可用的数据存储节点生成的,也可以在每次启动是根据可用的数据存储节点生成的,且,还可以定时根据数据存储情况对该存储地址列表进行更新。
因此,上述方法还包括获取当前可用的数据存储节点,以及数据存储节点的地址;基于数据存储节点以及数据存储节点的地址生成存储地址列表,并将存储地址列表保存至预设的位置,以便于服务端获取到该存储地址列表,并发送至客户端。
步骤S208,通过至少一个数据存储节点接收待存储数据,在至少一个数据存储节点中对待存储数据进行并发存储处理,并在监测到任意一个数据存储节点存储完成后均向客户端发送存储反馈信息,以使客户端记录存储反馈信息的条数,并在存储反馈信息的条数超过数据存储节点的数量对应的数量阈值时确定待存储数据存储完成。
在实际使用时,上述服务端通常被配置为在任意一个数据存储节点存储完成后均向客户端发送一条存储反馈信息,以便于在服务端,每个数据存储节点存储完成后,都可以向客户端回应一条存储反馈信息,通知客户端该数据存储节点已存储完成,以便于客户端记录存储反馈信息的数量。
进一步,客户端在确定待存储数据存储完成之后,还可以向服务端反馈存储完成的信息,而服务端在监测到客户端反馈的存储完成的信息之后还可以发起副本恢复操作,进而在至少一个数据存储节点中完成对待存储数据进行存储。具体地,副本恢复操作可以从已经存储完成的数据存储节点中恢复未完成存储的数据存储节点的数据,从而有效避免了极个别数据存储节点异常导致整体失败的问题。
为了便于理解,图3示出了一种数据存储的交互示意图,具体地,图3的应用场景包括客户端和服务端,且,在服务端还包括多个数据存储节点和元数据管理节点,其中,为了便于说明,图3中仅仅示出了一个客户端和三个数据存储节点进行说明,应当理解,在其他的实施方式中,上述数据存储节点的数量还可以根据实际使用情况进行设置,本发明实施例对此不进行限制。
具体地,图3中示出了客户端和服务端的数据存储节点在数据存储过程中的主要步骤,分别包括301、客户端向服务端的数据存储节点发送待存储数据;302、数据存储节点进行本地写入;303、服务端的数据存储节点向客户端反馈存储反馈信息。
进一步,在图3的基础上,图4还示出了一种数据存储的交互流程图,如图4所示,包括以下步骤:
步骤401,客户端接收用户输入的数据写入操作,向服务端发送数据写入请求;即图3中的301过程。
步骤402,服务端的元数据管理节点接收到该数据写入请求之后,向客户端反馈包含存储地址列表,该存储地址列表包括可用的数据存储节点的地址;
步骤403,客户端向服务端返回的几个数据存储节点的地址分别发送需要写入的待存储数据,实现并发处理;
步骤404,在服务端,每个数据存储节点在本地执行数据写入,对应图3中的302过程,待存储数据存储完成后,都可以向客户端回应一条存储反馈信息,对应图3的303过程,以通知客户端该数据存储节点已存储完成;
步骤405,客户端在确定出有超过数量阈值(如N/2+1)个数据存储节点反馈写入成功的存储反馈信息之后直接确定该写入请求完成。
通过图4所示的交互流程,可以通过客户端并发写入,实现分布式文件系统的多副本存储,并且,客户端和服务端的元数据管理节点协作,可以降低个别数据存储节点异常导致的失败问题,且,上述在客户端侧实现的多副本待存储数据并发发送,可以充分利用客户端网络带宽,大幅降低了数据写入的延时,尤其是在副本数较多的场景,同时,也减少了个别数据存储节点异常导致请求失败的概率,提高了数据写入的效率。
进一步,对应于上述图1所示的数据的存储方法,本发明实施例还提供了一种数据的存储装置,应用于客户端,该客户端与服务端通信,如图5所示的一种数据的存储装置的结构示意图,该装置包括:
第一接收模块52,用于接收所述服务端根据所述数据写入请求返回的存储地址列表,其中,所述存储地址列表包括至少一个数据存储节点,以及每个所述数据存储节点的地址;
并发发送模块54,用于基于所述存储地址列表向所述服务端并发发送待存储数据,以使所述服务端在所述数据存储节点中对所述待存储数据进行并发存储处理;
反馈模块56,用于接收所述服务端返回的存储反馈信息,其中,所述服务端被配置为在任意一个所述数据存储节点存储完成后均向所述客户端发送所述存储反馈信息;
确定模块58,用于记录所述存储反馈信息的条数,如果所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值,则确定所述待存储数据存储完成。
进一步,对应于上述图2所示的数据的存储方法,本发明实施例还提供了另一种数据的存储装置,应用于服务端,该服务端与客户端通信,如图6所示的另一种数据的存储装置的结构示意图,该装置包括:
第二接收模块60,用于接收所述客户端发送的数据写入请求,其中,所述数据写入请求为所述客户端监测到用户输入的数据写入操作时发送的;
获取模块62,用于获取预先存储的存储地址列表,其中,所述存储地址列表包括至少一个当前可用的数据存储节点,以及每个所述数据存储节点的地址;
第二发送模块64,用于将所述存储地址列表发送至所述客户端,以使所述客户端基于所述存储地址列表向所述服务端并发发送待存储数据;
并发存储模块66,用于通过至少一个所述数据存储节点接收所述待存储数据,在至少一个所述数据存储节点中对所述待存储数据进行并发存储处理,并在监测到任意一个所述数据存储节点存储完成后均向所述客户端发送存储反馈信息,以使所述客户端记录所述存储反馈信息的条数,并在所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值时确定所述待存储数据存储完成。
本发明实施例提供的数据的存储装置,与上述实施例提供的数据的存储方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
进一步,本发明实施例还提供了一种数据存储系统,包括服务端和客户端,其中,所述客户端与所述服务端通信;
具体地,客户端配置有图5所示的装置,服务端配置有图6所示的装置。
在实际使用时,本发明实施例提供的数据存储系统,可以作为分布式文件系统使用,执行图4所示的交互流程,以实现数据存储的过程。
进一步,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述图1或图2所示的方法。
进一步,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述图1或图2所示的方法。
进一步,本发明实施例还提供了一种电子设备的结构示意图,如图7所示,为该电子设备的结构示意图,其中,该电子设备包括处理器101和存储器100,该存储器100存储有能够被该处理器101执行的计算机可执行指令,该处理器101执行该计算机可执行指令以实现上述数据的存储方法。
在图7示出的实施方式中,该电子设备还包括总线102和通信接口103,其中,处理器101、通信接口103和存储器100通过总线102连接。
其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线102可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器101读取存储器中的信息,结合其硬件完成前述实施例的数据的存储方法。
本发明实施例所提供的数据的存储方法、装置、系统及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种数据的存储方法,其特征在于,应用于客户端,所述客户端与服务端通信,所述方法包括:
接收所述服务端根据数据写入请求返回的存储地址列表,其中,所述存储地址列表包括至少一个数据存储节点,以及每个所述数据存储节点的地址;
基于所述存储地址列表向所述服务端并发发送待存储数据,以使所述服务端在所述数据存储节点中对所述待存储数据进行并发存储处理;
接收所述服务端返回的存储反馈信息,其中,所述服务端被配置为在任意一个所述数据存储节点存储完成后均向所述客户端发送所述存储反馈信息;
记录所述存储反馈信息的条数,如果所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值,则确定所述待存储数据存储完成。
2.根据权利要求1所述的方法,其特征在于,接收所述服务端根据数据写入请求返回的存储地址列表之前,所述方法还包括:
如果监测到用户输入的数据写入操作,向所述服务端发送数据写入请求。
3.根据权利要求1所述的方法,其特征在于,基于所述存储地址列表向所述服务端并发发送待存储数据的步骤包括:
提取每个所述数据存储节点的地址;
基于所述地址向每个所述数据存储节点并发发送所述待存储数据。
4.根据权利要求1所述的方法,其特征在于,接收所述服务端根据所述数据写入请求返回的存储地址列表之后,所述方法还包括:
统计所述存储地址列表中包括的所述数据存储节点的数量;
根据所述数据存储节点的数量确定所述数量阈值。
5.根据权利要求4所述的方法,其特征在于,根据所述数据存储节点的数量确定所述数量阈值的步骤包括:
计算所述数据存储节点的数量的一半对应的值;
将所述数据存储节点的数量的一半对应的值确定为所述数量阈值。
6.根据权利要求1所述的方法,其特征在于,确定所述待存储数据存储完成之后,所述方法还包括:
向所述服务端反馈存储完成的信息,以使所述服务端发起副本恢复操作,在至少一个所述数据存储节点中完成对所述待存储数据进行存储。
7.一种数据的存储方法,其特征在于,应用于服务端,所述服务端与客户端通信,所述方法包括:
接收所述客户端发送的数据写入请求,其中,所述数据写入请求为所述客户端监测到用户输入的数据写入操作时发送的;
获取预先存储的存储地址列表,其中,所述存储地址列表包括至少一个当前可用的数据存储节点,以及每个所述数据存储节点的地址;
将所述存储地址列表发送至所述客户端,以使所述客户端基于所述存储地址列表向所述服务端并发发送待存储数据;
通过至少一个所述数据存储节点接收所述待存储数据,在至少一个所述数据存储节点中对所述待存储数据进行并发存储处理,并在监测到任意一个所述数据存储节点存储完成后均向所述客户端发送存储反馈信息,以使所述客户端记录所述存储反馈信息的条数,并在所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值时确定所述待存储数据存储完成。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取当前可用的数据存储节点,以及所述数据存储节点的地址;
基于所述数据存储节点以及所述数据存储节点的地址生成所述存储地址列表,并将所述存储地址列表保存至预设的位置。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
如果监测到所述客户端反馈的存储完成的信息,发起副本恢复操作,在至少一个所述数据存储节点中完成对所述待存储数据进行存储。
10.一种数据的存储装置,其特征在于,应用于客户端,所述客户端与服务端通信,所述装置包括:
第一接收模块,用于接收所述服务端根据数据写入请求返回的存储地址列表,其中,所述存储地址列表包括至少一个数据存储节点,以及每个所述数据存储节点的地址;
并发发送模块,用于基于所述存储地址列表向所述服务端并发发送待存储数据,以使所述服务端在所述数据存储节点中对所述待存储数据进行并发存储处理;
反馈模块,用于接收所述服务端返回的存储反馈信息,其中,所述服务端被配置为在任意一个所述数据存储节点存储完成后均向所述客户端发送所述存储反馈信息;
确定模块,用于记录所述存储反馈信息的条数,如果所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值,则确定所述待存储数据存储完成。
11.一种数据的存储装置,其特征在于,应用于服务端,所述服务端与客户端通信,所述装置包括:
第二接收模块,用于接收所述客户端发送的数据写入请求,其中,所述数据写入请求为所述客户端监测到用户输入的数据写入操作时发送的;
获取模块,用于获取预先存储的存储地址列表,其中,所述存储地址列表包括至少一个当前可用的数据存储节点,以及每个所述数据存储节点的地址;
第二发送模块,用于将所述存储地址列表发送至所述客户端,以使所述客户端基于所述存储地址列表向所述服务端并发发送待存储数据;
并发存储模块,用于通过至少一个所述数据存储节点接收所述待存储数据,在至少一个所述数据存储节点中对所述待存储数据进行并发存储处理,并在监测到任意一个所述数据存储节点存储完成后均向所述客户端发送存储反馈信息,以使所述客户端记录所述存储反馈信息的条数,并在所述存储反馈信息的条数超过所述数据存储节点的数量对应的数量阈值时确定所述待存储数据存储完成。
12.一种数据存储系统,其特征在于,包括服务端和客户端,其中,所述客户端与所述服务端通信;
所述客户端配置有权利要求10所述的装置,所述服务端配置有权利要求11所述的装置。
13.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-9任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011464272.9A CN114625702A (zh) | 2020-12-11 | 2020-12-11 | 数据的存储方法、装置、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011464272.9A CN114625702A (zh) | 2020-12-11 | 2020-12-11 | 数据的存储方法、装置、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625702A true CN114625702A (zh) | 2022-06-14 |
Family
ID=81896363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011464272.9A Pending CN114625702A (zh) | 2020-12-11 | 2020-12-11 | 数据的存储方法、装置、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625702A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389998A (zh) * | 2023-12-13 | 2024-01-12 | 北京汉勃科技有限公司 | 基于大模型的数据存储方法和装置 |
-
2020
- 2020-12-11 CN CN202011464272.9A patent/CN114625702A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389998A (zh) * | 2023-12-13 | 2024-01-12 | 北京汉勃科技有限公司 | 基于大模型的数据存储方法和装置 |
CN117389998B (zh) * | 2023-12-13 | 2024-03-12 | 北京汉勃科技有限公司 | 基于大模型的数据存储方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10261853B1 (en) | Dynamic replication error retry and recovery | |
US9411689B2 (en) | Method and relevant apparatus for starting boot program | |
WO2017096968A1 (zh) | 日志上传方法及装置 | |
CN109308227B (zh) | 故障检测控制方法及相关设备 | |
CN109783014B (zh) | 一种存储数据的方法及装置 | |
CN112398692B (zh) | 共识流程处理方法、装置和电子设备 | |
CN108958965B (zh) | 一种bmc监控可恢复ecc错误的方法、装置及设备 | |
WO2017147794A1 (zh) | 差异数据备份的方法和设备 | |
CN114625702A (zh) | 数据的存储方法、装置、系统及电子设备 | |
CN111737055A (zh) | 业务处理方法、装置、设备及计算机可读存储介质 | |
WO2021012562A1 (zh) | 区块链数据清理方法、装置、计算机设备和存储介质 | |
CN112131180B (zh) | 数据上报方法、装置以及存储介质 | |
CN111984473B (zh) | 一种内存快照数据获取方法及相关装置 | |
CN113849388A (zh) | 一种测试方法和装置、电子设备和存储介质 | |
CN111444033A (zh) | 基于springbatch的任务容错处理方法及相关设备 | |
CN110413686B (zh) | 一种数据写入方法、装置、设备及存储介质 | |
CN109634787B (zh) | 分布式文件系统监控器切换方法、装置、设备及存储介质 | |
CN110113395B (zh) | 共享文件系统维护方法及装置 | |
US10489239B2 (en) | Multiplexing system, multiplexing method, and computer program product | |
CN112083888A (zh) | 文件存储方法、装置和电子设备 | |
CN111475335A (zh) | 一种数据库快速恢复的方法、系统、终端及存储介质 | |
CN106897024B (zh) | 数据写入方法及装置 | |
CN115543698B (zh) | 数据备份方法、装置、设备及存储介质 | |
CN112527521B (zh) | 消息处理方法及设备 | |
CN112424742B (zh) | 一种ssd数据读取方法和装置 |
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 |