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

文档序号:9238178阅读:1195来源:国知局
面向视频流数据的分布式多内存副本存储系统及方法
【技术领域】
[0001]本发明涉及数据存储技术领域,特别涉及一种面向视频流数据的分布式多内存副本存储系统及方法。
【背景技术】
[0002]在大规模分布式存储系统中,往往有一个元服务器(MS,Meta Server)和多个数据服务器(DS,Data Server)?元服务器主要负责对数据服务器进行监控和管理,保存并备份真实数据与数据服务器之间的映射关系。数据服务器则负责对数据进行实际的接收、存储和管理,同时还要将自身的硬件和负载状况通过心跳信息定时与元服务器进行通信。在这种分布式存储系统中,服务器的故障被视为一种常态。通常,为了提高分布式系统的可靠性,使用多个数据副本来防止数据的丢失。
[0003]与普通分布式存储系统的存储内容相比,视频流数据具有存储内容与时间一一映射的特性。因而当需要切换视频流数据存储的数据服务器时,该份视频流数据会出现丢帧的现象。为了避免视频流数据出现丢帧的现象,现有技术中采用多个数据副本的策略。然而,由于视频流数据的存储内容随时间线性增长,采用多个数据副本的策略所需要的磁盘带宽、磁盘容量与副本数成正比,最终导致系统的建设成本和运维成本成倍的增加。特别是高清视频的普及,使得多个数据副本的策略更加不可取。在仅存储单份数据的方案中,怎样在视频流数据存储的数据服务器发生切换时以低成本方式保证视频流数据不丢帧,仍是本领域一个亟待需解决的问题。

【发明内容】

