System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及分布式存储,尤其涉及一种数据处理方法、装置、服务器及存储介质。
技术介绍
1、现有技术中,分布式存储可实现海量数据的存储。海量数据的存储通过冗余存储技术保持高可靠性。
2、在使用纠删码技术进行冗余存储时,服务器利用纠删码技术,生成k+r份数据,存储于对应的k+r个存储节点中,其中,k为原始数据的切片数量,r为校验分片的切片数量,在读取已存储的数据时,只需从上述k+r个存储节点中获取任意的至少k个切片数据,就可通过纠删码算法计算,恢复出原始数据。
3、在对各切片数据的存储过程中,一般采用强一致性的写入策略来保障数据可靠性,即在k+r个切片数据皆在对应的存储节点中写入完成后,才确定数据写入成功。但是,由于存储节点对数据存储任务的处理效率不一致,易存在部分存储节点的写入延迟现象,导致服务器确定原始数据写入成功的信息存在时间延迟,原始数据的可用性差。
技术实现思路
1、本申请提供一种数据处理方法、装置、服务器及存储介质,用以解决上述问题。
2、第一方面,本申请提供一种数据处理方法,所述方法应用于服务器,所述服务器与终端设备通信连接,所述服务器和其他服务器联合部署分布式系统,所述方法包括:
3、获取所述终端设备发送的目标数据;
4、将所述目标数据写入目标逻辑对象时,按照预设纠删码冗余配比对所述目标数据进行数据分片,获得w个子数据;所述w个子数据包括k个原始子数据和m个校验子数据,各所述子数据的数据长度相同;
5
6、当至少n个存储文件写入成功时,向所述终端设备反馈写入成功信息;所述n个存储文件对应存储n个子数据,所述n个子数据包括k个原始子数据和r个校验子数据,m≥r≥0。
7、在上述技术方案中,服务器在存储目标数据时,按照预设纠删码冗余配比将目标数据拆分为k+m个子数据,在存储过程中,只需成功写入大于或等于k的n个子数据即可反馈数据写入成功的信息,以使用户可对该目标数据进行后续操作,提高了该目标数据的可用性,由于n大于或等于k,因此,即使剩余w-n个子数据还未完全写入,也可通过已存储成功的n个子数据完成数据恢复,保障了该目标数据的可靠性。
8、可选地,所述分布式系统设有客户端,所述目标逻辑对象中记录数据存储状态的信息;
9、将各所述子数据写入进所述目标逻辑对象对应的多个存储文件中,具体包括:
10、控制所述客户端获取记录数据存储状态的第一信息;
11、根据所述第一信息和所述w个子数据,生成w个数据写入请求,并将各所述数据写入请求传输至储存存储文件的服务器;
12、所述数据写入请求用于使储存所述存储文件的服务器从本地获取记录数据存储状态的第二信息,在所述数据写入请求处于所述存储文件的当前请求队列的首端时,从所述数据写入请求中获取所述第一信息,当所述第一信息和所述第二信息一致时,将所述数据写入请求中的子数据储存进所述存储文件,并在存储完成后向所述客户端反馈写入成功信息;
13、当所述第一信息和所述第二信息不一致时,将所述数据写入请求排序至所述当前请求队列的尾端;所述当前请求队列包括至少一个数据写入请求,各数据写入请求中的第一信息不同。
14、在上述技术方案中,控制器在向目标逻辑对象存储多个数据时,会根据获取数据的顺序,依次对数据进行切片,并根据记录各数据在目标逻辑对象存储前的存储状态的第一信息,生成多个数据写入请求,并将该写入请求传输至对应的服务器,该服务器在获得至少一个数据写入请求后,将各数据写入请求加入请求队列,按照请求队列的顺序进行响应,在响应过程中,会在本地获取记录存储状态的第二信息,与当前响应的数据写入请求中的第一信息进行比对,当一致时,则该数据写入请求在请求队列中的顺序准确,可将该请求中的子数据存储到本地的存储文件中,更新第二信息,并反馈对应的写入成功信息,当第一信息和第二信息不一致时,则确定该数据写入请求的子数据写入之前,还有其他的数据未写入,则调整该数据写入请求在请求队列中的位置,令服务器可找到包含当前待写入的子数据的数据写入请求,并对数据进行正确写入,保障了在各服务器中存储各数据切片的顺序一致性。
15、可选地,当至少n个存储文件写入成功时,向所述终端设备反馈写入成功信息,具体包括:
16、当获得至少n个存储文件的写入成功信息时,构建所述目标逻辑对象的标识信息、所述目标数据的标识信息、所述目标数据的写入偏移量、所述目标数据的写入长度的映射关系,并将所述映射关系存储进所述目标逻辑对象的元数据中;
17、根据所述目标数据的写入偏移量、所述目标数据的写入长度,更新所述目标逻辑对象中储存的数据储存状态信息;
18、生成并向所述终端设备发送写入成功信息。
19、可选地,所述数据存储状态的信息包括所述目标逻辑对象分配的存储空间中数据写入的偏移量;
20、根据所述目标数据的写入偏移量、所述目标数据的写入长度,更新所述目标逻辑对象中储存的数据储存状态信息,具体包括:
21、将所述目标数据的写入偏移量和所述目标数据的写入长度之和确定为所述目标数据写入后的所述目标逻辑对象更新后的数据储存状态信息。
22、可选地,在向所述终端设备反馈写入成功信息之后,所述方法还包括:
23、获取所述目标逻辑对象的偏移量;
24、当所述偏移量大于或等于预设封装阈值时,从各存储文件中获取对应的数据写入偏移量集合,所述数据写入偏移量集合包括每次子数据写入后数据存储起始位置的偏移量;
25、根据各所述数据写入偏移量集合,将最后一次满足存储文件写入成功条件的写入数据对应的偏移量确定为数据封装长度;所述存储文件写入成功条件为在所述目标逻辑对象对应的所述存储文件中,至少n个存储文件写入成功;
26、将所述数据封装长度储存进所述目标逻辑对象的元数据中,并对所述目标逻辑对象进行封装。
27、可选地,所述方法还包括:
28、针对各所述存储文件,获得对应数据写入偏移量集合中的最大偏移量;
29、当所述最大偏移量大于所述数据封装长度,生成第一数据恢复指令,并将所述第一数据恢复指令发送至储存所述存储文件的服务器;所述第一数据恢复指令用于使所述储存所述存储文件的服务器将存储文件中的数据长度截断至所述数据封装长度;
30、当所述最大偏移量小于所述数据封装长度,生成第二数据恢复指令,并将所述第二数据恢复指令发送至储存所述存储文件的服务器;所述第二数据恢复指令用于使储存所述存储文件的服务器从其他存储器中获取所述最大偏移量之后的数据,并根据各所述最大偏移量之后的数据进行数据恢复。
31、在上述技术方案中,在数据封装之后,可根据各存储文件中数据的最大偏移量和数据封装长度,确定存储的数据是否需本文档来自技高网...
【技术保护点】
1.一种数据处理方法,其特征在于,所述方法应用于服务器,所述服务器与终端设备通信连接,所述服务器和其他服务器联合部署分布式系统,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述分布式系统设有客户端;
3.根据权利要求2所述的方法,其特征在于,当至少N个存储文件写入成功时,向所述终端设备反馈写入成功信息,具体包括:
4.根据权利要求3所述的方法,其特征在于,所述数据存储状态的信息包括所述目标逻辑对象分配的存储空间中数据写入的偏移量;
5.根据权利要求1所述的方法,其特征在于,在向所述终端设备反馈写入成功信息之后,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.一种数据处理装置,其特征在于,包括:
10.一种服务器,其特征在于,包括:处理器以及与所述处理器通信连接的存储器;
11.一种计算机可读存储介
...【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法应用于服务器,所述服务器与终端设备通信连接,所述服务器和其他服务器联合部署分布式系统,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述分布式系统设有客户端;
3.根据权利要求2所述的方法,其特征在于,当至少n个存储文件写入成功时,向所述终端设备反馈写入成功信息,具体包括:
4.根据权利要求3所述的方法,其特征在于,所述数据存储状态的信息包括所述目标逻辑对象分配的存储空间中数据写入的偏移量;
5.根据权利要求1所述的方法,其特征在于,在向所述终端设备反馈写入...
【专利技术属性】
技术研发人员:陈积,钟忻,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。