首页> 中国专利> 面向视频流数据的分布式多内存副本存储系统及方法

面向视频流数据的分布式多内存副本存储系统及方法

摘要

一种面向视频流数据的分布式多内存副本存储系统及方法,所述系统包括一个元服务器和至少两个数据服务器,数据服务器包括全局空闲缓冲分片链表、写磁盘队列以及循环缓冲队列;元服务器在收到存储服务请求时,为当前视频流数据配置一个数据服务器作为主存储服务器,为当前视频流数据配置至少一个数据服务器作为从存储服务器;全局空闲缓冲分片链表包括预定数量的链表单元,每个链表单元包括写入视频流数据的缓冲分片和指向下一链表单元的指针;主存储服务器中写满视频流数据的缓冲分片存储在写磁盘队列中,从存储服务器中写满视频流数据的缓冲分片存储在循环缓冲队列中。本发明提供的存储系统及方法,以低成本方式避免视频流数据发生丢帧现象。

著录项

  • 公开/公告号CN104954388A

    专利类型发明专利

  • 公开/公告日2015-09-30

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201510410720.X

  • 申请日2015-07-14

  • 分类号

  • 代理机构成都行之专利代理事务所(普通合伙);

  • 代理人郭受刚

  • 地址 610000 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2023-12-18 11:14:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-20

    授权

    授权

  • 2015-11-04

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20150714

    实质审查的生效

  • 2015-09-30

    公开

    公开

说明书

技术领域

本发明涉及数据存储技术领域,特别涉及一种面向视频流数据的分布式多内存副本存储系统及方法。

背景技术

在大规模分布式存储系统中,往往有一个元服务器(MS,Meta Server)和多个数据服务器(DS,Data Server)。元服务器主要负责对数据服务器进行监控和管理,保存并备份真实数据与数据服务器之间的映射关系。数据服务器则负责对数据进行实际的接收、存储和管理,同时还要将自身的硬件和负载状况通过心跳信息定时与元服务器进行通信。在这种分布式存储系统中,服务器的故障被视为一种常态。通常,为了提高分布式系统的可靠性,使用多个数据副本来防止数据的丢失。

与普通分布式存储系统的存储内容相比,视频流数据具有存储内容与时间一一映射的特性。因而当需要切换视频流数据存储的数据服务器时,该份视频流数据会出现丢帧的现象。为了避免视频流数据出现丢帧的现象,现有技术中采用多个数据副本的策略。然而,由于视频流数据的存储内容随时间线性增长,采用多个数据副本的策略所需要的磁盘带宽、磁盘容量与副本数成正比,最终导致系统的建设成本和运维成本成倍的增加。特别是高清视频的普及,使得多个数据副本的策略更加不可取。在仅存储单份数据的方案中,怎样在视频流数据存储的数据服务器发生切换时以低成本方式保证视频流数据不丢帧,仍是本领域一个亟待需解决的问题。

发明内容

本发明所要解决的是采用多个数据副本的策略防止视频流数据丢帧成本高的问题。

为解决上述问题,本发明提供一种面向视频流数据的分布式多内存副本存储系统,包括一个元服务器和至少两个数据服务器,所述数据服务器包括全局空闲缓冲分片链表、写磁盘队列以及循环缓冲队列;所述元服务器适于在接收到存储服务请求时,为当前视频流数据配置一个数据服务器作为主存储服务器,为当前视频流数据配置至少一个数据服务器作为从存储服务器;所述全局空闲缓冲分片链表包括预定数量的链表单元,每个链表单元包括适于写入视频流数据的缓冲分片和指向下一链表单元的指针;所述主存储服务器中写满视频流数据的缓冲分片适于存储在其对应的写磁盘队列中,所述从存储服务器中写满视频流数据的缓冲分片适于存储在其对应的循环缓冲队列中。

