基于纠删码的数据截断方法及装置制造方法及图纸

技术编号:19056535 阅读:28 留言:0更新日期:2018-09-29 12:07
本发明专利技术涉及分布式存储技术领域,提供一种基于纠删码的数据截断方法及装置,所述方法包括:接收客户端发送的数据截断命令,其中,数据截断命令由客户端响应文件截断请求产生、以截断存储于存储节点的待截断数据;判断待截断数据所属的数据维护单元上是否有正在处理的数据写事务,若有,则等待所述正在处理的数据写事务被处理完成再执行数据截断命令;当待截断数据所属的数据维护单元上无正在处理的数据写事务时,执行数据截断命令。本发明专利技术通过保证截断命令执行前没有正在执行的数据写事务,避免了对待截断数据中部分数据的备份和删除操作,解决了数据截断时的写放大问题,提升了分布式存储系统的写性能。

【技术实现步骤摘要】
基于纠删码的数据截断方法及装置
本专利技术涉及分布式存储
,具体而言,涉及一种基于纠删码的数据截断方法及装置。
技术介绍
在分布式存储系统中,纠删码已经应用于对象存储、块存储和文件系统存储。纠删码在业务处理过程中需要对所有写操作(包括截断操作)进行分布式容错处理,预防节点故障对数据的破坏。然而,由于需要考虑其他写事务对截断操作的影响,因此必须要对截断操作做额外的容错处理,造成了截断操作的放大。其中所述截断操作的放大包括对待截断数据中的部分数据的备份和删除,从而影响了纠删码的性能,降低了分布式存储系统的写性能。
技术实现思路
本专利技术实施例的目的在于提供一种基于纠删码的数据截断方法及装置,用以改善上述对截断操作做额外的容错处理,造成了截断操作的放大的问题。为了实现上述目的,本专利技术实施例采用的技术方案如下:第一方面,本专利技术实施例提供了一种基于纠删码的数据截断方法,应用于分布式存储系统中的存储节点,所述存储节点与客户端通信连接,所述方法包括:接收客户端发送的数据截断命令,其中,数据截断命令由客户端响应文件截断请求产生、以截断存储于存储节点的待截断数据;判断待截断数据所属的数据维护单元上是否有正在处理的数据写事务,若有,则等待正在处理的数据写事务被处理完成再执行数据截断命令;当待截断数据所属的数据维护单元上无正在处理的数据写事务时,执行数据截断命令。第二方面,本专利技术实施例还提供了一种基于纠删码的数据截断装置,应用于分布式存储系统中的存储节点,所述存储节点与客户端通信连接,所述装置包括接收模块、判断模块及数据截断模块。其中,接收模块用于数据截断命令由客户端响应文件截断请求产生、以截断存储于存储节点的待截断数据;判断模块用于判断待截断数据所属的数据维护单元上是否有正在处理的数据写事务;数据截断模块用于当待截断数据所属的数据维护单元上有正在处理的数据写事务时,等待正在处理的数据写事务被处理完成再执行数据截断命令;当待截断数据所属的数据维护单元上无正在处理的数据写事务时,执行数据截断命令。相对现有技术,本专利技术实施例提供的一种基于纠删码的数据截断方法及装置,首先,存储节点接收客户端发送的数据截断命令,其中,数据截断命令由所述客户端响应文件截断请求产生、以截断存储于所述存储节点的待截断数据;然后,判断待截断数据所属的数据维护单元上是否有正在处理的数据写事务,若有,则等待正在处理的数据写事务被处理完成再执行数据截断命令;最后,当待截断数据所属的数据维护单元上无正在处理的数据写事务时,执行数据截断命令。与现有技术相比,本专利技术实施例由于在数据截断命令执行前没有正在执行的数据写事务,使得无需考虑该正在执行的数据写事务对数据截断命令的影响,因此无需对待截断数据中的部分数据进行备份和删除操作,解决了数据截断时的写放大问题,提升了分布式存储系统的写性能。为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了本专利技术实施例提供的基于纠删码的数据截断方法应用场景示意图。图2示出了本专利技术实施例提供的存储节点的方框示意图。图3示出了本专利技术实施例提供的基于纠删码的数据截断方法流程图。图4示出了本专利技术实施例提供的存储节点异常恢复处理方法流程图。图5为图4示出了步骤S105的子步骤流程图。图6示出了本专利技术实施例提供的基于纠删码的数据截断装置的方框示意图。图标:10,30,40-存储节点;20-客户端;101-存储器;102-存储控制器;103-处理器;200-基于纠删码的数据截断装置;201-接收模块;202-判断模块;203-数据截断模块;204-确定模块;205-控制模块。具体实施方式下面将结合本专利技术实施例中附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本专利技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。请参照图1,图1示出了本专利技术实施例提供的基于纠删码的数据截断方法应用场景示意图。分布式存储系统与客户端20通信连接,分布式存储系统中包括多个存储节点,分布式存储系统将用户通过客户端20发送至分布式存储系统的需要存储的数据分散存储在多个存储节点上,该多个存储节点可以是存储节点10、存储节点30、存储节点40等,其中,多个存储节点中的任意一个存储节点可以是主存储节点,多个存储节点中除主存储节点之外的其余存储节点可以是从存储节点,也就是说,图1中的主存储节点可以是存储节点10、存储节点30、存储节点40等中的任意一个。为了便于描述,在本专利技术实施例中,确定存储节点10为主存储节点,除存储节点10之外的其他存储节点,例如存储节点30、存储节点40等均为从存储节点。其中,存储节点10与客户端20通信连接,并均与存储节点30、存储节点40等从存储节点通信连接,用户发送文件截断请求至客户端20以使客户端20响应该截断请求,并产生相应的数据截断命令,存储节点10接收客户端20发送的数据截断命令,并控制存储节点30、存储节点40等从存储节点截断与其对应的待截断数据。存储节点10在存储节点10、存储节点30、存储节点40等中至少一个异常恢复时首先确定需要执行数据截断命令的待同步的存储节点,然后控制待同步的存储节点执行数据截断命令以截断与该待同步的存储节点对应的待截断数据。请参照图2,图2示出了本专利技术实施例提供的存储节点10的方框示意图,存储节点10可以是,但不限于个人电脑(personalcomputer,PC)、服务器、存储阵列等等。存储节点10的操作系统可以是,但不限于,Windows系统、Linux系统、Unix系统等。所述存储节点10包括基于纠删码的数据截断装置200、存储器101、存储控制器102及处理器103。存储器101、存储控制器102及处理器103各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。基于纠删码的数据截断装置200包括至少一个可以软件或固件(firmware)的形式存储于存储器101中或固化在所述存储节点10的操作系统(operatingsystem,OS)中的软件功能模块。处理器103用于执行存储器101中存储的可执行模块,例如基于纠删码的数据截断装置200所包括的软件功能模块及计算机程序本文档来自技高网...

