一种写操作控制方法、系统、装置及计算机可读存储介质与流程

文档序号:14897324发布日期:2018-07-08 08:47阅读:126来源:国知局

本发明涉及分布式文件系统领域,特别是涉及一种写操作控制方法、系统、装置及计算机可读存储介质。



背景技术:

分布式存储系统中,通常采用ec(erasurecode,纠删码)技术来实现数据的冗余可靠性,这种机制保障了在不超过冗余个数的硬盘出现故障时,数据是可恢复的。具体地,client端每次写数据时,通过ec技术计算出原始数据块对应的校验数据块,然后同时把原始数据块和校验数据块一起发送至osd(object-basedstorage,数据对象服务)端下盘。校验数据块的下盘占用了业务下盘的io(input/output,输入/输出)路径,使得业务io路径的下盘数据量较多,从而导致写请求的时延较长,业务的吞吐量性能较低,难以支持成百上千路的视频流写入,可能出现业务阻塞的问题。

因此如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种写操作控制方法、系统、装置及计算机可读存储介质,每次写数据时,调用写线程只把待写入数据下盘,然后调用后台线程异步计算出校验数据块,再单独下盘。后台线程不工作在业务下盘的io路径上,减少了业务io路径的下盘数据量,降低了业务每次写数据的时延,使得分布式存储系统能提供更高的性能,支撑更多路数的视频流业务,满足客户需求。

为解决上述技术问题,本发明提供了一种写操作控制方法,应用于分布式存储系统,包括:

在接收到写请求时,调用写线程将待写入数据按照条带方式分割成原始数据块,并根据所述条带对应的数据对象服务osd信息将所述原始数据块发送到所述osd节点上下盘;

调用后台线程根据所述待写入数据生成校验数据块,并发送所述校验数据块到对应的osd节点上下盘。

优选地,所述根据所述待写入数据生成校验数据块的过程具体为:

判断所述待写入数据是否是首次写;

如果是首次写,则根据当前所述待写入数据直接生成校验数据块;

如果是修改写,则判断所述修改写是否是整条带覆盖写,当是所述整条带覆盖写时,根据当前所述待写入数据直接生成校验数据块,当不是所述整条带覆盖写时,合并所述待写入数据和原有数据,根据合并后的数据生成校验数据块。

优选地,所述将所述原始数据块发送到所述osd节点上下盘之后,该方法还包括:

发送用于指示写入成功的返回结果至上层业务。

优选地,所述发送所述校验数据块到对应的osd节点上下盘之后,该方法还包括:

释放缓存中保存的所述待写入的数据。

为解决上述技术问题,本发明还提供了一种写操作控制系统,应用于分布式存储系统,包括:

第一发送模块,用于在接收到写请求时,调用写线程将待写入数据按照条带方式分割成原始数据块,并根据所述条带对应的数据对象服务osd信息将所述原始数据块发送到所述osd节点上下盘;

第二发送模块,用于调用后台线程根据所述待写入数据生成校验数据块,并发送所述校验数据块到对应的osd节点上下盘。

优选地,所述第二发送模块具体用于判断所述待写入数据是否是首次写;

如果是首次写,则根据当前所述待写入数据直接生成校验数据块;

如果是修改写,则判断所述修改写是否是整条带覆盖写,当是所述整条带覆盖写时,根据当前所述待写入数据直接生成校验数据块,当不是所述整条带覆盖写时,合并所述待写入数据和原有数据,根据合并后的数据生成校验数据块。

优选地,该系统还包括返回模块,用于发送用于指示写入成功的返回结果至上层业务。

优选地,该系统还包括删除模块,用于释放缓存中保存的所述待写入的数据。

为解决上述技术问题,本发明还提供了一种写操作控制装置,应用于分布式存储系统,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一项所述写操作控制方法的步骤。

为解决上述技术问题,本发明还提供了一种计算机可读存储介质,应用于分布式存储系统,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述写操作控制方法的步骤。

本发明提供了一种写操作控制方法,应用于分布式存储系统,包括:在接收到写请求时,调用写线程将待写入数据按照条带方式分割成原始数据块,并根据条带对应的数据对象服务osd信息将原始数据块发送到osd节点上下盘;调用后台线程根据待写入数据生成校验数据块,并发送校验数据块到对应的osd节点上下盘。

相比于现有技术中同时把原始数据块和校验数据块一起发送至osd端下盘,本申请中每次写数据时,调用写线程只把待写入数据下盘,然后调用后台线程异步计算出校验数据块,再单独下盘。可见,后台线程不工作在业务下盘的io路径上,减少了业务io路径的下盘数据量,这样就降低了业务每次写数据的时延,使得分布式存储系统能提供更高的性能,支撑更多路数的视频流业务,满足客户需求。

本发明还提供了一种写操作控制系统、装置及计算机存储介质,与上述写操作控制方法具有相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种写操作控制方法的过程流程图;

图2为本发明提供的一种写操作控制系统的结构示意图。

具体实施方式

本发明的核心是提供一种写操作控制方法、系统、装置及计算机可读存储介质,每次写数据时,调用写线程只把待写入数据下盘,然后调用后台线程异步计算出校验数据块,再单独下盘。后台线程不工作在业务下盘的io路径上,减少了业务io路径的下盘数据量,降低了业务每次写数据的时延,使得分布式存储系统能提供更高的性能,支撑更多路数的视频流业务,满足客户需求。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明提供的一种写操作控制方法的过程流程图,该方法应用于分布式存储系统,包括:

步骤s11:在接收到写请求时,调用写线程将待写入数据按照条带方式分割成原始数据块,并根据条带对应的数据对象服务osd信息将原始数据块发送到osd节点上下盘;

需要说明的是,在视频监控场景中,绝大部分的数据写入后是很少被访问的,对数据可靠性要求不高,但此类场景对存储的时延和性能要求很高,要能支持成百上千路的视频流写入,并且不能阻塞业务。在此类场景下,同时把原始数据块和校验数据块一起发送至osd端下盘就增加了每次下盘的io次数,比较难以提升性能来满足此类场景的高并发的极致性能。

具体地,本申请在接收到写请求时,调用写线程只把待写入数据下盘,相比于现有技术中同时把原始数据块和校验数据块一起发送至osd端下盘,减少了业务io路径的下盘数据量,对性能有较大的提升(低时延和高带宽),能支撑更多路数的视频流业务,满足客户需求。

步骤s12:调用后台线程根据待写入数据生成校验数据块,并发送校验数据块到对应的osd节点上下盘。

具体地,调用后台线程异步计算校验数据块,再单独把校验数据块下盘,保证最终存储的数据的冗余可靠性。可见,后台异步线程不工作在业务下盘的io路径上,这样对于上层业务每次写数据就减少了校验数据的同步下盘,大大降低了写操作的时延,提升了业务的吞吐量性能,保证了业务io路径上的低时延高带宽体现,满足视频监控场景中千路视频流的性能接入需求。

本发明提供了一种写操作控制方法,应用于分布式存储系统,包括:在接收到写请求时,调用写线程将待写入数据按照条带方式分割成原始数据块,并根据条带对应的数据对象服务osd信息将原始数据块发送到osd节点上下盘;调用后台线程根据待写入数据生成校验数据块,并发送校验数据块到对应的osd节点上下盘。

相比于现有技术中同时把原始数据块和校验数据块一起发送至osd端下盘,本申请中每次写数据时,调用写线程只把待写入数据下盘,然后调用后台线程异步计算出校验数据块,再单独下盘。可见,后台线程不工作在业务下盘的io路径上,减少了业务io路径的下盘数据量,这样就降低了业务每次写数据的时延,使得分布式存储系统能提供更高的性能,支撑更多路数的视频流业务,满足客户需求。

在上述实施例的基础上:

作为一种优选地实施例,根据待写入数据生成校验数据块的过程具体为:

判断待写入数据是否是首次写;

如果是首次写,则根据当前待写入数据直接生成校验数据块;

如果是修改写,则判断修改写是否是整条带覆盖写,当是整条带覆盖写时,根据当前待写入数据直接生成校验数据块,当不是整条带覆盖写时,合并待写入数据和原有数据,根据合并后的数据生成校验数据块。

具体地,分布式存储系统启动后,client端启动后台线程,专门用来处理延迟ec计算下盘的任务。根据待写入数据生成校验数据块时,如果是首次写场景,则创建一个ec延迟计算的任务,交给后台线程处理。后台线程处理ec延迟计算任务时,把当前待写入条带数据进行ec计算生成校验数据块,然后发送到对应的osd节点上下盘。

如果是修改(覆盖)写场景,则判断本次修改写是否是整条带覆盖,然后创建一个ec延迟计算的任务,交给后台线程处理。当是整条带覆盖写时,后台线程把当前待写入条带数据进行ec计算生成校验数据块,然后发送到对应的osd节点上下盘。

当本次修改写不是整条带覆盖写时,则先读出本条带对应的原有数据,然后合并待写入的修改数据,把合并后的数据进行ec计算生成校验数据块。可见,对于上层业务每次写数据,本申请中后台线程异步进行ec校验数据的计算并下盘,还避免了修改写可能带来的读操作,进一步降低了写请求的时延。

作为一种优选地实施例,将原始数据块发送到osd节点上下盘之后,该方法还包括:

发送用于指示写入成功的返回结果至上层业务。

具体地,业务新写数据和修改写数据时,本申请中把原始数据块单独下盘成功之后,还返回用于指示写入成功的返回结果至上层业务,以便直观的提示用户本次待写入数据成功下盘,提升用户的使用体验感。

作为一种优选地实施例,发送校验数据块到对应的osd节点上下盘之后,该方法还包括:

释放缓存中保存的待写入的数据。

具体地,业务新写数据和修改写数据时,把原始数据块单独下盘成功,返回上层业务的同时保留数据缓存。基于保留的数据缓存,后台线程异步计算ec校验数据块并下盘,校验数据块下盘成功后释放本条带数据,更新缓存,从而保证系统的运行速度。

请参照图2,图2为本发明提供的一种写操作控制系统的结构示意图,该系统应用于分布式存储系统,包括:

第一发送模块1,用于在接收到写请求时,调用写线程将待写入数据按照条带方式分割成原始数据块,并根据条带对应的数据对象服务osd信息将原始数据块发送到osd节点上下盘;

第二发送模块2,用于调用后台线程根据待写入数据生成校验数据块,并发送校验数据块到对应的osd节点上下盘。

作为一种优选地实施例,第二发送模块2具体用于判断待写入数据是否是首次写;

如果是首次写,则根据当前待写入数据直接生成校验数据块;

如果是修改写,则判断修改写是否是整条带覆盖写,当是整条带覆盖写时,根据当前待写入数据直接生成校验数据块,当不是整条带覆盖写时,合并待写入数据和原有数据,根据合并后的数据生成校验数据块。

作为一种优选地实施例,该系统还包括返回模块,用于发送用于指示写入成功的返回结果至上层业务。

作为一种优选地实施例,该系统还包括删除模块,用于释放缓存中保存的待写入的数据。

对于本发明提供的系统的介绍请参照上述方法实施例,本发明在此不再赘述。

本发明还提供一种写操作控制装置,应用于分布式存储系统,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现上述任一项写操作控制方法的步骤。

对于本发明提供的装置的介绍请参照上述方法实施例,本发明在此不再赘述。

本发明还提供一种计算机可读存储介质,应用于分布式存储系统,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一项写操作控制方法的步骤。

对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统、装置及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1