当视频流数据到来时,作为主存储服务器的数据服务器和作为从存储服务器的数据服务器都采用缓冲分片对视频流数据进行存储。对于主存储服务器而言,写满视频流数据的缓冲分片提交至写磁盘队列,在磁盘输入完成后将缓冲分片重新加入至全局空闲缓冲分片链表中,循环使用;对于从存储服务器而言,写满视频流数据的缓冲分片提交至循环缓冲队列,在循环缓冲队列已满时将队列头部的缓冲分片重新加入至全局空闲缓冲分片链表中,然后在循环缓冲队列尾部加入新的缓冲分片。当主存储服务器发生故障时,元服务器可以将任意一个从存储服务器切换为主存储服务器,切换后的主存储服务器将循环缓冲队列中的缓冲分片转存至写磁盘队列中,可以避免丢帧现象。

可选的,所述从存储服务器的数量与存储系统的可靠性等级相关。

可选的,所述缓冲分片为存储容量可配置的连续存储区域。

可选的,所述缓冲分片的存储容量与配置文件的大小相关。

可选的,所述主存储服务器中写满视频流数据的缓冲分片以指针形式存储在其对应的写磁盘队列中。

可选的,所述从存储服务器中写满视频流数据的缓冲分片以指针形式存储在其对应的循环缓冲队列中。

可选的,所述循环缓冲队列的存储容量不小于X×L,其中,X为视频流码率,L为所述循环缓冲队列的预设容错时间。

基于上述面向视频流数据的分布式多内存副本存储系统,本发明还提供一种面向视频流数据的分布式多内存副本存储方法,包括:在接收到存储服务请求时,所述元服务器为当前视频流数据配置一个数据服务器作为主存储服务器,为当前视频流数据配置至少一个数据服务器作为从存储服务器;所述主存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的写磁盘队列中,在磁盘输入完成后释放写磁盘队列中的缓冲分片;所述从存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的循环缓冲队列中,在循环缓冲队列已满时释放循环缓冲队列头部的缓冲分片;在所述主存储服务器出现故障时,所述元服务器将任意一个从存储服务器切换为主存储服务器,切换后的主存储服务器将其对应的循环缓冲队列中的缓冲分片转存至其对应的写磁盘队列。

每个数据服务器可能是当前视频流数据的主存储服务器,同时也是另一些视频流数据的从存储服务器。在当前视频流数据的主存储服务器发生故障时,元服务器发现了该故障,便可即刻将当前视频流数据的一个从存储服务器切换为当前视频流数据的主存储服务器。假设当前视频流数据的主存储服务器在时刻Ts发生故障,从存储服务器切换为主存储服务器的时刻为Te且耗时为T,则有Te=T+Ts。假设从存储服务器中的循环缓冲队列的存储容量为Y、视频流码率为X,则循环缓冲队列的预设容错时间L=Y/X。当T<Y/X,即当循环缓冲队列的预设容错时间大于从存储服务器切换为主存储服务器的耗时,即可保证视频流数据在整个系统中是完整的。

可选的,在所述主存储服务器出现故障时,所述元服务器还适于为当前视频流数据增加配置至少一个数据服务器作为从存储服务器。

与现有技术相比,本发明具有以下优点:

本发明提供的面向视频流数据的分布式多内存副本存储系统及方法,采用多内存副本模型,即在从存储服务器中采用循环缓冲队列存储切换过程中的视频流数据,切换后将循环缓冲队列中的视频流数据发送至写磁盘队列,即可保证不丢帧。此种多内存副本模型分布式存储方法降低了系统的磁盘部署数和同时写入磁盘的数据,实现在非永久性故障下能够做到视频流数据的不丢帧,保证视频流数据的完整性,提高了系统的可靠性,降低了系统成本。

附图说明

图1是本发明实施例的面向视频流数据的分布式多内存副本存储系统的结构示意图;

图2是本发明实施例的数据服务器的结构示意图;

图3是本发明实施例的主存储服务器存储视频流数据的示意图;

图4是本发明实施例的从存储服务器存储视频流数据的示意图。

具体实施方式

下面结合实施例及附图,对本发明作进一步地的详细说明,但本发明的实施方式不限于此。