【技术保护点】
1.一种基于纠删码的数据截断方法,其特征在于,应用于分布式存储系统中的存储节点,所述存储节点与客户端通信连接,所述方法包括:接收所述客户端发送的数据截断命令,其中,所述数据截断命令由所述客户端响应文件截断请求产生、以截断存储于所述存储节点的待截断数据;判断所述待截断数据所属的数据维护单元上是否有正在处理的数据写事务,若有,则等待所述正在处理的数据写事务被处理完成再执行所述数据截断命令;当所述待截断数据所属的数据维护单元上无正在处理的数据写事务时,执行所述数据截断命令。

【技术特征摘要】
1.一种基于纠删码的数据截断方法,其特征在于,应用于分布式存储系统中的存储节点,所述存储节点与客户端通信连接,所述方法包括:接收所述客户端发送的数据截断命令,其中,所述数据截断命令由所述客户端响应文件截断请求产生、以截断存储于所述存储节点的待截断数据;判断所述待截断数据所属的数据维护单元上是否有正在处理的数据写事务,若有,则等待所述正在处理的数据写事务被处理完成再执行所述数据截断命令;当所述待截断数据所属的数据维护单元上无正在处理的数据写事务时,执行所述数据截断命令。2.如权利要求1所述的方法,其特征在于,所述存储节点为多个,所述多个存储节点通信连接,每一存储节点均保存有数据维护单元日志,所述多个存储节点包括主存储节点,所述方法还包括:所述主存储节点获取多个存储节点的数据维护单元日志,并依据所述多个存储节点的数据维护单元日志从多个存储节点中确定出待同步的存储节点,其中,所述待同步的存储节点上存储有待截断数据;所述主存储节点控制所述待同步的存储节点执行所述数据截断命令以截断所述待同步的存储节点上存储的待截断数据。3.如权利要求2所述的方法,其特征在于,所述数据维护单元日志中包括多条日志记录,每条日志记录包括一个按预设规则生成的编号,所述依据所述多个存储节点的数据维护单元日志从多个存储节点中确定出待同步的存储节点的步骤包括:找出多个数据维护单元日志中均存在且编号最大的日志记录作为权威日志;当所述权威日志的下一条日志为数据截断操作的日志时,确定该数据截断操作的日志为截断日志;将多个数据维护单元日志中未包括所述截断日志的存储节点作为待同步的存储节点。4.如权利要求2所述的方法,其特征在于,当所述待同步的存储节点为所述从存储节点时,所述主存储节点控制所述待同步的存储节点执行所述数据截断命令以截断所述待同步的存储节点上存储的待截断数据的步骤包括:所述主存储节点向所述待同步的存储节点发送所述数据截断命令以截断所述待同步的存储节点上存储的待截断数据。5.如权利要求2所述的方法,其特征在于,当所述待同步的存储节点为所述主存储节点时,所述主存储节点控制所述待同步的存储节点执行所述数据截断命令以截断所述待同步的存储节点上存储的待...

【专利技术属性】
技术研发人员:王文锋
申请(专利权)人:新华三技术有限公司成都分公司
类型:发明
国别省市:四川,51

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

1