[0004]本发明所要解决的是采用多个数据副本的策略防止视频流数据丢帧成本高的问题。
[0005]为解决上述问题,本发明提供一种面向视频流数据的分布式多内存副本存储系统,包括一个元服务器和至少两个数据服务器,所述数据服务器包括全局空闲缓冲分片链表、写磁盘队列以及循环缓冲队列;所述元服务器适于在接收到存储服务请求时,为当前视频流数据配置一个数据服务器作为主存储服务器,为当前视频流数据配置至少一个数据服务器作为从存储服务器;所述全局空闲缓冲分片链表包括预定数量的链表单元,每个链表单元包括适于写入视频流数据的缓冲分片和指向下一链表单元的指针;所述主存储服务器中写满视频流数据的缓冲分片适于存储在其对应的写磁盘队列中,所述从存储服务器中写满视频流数据的缓冲分片适于存储在其对应的循环缓冲队列中。
[0006]当视频流数据到来时,作为主存储服务器的数据服务器和作为从存储服务器的数据服务器都采用缓冲分片对视频流数据进行存储。对于主存储服务器而言,写满视频流数据的缓冲分片提交至写磁盘队列,在磁盘输入完成后将缓冲分片重新加入至全局空闲缓冲分片链表中,循环使用;对于从存储服务器而言,写满视频流数据的缓冲分片提交至循环缓冲队列,在循环缓冲队列已满时将队列头部的缓冲分片重新加入至全局空闲缓冲分片链表中,然后在循环缓冲队列尾部加入新的缓冲分片。当主存储服务器发生故障时,元服务器可以将任意一个从存储服务器切换为主存储服务器,切换后的主存储服务器将循环缓冲队列中的缓冲分片转存至写磁盘队列中,可以避免丢帧现象。
[0007]可选的,所述从存储服务器的数量与存储系统的可靠性等级相关。
[0008]可选的,所述缓冲分片为存储容量可配置的连续存储区域。
[0009]可选的,所述缓冲分片的存储容量与配置文件的大小相关。
[0010]可选的,所述主存储服务器中写满视频流数据的缓冲分片以指针形式存储在其对应的写磁盘队列中。
[0011]可选的,所述从存储服务器中写满视频流数据的缓冲分片以指针形式存储在其对应的循环缓冲队列中。
[0012]可选的,所述循环缓冲队列的存储容量不小于XXL,其中,X为视频流码率,L为所述循环缓冲队列的预设容错时间。
[0013]基于上述面向视频流数据的分布式多内存副本存储系统,本发明还提供一种面向视频流数据的分布式多内存副本存储方法,包括:在接收到存储服务请求时,所述元服务器为当前视频流数据配置一个数据服务器作为主存储服务器,为当前视频流数据配置至少一个数据服务器作为从存储服务器;所述主存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的写磁盘队列中,在磁盘输入完成后释放写磁盘队列中的缓冲分片;所述从存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的循环缓冲队列中,在循环缓冲队列已满时释放循环缓冲队列头部的缓冲分片;在所述主存储服务器出现故障时,所述元服务器将任意一个从存储服务器切换为主存储服务器,切换后的主存储服务器将其对应的循环缓冲队列中的缓冲分片转存至其对应的写磁盘队列。
[0014]每个数据服务器可能是当前视频流数据的主存储服务器,同时也是另一些视频流数据的从存储服务器。在当前视频流数据的主存储服务器发生故障时,元服务器发现了该故障,便可即刻将当前视频流数据的一个从存储服务器切换为当前视频流数据的主存储服务器。假设当前视频流数据的主存储服务器在时刻Ts发生故障,从存储服务器切换为主存储服务器的时刻为Te且耗时为T,则有Te=T+Ts。假设从存储服务器中的循环缓冲队列的存储容量为Y、视频流码率为X,则循环缓冲队列的预设容错时间L=Y/X。当T < Y/X,即当循环缓冲队列的预设容错时间大于从存储服务器切换为主存储服务器的耗时,即可保证视频流数据在整个系统中是完整的。
[0015]可选的,在所述主存储服务器出现故障时,所述元服务器还适于为当前视频流数据增加配置至少一个数据服务器作为从存储服务器。
[0016]与现有技术相比,本发明具有以下优点:
本发明提供的面向视频流数据的分布式多内存副本存储系统及方法,采用多内存副本模型,即在从存储服务器中采用循环缓冲队列存储切换过程中的视频流数据,切换后将循环缓冲队列中的视频流数据发送至写磁盘队列,即可保证不丢帧。此种多内存副本模型分布式存储方法降低了系统的磁盘部署数和同时写入磁盘的数据,实现在非永久性故障下能够做到视频流数据的不丢帧,保证视频流数据的完整性,提高了系统的可靠性,降低了系统成本。
【附图说明】
[0017]图1是本发明实施例的面向视频流数据的分布式多内存副本存储系统的结构示意图;
图2是本发明实施例的数据服务器的结构示意图;
图3是本发明实施例的主存储服务器存储视频流数据的示意图;
图4是本发明实施例的从存储服务器存储视频流数据的示意图。
【具体实施方式】
[0018]下面结合实施例及附图,对本发明作进一步地的详细说明,但本发明的实施方式不限于此。
[0019]针对视频流数据存储内容与时间一一映射、存储内容随时间线性增长的特性,本发明实施例提供一种面向视频流数据的分布式多内存副本存储系统,所述面向视频流数据的分布式多内存副本存储系统包括一个元服务器和至少两个数据服务器。所述数据服务器的数量根据需要存储的视频流数据的容量确定:需要存储的视频流数据的容量越大,所述数据服务器的数量设置得越多。在本实施例中,以3个数据服务器为例进行说明。
[0020]图1是本发明实施例的面向视频流数据的分布式多内存副本存储系统的结构示意图,所述面向视频流数据的分布式多内存副本存储系统包括元服务器10、数据服务器11、数据服务器12以及数据服务器13。每个数据服务器的结构均相同,图2是本实施例的数据服务器的结构示意图,所述数据服务器包括全局空闲缓冲分片链表20、写磁盘队列21以及循环缓冲队列22。
[0021]所述元服务器10适于在接收到存储服务请求时,为当前视频流数据配置一个数据服务器作为主存储服务器,为当前视频流数据配置除所述主存储服务器外的至少一个数据服务器作为从存储服务器。具体地,在有视频流数据需要存储时,前端摄像装置(例如摄像头)向所述元服务器10发送存储服务请求,所述元服务器10根据所述存储服务请求为当前视频流数据配置一个主存储服务器和至少一个从存储服务器。需要说明的是,一个数据服务器可能是某些视频流数据的主存储服务器,同时又是另一些视频流数据的从存储服务器。所述元服务器10对主存储服务器的要求是该数据服务器网络带宽、磁盘带宽和容量能够容纳新到的视频流数据,对从存储服务器的要求是该数据服务器内存和网络带宽能够容纳新到的视频流数据。
[0022]所述从存储服务器的数量与存储系统的可靠性等级相关:存储系统的可靠性等级要求越高,所述从存储服务器的数量设置得越多。在本实施例中,以配置所述数据服务器11作为主存储服务器、配置所述数据服务器12作为从存储服务器为例进行说明。主存储服务器和从存储服务器配置好后,所述元服务器10将配置情况告知前端摄像装置,前端摄像装置将当前视频流数据发送至所述主存储服务器(即所述数据服务器11)和所述从存储服务器(即所述数据服务器12)。
[0023]图3是本发明实施例的主存储服务器存储视频流数据的示意图。在当前视频流数据到来时,所述主存储服务器向其对应的全局空闲缓冲分片链表申请可用的缓冲分片用以写入当前视频流数据,并将写满视频流数据的缓冲分片存储在其对应的写磁盘队列中,在磁盘输入完成后释放写磁盘队列中的缓冲分片。需要说明的是,所述主存储服务器对应的全局空闲缓冲分片链表是指所述主存储服务器中的全局空闲缓冲分片链表,所述主存储服务器对应的写磁盘队列是指所述主存储服务器中的写磁盘队列,所述主存储服务器对应的循环缓冲队列是指所述主存储服务器中的循环缓冲队列。
[0024]具体地,所述全局空闲缓冲分片链表20包括预定数量的链表
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1