针对视频流数据存储内容与时间一一映射、存储内容随时间线性增长的特性,本发明实施例提供一种面向视频流数据的分布式多内存副本存储系统,所述面向视频流数据的分布式多内存副本存储系统包括一个元服务器和至少两个数据服务器。所述数据服务器的数量根据需要存储的视频流数据的容量确定:需要存储的视频流数据的容量越大,所述数据服务器的数量设置得越多。在本实施例中,以3个数据服务器为例进行说明。

图1是本发明实施例的面向视频流数据的分布式多内存副本存储系统的结构示意图,所述面向视频流数据的分布式多内存副本存储系统包括元服务器10、数据服务器11、数据服务器12以及数据服务器13。每个数据服务器的结构均相同,图2是本实施例的数据服务器的结构示意图,所述数据服务器包括全局空闲缓冲分片链表20、写磁盘队列21以及循环缓冲队列22。

所述元服务器10适于在接收到存储服务请求时,为当前视频流数据配置一个数据服务器作为主存储服务器,为当前视频流数据配置除所述主存储服务器外的至少一个数据服务器作为从存储服务器。具体地,在有视频流数据需要存储时,前端摄像装置(例如摄像头)向所述元服务器10发送存储服务请求,所述元服务器10根据所述存储服务请求为当前视频流数据配置一个主存储服务器和至少一个从存储服务器。需要说明的是,一个数据服务器可能是某些视频流数据的主存储服务器,同时又是另一些视频流数据的从存储服务器。所述元服务器10对主存储服务器的要求是该数据服务器网络带宽、磁盘带宽和容量能够容纳新到的视频流数据,对从存储服务器的要求是该数据服务器内存和网络带宽能够容纳新到的视频流数据。

所述从存储服务器的数量与存储系统的可靠性等级相关:存储系统的可靠性等级要求越高,所述从存储服务器的数量设置得越多。在本实施例中,以配置所述数据服务器11作为主存储服务器、配置所述数据服务器12作为从存储服务器为例进行说明。主存储服务器和从存储服务器配置好后,所述元服务器10将配置情况告知前端摄像装置,前端摄像装置将当前视频流数据发送至所述主存储服务器(即所述数据服务器11)和所述从存储服务器(即所述数据服务器12)。

图3是本发明实施例的主存储服务器存储视频流数据的示意图。在当前视频流数据到来时,所述主存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的写磁盘队列中,在磁盘输入完成后释放写磁盘队列中的缓冲分片。需要说明的是,所述主存储服务器对应的全局空闲缓冲分片链表是指所述主存储服务器中的全局空闲缓冲分片链表,所述主存储服务器对应的写磁盘队列是指所述主存储服务器中的写磁盘队列,所述主存储服务器对应的循环缓冲队列是指所述主存储服务器中的循环缓冲队列。

具体地,所述全局空闲缓冲分片链表20包括预定数量的链表单元,每个链表单元包括适于写入视频流数据的缓冲分片和指向下一链表单元的指针。所述缓冲分片为存储容量可配置的连续存储区域,不可删除。进一步,所述缓冲分片的存储容量与实际配置文件的大小相关:配置文件设置得越大,所述缓冲分片的存储容量也设置得越大。对于主存储服务器,当前视频流数据只有一个正在写入的缓冲分片。缓冲分片被写满后,将该缓冲分片以指针的形式挂到写磁盘队列中。同时,从全局空闲缓冲分片链表中请求一个新的空闲缓冲分片,用于存放后续视频流数据。磁盘输入完成后,将缓冲分片重新加入到全局空闲缓冲分片链表中,以循环使用。

图4是本发明实施例的从存储服务器存储视频流数据的示意图。在当前视频流数据到来时,所述从存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的循环缓冲队列中,在循环缓冲队列已满时释放循环缓冲队列头部的缓冲分片。需要说明的是,所述从存储服务器对应的全局空闲缓冲分片链表是指所述从存储服务器中的全局空闲缓冲分片链表,所述从存储服务器对应的写磁盘队列是指所述从存储服务器中的写磁盘队列,所述从存储服务器对应的循环缓冲队列是指所述从存储服务器中的循环缓冲队列。

