一种基于纠删码的数据读取方法、装置、设备制造方法及图纸

技术编号:17097292 阅读:28 留言:0更新日期:2018-01-21 08:59
本发明专利技术实施例公开了一种基于纠删码的数据读取方法、装置、设备和计算机可读存储介质,接收客户端发送的读操作请求;依据读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件;若是,则依据偏移量和长度,确定出所述数据对应的硬盘,并计算出每个硬盘中对象文件的目标偏移量和目标长度,通过向硬盘发送对应的读取命令,获取到对应的子数据;根据纠删码数据分布规则,拼接子数据,构成一个完整的目标数据,并将目标数据发送至所述客户端。通过上述判断步骤以及确定所需读取的数据所在的硬盘,减少了无效数据所在硬盘的读取和通讯耗时,从而提高了海量存储系统的小文件读性能。

A data reading method, device, and equipment based on erasure code

The embodiment of the invention discloses an erasure code data reading method, device, apparatus and computer readable storage medium based on the read operation request sent by a client is received; according to the offset and length of carrying the read operation request, determine the required data read meets the preset conditions to optimize read; if so, according to offset and length, determined that the data corresponding to the hard disk, and calculate the offset and length of each target object files in the hard disk, hard disk read through the corresponding to send commands, access to the corresponding data; according to the erasure code data distribution rules of segmented data, constitute a complete object the data and the target data is sent to the client. Through the above judgment steps and determining the hard disk where the required read data is located, the reading and communication time of the hard disk on the invalid data is reduced, thus improving the reading performance of the small file in the mass storage system.

【技术实现步骤摘要】
一种基于纠删码的数据读取方法、装置、设备
本专利技术涉及数据存储
,特别是涉及一种基于纠删码的数据读取方法、装置、设备和计算机可读存储介质。
技术介绍
纠删码(erasurecoding,EC)是一种数据保护方法,它将一定长度(stripe_width)的数据分割成K份,用K份数据通过算法计算出M份冗余数据块;并将这K+M份数据存储在不同的位置,比如磁盘、存储节点或者其它地理位置。只需要K+M份中的K份数据就可以恢复出源数据。纠删码与副本相比在保障数据安全的情况下,可以提高磁盘有效利用率;所以纠删码技术在分布式存储系统中得到广泛应用。传统方式中,纠删码的数据读写都是以纠删条带长度(stripe_width)为基本单元的,即使是读取一个字节的长度的内容,它也是读取这个字节所在的整个条带的内容;然后抽取出所需的数据。有可能所需的数据分布在一个硬盘上,但由于现有以整条纠删条带为基本操作单元实现的机制需要从K个硬盘上读取数据。但所需读取的数据小于一个完整的纠删码条带时可能会产生一些无用的读操作,在集群压力较大时这些无用的操作将成为影响整个集群性能的瓶颈点,造成存储集群的性能较低。可见,如何提高存储系统的小文件读性能,是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术实施例的目的是提供一种基于纠删码的数据读取方法、装置、设备和计算机可读存储介质,可以提高存储系统的小文件读性能。为解决上述技术问题,本专利技术实施例提供一种基于纠删码的数据读取方法,包括:接收客户端发送的读操作请求;依据所述读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件;若是,则依据所述偏移量和长度,确定出所述数据对应的硬盘;并计算出每个所述硬盘中对象文件的目标偏移量和目标长度;依据所述目标偏移量和目标长度,向每个所述硬盘发送对应的读取命令,获取到对应的子数据;根据纠删码数据分布规则,拼接所述子数据,构成一个完整的目标数据,并将所述目标数据封装成消息发送至所述客户端。可选的,所述依据所述读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件包括:判断所需读取的数据是否小于纠删条带长度;若是,则依据所述读操作请求中携带的偏移量和长度,判断所述数据所分布的硬盘个数是否小于源数据所分布的硬盘个数,并且所述数据所分布的硬盘是否正常运行。本专利技术实施例还提供了一种基于纠删码的数据读取装置,包括接收单元、判断单元、确定单元、发送单元和拼接单元;所述接收单元,用于接收客户端发送的读操作请求;所述判断单元,用于依据所述读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件;若是,则触发所述确定单元,所述确定单元,用于依据所述偏移量和长度,确定出所述数据对应的硬盘,并计算出每个所述硬盘中对象文件的目标偏移量和目标长度;所述发送单元,用于依据所述目标偏移量和目标长度,向每个所述硬盘发送对应的读取命令,获取到对应的子数据;所述拼接单元,用于根据纠删码数据分布规则,拼接所述子数据,构成一个完整的目标数据,并触发所述发送单元,所述发送单元还用于将所述目标数据封装成消息发送至所述客户端。可选的,所述判断单元具体用于判断所需读取的数据是否小于纠删条带长度;若是,则依据所述读操作请求中携带的偏移量和长度,判断所述数据所分布的硬盘个数是否小于源数据所分布的硬盘个数,并且所述数据所分布的硬盘是否正常运行。本专利技术实施例还提供了一种基于纠删码的数据读取设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现如权上述基于纠删码的数据读取方法的步骤。本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于纠删码的数据读取方法的步骤。由上述技术方案可以看出,接收客户端发送的读操作请求;依据读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件;当满足该预设的读优化条件时,则说明所需读取的数据属于小文件数据,为了避免无用的读操作,可以依据偏移量和长度,确定出所述数据对应的硬盘,并计算出每个所述硬盘中对象文件的目标偏移量和目标长度,然后向所述硬盘发送对应的读取命令,获取到对应的子数据;根据纠删码数据分布规则,拼接所述子数据,构成一个完整的目标数据,并将所述目标数据发送至所述客户端。通过上述判断步骤以及确定所需读取的数据所在的硬盘,打破了原有的以纠删条带长度为基本操作单元的思想,减少了无效数据所在硬盘的读取和通讯耗时,从而提高了海量存储系统的小文件读性能。附图说明为了更清楚地说明本专利技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种基于纠删码的数据读取方法的流程图;图2为本专利技术实施例提供的一种基于纠删码的数据读取装置的结构示意图;图3为本专利技术实施例提供的一种基于纠删码的数据读取设备的硬件结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本专利技术保护范围。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。接下来,详细介绍本专利技术实施例所提供的一种基于纠删码的数据读取方法。图1为本专利技术实施例提供的一种基于纠删码的数据读取方法的流程图,该方法包括:S101:接收客户端发送的读操作请求。读操作请求中携带有所需读取的数据的相关信息,如偏移量和长度等。S102:依据所述读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件。当所需读取的数据小于一个完整的纠删条带长度时,可能会产生一些无用的读操作,在本专利技术实施例中,为了减少无用的读操作,可以在读取数据之前,先对所需读取的数据进行优化判断。当所需读取的数据满足预设的读优化条件时,则说明需要对数据的读取进行优化,从而减少无用的读操作,即执行S103。需要说明的是,在本专利技术实施例中,对于数据存储的位置不做具体限定,可以存储于硬盘、存储节点或其它地理位置,为介绍方便,均以存储于硬盘上为例展开说明。读优化条件可以是用于判别所需读取的数据是否为一个完整的源数据的条件。具体的,可以先判断所需读取的数据是否小于纠删条带长度。当所需读取的数据不小于纠删条带长度时,则说明用户所需的数据可能是完整的源数据,此时按照现有的以整条纠删条带为基本操作单元读取数据即可。当所需读取的数据小于纠删条带长度时,则说明用户所需的数据并非是源数据,而是其中的部分数据,此时可以依据所述读操作请求中携带的偏移量和长度,判断所述数据所分布的硬盘个数是否小于源数据所分布的硬盘个数,并且所述数据所分布的硬盘是否正常运行。在本专利技术实施例中,数据分布在哪些硬盘上,则可以将这些硬盘称作数据所分布的硬盘。例如,将源数据划分成4份数据,每份数据存储在对应的一个硬盘上,则源数据所分布的硬本文档来自技高网
...
一种基于纠删码的数据读取方法、装置、设备

