本发明涉及云存储技术领域,更具体地说,涉及一种基于云储存的直接纠删码优化方法,还涉及一种基于云储存的直接纠删码优化系统。
背景技术:
在计算机技术高速发展的今天,数据呈现爆炸式增长,云存储系统的数据存储的速度越来越倍受关注,其中,纠删码作为存储系统容错的主要方式越来越受到重视。
纠删码的前端存在一个缓存池,数据先写入缓存池中,满足一定条件后数据会从缓存池中转移到纠删池中,而不是有数据写入时直接写入纠删池中。在云存储系统直接纠删码中,取消了前端的缓存池,其实现原理为先将源数据读到内存中,再将队列中所有的操作应用到内存的源数据上,操作应用完成后,最后进行完全覆盖写入,存在数据重复写入的情况。
因此,如何避免直接纠删码中大量数据重复写入,提高写入效率是本领域技术人员急需要解决的技术问题。
技术实现要素:
为解决上述技术问题,本发明提供一种基于云储存的直接纠删码优化方法,能够避免直接纠删码中大量数据重复写入,提高写入效率。
为实现上述目的,本发明提供如下技术方案:
一种基于云储存的直接纠删码优化方法,包括:
接收客户端发送的操作,判断所述操作是否为正确操作,如果是,将所述操作写入队列;
遍历所述队列中的所有操作并记录所述操作的数据范围信息,将所述操作以及所述数据范围信息分别进行合并;
根据合并后的数据范围信息判断合并后的操作是否为对齐操作,如果是,则生成对齐操作事务;
将所述对齐操作事务提交至云存储系统中进行数据落盘,完成数据写入。
优选的,在上述基于云储存的直接纠删码优化方法中,
如果所述合并后的操作不是所述对齐操作,则生成完全覆盖写操作事务;
将所述完全覆盖写操作事务提交至云存储系统中进行数据落盘,完成数据写入。
优选的,在上述基于云储存的直接纠删码优化方法中,所述将所述对齐操作事务提交至云存储系统中进行数据落盘,完成数据写入,之后还包括:将数据写入成功结果反馈至所述客户端。
优选的,在上述基于云储存的直接纠删码优化方法中,所述将数据写入成功结果反馈至所述客户端之后,还包括:
将客户端发送的所述操作从所述客户端中删除。
本发明还提供了一种基于云储存的直接纠删码优化系统,包括:
预处理模块,用于接收客户端发送的操作,判断所述操作是否为正确操作,如果是,将所述操作写入队列;
合并模块,用于遍历所述队列中的所有操作并记录所述操作的数据范围信息,将所述操作以及所述数据范围信息分别进行合并;
判断模块,用于根据合并后的数据范围信息判断合并后的操作是否为对齐操作,如果是,则生成对齐操作事务;
提交模块,用于将所述对齐操作事务提交至云存储系统中进行数据落盘,完成数据写入。
优选的,在上述基于云储存的直接纠删码优化系统中,所述判断模块还用于如果所述合并后的操作不是所述对齐操作,则生成完全覆盖写操作事务;
将所述完全覆盖写操作事务提交至云存储系统中进行数据落盘,完成数据写入。
优选的,在上述基于云储存的直接纠删码优化系统中,还包括:
反馈模块,用于将数据写入成功结果反馈至所述客户端。
优选的,在上述基于云储存的直接纠删码优化系统中,还包括:
删除模块,用于将客户端发送的所述操作从所述客户端中删除。
从上述技术方案可以看出,本发明所提供的一种基于云储存的直接纠删码优化方法,包括:接收客户端发送的操作,判断所述操作是否为正确操作,如果是,将所述操作写入队列;遍历所述队列中的所有操作并记录所述操作的数据范围信息,将所述操作以及所述数据范围信息分别进行合并;根据合并后的数据范围信息判断合并后的操作是否为对齐操作,如果是,则生成对齐操作事务;将所述对齐操作事务提交至云存储系统中进行数据落盘,完成数据写入。
直接纠删码读取磁盘的上的源有数据到内存中,再将客户端发送来的操作应用到内存中的源数据上,由于现有技术中即优化前的方法是将内存中所有数据,所有数据包括源数据和操作附带的数据以完全覆盖的形式写入磁盘上,此方法重复写入了源数据。而本发明提供的方法,首先判断了客户端的操作是否是纠删码条带对齐,如果操作是纠删码条带对齐,仅仅将操作附带的数据以追加写的形式写入磁盘,即将纠删码条带对齐的数据写入磁盘,而避免了源数据的重复写入,从而提高了数据写入的效率。
将队列中的操作遍历,并记录所述操作的数据范围信息,将所述操作以及所述数据范围信息分别进行合并,由于将操作合并,即一次可以处理多个操作,提高处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种基于云储存的直接纠删码优化方法示意图;
图2为本发明实施例提供的一种基于云储存的直接纠删码优化系统示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种基于云储存的直接纠删码优化方法示意图。
在一种具体的实施方式中,提供了一种基于云储存的直接纠删码优化方法,包括:
步骤S1:接收客户端发送的操作,判断所述操作是否为正确操作,如果是,将所述操作写入队列;
云存储系统的服务器收到客户端发送的操作,首先对这些操作进行预处理,判断所述操作是否为正确操作,例如判断这些操作的参数是否正确,是否是重复的操作或者是否存在可以忽略的操作,或者对这些操作的参数进行处理,如果操作不满足预设条件,则直接返回给客户端;如果满足条件,则压入队列中。
步骤S2:遍历所述队列中的所有操作并记录所述操作的数据范围信息,将所述操作以及所述数据范围信息分别进行合并;
遍历所述队列中的所有操作,将队列中的操作先应用到内存中,记录所述操作的数据范围信息,直到遍历处理完成队列中所有的操作,之后将操作以及所述数据范围信息进行合并。
步骤S3:根据合并后的数据范围信息判断合并后的操作是否为对齐操作,如果是,则生成对齐操作事务;
其中,云存储系统中所有的操作都会封装成对应的事务来处理,这样能够保证该操作应用完成,或者并未进行应用,不会出现应用一般的情况。对齐操作事务就是对齐操作执行单元,具有原子性,对齐操作为了保证其原子性都会封装成对应的事务。
步骤S4:将所述对齐操作事务提交至云存储系统中进行数据落盘,完成数据写入。
其中,根据判断结果将内存中的数据生成相应的事务,提交给云存储系统实现数据的落盘,完成数据写入,数据的落盘即文件系统缓存中的数据真正的写到硬盘上。
在上述实施方式的基础上,如果所述合并后的操作不是所述对齐操作,则生成完全覆盖写操作事务;
将所述完全覆盖写操作事务提交至云存储系统中进行数据落盘,完成数据写入。
直接纠删码读取磁盘的上的源有数据到内存中,再将客户端发送来的操作应用到内存中的源数据上,由于现有技术中即优化前的方法是将内存中所有数据,所有数据包括源数据和操作附带的数据以完全覆盖的形式写入磁盘上,此方法重复写入了源数据。而本发明提供的方法,首先判断了客户端的操作是否是纠删码条带对齐,如果操作是纠删码条带对齐,仅仅将操作附带的数据以追加写的形式写入磁盘,即将纠删码条带对齐的数据写入磁盘,而避免了源数据的重复写入,从而提高了数据写入的效率。
将队列中的操作遍历,并记录所述操作的数据范围信息,将所述操作以及所述数据范围信息分别进行合并,由于将操作合并,即一次可以处理多个操作,提高处理效率。
进一步的,在上述基于云储存的直接纠删码优化方法中,所述将所述对齐操作事务提交至云存储系统中进行数据落盘之后,还包括:
将数据写入成功结果反馈至所述客户端。
进一步的,为了减少数据处理量,加快数据处理速度,在上述基于云储存的直接纠删码优化方法中,所述将所述对齐操作结果反馈至所述客户端之后,还包括:
将客户端发送的所述操作从所述客户端中删除。
其中,落盘成功后会将列表中的客户端请求操作的结果反馈给客户端,并从列表中删除客户端的请求操作,完成与客户端整个通信过程。
如图2所示,图2为本发明实施例提供的一种基于云储存的直接纠删码优化系统示意图。
本发明还提供了一种基于云储存的直接纠删码优化系统,包括:
预处理模块100,用于接收客户端发送的操作,判断所述操作是否为正确操作,如果是,将所述操作写入队列;
合并模块200,用于遍历所述队列中的所有操作并记录所述操作的数据范围信息,将所述操作以及所述数据范围信息分别进行合并;
判断模块300,用于根据合并后的数据范围信息判断合并后的操作是否为对齐操作,如果是,则生成对齐操作事务;
提交模块400,用于将所述对齐操作事务提交至云存储系统中进行数据落盘,完成数据写入。
进一步的,在上述基于云储存的直接纠删码优化系统中,
所述判断模块300还用于如果所述合并后的操作不是所述对齐操作,则生成完全覆盖写操作事务;
所述提交模块400还用于将所述完全覆盖写操作事务提交至云存储系统中进行数据落盘,完成数据写入。
进一步的,在上述基于云储存的直接纠删码优化系统中,还包括:
反馈模块,用于将数据写入成功结果反馈至所述客户端。
进一步的,在上述基于云储存的直接纠删码优化系统中,还包括:
删除模块,用于将客户端发送的所述操作从所述客户端中删除。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。