具体地,所述从存储服务器为当前视频流数据提供内存副本的服务。对于从存储服务器来说,仍然是先在全局空闲缓冲分片链表中申请一个空闲缓冲分片用于存储当前视频流数据。当缓冲分片被写满时,并不会将缓冲分片提交给写磁盘队列,而是将该缓冲分片以指针的形式挂到循环缓冲队列的尾部。循环缓冲队列的存储容量不小于X×L,其中,X为视频流码率,L为循环缓冲队列的预设容错时间,视频流码率为每秒传送的数据比特数。一段时间后,循环缓冲队列新到的缓冲分片会不断地替换旧的缓冲分片。遵守FIFO原则,被替换的缓冲分片会被加入到全局空闲缓冲分片链表中,该循环缓冲队列便记录了最近一段时间到达的连续视频流数据。

在所述主存储服务器出现故障时,所述元服务器10将任意一个从存储服务器切换为主存储服务器,切换后的主存储服务器将其对应的循环缓冲队列中的缓冲分片转存至其对应的写磁盘队列。具体地,假设所述元服务器10与各个数据服务器之间的心跳间隔时间为Th,所述元服务器10与各个数据服务器之间的通信延迟时间为Tr。若所述主存储服务器发生了网络故障,那么所述元服务器10将会在Th+Δt时间内发现所述主存储服务器已经离线,其中,Δt为所述元服务器10中定时器的触发延迟。此时,所述元服务器10经过检查时间T1,决定将所述从存储服务器切换为主存储服务器,并立即下发切换任务。所述数据服务器12接到任务后经历时间T2,将其对应的循环缓冲队列中的视频流数据放入其对应的写磁盘队列中,所述从存储服务器切换为主存储服务器耗时T=Th+Δt+Tr+T1+T2。在本实施例中,所述从存储服务器只有所述数据服务器12,即将所述数据服务器12切换为主存储服务器。在其他实施例中,若从存储服务器不止一个,则所述元服务器任意选择一个从存储服务器作为主存储服务器。

假设所述主存储服务器是在时刻Ts发生的网络故障,所述从存储服务器最迟会在Te=T+Ts时刻将循环缓冲队列中所有的视频流数据提交写磁盘队列。在切换自身为主存储服务器时,所述从存储服务器中拥有的视频流数据的时间段(Te-Y/X,Te),其中,Y为所述从存储服务器中的循环缓冲队列的存储容量。为了能够使当前视频流数据不出现数据丢帧,必须保证所述从存储服务器中的循环缓冲队列的预设容错时间Y/X大于从存储服务器切换为主存储服务器的耗时T。若视频流数据的码率为8 Mbit/s,所述循环缓冲队列的预设容错时间为60s,那么所述循环缓冲队列的存储容量为480 Mbit。

需要说明的是,在所述主存储服务器出现故障时,所述元服务器10还可以为当前视频流数据增加配置至少一个数据服务器作为从存储服务器,以保证它的内存副本数量符合系统的配置要求。在本实施例中,在所述数据服务器11作为主存储服务器出现故障时,所述元服务器10将所述数据服务器12切换为主存储服务器,并将所述数据服务器13增加配置为从存储服务器。

基于本实施例提供的面向视频流数据的分布式多内存副本存储系统,本发明实施例还提供一种面向视频流数据的分布式多内存副本存储方法,包括:在接收到存储服务请求时,所述元服务器为当前视频流数据配置一个数据服务器作为主存储服务器,为当前视频流数据配置至少一个数据服务器作为从存储服务器;所述主存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的写磁盘队列中,在磁盘输入完成后释放写磁盘队列中的缓冲分片;所述从存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的循环缓冲队列中,在循环缓冲队列已满时释放循环缓冲队列头部的缓冲分片;在所述主存储服务器出现故障时,所述元服务器将任意一个从存储服务器切换为主存储服务器,切换后的主存储服务器将其对应的循环缓冲队列中的缓冲分片转存至其对应的写磁盘队列。

所述面向视频流数据的分布式多内存副本存储方法的具体操作可参考前述实施例的描述,在此不再赘述。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号