【技术保护点】
一种基于纠删码的数据读取方法,其特征在于,包括:接收客户端发送的读操作请求;依据所述读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件;若是,则依据所述偏移量和长度,确定出所述数据对应的硬盘;并计算出每个所述硬盘中对象文件的目标偏移量和目标长度;依据所述目标偏移量和目标长度,向每个所述硬盘发送对应的读取命令,获取到对应的子数据;根据纠删码数据分布规则,拼接所述子数据,构成一个完整的目标数据,并将所述目标数据封装成消息发送至所述客户端。

【技术特征摘要】
1.一种基于纠删码的数据读取方法,其特征在于,包括:接收客户端发送的读操作请求;依据所述读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件;若是,则依据所述偏移量和长度,确定出所述数据对应的硬盘;并计算出每个所述硬盘中对象文件的目标偏移量和目标长度;依据所述目标偏移量和目标长度,向每个所述硬盘发送对应的读取命令,获取到对应的子数据;根据纠删码数据分布规则,拼接所述子数据,构成一个完整的目标数据,并将所述目标数据封装成消息发送至所述客户端。2.根据权利要求1所述的方法,其特征在于,所述依据所述读操作请求中携带的偏移量和长度,判断所需读取的数据是否满足预设的读优化条件包括:判断所需读取的数据是否小于纠删条带长度;若是,则依据所述读操作请求中携带的偏移量和长度,判断所述数据所分布的硬盘个数是否小于源数据所分布的硬盘个数,并且所述数据所分布的硬盘是否正常运行。3.一种基于纠删码的数据读取装置,其特征在于,包括接收单元、判断单元、确定单元、发送单元和拼接单元;所述接收单元,用于接收客户端发送的读操作请求;所述判断单元,用于依据所述读操作请求中携带的偏移量和长度,判断所需读取的数据是否...

【专利技术属性】
技术研发人员:方兰春
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1