本申请实施例涉及数据存储领域,具体而言,涉及一种数据存储方法、装置、存储介质及电子设备。
背景技术:
1、随着存储技术的发展,分布式存储技术被广泛应用,对于分布式存储系统而言,时刻面临由于组件失效而导致的数据丢失风险。为了降低数据丢失的风险,分布式存储系统采用了数据冗余的方式存储数据,传统的数据冗余方式通常是将数据复制成多份进行备份保存,数据发生丢失或损坏时通过备份文件进行恢复,而上述方法需要占用大量的存储空间,导致数据存储效率低。
2、因此,相关技术中,存在如何提高数据存储效率的问题。
3、针对相关技术中,如何提高数据存储效率的问题,尚未提出有效的解决方案。
技术实现思路
1、本申请实施例提供了一种数据存储方法、装置、存储介质及电子设备,以至少解决相关技术中如何提高数据存储效率的问题。
2、根据本申请的一个实施例,提供了一种数据存储方法,应用于存储系统,所述存储系统包括客户端和服务端,所述客户端用于发起数据存储请求,所述服务端用于存储数据,包括:在确定所述客户端接收到存储目标数据的请求的情况下,将所述目标数据划分为第一数量的数据块,其中,所述数据块大小为预设数据容量;通过数据冗余算法对所述第一数量的数据块进行计算,得到第二数量的校验块,其中,所述第二数量小于所述第一数量,所述校验块大小为所述预设数据容量,所述校验块用于恢复所述数据块;将所述第一数量的数据块与所述第二数量的校验块保存至所述服务端。
3、在一个示例性实施例中,将所述目标数据划分为第一数量的数据块,包括:获取所述目标数据的起始存储地址,所述目标数据的数据容量;根据所述目标数据的数据容量和所述预设数据容量确定所述第一数量;根据所述起始存储地址和所述预设数据容量确定所述第一数量的数据块中第一个数据块的起始存储地址和所述第一个数据块的终止存储地址,其中,所述第一个数据块的起始存储地址与所述第一个数据块的终止存储地址之间的数据大小为所述预设数据容量;将所述第一个数据块的终止存储地址确定为下一个数据块的起始存储地址,根据所述下一个数据块的起始存储地址和所述预设数据容量确定所述下一个数据块的终止存储地址,得到所述第一数量的数据块中每个数据块的起始存储地址和所述每个数据块终止存储地址;根据所述每个数据块的起始存储地址和所述每个数据块终止存储地址从所述目标数据中读取所述每个数据块的数据;将所述每个数据块的数据保存在所述客户端中的内存空间中,得到所述第一数量的数据块。
4、在一个示例性实施例中,通过数据冗余算法对所述第一数量的数据块进行计算,得到第二数量的校验块,包括:根据预设数量对所述第一数量的数据块进行分组,得到多组数据块;通过所述数据冗余算法对所述多组数据块中的每组数据块进行计算,得到所述第二数量的校验块,其中,一组数据块对应一个校验块;将所述第二数量的校验块保存在所述客户端中的内存空间中。
5、在一个示例性实施例中,将所述第一数量的数据块与所述第二数量的校验块保存至服务端,包括:从所述客户端的内存空间中将所述第一数量的数据块与所述第二数量的校验块发送至所述服务端;将所述第一数量的数据块与所述第二数量的校验块从所述内存空间中删除。
6、在一个示例性实施例中,在根据所述每个数据块的起始存储地址和所述每个数据块终止存储地址从所述目标数据中读取所述每个数据块的数据之后,所述方法还包括:通过所述数据冗余算法对所述每个数据块的数据进行计算,得到所述第二数量的校验块,将所述第二数量的校验块保存在所述客户端中的内存空间中。
7、在一个示例性实施例中,将所述第一数量的数据块与所述第二数量的校验块保存至服务端,包括:将所述每个数据块的起始存储地址和所述每个数据块终止存储地址发送至所述服务端,以使所述服务端直接读取所述每个数据块的数据,得到所述第一数量的数据块;从所述客户端的内存空间中将所述第二数量的校验块发送至所述服务端;将所述第二数量的校验块从所述内存空间中删除。
8、在一个示例性实施例中,在将所述第一数量的数据块与所述第二数量的校验块保存至服务端之后,所述方法还包括:在确定接收到读取所述目标数据的指令之后,在所述客户端的内存空间中预留所述目标数据的数据容量,得到预留空间;将所述预留空间的起始存储地址和所述预留空间的终止存储地址发送至所述服务端,以使所述服务端确定所述第一数量的数据块中的每个数据块在所述预留空间中的存储地址;接收所述服务端发送至所述预留空间中的所述第一数量的数据块,得到所述目标数据。
9、根据本申请的另一个实施例,提供了一种数据存储装置,包括:划分模块,用于在确定所述客户端接收到存储目标数据的请求的情况下,将所述目标数据划分为第一数量的数据块,其中,所述数据块大小为预设数据容量;计算模块,用于通过数据冗余算法对所述第一数量的数据块进行计算,得到第二数量的校验块,其中,所述第二数量小于所述第一数量,所述校验块大小为所述预设数据容量,所述校验块用于恢复所述数据块;保存模块,用于将所述第一数量的数据块与所述第二数量的校验块保存至所述服务端。
10、根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
11、根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
12、根据本申请的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述方法实施例中的步骤。
13、通过本申请,可以在客户端接收到存储目标数据的请求之后将目标数据划分为第一数量的数据块,通过数据冗余算法对第一数量的数据块进行计算,得到第二数量的校验块,将第一数量的数据块与第二数量的校验块保存至服务端,在数据块丢失的情况下可以通过校验块可以对数据块进行恢复。因此,可以解决相关技术中,如何提高数据存储效率的问题。
1.一种数据存储方法,其特征在于,应用于存储系统,所述存储系统包括客户端和服务端,所述客户端用于发起数据存储请求,所述服务端用于存储数据,包括:
2.根据权利要求1所述的方法,其特征在于,将所述目标数据划分为第一数量的数据块,包括:
3.根据权利要求2所述的方法,其特征在于,通过数据冗余算法对所述第一数量的数据块进行计算,得到第二数量的校验块,包括:
4.根据权利要求3所述的方法,其特征在于,将所述第一数量的数据块与所述第二数量的校验块保存至服务端,包括:
5.根据权利要求2所述的方法,其特征在于,在根据所述每个数据块的起始存储地址和所述每个数据块终止存储地址从所述目标数据中读取所述每个数据块的数据之后,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,将所述第一数量的数据块与所述第二数量的校验块保存至服务端,包括:
7.根据权利要求1所述的方法,其特征在于,在将所述第一数量的数据块与所述第二数量的校验块保存至服务端之后,所述方法还包括:
8.一种数据存储装置,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至7任一项中所述的方法的步骤。
10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至7任一项中所述的方法的步骤。
