CN111526315B - 视频数据的存储方法、装置、系统及设备 - Google Patents

视频数据的存储方法、装置、系统及设备 Download PDF

Info

Publication number
CN111526315B
CN111526315B CN202010352057.3A CN202010352057A CN111526315B CN 111526315 B CN111526315 B CN 111526315B CN 202010352057 A CN202010352057 A CN 202010352057A CN 111526315 B CN111526315 B CN 111526315B
Authority
CN
China
Prior art keywords
storage
storage node
video data
node
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010352057.3A
Other languages
English (en)
Other versions
CN111526315A (zh
Inventor
余佳民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202010352057.3A priority Critical patent/CN111526315B/zh
Publication of CN111526315A publication Critical patent/CN111526315A/zh
Application granted granted Critical
Publication of CN111526315B publication Critical patent/CN111526315B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Abstract

本申请公开了一种视频数据的存储方法、装置、系统及设备,属于数据存储技术领域。所述方法包括:获取当前存储节点的存储状态,当前存储节点为当前用于存储监控设备录制的视频数据的存储节点,当前存储节点为多个存储节点中的一个存储节点。在当前存储节点的存储状态满足切换条件的情况下,从多个存储节点中重新确定一个存储节点,切换条件是指当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间,触发重新确定的存储节点继续存储监控设备录制的视频数据。如此,不需要用户手动为监控设备配置其他存储节点,减少了视频数据丢失的风险。

Description

视频数据的存储方法、装置、系统及设备
技术领域
本申请涉及数据存储技术领域,特别涉及一种视频数据的存储方法、装置、系统及设备。
背景技术
通常情况下,监控设备录制的视频数据可以存储在存储节点中,用户可以通过监控平台为监控设备配置存储节点,且一个监控设备录制的视频数据通常存储在一个存储节点中。但一个存储节点的存储空间有限,若某监控设备处于长期工作状态,则为其配置的存储节点的存储空间可能不足够,该种情况下,就需要新的存储节点来存储该监控设备录制的视频数据。
相关技术中,可以由用户手动为该监控设备配置其他存储节点,以便将该监控设备录制的视频数据存储至其他存储节点中。但这种方式需要用户不断地去查看存储节点是否已经存满,再确定是否要手动为该监控设备配置其他存储节点,且在用户重新配置存储节点的过程中,该监控设备录制的视频数据无法进行存储,可能会导致视频数据丢失。
发明内容
本申请提供了一种视频数据的存储方法、装置、系统及设备,可以解决相关技术中需要用户不断查看存储节点的存储情况的问题。所述技术方案如下:
一方面,提供了一种视频数据的存储方法,应用于存储管理节点中,所述存储管理节点用于管理多个存储节点,所述方法包括:
获取当前存储节点的存储状态,所述当前存储节点为当前用于存储监控设备录制的视频数据的存储节点,所述当前存储节点为所述多个存储节点中的一个存储节点;
在所述当前存储节点的存储状态满足切换条件的情况下,从所述多个存储节点中重新确定一个存储节点,所述切换条件是指所述当前存储节点的第一存储空间不能继续存储所述监控设备录制的视频数据,所述第一存储空间是指能够用于存储所述监控设备录制的视频数据的存储空间;
触发重新确定的存储节点继续存储所述监控设备录制的视频数据。
在本申请一种可能的实现方式中,所述从所述多个存储节点中重新确定一个存储节点,包括:
在所述多个存储节点中存在未使用的存储节点的情况下,从所述多个存储节点包括的未使用的存储节点中重新确定一个存储节点,所述未使用的存储节点是指未存储有所述监控设备录制的视频数据的存储节点;
所述从所述多个存储节点包括的未使用的存储节点中重新确定一个存储节点,包括:
确定所述多个存储节点包括的未使用的存储节点的第一存储空间;
从所述多个存储节点包括的未使用的存储节点中,确定第一存储空间最大的存储节点。
在本申请一种可能的实现方式中,所述从所述多个存储节点中重新确定一个存储节点,包括:
在所述多个存储节点中不存在未使用的存储节点的情况下,从所述多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到候选存储节点;
若所述候选存储节点的数量为一个,将所述候选存储节点确定为所述重新确定的存储节点;或者,若所述候选存储节点的数量为多个,从多个候选存储节点中确定一个存储节点;
所述从多个候选存储节点中确定一个存储节点,包括:
从所述多个候选存储节点中确定存储的视频数据的时间点距离当前时间点最远的存储节点。
在本申请一种可能的实现方式中,所述触发重新确定的存储节点继续存储所述监控设备录制的视频数据,包括:
触发所述重新确定的存储节点以循环覆盖的方式继续存储所述监控设备录制的视频数据。
在本申请一种可能的实现方式中,
若所述当前存储节点不是以循环覆盖的方式存储所述监控设备录制的视频数据,所述当前存储节点的存储状态满足切换条件是指所述当前存储节点的第一存储空间小于或等于空间阈值;
或者,
若所述当前存储节点是以循环覆盖的方式存储所述监控设备录制的视频数据,所述当前存储节点的存储状态满足切换条件是指所述当前存储节点已将本次循环覆盖之前存储的所述监控设备录制的视频数据完全覆盖。
在本申请一种可能的实现方式中,所述方法还包括:
在所述重新确定的存储节点的存储状态满足所述切换条件的情况下,继续从所述多个存储节点中重新确定一个存储节点。
在本申请一种可能的实现方式中,所述方法还包括:
分别向所述多个存储节点发送预留指令,所述预留指令携带设备标识,所述预留指令用于指示所述多个存储节点为所述设备标识指示的监控设备预留存储空间。
在本申请一种可能的实现方式中,所述触发重新确定的存储节点继续存储所述监控设备录制的视频数据,包括:
向所述重新确定的存储节点发送启动指令,所述启动指令用于指示所述重新确定的存储节点继续存储所述监控设备录制的视频数据;
向所述当前存储节点发送停止指令,所述停止指令用于指示所述当前存储节点停止存储所述监控设备录制的视频数据。
另一方面,提供了一种视频数据的存储装置,应用于存储管理节点中,所述存储管理节点用于管理多个存储节点,所述装置包括:
获取模块,用于获取当前存储节点的存储状态,所述当前存储节点为当前用于存储监控设备录制的视频数据的存储节点,所述当前存储节点为所述多个存储节点中的一个存储节点;
确定模块,用于在所述当前存储节点的存储状态满足切换条件的情况下,从所述多个存储节点中重新确定一个存储节点,所述切换条件是指所述当前存储节点的第一存储空间不能继续存储所述监控设备录制的视频数据,所述第一存储空间是指能够用于存储所述监控设备录制的视频数据的存储空间;
触发模块,用于触发重新确定的存储节点继续存储所述监控设备录制的视频数据。
在本申请一种可能的实现方式中,所述确定模块用于:
在所述多个存储节点中存在未使用的存储节点的情况下,从所述多个存储节点包括的未使用的存储节点中重新确定一个存储节点,所述未使用的存储节点是指未存储有所述监控设备录制的视频数据的存储节点;
确定所述多个存储节点包括的未使用的存储节点的第一存储空间;
从所述多个存储节点包括的未使用的存储节点中,确定第一存储空间最大的存储节点。
在本申请一种可能的实现方式中,所述确定模块用于:
在所述多个存储节点中不存在未使用的存储节点的情况下,从所述多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到候选存储节点;
若所述候选存储节点的数量为一个,将所述候选存储节点确定为所述重新确定的存储节点;或者,若所述候选存储节点的数量为多个,从多个候选存储节点中确定一个存储节点;
从所述多个候选存储节点中确定存储的视频数据的时间点距离当前时间点最远的存储节点。
在本申请一种可能的实现方式中,所述触发模块用于:
触发所述重新确定的存储节点以循环覆盖的方式继续存储所述监控设备录制的视频数据。
在本申请一种可能的实现方式中,
若所述当前存储节点不是以循环覆盖的方式存储所述监控设备录制的视频数据,所述当前存储节点的存储状态满足切换条件是指所述当前存储节点的第一存储空间小于或等于空间阈值;
或者,
若所述当前存储节点是以循环覆盖的方式存储所述监控设备录制的视频数据,所述当前存储节点的存储状态满足切换条件是指所述当前存储节点已将本次循环覆盖之前存储的所述监控设备录制的视频数据完全覆盖。
在本申请一种可能的实现方式中,所述触发模块还用于:
在所述重新确定的存储节点的存储状态满足所述切换条件的情况下,继续从所述多个存储节点中重新确定一个存储节点。
在本申请一种可能的实现方式中,所述触发模块还用于:
分别向所述多个存储节点发送预留指令,所述预留指令携带设备标识,所述预留指令用于指示所述多个存储节点为所述设备标识指示的监控设备预留存储空间。
在本申请一种可能的实现方式中,所述触发模块用于:
向所述重新确定的存储节点发送启动指令,所述启动指令用于指示所述重新确定的存储节点继续存储所述监控设备录制的视频数据;
向所述当前存储节点发送停止指令,所述停止指令用于指示所述当前存储节点停止存储所述监控设备录制的视频数据。
另一方面,提供了一种视频数据的存储系统,所述系统包括存储管理节点,和多个存储节点;
所述存储管理节点用于获取当前存储节点的存储状态,所述当前存储节点为当前用于存储监控设备录制的视频数据的存储节点,所述当前存储节点为所述多个存储节点中的一个存储节点;
所述存储管理节点用于在所述当前存储节点的存储状态满足切换条件的情况下,从所述多个存储节点中重新确定一个存储节点,所述切换条件是指所述当前存储节点的第一存储空间不能继续存储所述监控设备录制的视频数据,所述第一存储空间是指能够用于存储所述监控设备录制的视频数据的存储空间;
所述存储管理节点用于触发重新确定的存储节点继续存储所述监控设备录制的视频数据;
所述重新确定的存储节点用于存储所述监控设备录制的视频数据。
在本申请一种可能的实现方式中,所述系统还包括监控设备;
所述存储管理节点用于向所述重新确定的存储节点发送启动指令,所述启动指令用于指示所述重新确定的存储节点继续存储所述监控设备录制的视频数据;
所述重新确定的存储节点用于接收到所述启动指令后,向所述监控设备发送视频数据获取请求;
所述监控设备用于在接收到所述视频数据获取请求后,向所述重新确定的存储节点发送录制的视频数据;
所述重新确定的存储节点用于接收并存储所述视频数据。
在本申请一种可能的实现方式中,所述存储管理节点用于向所述重新确定的存储节点发送启动指令后,还包括:
所述存储管理节点用于向所述当前存储节点发送停止指令,所述停止指令用于指示所述当前存储节点停止存储所述监控设备录制的视频数据;
所述当前存储节点用于接收到所述停止指令后,停止存储所述监控设备发送的视频数据。
在本申请一种可能的实现方式中,所述存储管理节点还用于分别向所述多个存储节点发送预留指令,所述预留指令携带设备标识,所述预留指令用于指示所述多个存储节点为所述设备标识指示的监控设备预留存储空间。
另一方面,提供了一种设备,所述设备包括处理器、通信接口、存储器和通信总线,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的程序,以实现上述所述的视频数据的存储方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的视频数据的存储方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的视频数据的存储方法的步骤。
本申请提供的技术方案至少可以带来以下有益效果:
将多个存储节点中当前用于存储监控设备录制的视频数据的存储节点称为当前存储节点,在当前存储节点存储监控设备录制的视频数据的过程中,可以获取当前存储节点的存储状态。若当前存储节点的存储状态满足切换条件,即当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,由于第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间,因此,可以认为该当前存储节点无法再存储该监控设备录制的视频数据。因此可以从多个存储节点中重新确定一个存储节点,并触发重新确定的存储节点继续存储监控设备录制的视频数据,即使用重新确定的存储节点存储该监控设备录制的视频数据。如此,在一个存储节点可能无法存储监控设备录制的视频数据的情况下,可以重新确定另一个存储节点,并直接触发另一个存储节点来进行存储,不需要用户手动为监控设备配置其他存储节点,减少了视频数据丢失的风险。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种实施环境的示意图;
图2是根据一示例性实施例示出的一种视频数据的存储方法的流程图;
图3是根据另一示例性实施例示出的一种视频数据的存储方法的流程图;
图4是根据一示例性实施例示出的一种视频数据的存储方法的线程图;
图5是根据一示例性实施例示出的一种为监控设备配置存储节点的流程图;
图6是根据一示例性实施例示出的一种为监控设备配置存储节点的线程图;
图7是根据另一示例性实施例示出的一种视频数据的存储方法的流程图;
图8是根据一示例性实施例示出的一种以循环覆盖的方式存储视频数据的线程图;
图9是根据又一示例性实施例示出的一种视频数据的存储方法的流程图;
图10是根据一示例性实施例示出的一种视频数据的存储装置的结构示意图;
图11是根据一示例性实施例示出的一种视频数据的存储系统的结构示意图;
图12是根据一示例性实施例示出的一种设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的视频数据的存储方法进行详细的解释说明之前,先对本申请实施例提供的实施环境进行介绍。
请参考图1,图1是根据一示例性实施例示出的一种实施环境的示意图。该实施环境包括监控平台101、存储管理节点102、存储节点103和监控设备104。监控平台101可以分别与存储管理节点102、存储节点103和监控设备104进行通信连接,存储管理节点102与存储节点103可以进行通信连接,存储节点103与监控设备104可以进行通信连接,上述通信连接通常为无线连接。
其中,存储节点103的数量可以为多个。多个存储节点中的每个存储节点可以分别与存储管理节点进行通信连接,且每个存储节点可以分别与监控设备进行通信连接。
其中,监控平台101可以与用户进行交互。用户可以通过监控平台101查询存储的视频数据。作为一种示例,该监控平台101可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如PC(Personal Computer,个人计算机)、手机、智能手机、PDA(Personal Digital Assistant,个人数字助手)、掌上电脑PPC(Pocket PC)、平板电脑、智能车机、智能电视等。
其中,存储管理节点102可以用于管理存储节点103,可以记录存储节点103的存储空间的情况,还可以记录存储节点103存储视频数据的情况。作为一种示例,该存储管理节点102可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
其中,存储节点103可以用于存储监控设备104录制的视频数据。作为一种示例,该存储节点103可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
其中,监控设备104可以用于录制视频数据,并将视频数据发送至存储节点103进行存储。作为一种示例,该监控设备104可以为摄像机。
本领域技术人员应能理解上述监控平台101、存储管理节点102、存储节点103和监控设备104仅为举例,其他现有的或今后可能出现的监控平台、存储管理节点、存储节点或监控设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
介绍完本申请实施例提供的实施环境后,接下来对本申请实施例提供的视频数据的存储方法进行详细的解释说明。
图2是根据一示例性实施例示出的一种视频数据的存储方法的流程图,该方法应用于上述图1所示的存储管理节点中。请参考图2,该方法可以包括如下步骤:
步骤201:获取当前存储节点的存储状态,当前存储节点为当前用于存储监控设备录制的视频数据的存储节点,当前存储节点为多个存储节点中的一个存储节点。
在实施中,在当前存储节点存储该监控设备录制的视频数据的过程中,存储管理节点可以获取当前存储节点的存储状态。作为一种示例,存储管理节点可以周期性地轮询当前存储节点的存储状态,以便在当前存储节点无法存储监控设备录制的视频数据的情况下可以及时切换存储节点进行视频数据存储。
在一些实施例中,存储管理节点可以周期性地向当前存储节点发送存储状态获取指令,该当前存储节点接收到该存储状态获取指令后,可以将自身的存储状态发送至存储管理节点,如此存储管理节点可以获取当前存储节点的存储状态。
步骤202:在当前存储节点的存储状态满足切换条件的情况下,从多个存储节点中重新确定一个存储节点,切换条件是指当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间。
在本申请一种可能的实现方式中,若当前存储节点不是以循环覆盖的方式存储监控设备录制的视频数据,当前存储节点的存储状态满足切换条件是指当前存储节点的第一存储空间小于或等于空间阈值。
需要说明的是,空间阈值可以由用户根据实际需求进行设置,也可以由设备默认设置,本申请实施例对此不做限定。
在该种实现方式中,从多个存储节点中重新确定一个存储节点的具体实现可以包括:在多个存储节点中存在未使用的存储节点的情况下,从多个存储节点包括的未使用的存储节点中重新确定一个存储节点,未使用的存储节点是指未存储有监控设备录制的视频数据的存储节点。
在实施中,可以确定多个存储节点包括的未使用的存储节点的第一存储空间,然后从多个存储节点包括的未使用的存储节点中,确定第一存储空间最大的存储节点。
在本申请另一种可能的实现方式中,若当前存储节点是以循环覆盖的方式存储监控设备录制的视频数据,当前存储节点的存储状态满足切换条件是指当前存储节点已将本次循环覆盖之前存储的监控设备录制的视频数据完全覆盖。
在该种实现方式中,从多个存储节点中重新确定一个存储节点的具体实现可以包括:在多个存储节点中不存在未使用的存储节点的情况下,从多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到候选存储节点。若候选存储节点的数量为一个,将候选存储节点确定为重新确定的存储节点;或者,若候选存储节点的数量为多个,从多个候选存储节点中确定一个存储节点。
在实施中,可以从多个候选存储节点中确定存储的视频数据的时间点距离当前时间点最远的存储节点。
进一步地,存储管理节点可以分别向多个存储节点发送预留指令,预留指令携带设备标识,预留指令用于指示多个存储节点为设备标识指示的监控设备预留存储空间。
其中,预留的存储空间可以用于存储设备标识指示的监控设备录制的视频数据,不能存储其他监控设备的视频数据。
为了便于描述,可以将预留的存储空间称为第二存储空间。
作为一种示例,若某存储节点中除为设备标识指示的监控设备预留的第二存储空间和为其他存储设备预留的第二存储空间之外,没有存储空间可使用,则某存储节点的第一存储空间包括为设备标识指示的监控设备预留的第二存储空间。
作为另一种示例,若某存储节点中除为设备标识指示的监控设备预留的第二存储空间和为其他存储设备预留的第二存储空间之外,还有剩余存储空间可使用,则某存储节点的第一存储空间包括为设备标识指示的监控设备预留的第二存储空间和该剩余存储空间。
步骤203:触发重新确定的存储节点继续存储监控设备录制的视频数据。
在实施中,触发重新确定的存储节点继续存储监控设备录制的视频数据的具体实现可以包括:向重新确定的存储节点发送启动指令,启动指令用于指示重新确定的存储节点继续存储监控设备录制的视频数据。然后向当前存储节点发送停止指令,停止指令用于指示当前存储节点停止存储监控设备录制的视频数据。
也就是说,先启动重新确定的存储节点开始存储监控设备录制的视频数据,再停止当前存储节点继续存储监控设备录制的视频数据。
在本申请一种可能的实现方式中,若重新确定的候选存储节点是在多个存储节点中不存在未使用的存储节点的情况下确定的,可以触发重新确定的存储节点以循环覆盖的方式继续存储监控设备录制的视频数据。
进一步地,在重新确定的存储节点的存储状态满足切换条件的情况下,继续从多个存储节点中重新确定一个存储节点。
将多个存储节点中当前用于存储监控设备录制的视频数据的存储节点称为当前存储节点,在当前存储节点存储监控设备录制的视频数据的过程中,可以获取当前存储节点的存储状态。若当前存储节点的存储状态满足切换条件,即当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,由于第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间,因此,可以认为该当前存储节点无法再存储该监控设备录制的视频数据。因此可以从多个存储节点中重新确定一个存储节点,并触发重新确定的存储节点继续存储监控设备录制的视频数据,即使用重新确定的存储节点存储该监控设备录制的视频数据。如此,在一个存储节点可能无法存储监控设备录制的视频数据的情况下,可以重新确定另一个存储节点,并直接触发另一个存储节点来进行存储,不需要用户手动为监控设备配置其他存储节点,减少了视频数据丢失的风险。
根据多个存储节点的存储情况不同,用于存储监控设备录制的视频数据的多个存储节点可能未存储有该监控设备录制的视频数据,可以直接存储监控设备录制的视频数据。或者,该多个存储节点可能存储有该监控设备录制的视频数据,需要以循环覆盖的方式存储监控设备录制的视频数据。接下来通过如下几个实施例分别进行说明。
图3是根据另一示例性实施例示出的一种视频数据的存储方法的流程图,该方法应用于上述图1所示的存储管理节点中。请参考图3,图3所示的实施例是以多个存储节点未存储有监控设备录制的视频数据的情况为例进行说明,该方法可以包括如下步骤:
步骤301:确定多个存储节点包括的未使用的存储节点的第一存储空间,该第一存储空间为能够用于存储监控设备录制的视频数据的存储空间。
其中,未使用的存储节点是指未存储有监控设备录制的视频数据的存储节点。
在实施中,参见图4,确定多个存储节点包括的未使用的存储节点的第一存储空间可以包括:步骤401,存储管理节点向多个存储节点发送信息获取请求,步骤402,接收多个存储节点反馈的第一存储空间的容量信息。
在一些实施例中,存储管理节点向多个存储节点发送信息获取请求,然后多个存储节点向多个存储节点反馈第一存储空间的容量信息的具体实现可以包括如下几种实现方式:
第一种实现方式:存储管理节点可以记录每个存储节点存储视频数据的情况,即哪个存储节点存储了哪个监控设备录制的视频数据,然后根据记录的存储视频数据的情况,确定多个存储节点中未存储有该监控设备录制的视频数据的存储节点,即未使用的存储节点,然后向未使用的存储节点发送信息获取请求,该信息获取请求可以携带监控设备的设备标识,以使存储节点反馈容量信息,该容量信息可以表示该存储节点中用于存储该设备标识指示的监控设备录制的视频数据的存储空间大小,即该容量信息表示第一存储空间的大小。存储管理节点接收未使用的存储节点的容量信息,如此,可以确定多个存储节点包括的未使用的存储节点的第一存储空间。
第二种实现方式:存储管理节点可以先向多个存储节点分别发送携带设备标识的信息获取请求,该多个存储节点接收到该信息获取请求后,可以根据该设备标识确定能够用于存储该设备标识指示的监控设备录制的视频数据的存储空间,即第一存储空间,将第一存储空间的容量信息发送至存储管理节点,然后存储管理节点记录接收到的多个存储节点的第一存储空间的容量信息。存储管理节点还可以记录多个存储节点存储视频数据的情况,再根据记录的多个存储节点存储视频数据的情况,确定多个存储节点中未使用的存储节点,如此,存储管理节点可以确定多个存储节点包括的未使用的存储节点的第一存储空间。
进一步地,参见图5,存储管理节点可以分别向多个存储节点发送预留指令,预留指令携带设备标识,预留指令用于指示多个存储节点为设备标识指示的监控设备预留存储空间。
也就是说,存储管理节点可以预先分别向多个存储节点发送携带设备标识的预留指令,以指示多个存储节点为设备标识对应的监控设备预留存储空间。
为了便于描述,将存储节点为设备标识指示的监控设备预留的存储空间称为第二存储空间。每个存储节点的第一存储空间大于或等于第二存储空间。
其中,预留第二存储空间是为了避免其他监控设备录制的视频数据占用存储节点的存储空间,使得该监控设备录制的视频数据无法存储。也即是,预留该第二存储空间可以保证在存储节点中至少有第二存储空间可以用来存储该监控设备录制的视频数据。
作为一种示例,若某存储节点中除预留的第二存储空间之外,只剩下为其他监控设备预留的存储空间,则第一存储空间等于第二存储空间。若某存储节点中除预留的第二存储空间和为其他存储节点预留的存储空间之外,还有剩余的存储空间,该剩余的存储空间可以用于存储监控设备录制的视频数据,则第一存储空间大于第二存储空间。
在实施中,参见图6,存储节点接收到预留指令后,可以为设备标识指示的监控设备预留第二存储空间。其具体可以包括如下两种实现方式:
第一种实现方式:存储管理节点可以获取多个存储节点的第一存储空间的容量信息,然后基于第一存储空间的容量信息,根据第一策略确定每个存储节点需要为该监控设备预留的第二存储空间的容量信息,将多个第二存储空间的容量信息分别发送至对应的存储节点,由存储节点根据接收到的第二存储空间的容量信息为监控设备预留第二存储空间。
需要说明的是,第一策略可以由用户根据实际需要进行设置,也可以由存储管理节点自行设置,本申请实施例对此不做限定。作为一种示例,第一策略可以为预设的百分比,或者,第一策略可以为预设的存储空间等。
示例性地,假设第一策略为预设的百分比,存储管理节点可以确定将每个存储节点的第一存储空间的n%预留为第二存储空间,然后获取多个存储节点的第一存储空间的容量信息,根据获取的多个存储节点的第一存储空间的容量信息确定每个存储节点的第二存储空间的容量信息,将确定的多个第二存储空间的容量信息分别发送至每个存储节点。
例如,假设存储管理节点确定将每个存储节点的第一存储空间的20%预留为第二存储空间,假设存储节点的数量为3个,存储节点a的第一存储空间为60G,可以确定存储节点a的第二存储空间为12G,存储节点b的第一存储空间为100G,可以确定存储节点b的第二存储空间为20G,存储节点c的第一存储空间为80G,可以确定存储节点c的第二存储空间为16G,则将12G发送给存储节点a,将20G发送给存储节点b,将16G发送给存储节点c。
第二种实现方式:存储节点接收到预留指令后,根据自身的第一存储空间的容量信息,按照第二策略为监控设备预留第二存储空间。
需要说明的是,第二策略可以由用户根据实际需要进行设置,也可以由存储节点自行设置,本申请实施例对此不做限定。作为一种示例,第二策略可以为预设的百分比,且对于不同的存储节点,该百分比可以相同也可以不同;或者,第二策略可以为预设的存储空间,且对于不同的存储节点,该预设的存储空间可以相同也可以不同;或者,第二策略还可以是其他确定第二存储空间的策略等。
示例性地,假设第二策略为预设的存储空间,且每个存储节点的第二策略相同。也就是说,每个存储节点需要为监控设备预留的第二存储空间相同。例如,假设第二策略为10G,每个存储节点需要为监控设备预留10G的第二存储空间。也就是说,该监控设备在该多个存储节点的每个存储节点中至少有10G的第二存储空间可以用来存储视频数据。
进一步地,存储管理节点分别向多个存储节点发送预留指令之前,还可以判断多个存储节点中每个存储节点的第一存储空间是否足够,若某存储节点的第一存储空间足够,存储管理节点可以向该存储节点发送预留指令,若某存储节点的第一存储空间不足,存储管理节点可以不向该存储节点发送预留指令。
示例性地,可以预设一个空间阈值,若某存储节点的第一存储空间大于该空间阈值,可以认为该存储节点的第一存储空间足够,可以为监控设备预留第二存储空间,因此可以向该存储节点发送预留指令;若某存储节点的第一存储空间小于或等于该空间阈值,可以认为该存储节点的第一存储空间不足,无法为监控设备预留第二存储空间,因此不向该存储节点发送预留指令。
需要说明的是,空间阈值可以由用户根据实际需求进行设置,也可以由存储管理节点默认设置,本申请实施例对此不做限定。
进一步地,参见图5,存储管理节点可以接收来自监控平台的录像计划,然后根据接收到的录像计划生成预留指令。
在实施中,参见图6,存储管理节点可以接收来自监控平台的监控设备的录像计划。该录像计划可以由用户通过监控平台进行设置,且该录像计划与监控设备对应。
作为一种示例,录像计划可以包括时间信息,该时间信息可以用于描述监控设备录制视频数据的时间计划,该时间信息可以包括录制视频数据的时间段和录制的视频数据的更新时长。也就是说,可以用监控设备录制视频数据的时间段和监控设备录制的视频数据的更新时长来描述监控设备录制视频数据的时间计划。示例性地,假设时间信息包括00:00-24:00和3个月,表示该监控设备需要每天24小时不间断地录制视频数据,且录制的视频数据每3个月进行一次更新。例如,1月份到3月份的视频数据存储在存储节点中,从4月份开始,用4月份的视频数据覆盖1月份的视频数据,以此类推,实现监控设备录制的视频数据的更新。
作为一种示例,录像计划还可以包括监控设备的设备标识,以便存储管理节点可以记录该录像计划对应的监控设备。示例性地,设备标识可以是符号、数字、监控设备的型号等。例如,设备标识为1号、或设备标识为A等。
在一种可能的实现方式中,存储管理节点接收到来自监控平台的录像计划后,可以直接根据录像计划包括的设备标识生成预留指令,该预留指令包括该设备标识。
在另一种可能的实现的方式中,存储管理节点接收到来自监控平台的录像计划后,可以根据录像计划包括的录制视频数据的时间段确定录制时长,将录制时长与第一时长阈值进行对比,将录像计划包括的监控设备录制的视频数据的更新时长与第二时长阈值进行对比,若监控设备的录制时长大于第一时长阈值且监控设备录制的视频数据的更新时长大于第二时长阈值,根据录像计划包括的设备标识生成预留指令。
需要说明的是,第一时长阈值和第二时长阈值均可以由用户根据实际需求进行设置,也可以由设备默认设置,本申请实施例对此不作限定。例如,第一时长阈值可以为12小时,第二时长阈值可以为7天。
也就是说,存储管理节点接收到录像计划后,不是直接根据录像计划生成预留指令,而是先根据录像计划包括的录制视频数据的时间段确定录制时长,将录制时长与第一时长阈值进行对比,将监控设备录制的视频数据的更新时长与第二时长阈值进行对比,若监控设备的录制时长大于第一时长阈值且监控设备录制的视频数据的更新时长大于第二时长阈值,可以认为该监控设备录制的视频数据需要很大的存储空间来存储,因此,可以根据录像计划包括的设备标识生成预留指令。
步骤302:基于多个存储节点的第一存储空间,从多个存储节点包括的未使用的存储节点中确定一个存储节点作为当前存储节点,触发当前存储节点存储监控设备录制的视频数据。
其中,当前存储节点为当前用于存储监控设备录制的视频数据的存储节点。
在实施中,由于第一存储空间大的存储节点比第一存储空间小的存储节点可以存储的视频数据更多,为了便于查找,可以将监控设备录制的视频数据存储地比较集中,因此,可以将多个存储节点包括的未使用的存储节点中第一存储空间最大的存储节点确定为当前存储节点,并触发当前存储节点存储监控设备录制的视频数据。
示例性地,参见图4,步骤403,存储管理节点可以对多个存储节点中未使用的存储节点进行排序,确定第一存储空间最大的存储节点为当前存储节点。步骤404,触发当前存储节点存储监控设备录制的视频数据。
在实施中,确定当前存储节点后,存储管理节点可以触发当前存储节点存储监控设备录制的视频数据。作为一种示例,存储管理节点可以向当前存储节点发送启动指令,该启动指令用于指示当前存储节点存储监控设备录制的视频数据。
作为一种示例,存储管理节点可以向当前存储节点发送启动指令,该启动指令还可以包括设备标识。当前存储节点接收到启动指令后,可以根据设备标识,向设备标识指示的监控设备发送视频数据获取请求,该视频数据获取请求可以包括当前存储节点的节点标识,监控设备接收到视频数据获取请求后,将录制的视频数据发送至节点标识对应的当前存储节点,该当前存储节点接收来自监控设备录制的视频数据并进行存储。
作为另一种示例,监控平台可以向存储管理节点和监控设备发送验证信息,该验证信息与该监控设备对应。存储管理节点向当前存储节点发送启动指令,该启动指令还可以包括设备标识和该监控设备的验证信息。当前存储节点接收到启动指令后,可以根据设备标识,向设备标识指示的监控设备发送验证请求消息,该验证请求消息携带验证信息。监控设备接收到该验证信息后,在基于验证信息验证通过的情况下,可以向当前存储节点发送验证响应消息。当前存储节点接收到验证响应消息后,在基于验证响应消息确定验证通过的情况下,可以向监控设备发送视频数据获取请求,该视频数据获取请求可以包括当前存储节点的节点标识。监控设备接收到视频数据获取请求后,将录制的视频数据发送至节点标识对应的当前存储节点,该当前存储节点接收来自监控设备录制的视频数据并进行存储。
进一步地,在当前存储节点存储监控设备录制的视频数据的过程中,参见图4,步骤405,存储管理节点可以记录当前存储节点的节点标识、监控设备的设备标识和存储的第一个视频数据的时间点。示例性地,可以将当前存储节点存储的第一个视频数据的时间点称为当前存储节点存储的视频数据的时间点。
进一步地,存储管理节点还可以将该当前存储节点存储的第一个视频数据的时间点、设备标识以及节点标识对应存储至第一指定映射关系中。作为一种示例,可以将该第一指定映射关系存储在存储管理节点的数据库中。
步骤303:获取当前存储节点的存储状态。
在实施中,在当前存储节点存储该监控设备录制的视频数据的过程中,存储管理节点可以周期性地获取当前存储节点的存储状态,即轮询当前存储节点的存储状态,以便在当前存储节点无法存储监控设备录制的视频数据的情况下可以及时切换存储节点进行视频数据存储。
在一些实施例中,存储管理节点可以周期性地向当前存储节点发送存储状态获取指令,该当前存储节点接收到该存储状态获取指令后,可以将自身的存储状态发送至存储管理节点,如此存储管理节点可以获取当前存储节点的存储状态。
作为一种示例,存储节点的存储状态可以包括存储节点的第一存储空间的容量信息。示例性地,参见图4,步骤406,获取存储节点的存储状态可以称为获取当前存储节点的第一存储空间的容量信息。
示例性地,假设存储节点的存储状态包括存储节点的第一存储空间的容量信息。存储管理节点可以周期性地向当前存储节点发送存储状态获取指令,该存储状态获取指令可以包括监控设备的设备标识,以指示当前存储节点反馈能够用于存储该监控设备录制的视频数据的存储空间的容量信息,该当前存储节点接收到该存储状态获取指令后,可以根据该设备标识确定用于存储该监控设备录制的视频数据的存储空间,即第一存储空间,然后确定第一存储空间的容量信息,将第一存储空间的容量信息发送至存储管理节点,如此存储管理节点可以获取当前存储节点的第一存储空间的容量信息,以便在当前存储节点的第一存储空间不足的情况下,可以切换存储节点,避免视频数据丢失。
步骤304:若当前存储节点的存储状态满足切换条件,从多个存储节点包括的未使用的存储节点中重新确定一个存储节点,切换条件是指当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据。
在本实施例中,由于当前存储节点是直接存储监控设备录制的视频数据的,因此,参见图4,步骤407,当前存储节点的存储状态满足切换条件是指当前存储节点的第一存储空间小于或等于空间阈值。
也就是说,如果当前存储节点之前未存储有该监控设备录制的视频数据,且当前存储节点的第一存储空间小于或等于空间阈值,说明当前存储节点的第一存储空间容量不足,无法继续存储该监控设备录制的视频数据,即当前存储节点的存储状态满足切换条件。
在实施中,从多个存储节点中重新确定一个存储节点的具体实现可以包括:在多个存储节点中存在未使用的存储节点的情况下,从多个存储节点包括的未使用的存储节点中重新确定一个存储节点。
也就是说,如果多个存储节点中存在未存储有监控设备录制的视频数据的存储节点,说明当前存储节点不是以循环覆盖的方式存储监控设备录制的视频数据,可以从这些未使用的存储节点中重新确定一个存储节点。
在一些实施例中,从多个存储节点包括的未使用的存储节点中重新确定一个存储节点的具体实现可以包括:确定多个存储节点包括的未使用的存储节点的第一存储空间,从多个存储节点包括的未使用的存储节点中,确定第一存储空间最大的存储节点。
也即是,先确定多个存储节点包括的未使用的存储节点,然后确定每个未使用的存储节点的第一存储空间,再从未使用的存储节点中确定第一存储空间最大的存储节点。
作为一种示例,参见图4,步骤408,存储管理节点可以向多个存储节点中未使用的存储节点发送信息获取请求,该信息获取请求用于指示未使用的存储节点反馈第一存储空间的容量信息,步骤409,存储管理节点接收存储节点反馈未使用的存储节点的第一存储空间的容量信息。
由于第一存储空间大的存储节点比第一存储空间小的存储节点可以存储的视频数据更多,为了便于查找,可以将监控设备录制的视频数据存储地比较集中,因此,可以先确定第一存储空间最大的存储节点用来存储监控设备录制的视频数据。
作为一种示例,存储管理节点获取多个存储节点包括的未使用的存储节点的第一存储空间后,参见图4,步骤410,可以按照第一存储空间从大到小的顺序,对未使用的存储节点进行排序,然后将排在第一位的存储节点,即第一存储空间最大的存储节点确定为重新确定的存储节点。
例如,假设多个存储节点的存储节点标识分别为A,B,C,D,E和F,当前存储节点为存储节点A,存储节点B,C,D,E和F为未使用的存储节点,可以分别获取存储节点B,C,D,E和F的第一存储空间,然后按照第一存储空间从大到小的顺序对存储节点B,C,D,E和F进行排序,假设排序结果为D,C,F,B,E,可以确定存储节点D为重新确定的存储节点。
在另一些实施例中,从多个存储节点包括的未使用的存储节点中重新确定一个存储节点的具体实现可以包括:从多个存储节点包括的未使用的存储节点中任意确定一个存储节点。或者,可以预先对多个存储节点进行编号,然后按照编号顺序,确定与当前存储节点相邻且编号顺序位于当前存储节点之后的一个存储节点。
步骤305:触发重新确定的存储节点继续存储监控设备录制的视频数据。
也就是说,从由当前存储节点存储监控设备录制的视频数据切换至由重新确定的存储节点继续存储监控设备录制的视频数据。
在实施中,在使用重新确定的存储节点存储监控设备录制的视频数据时,可以将该重新确定的存储节点称为当前存储节点,即在切换存储节点后,当前存储节点发生了变化。示例性地,假设当前存储节点为存储节点a,在存储节点a满足切换条件的情况下,从多个存储节点中重新确定的存储节点为存储节点b,然后存储管理节点触发存储节点b继续存储监控设备录制的视频数据,此时,可以将存储节点b称为当前存储节点,存储节点a不再是当前存储节点。
在实施中,触发重新确定的存储节点继续存储监控设备录制的视频数据可以包括如下两种实现方式:
第一种实现方式:参见图4,步骤411,向重新确定的存储节点发送启动指令,启动指令用于指示重新确定的存储节点继续存储监控设备录制的视频数据。向当前存储节点发送停止指令,停止指令用于指示当前存储节点停止存储监控设备录制的视频数据。
也就是说,在该种实现方式中,可以先启动重新确定的存储节点开始存储监控设备录制的视频数据,再停止当前存储节点存储监控设备录制的视频数据。如此,可以避免出现视频数据丢失的情况。
作为一种示例,参见图4,步骤412,在重新确定的存储节点存储监控设备录制的视频数据的过程中,存储管理节点可以记录重新确定的存储节点存储监控设备录制的视频数据的时间点,即重新确定的存储节点存储的第一个视频数据的时间点。记录该监控设备的设备标识,以及记录该重新确定的存储节点的节点标识。并将该重新确定的存储节点存储的第一个视频数据的时间点、设备标识以及节点标识对应存储至第二指定映射关系中。
作为一种示例,存储管理节点还可以记录当前存储节点停止存储监控设备录制的视频数据的时间点,即当前存储节点的结束时间点,并将该当前存储节点的结束时间点添加至第一指定映射关系中。
示例性地,参见图4,当前存储节点接收到停止指令后,参见步骤413,当前存储节点可以停止存储该监控设备录制的视频数据。
第二种实现方式:向当前存储节点发送停止指令,停止指令用于指示当前存储节点停止存储监控设备录制的视频数据。向重新确定的存储节点发送启动指令,启动指令用于指示重新确定的存储节点继续存储监控设备录制的视频数据。
也就是说,在该种实现方式中,可以先停止当前存储节点存储监控设备录制的视频数据,再启动重新确定的存储节点开始存储监控设备录制的视频数据。
同理,存储管理节点可以记录重新确定的存储节点存储的第一个视频数据的时间点和当前存储节点的结束时间点,将该重新确定的存储节点存储的第一个视频数据的时间点、设备标识以及节点标识对应存储至第二指定映射关系中,以及将该当前存储节点的结束时间点添加至第一指定映射关系中。
作为一种示例,重新确定的存储节点存储监控设备录制的视频数据的具体实现可以包括:存储管理节点向重新确定的存储节点发送启动指令,该启动指令用于指示该重新确定的存储节点开始存储该监控设备录制的视频数据,该启动指令可以包括设备标识。重新确定的存储节点接收到启动指令后,可以根据设备标识,向设备标识指示的监控设备发送视频数据获取请求,该视频数据获取请求可以包括重新确定的存储节点的节点标识,监控设备接收到视频数据获取请求后,将录制的视频数据发送至节点标识对应的重新确定的存储节点,该重新确定的存储节点接收来自监控设备录制的视频数据并进行存储。
作为另一种示例,监控平台可以向存储管理节点和监控设备发送验证信息,该验证信息与该监控设备对应。重新确定的存储节点存储监控设备录制的视频数据的具体实现可以包括:存储管理节点向重新确定的存储节点发送启动指令,该启动指令用于指示该重新确定的存储节点开始存储该监控设备录制的视频数据,该启动指令可以包括设备标识和该监控设备的验证信息。重新确定的存储节点接收到启动指令后,可以根据设备标识,向设备标识指示的监控设备发送验证请求消息,该验证请求消息携带验证信息。监控设备接收到该验证信息后,在基于验证信息验证通过的情况下,可以向重新确定的存储节点发送验证响应消息。重新确定的存储节点接收到验证响应消息后,在基于验证响应消息确定验证通过的情况下,可以向监控设备发送视频数据获取请求,该视频数据获取请求可以包括重新确定的存储节点的节点标识。监控设备接收到视频数据获取请求后,将录制的视频数据发送至节点标识对应的重新确定的存储节点,该重新确定的存储节点接收来自监控设备录制的视频数据并进行存储。
进一步地,在触发重新确定的存储节点继续存储监控设备录制的视频数据之后,可以获取重新确定的存储节点的存储状态,并判断该存储状态是否满足切换条件。
在实施中,在重新确定的存储节点的存储状态满足切换条件的情况下,若多个存储节点中包括未使用的存储节点,可以继续从未使用的存储节点中重新确定一个存储节点。触发此次重新确定的存储节点继续存储监控设备录制的视频数据,并采用轮询的方式获取此次重新确定的存储节点的存储状态,直到多个存储节点中不包括未使用的存储节点为止。
示例性地,假设重新确定的存储节点为存储节点b,若存储节点b满足切换条件,且多个存储节点中包括未使用的存储节点,可以继续从多个存储节点包括的未使用的存储节点中重新确定一个存储节点,假设此次重新确定的存储节点为存储节点c,可以触发存储节点c继续存储监控设备录制的视频数据,此时,存储节点c为重新确定的存储节点,而存储节点b不再是重新确定的存储节点。在使用存储节点c存储监控设备录制的视频数据的过程中可以获取存储节点c的存储状态,直到多个存储节点中不包括未使用的存储节点为止。
需要说明的是,在重新确定的存储节点的存储状态满足切换条件的情况下,继续从多个存储节点包括未使用的存储节点中重新确定一个存储节点的方法与在当前存储节点的存储状态满足切换条件的情况下,从多个存储节点中重新确定一个存储节点的方法相同,具体实现可以参见上述实施例的相关描述,本实施例在此不再赘述。
需要说明的是,在存储节点存储监控设备录制的视频数据的过程中,若存储节点离线或发生异常,存储管理节点可以直接从多个存储节点包括的未使用的存储节点中重新确定一个存储节点来继续存储该监控设备录制的视频数据。
在本申请实施例中,确定多个存储节点包括的未使用的存储节点的第一存储空间,该第一存储空间为能够用于存储监控设备录制的视频数据的存储空间。然后基于多个存储节点的第一存储空间,从多个存储节点包括的未使用的存储节点中确定一个存储节点作为当前存储节点,并处触发当前存储节点存储监控设备录制的视频数据。在当前存储节点存储监控设备录制的视频数据的过程中,可以获取当前存储节点的存储状态。若当前存储节点的存储状态满足切换条件,即当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,可以认为该当前存储节点无法再存储该监控设备录制的视频数据。因此可以从多个存储节点包括的未使用的存储节点中重新确定一个存储节点,并触发重新确定的存储节点继续存储监控设备录制的视频数据,即使用重新确定的存储节点存储该监控设备录制的视频数据。如此,在一个存储节点可能无法存储监控设备录制的视频数据的情况下,可以重新确定另一个存储节点,并直接触发另一个存储节点来进行存储,不需要用户手动为监控设备配置其他存储节点,减少了视频数据丢失的风险。
图7是根据另一示例性实施例示出的一种视频数据的存储方法的流程图,该方法应用于上述图1所示的存储管理节点中。请参考图7,图7所示的实施例是以多个存储节点存储有监控设备录制的视频数据,以循环覆盖的方式存储监控设备录制的视频数据的情况为例进行说明,该方法可以包括如下步骤:
步骤701:确定多个存储节点的第一存储空间,该第一存储空间为能够用于存储监控设备录制的视频数据的存储空间。
在实施中,参见图8,确定多个存储节点的第一存储空间的具体实现可以包括:步骤801,向多个存储节点发送信息获取请求,步骤802,接收多个存储节点反馈的第一存储空间的容量信息。
在一些实施例中,存储管理节点可以向多个存储节点发送信息获取请求,该信息获取请求可以携带监控设备的设备标识,以使存储节点反馈容量信息,该容量信息可以表示该存储节点中用于存储该设备标识指示的监控设备录制的视频数据的存储空间大小,即该容量信息表示第一存储空间的大小。存储管理节点接收多个存储节点的容量信息,如此,可以确定多个存储节点的第一存储空间。
进一步地,参见图5,存储管理节点可以分别向多个存储节点发送预留指令,预留指令携带设备标识,预留指令用于指示多个存储节点为设备标识指示的监控设备预留存储空间。
也就是说,存储管理节点可以预先分别向多个存储节点发送携带设备标识的预留指令,以指示多个存储节点为设备标识对应的监控设备预留空间。
为了便于描述,将存储节点为设备标识指示的监控设备预留的存储空间称为第二存储空间。每个存储节点的第一存储空间大于或等于第二存储空间。
其中,预留第二存储空间是为了避免其他监控设备录制的视频数据占用存储节点的存储空间,使得该监控设备录制的视频数据无法存储。也即是,预留该第二存储空间可以保证在存储节点中至少有第二存储空间可以用来存储该监控设备录制的视频数据。
作为一种示例,若某存储节点中除预留的第二存储空间之外,只剩下为其他监控设备预留的存储空间,则第一存储空间等于第二存储空间。若某存储节点中除预留的第二存储空间和为其他存储节点预留的存储空间之外,还有剩余的存储空间,该剩余的存储空间可以用于存储监控设备录制的视频数据,则第一存储空间大于第二存储空间。
在实施中,参见图6,存储节点接收到预留指令后,可以为设备标识指示的监控设备预留第二存储空间。其具体可以包括如下两种实现方式:
第一种实现方式:存储管理节点可以获取多个存储节点的第一存储空间的容量信息,然后基于第一存储空间的容量信息,根据第一策略确定每个存储节点需要为该监控设备预留的第二存储空间的容量信息,将多个第二存储空间的容量信息分别发送至对应的存储节点,由存储节点根据接收到的第二存储空间的容量信息为监控设备预留第二存储空间。
需要说明的是,第一策略可以由用户根据实际需要进行设置,也可以由存储管理节点自行设置,本申请实施例对此不做限定。作为一种示例,第一策略可以为预设的百分比,或者,第一策略可以为预设的存储空间等。
示例性地,假设第一策略为预设的百分比,存储管理节点可以确定将每个存储节点的第一存储空间的n%预留为第二存储空间,然后获取多个存储节点的第一存储空间的容量信息,根据获取的多个存储节点的第一存储空间的容量信息确定每个存储节点的第二存储空间的容量信息,将确定的多个第二存储空间的容量信息分别发送至每个存储节点。
例如,假设存储管理节点确定将每个存储节点的第一存储空间的20%预留为第二存储空间,假设存储节点的数量为3个,存储节点a的第一存储空间为60G,可以确定存储节点a的第二存储空间为12G,存储节点b的第一存储空间为100G,可以确定存储节点b的第二存储空间为20G,存储节点c的第一存储空间为80G,可以确定存储节点c的第二存储空间为16G,则将12G发送给存储节点a,将20G发送给存储节点b,将16G发送给存储节点c。
第二种实现方式:存储节点接收到预留指令后,根据自身的第一存储空间的容量信息,按照第二策略为监控设备预留第二存储空间。
需要说明的是,第二策略可以由用户根据实际需要进行设置,也可以由存储节点自行设置,本申请实施例对此不做限定。作为一种示例,第二策略可以为预设的百分比,且对于不同的存储节点,该百分比可以相同也可以不同;或者,第二策略可以为预设的存储空间,且对于不同的存储节点,该预设的存储空间可以相同也可以不同;或者,第二策略还可以是其他确定第二存储空间的策略等。
示例性地,假设第二策略为预设的存储空间,且每个存储节点的第二策略相同。也就是说,每个存储节点需要为监控设备预留的第二存储空间相同。例如,假设第二策略为10G,每个存储节点需要为监控设备预留10G的第二存储空间。也就是说,该监控设备在该多个存储节点的每个存储节点中至少有10G的第二存储空间可以用来存储视频数据。
进一步地,存储管理节点分别向多个存储节点发送预留指令之前,还可以判断多个存储节点中每个存储节点的第一存储空间是否足够,若某存储节点的第一存储空间足够,存储管理节点可以向该存储节点发送预留指令,若某存储节点的第一存储空间不足,存储管理节点可以不向该存储节点发送预留指令。
示例性地,可以预设一个空间阈值,若某存储节点的第一存储空间大于该空间阈值,可以认为该存储节点的第一存储空间足够,可以为监控设备预留第二存储空间,因此可以向该存储节点发送预留指令;若某存储节点的第一存储空间小于或等于该空间阈值,可以认为该存储节点的第一存储空间不足,无法为监控设备预留第二存储空间,因此不向该存储节点发送预留指令。
需要说明的是,空间阈值可以由用户根据实际需求进行设置,也可以由存储管理节点默认设置,本申请实施例对此不做限定。
进一步地,参见图5,存储管理节点可以接收来自监控平台的录像计划,然后根据接收到的录像计划生成预留指令。
在实施中,参见图6,存储管理节点可以接收来自监控平台的监控设备的录像计划。该录像计划可以由用户通过监控平台进行设置,且该录像计划与监控设备对应。
作为一种示例,录像计划可以包括时间信息,该时间信息可以用于描述监控设备录制视频数据的时间计划,该时间信息可以包括录制视频数据的时间段和录制的视频数据的更新时长。也就是说,可以用监控设备录制视频数据的时间段和监控设备录制的视频数据的更新时长来描述监控设备录制视频数据的时间计划。示例性地,假设时间信息包括00:00-24:00和3个月,表示该监控设备需要每天24小时不间断地录制视频数据,且录制的视频数据每3个月进行一次更新。例如,1月份到3月份的视频数据存储在存储节点中,从4月份开始,用4月份的视频数据覆盖1月份的视频数据,以此类推,实现监控设备录制的视频数据的更新。
作为一种示例,录像计划还可以包括监控设备的设备标识,以便存储管理节点可以记录该录像计划对应的监控设备。示例性地,设备标识可以是符号、数字、监控设备的型号等。例如,设备标识为1号、或设备标识为A等。
在一种可能的实现方式中,存储管理节点接收到来自监控平台的录像计划后,可以直接根据录像计划包括的设备标识生成预留指令,该预留指令包括该设备标识。
在另一种可能的实现的方式中,存储管理节点接收到来自监控平台的录像计划后,可以根据录像计划包括的录制视频数据的时间段确定录制时长,将录制时长与第一时长阈值进行对比,将录像计划包括的监控设备录制的视频数据的更新时长与第二时长阈值进行对比,若监控设备的录制时长大于第一时长阈值且监控设备录制的视频数据的更新时长大于第二时长阈值,根据录像计划包括的设备标识生成预留指令。
需要说明的是,第一时长阈值和第二时长阈值均可以由用户根据实际需求进行设置,也可以由设备默认设置,本申请实施例对此不作限定。例如,第一时长阈值可以为12小时,第二时长阈值可以为7天。
也就是说,存储管理节点接收到录像计划后,不是直接根据录像计划生成预留指令,而是先根据录像计划包括的录制视频数据的时间段确定录制时长,将录制时长与第一时长阈值进行对比,将监控设备录制的视频数据的更新时长与第二时长阈值进行对比,若监控设备的录制时长大于第一时长阈值且监控设备录制的视频数据的更新时长大于第二时长阈值,可以认为该监控设备录制的视频数据需要很大的存储空间来存储,因此,可以根据录像计划包括的设备标识生成预留指令。
步骤702:若基于多个存储节点的第一存储空间确定多个存储节点中不存在未使用的存储节点,基于每个存储节点存储的视频数据的时间点,从多个存储节点中确定一个存储节点作为当前存储节点。
其中,未使用的存储节点是指未存储有监控设备录制的视频数据的存储节点。
也就是说,如果多个存储节点都存储有监控设备录制的视频数据,可以根据每个存储节点存储第一个视频数据的时间点,从多个存储节点中确定当前存储节点。
在实施中,参见图8,步骤803,若多个存储节点的第一存储空间均小于或等于空间阈值,可以认为多个存储节点中不存在未使用的存储节点,即多个存储节点均存储有监控设备录制的视频数据。
在实施中,基于每个存储节点存储的视频数据的时间点,从多个存储节点中确定一个存储节点作为当前存储节点的具体实现可以包括:从多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到第一候选存储节点。若第一候选存储节点的数量为一个,将第一候选存储节点确定为重新确定的存储节点;或者,若第一候选存储节点的数量为多个,从多个第一候选存储节点中确定一个存储节点作为当前存储节点。
其中,指定时长可以由用户根据实际需求进行设置,也可以由设备默认设置,本申请实施例对此不做限定。例如,指定时长可以为7天。
也就是说,若多个存储节点中不存在未使用的存储节点,说明多个存储节点目前均存储有监控设备录制的视频数据,可以获取多个存储节点中每个存储节点存储的视频数据的时间点,然后从多个存储节点中确定存储的视频数据的时间点距离当前时间点比较远的存储节点作为第一候选存储节点。如果第一候选存储节点为一个,可以直接将该第一候选存储节点确定为当前存储节点。如果第一候选存储节点的数量为多个,可以从第一候选存储节点中确定一个存储节点作为当前存储节点。
在一些实施例中,从多个第一候选存储节点中确定一个存储节点作为当前存储节点的具体实现可以包括:从多个第一候选存储节点中确定存储的视频数据的时间点距离当前时间点最远的存储节点,将确定的存储节点作为当前存储节点。
也就是说,参见图8,步骤804,可以将之前存储的第一个视频数据的时间点最早的存储节点确定为当前存储节点。
在另一些实施例中,从多个第一候选存储节点中确定一个存储节点的具体实现可以包括:从多个第一候选存储节点中任意确定一个存储节点作为当前存储节点。或者,可以预先对多个存储节点进行编号,由于多个存储节点包括多个第一候选存储节点,因此可以按照多个第一候选存储节点的编号顺序,将排在第一位的第一候选存储节点确定为当前存储节点。
步骤703:触发当前存储节点以循环覆盖的方式存储监控设备录制的视频数据。
由于当前存储节点是在多个存储节点中不存在未使用的存储节点的情况下确定的,说明当前存储节点中存储有监控设备录制的视频数据,因此,参见图8,步骤805,可以触发当前存储节点以循环覆盖的方式存储监控设备录制的视频数据。
在实施中,存储管理节点可以向当前存储节点发送启动指令,该启动指令用于指示当前存储节点存储监控设备录制的视频数据。
作为一种示例,存储管理节点可以向当前存储节点发送启动指令,该启动指令还可以包括设备标识。当前存储节点接收到启动指令后,可以根据设备标识,向设备标识指示的监控设备发送视频数据获取请求,该视频数据获取请求可以包括当前存储节点的节点标识,监控设备接收到视频数据获取请求后,将录制的视频数据发送至节点标识对应的当前存储节点,该当前存储节点接收来自监控设备录制的视频数据并进行存储。
作为另一种示例,监控平台可以向存储管理节点和监控设备发送验证信息,该验证信息与该监控设备对应。存储管理节点向当前存储节点发送启动指令,该启动指令还可以包括设备标识和该监控设备的验证信息。当前存储节点接收到启动指令后,可以根据设备标识,向设备标识指示的监控设备发送验证请求消息,该验证请求消息携带验证信息。监控设备接收到该验证信息后,在基于验证信息验证通过的情况下,可以向当前存储节点发送验证响应消息。当前存储节点接收到验证响应消息后,在基于验证响应消息确定验证通过的情况下,可以向监控设备发送视频数据获取请求,该视频数据获取请求可以包括当前存储节点的节点标识。监控设备接收到视频数据获取请求后,将录制的视频数据发送至节点标识对应的当前存储节点,该当前存储节点接收来自监控设备录制的视频数据并进行存储。
进一步地,当前存储节点每接收到监控设备发送的视频数据,需要将当前存储节点中本轮循环之前的视频数据删除一部分。示例性地,假设当前存储节点之前存储有监控设备录制的10月1日一整天的视频数据,当前要存储的是10月8日该监控设备录制的视频数据,每接收到1小时的视频数据,需要删除10月1日1小时的视频数据,然后将接收到的10月8日1小时的视频数据存储起来。
进一步地,参见图8,步骤806,在当前存储节点存储监控设备录制的视频数据的过程中,存储管理节点可以记录当前存储节点本轮存储的第一个视频数据的时间点,由于在本实施例中,当前存储节点是以循环覆盖的方式存储监控设备录制的视频数据,可以将当前存储节点本轮存储的第一个视频数据的时间点称为覆盖时间点。
进一步地,存储管理节点可以将该当前存储节点对应的第三指定映射关系中存储的第一个视频数据的时间点更新为该当前存储节点的覆盖时间点。
作为一种示例,可以将该第三指定映射关系存储在存储管理节点的数据库中。
步骤704:获取当前存储节点的存储状态。
在实施中,参见图8,步骤807,在当前存储节点存储该监控设备录制的视频数据的过程中,存储管理节点可以周期性地以轮询的方式获取当前存储节点的存储状态,以便在当前存储节点无法存储监控设备录制的视频数据的情况下可以及时切换存储节点进行视频数据存储。
在一些实施例中,存储管理节点可以周期性地向当前存储节点发送存储状态获取指令,该当前存储节点接收到该存储状态获取指令后,可以将自身的存储状态发送至存储管理节点,如此存储管理节点可以获取当前存储节点的存储状态。
作为一种示例,存储节点的存储状态可以包括存储节点的第一存储空间的容量信息。
示例性地,假设存储节点的存储状态包括存储节点的第一存储空间的容量信息。存储管理节点可以周期性地向当前存储节点发送存储状态获取指令,该存储状态获取指令可以包括监控设备的设备标识,以指示当前存储节点反馈能够用于存储该监控设备录制的视频数据的存储空间的容量信息,该当前存储节点接收到该存储状态获取指令后,可以根据该设备标识确定用于存储该监控设备录制的视频数据的存储空间,即第一存储空间,然后确定第一存储空间的容量信息,将第一存储空间的容量信息发送至存储管理节点,如此存储管理节点可以获取当前存储节点的第一存储空间的容量信息,以便在当前存储节点的第一存储空间不足的情况下,可以切换存储节点,避免视频数据丢失。
步骤705:若当前存储节点的存储状态满足切换条件,从多个存储节点中重新确定一个存储节点,切换条件是指当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据。
在本实施例中,由于当前存储节点是以循环覆盖的方式存储监控设备录制的视频数据的,因此,参见图8,步骤808,当前存储节点的存储状态满足切换条件是指当前存储节点已将本次循环覆盖之前存储的监控设备录制的视频数据完全覆盖。
也就是说,如果当前存储节点之前存储有该监控设备录制的视频数据,且已经将之前存储的该监控设备录制的视频数据全部覆盖掉,即当前存储节点中已经不包括本次循环覆盖之前存储的该监控设备录制的视频数据,可以认为当前存储节点的存储状态满足切换条件。
在实施中,从多个存储节点中重新确定一个存储节点的具体实现可以包括:从多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到第二候选存储节点。若第二候选存储节点的数量为一个,将第二候选存储节点确定为重新确定的存储节点;或者,若第二候选存储节点的数量为多个,从多个第二候选存储节点中确定一个存储节点。
也就是说,若多个存储节点中不存在未使用的存储节点,说明多个存储节点目前均存储有监控设备录制的视频数据,可以从多个存储节点中确定存储的视频数据的时间距离当前时间比较远的存储节点作为第二候选存储节点。如果第二候选存储节点为一个,可以直接将该第二候选存储节点确定为重新确定的存储节点。如果第二候选存储节点的数量为多个,可以从第二候选存储节点中确定一个存储节点。
示例性地,假设多个存储节点的存储节点标识分别为a,b,c,d,e,f和g,且该7个存储节点存储了同一个监控设备的视频数据。假设一个存储节点可以存储一天的视频数据,存储节点a存储的是1月1日的视频数据,存储节点b存储的是1月2日的视频数据,存储节点c存储的是1月3日的视频数据,存储节点d存储的是1月4日的视频数据,存储节点e存储的是1月5日的视频数据,存储节点f存储的是1月6日的视频数据,存储节点g存储的是1月7日的视频数据。假设当前存储节点为存储节点a,存储节点a用1月8日的视频数据覆盖了之前存储的1月1日的视频数据,即当前时间点为1月8日。假设指定时长为6天,可以确定第二候选存储节点为存储节点b,可以直接将存储节点b确定为重新确定的存储节点。假设指定时长为3天,可以确定第二候选存储节点为存储节点b、c和d,然后可以从存储节点b、c和d中选择一个存储节点确定为重新确定的存储节点。
在一些实施例中,从多个第二候选存储节点中确定一个存储节点的具体实现可以包括:从多个第二候选存储节点中确定存储的视频数据的时间点距离当前时间点最远的存储节点。
继续上述举例,若第二候选存储节点为存储节点b、c和d,由于存储节点b存储的是1月2日的视频数据,存储节点c存储的是1月3日的视频数据,存储节点d存储的是1月4日的视频数据,当前时间点为1月8日,距离当前时间点最远的为1月2日,可以将存储节点b确定为重新确定的存储节点。
在另一些实施例中,从多个第二候选存储节点中确定一个存储节点的具体实现可以包括:从多个第二候选存储节点中任意确定一个存储节点作为重新确定的存储节点。或者,可以预先对多个存储节点进行编号,由于多个存储节点包括多个第二候选存储节点,因此可以按照多个第二候选存储节点的编号顺序,确定多个第二候选存储节点中与当前存储节点相邻且编号顺序位于当前存储节点之后的一个存储节点。
步骤706:触发重新确定的存储节点以循环覆盖的方式继续存储监控设备录制的视频数据。
也就是说,从由当前存储节点存储监控设备录制的视频数据切换至由重新确定的存储节点继续存储监控设备录制的视频数据。
在实施中,在使用重新确定的存储节点存储监控设备录制的视频数据时,可以将该重新确定的存储节点称为当前存储节点,即在切换存储节点后,当前存储节点发生了变化。示例性地,假设当前存储节点为存储节点a,在存储节点a满足切换条件的情况下,从多个存储节点中重新确定的存储节点为存储节点b,然后存储管理节点触发存储节点b继续存储监控设备录制的视频数据,此时,可以将存储节点b称为当前存储节点,存储节点a不再是当前存储节点。
在实施中,由于重新确定的存储节点是在多个存储节点中不存在未使用的存储节点的情况下确定的,可以触发重新确定的存储节点以循环覆盖的方式继续存储监控设备录制的视频数据。
示例性地,假设当前存储节点为存储节点a,存储节点a是用1月8日的视频数据覆盖了之前存储的1月1日的视频数据。重新确定的存储节点为存储节点b,且存储节点b中存储的是1月2日的视频数据,可以触发存储节点b以循环覆盖的方式使用1月9日的视频数据覆盖之前存储的1月2日的视频数据。
在实施中,触发重新确定的存储节点继续存储监控设备录制的视频数据可以包括如下两种实现方式:
第一种实现方式:参见图8,步骤810,存储管理节点可以向重新确定的存储节点发送启动指令,启动指令用于指示重新确定的存储节点继续存储监控设备录制的视频数据。向当前存储节点发送停止指令,停止指令用于指示当前存储节点停止存储监控设备录制的视频数据。
也就是说,在该种实现方式中,可以先启动重新确定的存储节点开始存储监控设备录制的视频数据,再停止当前存储节点存储监控设备录制的视频数据。如此,可以避免出现视频数据丢失的情况。
示例性地,参见图8,步骤812,当前存储节点接收到停止指令后,可以停止存储该监控设备录制的视频数据。
作为一种示例,参见图8,步骤811,存储管理节点可以记录重新确定的存储节点的覆盖时间点,即重新确定的存储节点本轮存储的第一个视频数据的时间点。存储管理节点还可以将该重新确定的存储节点对应的第四指定映射关系中存储的第一个视频数据的时间点更新为该重新确定的存储节点的覆盖时间点。
作为一种示例,参见图8,步骤813,存储管理节点还可以记录当前存储节点停止存储监控设备录制的视频数据的时间点,即当前存储节点的结束时间点,并将该当前存储节点的结束时间点添加至当前存储节点对应的第三指定映射关系中。
第二种实现方式:向当前存储节点发送停止指令,停止指令用于指示当前存储节点停止存储监控设备录制的视频数据。向重新确定的存储节点发送启动指令,启动指令用于指示重新确定的存储节点继续存储监控设备录制的视频数据。
也就是说,在该种实现方式中,可以先停止当前存储节点存储监控设备录制的视频数据,再启动重新确定的存储节点开始存储监控设备录制的视频数据。
同理,存储管理节点可以记录重新确定的存储节点对应的第四指定映射关系中存储的第一个视频数据的时间点更新为该重新确定的存储节点的覆盖时间点,以及将该当前存储节点的结束时间点添加至当前存储节点对应的第三指定映射关系中。
作为一种示例,重新确定的存储节点存储监控设备录制的视频数据的具体实现可以包括:存储管理节点向重新确定的存储节点发送启动指令,该启动指令用于指示该重新确定的存储节点开始存储该监控设备录制的视频数据,该启动指令可以包括设备标识。重新确定的存储节点接收到启动指令后,可以根据设备标识,向设备标识指示的监控设备发送视频数据获取请求,该视频数据获取请求可以包括重新确定的存储节点的节点标识,监控设备接收到视频数据获取请求后,将录制的视频数据发送至节点标识对应的重新确定的存储节点,该重新确定的存储节点接收来自监控设备录制的视频数据并进行存储。
作为另一种示例,监控平台可以向存储管理节点和监控设备发送验证信息,该验证信息与该监控设备对应。重新确定的存储节点存储监控设备录制的视频数据的具体实现可以包括:存储管理节点向重新确定的存储节点发送启动指令,该启动指令用于指示该重新确定的存储节点开始存储该监控设备录制的视频数据,该启动指令可以包括设备标识和该监控设备的验证信息。重新确定的存储节点接收到启动指令后,可以根据设备标识,向设备标识指示的监控设备发送验证请求消息,该验证请求消息携带验证信息。监控设备接收到该验证信息后,在基于验证信息验证通过的情况下,可以向重新确定的存储节点发送验证响应消息。重新确定的存储节点接收到验证响应消息后,在基于验证响应消息确定验证通过的情况下,可以向监控设备发送视频数据获取请求,该视频数据获取请求可以包括重新确定的存储节点的节点标识。监控设备接收到视频数据获取请求后,将录制的视频数据发送至节点标识对应的重新确定的存储节点,该重新确定的存储节点接收来自监控设备录制的视频数据并进行存储。
进一步地,重新确定的存储节点每接收到监控设备发送的视频数据,需要将重新确定的存储节点中本轮循环之前的视频数据删除一部分。示例性地,假设重新确定的存储节点之前存储有监控设备录制的10月2日一整天的视频数据,当前要存储的是10月9日该监控设备录制的视频数据,每接收到1小时的视频数据,需要删除10月2日1小时的视频数据,然后将接收到的10月9日1小时的视频数据存储起来。
进一步地,在触发重新确定的存储节点以循环覆盖的方式继续存储监控设备录制的视频数据之后,可以采用轮询的方式获取重新确定的存储节点的存储状态,并判断该存储状态是否满足切换条件。
在实施中,在重新确定的存储节点的存储状态满足切换条件的情况下,可以继续从多个存储节点中重新确定一个存储节点。触发此次重新确定的存储节点以循环覆盖的方式继续存储监控设备录制的视频数据。此时,重新确定的存储节点发生了变化。
示例性地,假设重新确定的存储节点为存储节点b,若存储节点b满足切换条件,可以继续从多个存储节点中重新确定一个存储节点,假设此次重新确定的存储节点为存储节点c,可以触发存储节点c继续存储监控设备录制的视频数据,此时,存储节点c为重新确定的存储节点,而存储节点b不再是重新确定的存储节点。
需要说明的是,在重新确定的存储节点的存储状态满足切换条件的情况下,继续从多个存储节点中重新确定一个存储节点的方法与在当前存储节点的存储状态满足切换条件的情况下,从多个存储节点中重新确定一个存储节点的方法相同,具体实现可以参见上述实施例的相关描述,本实施例在此不再赘述。
作为一种示例,若重新确定的存储节点是以循环覆盖的方式存储监控设备录制的视频数据,且重新确定的存储节点满足切换条件的情况下,可以从多个存储节点中重新确定一个存储节点,继续采用轮询的方式获取该重新确定的一个存储节点的存储状态,在该重新确定的存储节点的存储状态满足切换条件时,继续执行从多个存储节点中重新确定存储节点的步骤,直到多个存储节点均进行过一轮循环覆盖后,开始下一轮循环覆盖。
示例性地,假设有3个存储节点,重新确定的存储节点为存储节点x,在存储节点x满足切换条件的情况下,存储节点x存储的第一个视频数据的时间点为1月13日00:00,存储节点y存储的第一个视频数据的时间点为1月11日00:00,存储节点z存储的第一个视频数据的时间点为1月12日00:00。根据存储的第一个视频数据的时间点可以将存储节点y确定为重新确定的一个存储节点,然后触发存储节点y采用循环覆盖的方式存储监控设备录制的视频数据,即用1月14日的视频数据覆盖之前存储的1月13日的视频数据,并采用轮询的方式获取存储节点y的存储状态,若存储节点y满足切换条件,可以继续从多个存储节点中重新确定一个存储节点,根据存储的第一个视频数据的时间点可以将存储节点z确定为重新确定的一个存储节点,然后执行相关操作,直到存储节点z满足切换条件,可以认为一轮循环覆盖已经结束,可以继续从存储节点x开始重复下一轮的循环覆盖。
在实施中,在进行下一轮循环覆盖的过程中,每有一个以循环覆盖的方式存储监控设备录制的视频数据的存储节点的存储状态满足切换条件,可以将指定映射关系中本轮的覆盖时间点更新为下一轮的覆盖时间点。
需要说明的是,在存储节点存储监控设备录制的视频数据的过程中,若存储节点离线或发生异常,存储管理节点可以直接从多个存储节点中重新确定一个存储节点来继续存储该监控设备录制的视频数据。
在本申请实施例中,确定多个存储节点的第一存储空间,该第一存储空间为能够用于存储监控设备录制的视频数据的存储空间。若基于多个存储节点的第一存储空间确定多个存储节点中不存在未使用的存储节点,可以根据每个存储节点存储的视频数据的时间点,从多个存储节点中确定一个存储节点作为当前存储节点,并触发当前存储节点存储监控设备录制的视频数据。在当前存储节点存储监控设备录制的视频数据的过程中,可以采用轮询的方式获取当前存储节点的存储状态。若当前存储节点的存储状态满足切换条件,即当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,由于第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间,因此,可以认为该当前存储节点无法再存储该监控设备录制的视频数据。因此可以从多个存储节点中重新确定一个存储节点,并触发重新确定的存储节点继续存储监控设备录制的视频数据,即使用重新确定的存储节点存储该监控设备录制的视频数据。如此,在一个存储节点可能无法存储监控设备录制的视频数据的情况下,可以重新确定另一个存储节点,并直接触发另一个存储节点来进行存储,不需要用户手动为监控设备配置其他存储节点,减少了视频数据丢失的风险。
图9是根据又一示例性实施例示出的一种视频数据的存储方法的流程图,该方法应用于上述图1所示的存储管理节点中。请参考图9,图9所示的实施例是以开始多个存储节点未存储有监控设备录制的视频数据,随着将监控设备录制的视频数据存储至多个存储节点中,使得多个存储节点无法再存储监控设备录制的视频数据,此时,多个存储节点中存储有监控设备录制的视频数据,以循环覆盖的方式存储监控设备录制的视频数据的情况为例进行说明。
也即是,图9所示的实施例是将图3所示的实施例和图7所示的实施例结合起来的一种实施例,该方法可以包括如下步骤:
步骤901:确定多个存储节点包括的未使用的存储节点的第一存储空间,该第一存储空间为能够用于存储监控设备录制的视频数据的存储空间。
本步骤的具体实现可参见步骤301,本实施例在此不再赘述。
步骤902:基于多个存储节点的第一存储空间,从多个存储节点包括的未使用的存储节点中确定一个存储节点作为当前存储节点,触发当前存储节点存储监控设备录制的视频数据。
本步骤的具体实现可参见步骤302,本实施例在此不再赘述。
步骤903:获取当前存储节点的存储状态。
本步骤的具体实现可参见步骤303,本实施例在此不再赘述。
步骤904:若当前存储节点的存储状态满足切换条件,从多个存储节点包括的未使用的存储节点中重新确定一个存储节点,切换条件是指当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据。
本步骤中,由于当前存储节点是在多个存储节点包括的未使用的存储节点中确定的,因此,当前存储节点的存储状态满足切换条件是指当前存储节点的第一存储空间小于或等于空间阈值。
本步骤的具体实现可参见步骤304,本实施例在此不再赘述。
步骤905:触发重新确定的存储节点继续存储监控设备录制的视频数据,并获取重新确定的存储节点的存储状态。
触发重新确定的存储节点继续存储监控设备录制的视频数据的过程可参见步骤905的相关描述,本实施例在此不再赘述。
在重新确定的存储节点存储监控设备录制的视频数据的过程中,可以采用轮询的方式获取重新确定的存储节点的存储状态,以便在重新确定的存储节点无法继续存储监控设备录制的视频数据时,可以及时更换其他存储节点,避免视频数据丢失。
步骤906:若重新确定的存储节点的存储状态满足切换条件,确定多个存储节点的第一存储空间。
本步骤中,由于重新确定的存储节点是在多个存储节点包括的未使用的存储节点中确定的,因此,重新确定的存储节点的存储状态满足切换条件是指重新确定的存储节点的第一存储空间小于或等于空间阈值。
需要说明的是,确定多个存储节点的第一存储空间的具体实现可以参见步骤701,本实施例在此不再赘述。
步骤907:若基于多个存储节点的第一存储空间确定多个存储节点中不存在未使用的存储节点,基于每个存储节点存储的视频数据的时间点,从多个存储节点中确定一个存储节点作为当前存储节点。
在实施中,本步骤的当前存储节点与步骤902和903的存储节点可能是相同的存储节点,也可能是不同的存储节点。另外,本步骤的当前存储节点是之前存储有监控设备录制的视频数据的存储节点,需要以循环覆盖的方式存储监控设备录制的视频数据;而步骤902的当前存储节点是未存储有监控设备录制的视频数据的存储节点。
在实施中,如果多个存储节点的第一存储空间均小于或等于空间阈值,可以认为多个存储节点中不存在未使用的存储节点,此时再存储监控设备录制的视频数据,是以循环覆盖的方式进行存储。
本步骤的具体实现可参见步骤702,本实施例在此不再赘述。
步骤908:触发当前存储节点以循环覆盖的方式继续存储监控设备录制的视频数据。
本步骤的具体实现可参见步骤703,本实施例在此不再赘述。
步骤909:获取当前存储节点的存储状态。
本步骤的具体实现可参见步骤704,本实施例在此不再赘述。
步骤910:若当前存储节点的存储状态满足切换条件,从多个存储节点中重新确定一个存储节点。
本步骤中,由于当前存储节点是在多个存储节点不存在未使用的存储节点的情况下确定的,因此,当前存储节点的存储状态满足切换条件是指当前存储节点已将本次循环覆盖之前存储的监控设备录制的视频数据完全覆盖。
本步骤的具体实现可参见步骤705,本实施例在此不再赘述。
步骤911:触发重新确定的存储节点以循环覆盖的方式继续存储监控设备录制的视频数据。
在实施中,本步骤的重新确定的存储节点与步骤905和906的存储节点可能是相同的存储节点,也可能是不同的存储节点。另外,本步骤的重新确定的存储节点是之前存储有监控设备录制的视频数据的存储节点,需要以循环覆盖的方式存储监控设备录制的视频数据;而步骤905的重新确定的存储节点是未存储有监控设备录制的视频数据的存储节点。
本步骤的具体实现可参见步骤706,本实施例在此不再赘述。
在本申请实施例中,确定多个存储节点包括的未使用的存储节点的第一存储空间,该第一存储空间为能够用于存储监控设备录制的视频数据的存储空间。然后基于多个存储节点的第一存储空间,从多个存储节点包括的未使用的存储节点中确定一个存储节点作为当前存储节点,并触发当前存储节点存储监控设备录制的视频数据。在使用当前存储节点存储监控设备录制的视频数据的过程中,可以获取当前存储节点的存储状态。若当前存储节点的存储状态满足切换条件,即当前存储节点无法继续存储监控设备录制的视频数据,可以从多个存储节点包括的未使用的存储节点中重新确定一个存储节点,并触发重新确定的存储节点继续存储监控设备录制的视频数据。在重新确定的存储节点存储监控设备录制的视频数据的过程中,可以继续获取重新确定的存储节点的存储状态。若重新确定的存储节点的存储状态满足切换条件,可以确定多个存储节点的第一存储空间。若基于多个存储节点的第一存储空间确定多个存储节点中不存在未使用的存储节点,可以基于每个存储节点存储的视频数据的时间点,从多个存储节点中确定一个存储节点作为以循环覆盖的方式存储监控设备录制的视频数据的当前存储节点。在当前存储节点以循环覆盖的方式继续存储监控设备录制的视频数据的过程中,可以获取当前存储节点的存储状态,若当前存储节点的存储状态满足切换条件,可以从多个存储节点中重新确定一个存储节点,并触发重新确定的存储节点以循环覆盖的方式继续存储监控设备录制的视频数据。如此,在一个存储节点可能无法存储监控设备录制的视频数据的情况下,可以重新确定另一个存储节点,并直接触发另一个存储节点来进行存储,且在多个存储节点都无法继续存储监控设备录制的视频数据的过程中,可以以循环覆盖的方式继续存储监控设备录制的视频数据,可以存储更多的视频数据,且不需要用户手动为监控设备配置其他存储节点,减少了视频数据丢失的风险。
为了便于理解,下面结合表1对本申请实施例提供的视频数据的存储方法进行解释说明。
在实施中,在存储节点不以循环覆盖的方式存储视频数据的过程中,存储管理节点需要记录节点标识、设备标识、存储的第一个视频数据的时间点和结束时间点,在存储节点以循环覆盖的方式存储视频数据的过程中,存储管理节点可以记录覆盖时间点、设备标识、节点标识和覆盖完成时间点,并用覆盖时间点更新存储的第一个视频数据的时间点,以及用结束时间点更新上一轮的结束时间点。
表1
Figure GDA0002555779180000391
Figure GDA0002555779180000401
Figure GDA0002555779180000411
参见表1,存储管理节点在T1向多个存储节点发送包括设备标识A的预留指令,存储节点1-n接收到包括设备标识的预留指令。
在T2时间点,存储管理节点触发存储节点1存储设备标识A的视频数据,存储管理节点记录存储的第一个视频数据的时间点T2、设备标识A、存储节点1和开始,表示存储节点1在T2时间点开始存储设备标识A录制的视频数据。
在T3时间点,存储节点1的第一存储空间不足,存储管理节点触发存储节点2存储设备标识A的视频数据,存储管理节点记录存储的第一个视频数据的时间点T3、设备标识A、存储节点2和开始,表示存储节点2在T3时间点开始存储设备标识A录制的视频数据。
在T4时间点,存储管理节点向存储节点1发送停止指令,用于指示存储节点1停止存储设备标识A录制的视频数据,存储管理节点记录结束时间点T4、设备标识A、存储节点1和停止,表示存储节点1在T4时间点停止存储设备标识A录制的视频数据。
在T5时间点,存储节点2的第一存储空间不足,存储管理节点触发存储节点m存储设备标识A的视频数据,存储管理节点记录存储的第一个视频数据的时间点T5、设备标识A、存储节点m和开始,表示存储节点m在T5时间点开始存储设备标识A录制的视频数据。
在T6时间点,存储管理节点向存储节点2发送停止指令,用于指示存储节点2停止存储设备标识A录制的视频数据,存储管理节点记录结束时间点T6、设备标识A、存储节点2和停止,表示存储节点2在T6时间点停止存储设备标识A录制的视频数据。
在T7时间点,存储节点m的第一存储空间不足,存储管理节点触发存储节点n存储设备标识A的视频数据,存储管理节点记录存储的第一个视频数据的时间点T7、设备标识A、存储节点n和开始,表示存储节点n在T7时间点开始存储设备标识A录制的视频数据。
在T8时间点,存储管理节点向存储节点m发送停止指令,用于指示存储节点m停止存储设备标识A录制的视频数据,存储管理节点记录结束时间点T8、设备标识A、存储节点m和停止,表示存储节点m在T8时间点停止存储设备标识A录制的视频数据。
在T9时间点,存储节点n的第一存储空间不足,存储管理节点触发存储节点1采用循环覆盖的方式存储设备标识A的视频数据,存储管理节点记录覆盖时间点T9、设备标识A、存储节点1和开始,表示存储节点1在T9时间点开始采用循环覆盖的方式存储设备标识A录制的视频数据。
在T10时间点,存储管理节点向存储节点n发送停止指令,用于指示存储节点n停止存储设备标识A录制的视频数据,存储管理节点记录结束时间点T10、设备标识A、存储节点n和停止,表示存储节点n在T10时间点停止存储设备标识A录制的视频数据。
在T11时间点,存储管理节点1已经覆盖了T2-T4的视频数据,存储管理节点触发存储节点2采用循环覆盖的方式存储设备标识A的视频数据,存储管理节点记录覆盖时间点T11、设备标识A、存储节点2和开始,表示存储节点2在T11时间点开始采用循环覆盖的方式存储设备标识A录制的视频数据。
以此类推,直到T18时间点,存储管理节点向存储节点n发送停止指令,用于指示存储节点n停止存储设备标识A录制的视频数据,存储管理节点记录覆盖完成时间点T18、设备标识A、存储节点n和停止,表示存储节点n在T18时间点停止存储设备标识A录制的视频数据。
以此类推,还可以不断以循环覆盖的方式存储监控设备A录制的视频数据。
图10是根据一示例性实施例示出的一种视频数据的存储装置的结构示意图,该装置可以由软件、硬件或者两者的结合实现成为设备的部分或者全部,该设备可以为图1所示的存储管理节点。请参考图10,该装置包括:获取模块1001、确定模块1002和触发模块1003。
获取模块1001,用于获取当前存储节点的存储状态,当前存储节点为当前用于存储监控设备录制的视频数据的存储节点,当前存储节点为多个存储节点中的一个存储节点;
确定模块1002,用于在当前存储节点的存储状态满足切换条件的情况下,从多个存储节点中重新确定一个存储节点,切换条件是指当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间;
触发模块1003,用于触发重新确定的存储节点继续存储监控设备录制的视频数据。
在本申请一种可能的实现方式中,确定模块1002用于:
在多个存储节点中存在未使用的存储节点的情况下,从多个存储节点包括的未使用的存储节点中重新确定一个存储节点,未使用的存储节点是指未存储有监控设备录制的视频数据的存储节点;
确定多个存储节点包括的未使用的存储节点的第一存储空间;
从多个存储节点包括的未使用的存储节点中,确定第一存储空间最大的存储节点。
在本申请一种可能的实现方式中,确定模块1002用于:
在多个存储节点中不存在未使用的存储节点的情况下,从多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到候选存储节点;
若候选存储节点的数量为一个,将候选存储节点确定为重新确定的存储节点;或者,若候选存储节点的数量为多个,从多个候选存储节点中确定一个存储节点;
从多个候选存储节点中确定存储的视频数据的时间点距离当前时间点最远的存储节点。
在本申请一种可能的实现方式中,触发模块1003用于:
触发重新确定的存储节点以循环覆盖的方式继续存储监控设备录制的视频数据。
在本申请一种可能的实现方式中,
若当前存储节点不是以循环覆盖的方式存储监控设备录制的视频数据,当前存储节点的存储状态满足切换条件是指当前存储节点的第一存储空间小于或等于空间阈值;
或者,
若当前存储节点是以循环覆盖的方式存储监控设备录制的视频数据,当前存储节点的存储状态满足切换条件是指当前存储节点已将本次循环覆盖之前存储的监控设备录制的视频数据完全覆盖。
在本申请一种可能的实现方式中,触发模块1003还用于:
在重新确定的存储节点的存储状态满足切换条件的情况下,继续从多个存储节点中重新确定一个存储节点。
在本申请一种可能的实现方式中,触发模块1003还用于:
分别向多个存储节点发送预留指令,预留指令携带设备标识,预留指令用于指示多个存储节点为设备标识指示的监控设备预留存储空间。
在本申请一种可能的实现方式中,触发模块1003用于:
向重新确定的存储节点发送启动指令,启动指令用于指示重新确定的存储节点继续存储监控设备录制的视频数据;
向当前存储节点发送停止指令,停止指令用于指示当前存储节点停止存储监控设备录制的视频数据。
在本申请实施例中,将多个存储节点中当前用于存储监控设备录制的视频数据的存储节点称为当前存储节点,在当前存储节点存储监控设备录制的视频数据的过程中,可以获取当前存储节点的存储状态。若当前存储节点的存储状态满足切换条件,即当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,由于第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间,因此,可以认为该当前存储节点无法再存储该监控设备录制的视频数据。因此可以从多个存储节点中重新确定一个存储节点,并触发重新确定的存储节点继续存储监控设备录制的视频数据,即使用重新确定的存储节点存储该监控设备录制的视频数据。如此,在一个存储节点可能无法存储监控设备录制的视频数据的情况下,可以重新确定另一个存储节点,并直接触发另一个存储节点来进行存储,不需要用户手动为监控设备配置其他存储节点,减少了视频数据丢失的风险。
需要说明的是:上述实施例提供的视频数据的存储装置在存储视频数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频数据的存储装置与视频数据的存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11是根据一示例性实施例示出的一种视频数据的存储系统的结构示意图。该系统包括存储管理节点1101和多个存储节点1102。
该存储管理节点1101用于获取当前存储节点的存储状态,当前存储节点为当前用于存储监控设备录制的视频数据的存储节点,当前存储节点为多个存储节点1102中的一个存储节点;
该存储管理节点1101用于在当前存储节点的存储状态满足切换条件的情况下,从多个存储节点1102中重新确定一个存储节点,切换条件是指当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间;
该存储管理节点1101用于触发重新确定的存储节点继续存储监控设备录制的视频数据;
重新确定的存储节点1102用于存储监控设备录制的视频数据。
在本申请一种可能的实现方式中,该系统还包括监控设备1103;
存储管理节点1101用于向重新确定的存储节点发送启动指令,启动指令用于指示重新确定的存储节点继续存储监控设备录制的视频数据;
重新确定的存储节点1102用于接收到启动指令后,向监控设备发送视频数据获取请求;
监控设备1103用于在接收到视频数据获取请求后,向重新确定的存储节点发送录制的视频数据;
重新确定的存储节点1102用于接收并存储视频数据。
在本申请一种可能的实现方式中,存储管理节点1101用于向重新确定的存储节点发送启动指令后,还包括:
存储管理节点1101用于向当前存储节点发送停止指令,停止指令用于指示当前存储节点停止存储监控设备录制的视频数据;
当前存储节点1102用于接收到停止指令后,停止存储监控设备发送的视频数据。
在本申请一种可能的实现方式中,存储管理节点1101还用于分别向多个存储节点发送预留指令,预留指令携带设备标识,预留指令用于指示多个存储节点1102为设备标识指示的监控设备预留存储空间。
在本申请实施例中,将多个存储节点中当前用于存储监控设备录制的视频数据的存储节点称为当前存储节点,在当前存储节点存储监控设备录制的视频数据的过程中,可以获取当前存储节点的存储状态。若当前存储节点的存储状态满足切换条件,即当前存储节点的第一存储空间不能继续存储监控设备录制的视频数据,由于第一存储空间是指能够用于存储监控设备录制的视频数据的存储空间,因此,可以认为该当前存储节点无法再存储该监控设备录制的视频数据。因此可以从多个存储节点中重新确定一个存储节点,并触发重新确定的存储节点继续存储监控设备录制的视频数据,即使用重新确定的存储节点存储该监控设备录制的视频数据。如此,在一个存储节点可能无法存储监控设备录制的视频数据的情况下,可以重新确定另一个存储节点,并直接触发另一个存储节点来进行存储,不需要用户手动为监控设备配置其他存储节点,减少了视频数据丢失的风险。
图12是根据一示例性实施例示出的一种设备的结构示意图,该设备1200可以为存储管理节点。该设备1200包括中央处理单元(CPU)1201、包括随机存取存储器(RAM)1202和只读存储器(ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。设备1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1210连接到中央处理单元1201。基本输入/输出系统1206还可以包括输入输出控制器1210以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1210还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。大容量存储设备1207及其相关联的计算机可读介质为设备1200提供非易失性存储。也就是说,大容量存储设备1207可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本申请的各种实施例,设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即设备1200可以通过连接在系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中视频数据的存储方法的步骤。例如,所述计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
值得注意的是,本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。
也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的视频数据的存储方法的步骤。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种视频数据的存储方法,其特征在于,应用于存储管理节点中,所述存储管理节点用于管理多个存储节点,所述方法包括:
分别向所述多个存储节点发送预留指令,所述预留指令携带监控设备的设备标识,所述预留指令用于指示所述多个存储节点为所述监控设备预留第二存储空间,所述第二存储空间用于存储所述监控设备录制的视频数据,且不能存储其他监控设备的视频数据;
获取当前存储节点的存储状态,所述当前存储节点为所述多个存储节点中当前正在存储所述监控设备录制的视频数据的一个存储节点,所述当前存储节点的存储状态包括所述当前存储节点的第一存储空间的容量信息,所述第一存储空间包括所述第二存储空间,且所述第一存储空间是指能够用于存储所述监控设备录制的视频数据的存储空间;
在所述当前存储节点的存储状态满足切换条件的情况下,如果所述多个存储节点中存在未使用的存储节点,则从所述多个存储节点包括的未使用的存储节点中重新确定一个存储节点,并触发重新确定的存储节点在相应第一存储空间内继续存储所述监控设备录制的视频数据,所述未使用的存储节点是指相应第一存储空间内未存储有所述监控设备录制的视频数据的存储节点;
或者,在所述当前存储节点的存储状态满足切换条件的情况下,如果所述多个存储节点中不存在所述未使用的存储节点,则从所述多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到候选存储节点,若所述候选存储节点的数量为一个,将所述候选存储节点确定为所述重新确定的存储节点;或者,若所述候选存储节点的数量为多个,从多个候选存储节点中确定一个存储节点;触发重新确定的存储节点以循环覆盖的方式在相应第一存储空间内继续存储所述监控设备录制的视频数据;
其中,所述切换条件是指所述当前存储节点的第一存储空间不能继续存储所述监控设备录制的视频数据。
2.如权利要求1所述的方法,其特征在于,所述从所述多个存储节点包括的未使用的存储节点中重新确定一个存储节点,包括:
确定所述多个存储节点包括的未使用的存储节点的第一存储空间;
从所述多个存储节点包括的未使用的存储节点中,确定第一存储空间最大的存储节点。
3.如权利要求1所述的方法,其特征在于,所述从多个候选存储节点中确定一个存储节点,包括:
从所述多个候选存储节点中确定存储的视频数据的时间点距离当前时间点最远的存储节点。
4.如权利要求1所述的方法,其特征在于,
若所述当前存储节点不是以循环覆盖的方式存储所述监控设备录制的视频数据,所述当前存储节点的存储状态满足切换条件是指所述当前存储节点的第一存储空间小于或等于空间阈值;
或者,
若所述当前存储节点是以循环覆盖的方式存储所述监控设备录制的视频数据,所述当前存储节点的存储状态满足切换条件是指所述当前存储节点已将本次循环覆盖之前存储的所述监控设备录制的视频数据完全覆盖。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
在所述重新确定的存储节点的存储状态满足所述切换条件的情况下,继续从所述多个存储节点中重新确定一个存储节点。
6.如权利要求1所述的方法,其特征在于,所述触发重新确定的存储节点在相应第一存储空间内继续存储所述监控设备录制的视频数据,包括:
向所述重新确定的存储节点发送启动指令,所述启动指令用于指示所述重新确定的存储节点在相应第一存储空间内继续存储所述监控设备录制的视频数据;
向所述当前存储节点发送停止指令,所述停止指令用于指示所述当前存储节点停止存储所述监控设备录制的视频数据。
7.一种视频数据的存储装置,其特征在于,应用于存储管理节点中,所述存储管理节点用于管理多个存储节点,所述装置包括:
触发模块,用于分别向所述多个存储节点发送预留指令,所述预留指令携带监控设备的设备标识,所述预留指令用于指示所述多个存储节点为所述监控设备预留第二存储空间,所述第二存储空间用于存储所述监控设备录制的视频数据,且不能存储其他监控设备的视频数据;
获取模块,用于获取当前存储节点的存储状态,所述当前存储节点为所述多个存储节点中当前正在存储所述监控设备录制的视频数据的一个存储节点,所述当前存储节点的存储状态包括所述当前存储节点的第一存储空间的容量信息,所述第一存储空间包括所述第二存储空间,且所述第一存储空间是指能够用于存储所述监控设备录制的视频数据的存储空间;
确定模块,用于在所述当前存储节点的存储状态满足切换条件的情况下,如果所述多个存储节点中存在未使用的存储节点,则从所述多个存储节点包括的未使用的存储节点中重新确定一个存储节点,所述触发模块还用于触发重新确定的存储节点在相应第一存储空间内继续存储所述监控设备录制的视频数据,所述未使用的存储节点是指相应第一存储空间内未存储有所述监控设备录制的视频数据的存储节点;
或者,所述确定模块用于在所述当前存储节点的存储状态满足切换条件的情况下,如果所述多个存储节点中不存在所述未使用的存储节点,则从所述多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到候选存储节点,若所述候选存储节点的数量为一个,将所述候选存储节点确定为所述重新确定的存储节点;或者,若所述候选存储节点的数量为多个,从多个候选存储节点中确定一个存储节点;所述触发模块还用于触发重新确定的存储节点以循环覆盖的方式在相应第一存储空间内继续存储所述监控设备录制的视频数据;
其中,所述切换条件是指所述当前存储节点的第一存储空间不能继续存储所述监控设备录制的视频数据。
8.一种视频数据的存储系统,其特征在于,所述系统包括存储管理节点,和多个存储节点;
所述存储管理节点用于分别向所述多个存储节点发送预留指令,所述预留指令携带监控设备的设备标识,所述预留指令用于指示所述多个存储节点为所述监控设备预留第二存储空间,所述第二存储空间用于存储所述监控设备录制的视频数据,且不能存储其他监控设备的视频数据;
所述存储管理节点用于获取当前存储节点的存储状态,所述当前存储节点为所述多个存储节点中当前正在存储所述监控设备录制的视频数据的一个存储节点,所述当前存储节点的存储状态包括所述当前存储节点的第一存储空间的容量信息,所述第一存储空间包括所述第二存储空间,且所述第一存储空间是指能够用于存储所述监控设备录制的视频数据的存储空间;
所述存储管理节点用于在所述当前存储节点的存储状态满足切换条件的情况下,如果所述多个存储节点中存在未使用的存储节点,则从所述多个存储节点包括的未使用的存储节点中重新确定一个存储节点,并触发重新确定的存储节点在相应第一存储空间内继续存储所述监控设备录制的视频数据,所述未使用的存储节点是指相应第一存储空间内未存储有所述监控设备录制的视频数据的存储节点;
或者,所述存储管理节点用于在所述当前存储节点的存储状态满足切换条件的情况下,如果所述多个存储节点中不存在所述未使用的存储节点,则从所述多个存储节点中确定存储的视频数据的时间点与当前时间点的时间差大于指定时长的存储节点,得到候选存储节点,若所述候选存储节点的数量为一个,将所述候选存储节点确定为所述重新确定的存储节点;或者,若所述候选存储节点的数量为多个,从多个候选存储节点中确定一个存储节点,触发重新确定的存储节点以循环覆盖的方式在相应第一存储空间内继续存储所述监控设备录制的视频数据;
其中,所述切换条件是指所述当前存储节点的第一存储空间不能继续存储所述监控设备录制的视频数据;
所述重新确定的存储节点用于存储所述监控设备录制的视频数据。
9.如权利要求8所述的系统,其特征在于,所述系统还包括监控设备;
所述存储管理节点用于向所述重新确定的存储节点发送启动指令,所述启动指令用于指示所述重新确定的存储节点在相应第一存储空间内继续存储所述监控设备录制的视频数据;
所述重新确定的存储节点用于接收到所述启动指令后,向所述监控设备发送视频数据获取请求;
所述监控设备用于在接收到所述视频数据获取请求后,向所述重新确定的存储节点发送录制的视频数据;
所述重新确定的存储节点用于接收并在相应第一存储空间内存储所述视频数据。
10.如权利要求9所述的系统,其特征在于,所述存储管理节点用于向所述重新确定的存储节点发送启动指令后,还包括:
所述存储管理节点用于向所述当前存储节点发送停止指令,所述停止指令用于指示所述当前存储节点停止存储所述监控设备录制的视频数据;
所述当前存储节点用于接收到所述停止指令后,停止存储所述监控设备发送的视频数据。
11.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的程序,以实现权利要求1-6任一所述方法的步骤。
CN202010352057.3A 2020-04-28 2020-04-28 视频数据的存储方法、装置、系统及设备 Active CN111526315B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010352057.3A CN111526315B (zh) 2020-04-28 2020-04-28 视频数据的存储方法、装置、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010352057.3A CN111526315B (zh) 2020-04-28 2020-04-28 视频数据的存储方法、装置、系统及设备

Publications (2)

Publication Number Publication Date
CN111526315A CN111526315A (zh) 2020-08-11
CN111526315B true CN111526315B (zh) 2023-03-14

Family

ID=71902998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010352057.3A Active CN111526315B (zh) 2020-04-28 2020-04-28 视频数据的存储方法、装置、系统及设备

Country Status (1)

Country Link
CN (1) CN111526315B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4258674A1 (en) * 2020-12-07 2023-10-11 Hisense Visual Technology Co., Ltd. Display device, video recording method, and recorded file display method
CN115623151B (zh) * 2022-12-20 2023-03-03 苏州万店掌网络科技有限公司 一种音视频存储方法及网络录像设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154966A (zh) * 2017-04-24 2017-09-12 浙江宇视科技有限公司 一种视频数据写入方法以及装置
CN108762688A (zh) * 2018-06-06 2018-11-06 北京世纪东方通讯设备有限公司 一种用于视频监控系统的媒体流存储方法及装置
CN109407976A (zh) * 2018-09-21 2019-03-01 联想(北京)有限公司 一种分布式存储方法及分布式存储装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103024329B (zh) * 2013-01-04 2016-04-13 四川长虹电子系统有限公司 一种监控录像的存储管理方法
CN105531682A (zh) * 2014-08-15 2016-04-27 联发科技股份有限公司 管理多通道存储设备以具有改进的通道切换响应时间的方法及相关的存储控制系统
CN107888636B (zh) * 2016-09-30 2020-01-17 杭州海康威视数字技术股份有限公司 基于云存储的数据处理方法及系统
CN107959812B (zh) * 2016-10-18 2020-09-22 杭州萤石网络有限公司 监控数据的存储方法、装置、系统与路由设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154966A (zh) * 2017-04-24 2017-09-12 浙江宇视科技有限公司 一种视频数据写入方法以及装置
CN108762688A (zh) * 2018-06-06 2018-11-06 北京世纪东方通讯设备有限公司 一种用于视频监控系统的媒体流存储方法及装置
CN109407976A (zh) * 2018-09-21 2019-03-01 联想(北京)有限公司 一种分布式存储方法及分布式存储装置

Also Published As

Publication number Publication date
CN111526315A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
US9400718B2 (en) Multi-tenant disaster recovery management system and method for intelligently and optimally allocating computing resources between multiple subscribers
CN109597853B (zh) 业务场景元素序列号生成方法、装置、介质和计算机设备
CN111526315B (zh) 视频数据的存储方法、装置、系统及设备
CN109857551B (zh) 基于云计算的服务资源的调度方法及装置、电子设备
CN103152390B (zh) 分布式存储系统的节点配置方法、装置、节点及系统
US20190205145A1 (en) Robot task management method, robot using the same and computer readable storage medium
EP2897368B1 (en) Interactive personal/internet protocol television subscription system, and subscription plan management method and device
CN103443770A (zh) 终端装置、进程管理方法以及进程管理程序
CN111399764B (zh) 数据存储方法、读取方法、装置、设备及存储介质
US10956371B2 (en) Team folder conversion and management
CN112650576A (zh) 资源调度方法、装置、设备、存储介质及计算机程序产品
US20070256078A1 (en) Resource reservation system, method and program product used in distributed cluster environments
EP3989613A1 (en) Sim card resource management scheduling apparatus, communication terminal, and system
CN110990142A (zh) 并发任务处理方法、装置、计算机设备和存储介质
CN109697112B (zh) 分布式集约化一站式作业系统和实现方法
CN109002263A (zh) 存储容量的调整方法及装置
CN114172903B (zh) slurm调度系统的节点扩容方法、装置、设备和介质
CN112035460A (zh) 一种标识分配方法、装置、设备和存储介质
CN111654671B (zh) 视频数据的存储方法、装置、设备及存储介质
CN112866314B (zh) 分布式主从系统中从节点的切换方法、主节点设备和存储介质
CN115102862A (zh) 一种用于sdn设备的自动同步方法及装置
CN109921940B (zh) 基于sdwan场景实现网络业务离线编排处理的系统及方法
CN111722783B (zh) 数据存储方法及装置
CN108319679B (zh) 一种主键的生成方法及装置
EP4148565A1 (en) Application deployment method, application blueprint generation method, platform, terminal, and medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant