CN111831206B - 存储空间切换方法及后端监控*** - Google Patents
存储空间切换方法及后端监控*** Download PDFInfo
- Publication number
- CN111831206B CN111831206B CN201910301232.3A CN201910301232A CN111831206B CN 111831206 B CN111831206 B CN 111831206B CN 201910301232 A CN201910301232 A CN 201910301232A CN 111831206 B CN111831206 B CN 111831206B
- Authority
- CN
- China
- Prior art keywords
- index information
- space
- state
- linked list
- updating
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Closed-Circuit Television Systems (AREA)
Abstract
本申请实施例提供一种存储空间切换方法及后端监控***,为了实现对存储空间的一级索引信息和二级索引信息的异步更新,以减少存储空间切换过程的耗时,在监测到任一前端相机对应的存储空间需要被切换时,在预设的全局链表中将该存储空间记录为延时关闭空间,并在该全局链表中将该延时关闭空间记录为待关闭状态;为该前端相机分配新存储空间,对新存储空间的一级索引信息和二级索引信息进行更新;对全局链表中处于待关闭状态的延时关闭空间的二级索引信息进行更新,并将其状态更新为关闭中状态;对全局链表中处于关闭中状态的延时关闭空间进行更新,对该延时关闭空间进行关闭,并在全局链表中将其状态更新为已关闭状态。
Description
技术领域
本申请涉及视频监控技术领域,具体而言,涉及一种存储空间切换方法及后端监控***。
背景技术
为了提升管理效率和空间利用率等,后端监控***为前端相机分配的存储空间的大小通常比较固定,如256MB或1GB,因此,一个存储空间只能供前端相机进行一段时间的数据存储。例如,当一个前端相机A向其存储空间B写入的数据达到固定大小(比如接近存储空间B的容量)时,存储空间B将不能继续供前端相机A存储数据。此时,需要将该前端相机的监控数据的存储位置从存储空间B切换到其他新的存储空间。
相关技术中,前端相机的存储空间的切换过程是一个串行流程,以上述前端相机A为例,需要先关闭存储空间B,再申请新的存储空间C作为前端相机A的存储位置。其中,在关闭存储空间B之前需要更新存储空间B中存储的码流数据的索引信息,在关闭存储空间B之后需要更新存储空间B的索引信息,在申请存储空间C后,需要更新存储空间C的索引信息以及对存储空间C中的码流数据的索引信息进行初始化。
可见,上述切换过程涉及到多次索引信息的更新,导致切换过程耗时较长。在新申请的存储空间可被使用前,前端相机监控到的码流数据只能保存到后端监控***为该前端相机分配的缓冲区中,然而缓冲区的大小有限,可能出现数据溢出的情况,导致码流数据丢失。
发明内容
有鉴于此,本申请的目的之一在于提供一种存储空间切换方法及装置,以至少部分地改善上述问题。
为了达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种存储空间切换方法,应用于与至少一个前端相机通信连接的后端监控***,所述方法包括:
在监测到所述后端监控***为任一前端相机分配的存储空间需要被切换时,将所述存储空间作为延时关闭空间记录到预设的全局链表中,并在所述全局链表中将所述延时关闭空间的状态记录为待关闭状态;
为所述前端相机分配新存储空间,对所述新存储空间的一级索引信息和二级索引信息进行更新;
对所述全局链表记录的处于待关闭状态的延时关闭空间的二级索引信息进行更新,并在所述全局链表中将二级索引信息被更新后的延时关闭空间的状态更新为关闭中状态;
对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新,对一级索引信息被更新后的延时关闭空间进行关闭,并在所述全局链表中将所述一级索引信息被更新后的延时关闭空间的状态更新为已关闭状态。
第二方面,本申请实施例提供一种后端监控***,所述后端监控***包括:
管理线程,用于在监测到所述后端监控***为任一前端相机分配的存储空间需要被切换时,将所述存储空间作为延时关闭空间记录到预设的全局链表中,并在所述全局链表中将所述延时关闭空间的状态记录为待关闭状态;
存储模块,用于为所述前端相机分配新存储空间,对所述新存储空间的一级索引信息和二级索引信息进行更新;
所述管理线程,还用于:
对所述全局链表记录的处于待关闭状态的延时关闭空间的二级索引信息进行更新,并在所述全局链表中将二级索引信息被更新后的延时关闭空间的状态更新为关闭中状态;
对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新,对一级索引信息被更新后的延时关闭空间进行关闭,并在所述全局链表中将所述一级索引信息被更新后的延时关闭空间的状态更新为已关闭状态。
本申请实施例提供的一种存储空间切换方法及后端监控***,在监测到后端监控***为任一前端相机分配的存储空间需要被切换时,在预设的全局链表中将该存储空间记录为延时关闭空间,并在该全局链表中将该延时关闭空间记录为待关闭状态;为该前端相机分配新存储空间,对新存储空间的一级索引信息和二级索引信息进行更新;更新全局链表中处于待关闭状态的延时关闭空间的二级索引信息,并将其状态更新为关闭中状态;更新全局链表中处于关闭中状态的延时关闭空间,对该延时关闭进行关闭,并在全局链表中将其状态更新为已关闭状态。如此,实现了对存储空间的一级索引信息和二级索引信息的异步更新,减少了存储空间切换过程的耗时,进而可以避免因存储空间切换过程的耗时过长而导致的数据丢失。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种后端监控***与前端相机的交互示意图;
图2为本申请实施例提供的一种后端监控***的功能模块示意图;
图3为本申请实施例提供的一种存储空间切换方法的流程示意图;
图4为图3所示步骤33的一种子步骤示意图;
图5为图3所示步骤33的又一种子步骤示意图;
图6为图3所示步骤34的一种子步骤示意图;
图7为图3所示步骤34的又一种子步骤示意图。
图标:10-后端监控***;11-前端相机接入收流模块;12-收流模块;13-存储模块;14-管理进程;21、22-前端相机。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
请参照图1,图1是本申请实施例提供的一种后端监控***10与前端相机的交互示意图。所述后端监控***10可以部署在一个服务器或多个相互通信连接的服务器上,本实施例不以此为限制。所述后端监控***10可以通过网络与至少一个前端相机(例如,图1所示的前端相机21和22)通信连接,以实现数据交互。
请参照图2,图2是本申请实施例提供的后端监控***10的一种功能模块示意图。所述后端监控***10可以包括前端相机接入管理模块11、收流模块12(又称“码流数据接收模块”)以及存储模块13。
其中,前端相机接入管理模块11用于监测是否有前端相机接入,在监测到有前端相机接入时为接入的前端相机分配一定的内存空间作为该前端相机的缓冲区,以及向所述存储模块13申请新的存储空间。所述存储模块13用于对所述后端监控***10中的存储资源(例如,硬盘、磁盘阵列等)进行管理和组织,并且用于响应前端相机接入管理模块11的申请,为所述接入的前端相机分配一存储空间以用于存储所述接入的前端相机发送的码流数据。
所述存储模块13可以按照特定的方式来组织后端监控***10的存储资源。在一个示例中,所述存储模块13可以采用文件***来组织后端监控***的存储资源,在此情况下,存储模块13分配给前端相机的一个存储空间可以视作一个文件。在又一示例中,所述存储模块13可以采用基于块的存储***来组织后端监控***10的存储资源,在此情况下,存储模块13分配给前端相机的一个存储空间可以视为一个存储块。当然,所述存储模块13还可以采用其它方式来组织存储资源,本实施例不以此为限制。
如背景技术部分所描述的,在对前端相机A的存储空间B进行切换时,需要完成至少两次一级索引信息的更新一级至少两次二级索引信息的更新,才能将该前端相机A的码流数据的存储位置,从存储空间B切换到新的存储空间C。在完成切换前,前端相机A的码流数据将继续被写入到缓冲区中,但是缓冲区容量较小,因此,可能导致数据溢出,进而造成数据丢失。
为至少部分地改善以上问题,本实施例提供一种存储空间切换方法及后端监控***,下面将对该内容进行详述。
请参照图3,图3是本申请实施例提供的一种存储空间切换方法的流程示意图,可以应用于图2所示的后端监控***10。下面将对该方法的各个步骤进行阐述。
步骤31,在监测到后端监控***10为任一前端相机分配的存储空间需要被切换时,将所述存储空间作为延时关闭空间记录到预设的全局链表中,并在所述全局链表中将所述延时关闭空间的状态记录为待关闭状态。
在本实施例中,后端监控***10中预先创建有一全局链表。所述后端监控***10在监测到需要切换的存储空间时,在所述全局链表中记录该存储空间的标识信息,并将该存储空间的状态记录为待关闭状态。其中,所述标识信息可以是,但不限于,文件名称、文件位置等。值得说明的是,本实施例的所述全局链表中记录的各标识信息所指示的存储空间均为延时关闭空间。
在实施时,可以针对所述全局链表记录的每个存储空间,在所述全局链表中设置与该存储空间对应的状态字段,所述状态字段的值可以用于指示该存储空间的状态。例如,当一个存储空间对应的状态字段的值为0时,表示该存储空间处于待关闭状态;当一个存储空间对应的状态字段的值为1时,表示该存储空间处于关闭中状态;当一个存储空间对应的状态字段的值为2时,表示该存储空间处于已关闭状态。当然,所述状态字段的值与所指示的状态之间的对应关系可以根据实际情况进行灵活调整,本实施例不以此为限制。
可选地,在本实施例中的存储空间为存储块或文件的情况下,每个存储空间可以具有对应的句柄,所述后端监控***10中的各个模块可以通过该句柄对该存储空间进行读操作或写操作,例如,收流模块12可以通过一个存储空间的句柄向该存储空间写入码流数据。
基于此,本实施例中,可以将需要进行切换的存储空间的句柄作为标识信息转移到所述全局链表中。鉴于收流模块12通常不会访问所述全局链表,因此,收流模块12将无法通过延时关闭空间的句柄来向该延时关闭空间写入数据。
可选地,请再次参照图2,后端监控***10可以创建有一管理线程14,以对所述后端监控***10分配给各个前端相机的存储空间进行监测,以在监测到分配给任一前端相机的存储空间符合特定条件时,确定该前端相机的该存储空间需要被切换。例如,可以在监测到任一前端相机的存储空间存储的码流数据达到预设大小时,确定该前端相机的该存储空间需要被切换。
以图1所示的前端相机21为例,假设管理线程14监测到前端相机21的存储空间S1存储的码流数据达到所述预设大小,则可以确定前端相机21的存储空间S1需要被切换,即:需要关闭存储空间S1,并为前端相机21申请新存储空间。故,将存储空间S1的标识信息S1记录到所述全局链表中,并将存储空间S1对应的状态字段的值设置为指示待关闭状态的值(例如0)。
步骤32,为所述前端相机分配新存储空间,对所述新存储空间的一级索引信息和二级索引信息进行更新。
在本实施例中,每个存储空间通常可以具有两个层级的索引信息,例如,可以具有一级索引信息和二级索引信息。其中,一级索引信息是指用于描述存储空间属性信息的元数据(metadata),例如可以包括存储空间的名称、大小、在存储模块提供的存储资源中的位置等。二级索引信息是指用于描述存储空间中的码流数据的元数据,例如存储空间存储的码流数据的属性、该码流数据在该存储空间的具***置等。
在实施时,对于存储模块13分配的新存储空间,后端监控***10可以直接记录该新存储空间的起始位置等信息,作为该新存储空间的一级索引信息的一部分;以及对该新存储空间所需存储的码流数据的类型、所对应的前端相机的相关信息进行初始化,以实现对新存储文件的二级索引信息的更新。
步骤33,对所述全局链表记录的处于待关闭状态的延时关闭空间的二级索引信息进行更新,并在所述全局链表中将二级索引信息被更新后的延时关闭空间的状态更新为关闭中状态。
在本实施例中,二级索引信息被更新后的延时关闭空间即为处于关闭中状态的延时关闭空间。
可选地,在本实施例中,步骤33中,对所述全局链表记录的处于待关闭状态的延时关闭空间的二级索引信息进行更新的步骤,可以通过如图4所示的步骤实现。
步骤41,监测每次将所述前端相机发送的码流数据从所述收流模块12写入所述存储模块13所用的写入时长,并统计所述前端相机的写入时长连续低于预设的平均写入时长的次数,得到一连续次数。
步骤42,若所述连续次数达到第一预设值,则从所述全局链表记录的延时关闭空间中确定与所述前端相机对应的、处于待关闭状态的延时关闭空间,并对所确定的延时关闭空间的二级索引信息进行更新。
在实施时,步骤41和42可以由前述的管理线程14执行。
以图1所示场景为例,如果收流模块12接收到前端相机21发送的码流数据data1,则在一种实施方式中,管理线程14可以将收流模块12接收到该码流数据data1的时刻作为计时起点,在该码流数据被全部写入存储模块13提供的存储空间的时刻作为计时终点,该计时终点与该计时起点的差即为前端相机21本次向存储模块13写入码流数据data1的写入时长。
在又一种实施方式中,收流模块12在接收到码流数据data1时,会将码流数据data1放到缓冲区中,因此,管理线程14可以将码流数据data1开始从缓冲区写入存储模块13的时刻作为计时起点,将码流数据data1完全被写入存储模块13的时刻作为计时终点,该计时终点与该计时起点的差即为前端相机21本次向存储模块13写入码流数据data1的写入时长。
在实施时,针对每个前端相机,管理线程14可以记录有与该前端相机对应的次数字段。其中,该次数字段的初始值例如可以为X0,所述X0可以选用任意整数,本实施例不以此为限制。管理线程14每次监测到该前端相机的写入时长时,将该写入时长与所述预设的平均写入时长进行比较,如果该写入时长低于所述预设的平均写入时长,则将所述次数字段的当前值加1;如果该写入时长不低于所述预设的平均写入时长,则可以将所述次数字段的当前值重置为X0。
如此,所述次数字段的当前值与X0的差,即为本实施例的所述连续次数。例如,当X0为0,所述次数字段的当前值为3时,所述连续次数为3。即:前端相机连续3次的写入时长低于所述预设的平均写入时长。其中,所述预设的平均写入时长可以根据测试数据或经验数据进行灵活设定。
可选地,在实施过程中,还可以通过以下步骤对所述预设的平均写入时长进行实时更新:
每间隔第二预设时长,计算在该第二预设时长内监测到的各写入时长的平均值;将所述平均值更新为所述预设的平均写入时长。
其中,所述第二预设时长可以根据需求进行灵活设定,例如可以是2小时-10小时,又如可以是1天-3天,本实施例不以此为限制。
在实施过程中,如果监测到前端相机连续多次的写入时长低于所述预设的平均写入时长,则表示该前端相机对应的存储空间处于空闲状态,此时可以对该前端相机所对应的延时关闭空间的二级索引信息进行更新。因此,在检测到任一前端相机的连续次数达到所述第一预设值时,可以通过步骤42,对全局链表中记录的与该前端相机对应的、且处于待关闭状态的延时关闭空间的二级索引信息进行更新。
可选地,所述第一预设值可以根据实际需求进行灵活设定,例如可以为3-10,比如5。本实施例对此没有限制。
可选地,在本实施例中,步骤33还可以包括图5所示的步骤。
步骤51,监测所述连续次数低于所述第一预设值的时长,若该时长达到第一预设时长,则在下一次监测到的所述前端相机的写入时长时,判断该写入时长是否低于所述平均写入时长。若是,则执行步骤52;若否,则执行步骤53。
步骤52,从所述全局链表中确定与所述前端相机对应的、处于待关闭状态的延时关闭空间,并对所确定的延时关闭空间的二级索引信息进行更新。
详细地,在实施时,管理线程14可以针对每一前端相机设置一计时器。以前端相机21为例,当监测到前端相机21的写入时长低于所述预设的平均写入时长时,可以将该前端相机21的计时器清零,并开始计时。其中,所述计时器的计时时长可以充当所述连续次数低于所述第一预设值的时长。
如果在所述计时器的计时时长达到所述第一预设时长时,所述连续次数仍低于所述第一预设值,表示前端相机21对应的存储空间的二级索引信息在过去的第一预设时长内未被更新,则可以在下一次监测到前端相机21的写入时长时,判断该写入时长是否低于所述预设的平均写入时长;如果是,表示前端相机21对应的存储空间相对比较空闲,则可以对前端相机21对应的存储空间的二级索引信息进行更新。
步骤53,在下一次监测到需要对所述前端相机的存储空间进行切换时,从所述全局链表中确定与所述前端相机对应的、处于待关闭状态的延时关闭空间,并对所确定的延时关闭空间的二级索引信息进行更新。
详细地,在前述示例中,假设步骤31中监测到前端相机21的存储空间S1需要被切换,并为前端相机21分配的新存储空间S2,则在监测到新存储空间S2需要进行切换时,可以从全局链表中确定与前端相机21对应的处于待关闭状态的延时关闭空间,并更新其二级索引信息。此处描述的新存储空间S2可以充当步骤53中下一次监测到的需要进行切换的存储空间。
步骤34,对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新,关闭一级索引信息被更新后的延时关闭空间,并在所述全局链表中将所述一级索引信息被更新后的延时关闭空间的状态更新为已关闭状态。
在本实施例中,一级索引信息和二级索引信息均被更新后的延时关闭空间即为处于已关闭状态的延时关闭空间。
其中,对于一级索引信息和二级索引信息均被更新后的延时关闭空间,可以直接将其关闭。详细地,对于全局链表中记录的标识信息是延时关闭空间的句柄的情况,可以直接关闭该句柄,从而实现对该延时关闭空间的关闭。
可选地,在本实施例中,步骤34中,对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新的步骤可以通过图6所示步骤实现。
步骤61,在更新任一存储空间的一级索引信息时,从所述全局链表记录的处于关闭中状态的延时关闭空间中,查找一级索引信息与该存储空间的一级索引信息处于同一逻辑地址区域的第一延时关闭空间。
其中,假设当前要更新存储空间N的一级索引信息,则所述第一延时关闭空间是指全局链表记录的处于关闭中状态的延时关闭空间中,一级索引信息与该存储空间N的一级索引信息处于相同逻辑地址区域的延时关闭空间。
在本实施例中,例如可以在对分配的新存储空间的一级索引信息进行更新时(即:在执行步骤32时),触发执行步骤61。
步骤62,对查找到的第一延时关闭空间的一级索引信息进行批量更新。经研究,对处于同一逻辑地址区域的信息进行批量更新,相较于分别更新同一逻辑地址区域中的多个信息,所需的操作量更少,耗时更短。
而在本实施例中,每分配一个新存储空间,就需要更新该新存储空间的一级索引信息。并且,在后端监控***提供的多个存储空间中,可能存在其它存储空间的一级索引信息与该新存储空间的一级索引信息处于相同逻辑地址区域。因此,每分配一个新存储空间,即可从全局链表记录的延时关闭空间中确定第一延时关闭空间,并对所述第一延时关闭空间的一级索引信息进行更新。
其中,步骤32中对所述新存储空间的一级索引信息的更新也可以和步骤62一并进行,以进一步减少操作量。
为避免延时关闭空间的一级索引信息长时间不被更新,可选地,步骤34中,对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新的步骤还可以包括图7所示的步骤。
步骤71,统计所述前端相机的切换次数。
其中,以前端相机21为例,在将前端相机21的码流数据的存储位置从存储空间S1切换到存储空间S2为一次切换,将前端相机21的码流数据的存储位置从存储空间S2切换到存储空间S3为一次切换。
步骤72,在所述切换次数达到第二预设值时,确定所述全局链表中与所述前端相机对应的、处于关闭中状态的第二延时关闭空间的数量。
其中,所述第二延时关闭空间是指所述全局连接记录的延时关闭空间中,与所述前端相机对应且处于关闭中状态的延时关闭空间。
步骤73,若所述数量大于1,则针对每个第二延时关闭空间,从所述全局链表中查找处于关闭中状态的、一级索引信息与该第二延时关闭空间的一级索引信息处于相同逻辑地址区域的其它延时关闭空间。
步骤74,对所述第二延时关闭空间及查找到的所述其它延时关闭空间的一级索引信息进行批量更新。
在本实施例中,通常情况下,所述全局链表记录的与每个前端相机对应的延时关闭空间中,只包含一个处于关闭中状态的延时关闭空间,若出现多于一个的处于关闭中状态的延时关闭空间(即:多于一个的第二延时关闭空间),则表示该多于一个的第二延时关闭空间的一级索引信息长时间未被更新,此时可以强制性地对这些第二延时关闭空间的一级索引信息进行更新。
对应地,为了减少操作量,可以在对第二延时关闭空间的一级索引信息进行更新时,对一级索引信息和第二延时关闭空间处于同一逻辑地址区域的、且处于关闭中状态的其它延时关闭空间的一级索引信息进行更新。
经研究,在上述设计的基础上,还是可能出现某些延时关闭空间的一级索引信息和/或二级索引信息长时间未被更新的情况,导致后续过程中无法获取到完整的数据。
基于此,步骤34还可以包括以下步骤:
管理线程14若监测到收流模块向任一延时关闭空间写入数据失败,则更新该延时关闭空间的一级索引信息和/或二级索引信息,对该延时关闭空间进行关闭,并在全局链表中将该延时关闭空间的状态更新为已关闭状态。
在本实施例中,在实施过程中,如果有用户需要调取延时关闭空间中的码流数据,为了确保用户调取的数据完整性,步骤34还可以包括以下步骤:
管理线程14可以在监测到针对任一延时关闭空间的监控调取指令时,判断所述全局链表中记录的该延时关闭空间的状态是否为已关闭状态。如果不是已关闭状态,则更新该延时关闭空间的一级索引信息和/或二级索引信息,关闭该延时关闭空间,并在所述全局链表中将该延时关闭空间的状态更新为已关闭状态。
在前述的两个步骤中,如果延时关闭空间的一级索引信息和二级索引信息均未被更新,则对该延时关闭空间的一级索引信息和二级索引信息均进行更新。如果该延时关闭空间的一级索引信息未被更新,则只对该延时关闭空间的一级索引信息进行更新。
值得说明的是,在对写入数据失败的延时关闭空间的一级索引信息进行更新时,或者,在监控调取指令针对的延时关闭空间的一级索引信息进行更新时,均可以触发执行上述的步骤61,即触发对一级索引信息的批量更新。
可选地,管理线程14可以每间隔第三预设时长对全局链表中处于已关闭状态的延时关闭空间进行删除,具体地,所述第三预设时长可以根据实际需求进行灵活设定,本实施例不以此为限制。
可选地,如果在前述过程中,在对任一延时关闭空间的一级索引信息或二级索引信息进行更新时出现掉电情况,则在后端监控***10重新启动后,可以从后端监控***10提供的多个延时关闭空间中查找一级索引信息或二级索引信息不完整的延时关闭空间,并继续对查找到的延时关闭空间的一级索引信息或二级索引信息进行更新。
值得说明的是,在本实施例中,存储空间具有两个层级的索引信息仅为示例,本实施例提供的存储空间切换方法及后端监控***对于具有两个以上层级的索引信息的存储空间同样适用。
综上所述,本实施例提供的存储空间切换方法及后端监控***,对各个延时关闭空间的一级索引信息和二级索引信息进行异步更新,相较于现有技术中串行的存储空间切换方式,减少了切换过程所需的耗时,从而改善了因存储空间切换过程耗时过长所导致的数据丢失问题,提高了后端监控***的完整性和稳定性。
此外,相较于现有技术中通过增加缓冲区的大小来避免数据丢失问题的方式,所需的成本更低。
在本申请所提供的实施例中,应该理解到,所揭露的***和方法,也可以通过其它的方式实现。以上所描述的***实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种存储空间切换方法,其特征在于,应用于与至少一个前端相机通信连接的后端监控***,所述方法包括:
在监测到所述后端监控***为任一前端相机分配的存储空间需要被切换时,将所述存储空间作为延时关闭空间记录到预设的全局链表中,并在所述全局链表中将所述延时关闭空间的状态记录为待关闭状态;
为所述前端相机分配新存储空间,对所述新存储空间的一级索引信息和二级索引信息进行更新,其中,所述一级索引信息是用于描述存储空间属性信息的元数据,所述二级索引信息是用于描述存储空间中的码流数据的元数据;
对所述全局链表记录的处于待关闭状态的延时关闭空间的二级索引信息进行更新,并在所述全局链表中将二级索引信息被更新后的延时关闭空间的状态更新为关闭中状态;
对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新,对一级索引信息被更新后的延时关闭空间进行关闭,并在所述全局链表中将所述一级索引信息被更新后的延时关闭空间的状态更新为已关闭状态。
2.根据权利要求1所述的方法,其特征在于,所述后端监控***包括收流模块和存储模块,所述收流模块用于接收所述前端相机发送的码流数据,并将所述码流数据写入所述存储模块为所述前端相机提供的存储空间中;
所述对所述全局链表记录的处于待关闭状态的延时关闭空间的二级索引信息进行更新,包括:
监测每次将所述前端相机发送的码流数据从所述收流模块写入所述存储模块所用的写入时长,并统计所述前端相机的写入时长连续低于预设的平均写入时长的次数,得到一连续次数;
若所述连续次数达到第一预设值,则从所述全局链表记录的延时关闭空间中确定与所述前端相机对应的、处于待关闭状态的延时关闭空间,并对所确定的延时关闭空间的二级索引信息进行更新。
3.根据权利要求2所述的方法,其特征在于,所述对所述全局链表中处于待关闭状态的延时关闭空间的二级索引信息进行更新,还包括:
监测所述连续次数低于所述第一预设值的时长;
若该时长达到第一预设时长,则在下一次监测到的所述前端相机的写入时长低于所述平均写入时长时,从所述全局链表中确定与所述前端相机对应的、处于待关闭状态的延时关闭空间,并对所确定的延时关闭空间的二级索引信息进行更新;
若下一次监测到的所述前端相机的写入时长不低于所述平均写入时长,则在下一次监测到需要对所述前端相机的存储空间进行切换时,从所述全局链表中确定与所述前端相机对应的、处于待关闭状态的延时关闭空间,并对所确定的延时关闭空间的二级索引信息进行更新。
4.根据权利要求2或3所述的方法,其特征在于,所述对所述全局链表记录的处于待关闭状态的延时关闭空间的二级索引信息进行更新,还包括:
每间隔第二预设时长,计算在所述第二预设时长内监测到的各写入时长的平均值;
将所述平均值更新为所述预设的平均写入时长。
5.根据权利要求1-3中任意一项所述的方法,其特征在于,所述存储空间为存储块或文件,每个存储空间具有对应的句柄,所述后端监控***能够通过该句柄对该存储空间进行读操作和/或写操作;所述将所述存储空间作为延时关闭空间记录到预设的全局链表中,包括:
将所述存储空间的句柄转移到所述全局链表中。
6.根据权利要求1-3中任意一项所述的方法,其特征在于,所述对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新,包括:
在对任一存储空间的一级索引信息进行更新时,从所述全局链表记录的处于关闭中状态的延时关闭空间中,查找一级索引信息与该存储空间的一级索引信息处于同一逻辑地址区域的第一延时关闭空间;
对查找到的第一延时关闭空间的一级索引信息进行批量更新。
7.根据权利要求6所述的方法,其特征在于,所述对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新,还包括:
统计所述前端相机的存储空间的切换次数;
在所述切换次数达到第二预设值时,从所述全局链表中确定与所述前端相机对应的、处于关闭中状态的第二延时关闭空间的数量;
若所述数量大于1,则针对每个第二延时关闭空间,从所述全局链表中查找处于关闭中状态的、一级索引信息与该第二延时关闭空间的一级索引信息处于相同逻辑地址区域的其它延时关闭空间;
对所述第二延时关闭空间及查找到的所述其它延时关闭空间的一级索引信息进行批量更新。
8.根据权利要求6所述的方法,其特征在于,所述对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新,还包括:
在检测到向任一延时关闭空间写入数据失败时,更新该延时关闭空间的一级索引信息和/或二级索引信息,关闭该延时关闭空间,并在所述全局链表中将该延时关闭空间的状态更新为已关闭状态;和/或,
在检测到针对任一延时关闭空间的监控调取指令时,判断所述全局链表中记录的该延时关闭空间的状态是否为已关闭状态;若不是已关闭状态,则更新该延时关闭空间的一级索引信息或二级索引信息,关闭该延时关闭空间,并在所述全局链表中将该延时关闭空间的状态更新为已关闭状态。
9.根据权利要求1-3中任意一项所述的方法,其特征在于,所述方法还包括:
每间隔第三预设时长从所述全局链表记录的延时关闭空间中删除处于已关闭状态的延时关闭空间。
10.一种后端监控***,其特征在于,所述后端监控***包括:
管理线程,用于在监测到所述后端监控***为任一前端相机分配的存储空间需要被切换时,将所述存储空间作为延时关闭空间记录到预设的全局链表中,并在所述全局链表中将所述延时关闭空间的状态记录为待关闭状态;
存储模块,用于为所述前端相机分配新存储空间,对所述新存储空间的一级索引信息和二级索引信息进行更新,其中,所述一级索引信息是用于描述存储空间属性信息的元数据,所述二级索引信息是用于描述存储空间中的码流数据的元数据;
所述管理线程,还用于:
对所述全局链表记录的处于待关闭状态的延时关闭空间的二级索引信息进行更新,并在所述全局链表中将二级索引信息被更新后的延时关闭空间的状态更新为关闭中状态;
对所述全局链表记录的处于关闭中状态的延时关闭空间的一级索引信息进行更新,对一级索引信息被更新后的延时关闭空间进行关闭,并在所述全局链表中将所述一级索引信息被更新后的延时关闭空间的状态更新为已关闭状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910301232.3A CN111831206B (zh) | 2019-04-15 | 2019-04-15 | 存储空间切换方法及后端监控*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910301232.3A CN111831206B (zh) | 2019-04-15 | 2019-04-15 | 存储空间切换方法及后端监控*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831206A CN111831206A (zh) | 2020-10-27 |
CN111831206B true CN111831206B (zh) | 2022-06-14 |
Family
ID=72914197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910301232.3A Active CN111831206B (zh) | 2019-04-15 | 2019-04-15 | 存储空间切换方法及后端监控*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831206B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360337A (zh) * | 2011-10-17 | 2012-02-22 | 杭州海康威视数字技术股份有限公司 | 数字硬盘录像机上按配额使用硬盘的方法及其装置 |
CN103092528A (zh) * | 2011-11-01 | 2013-05-08 | 新太科技股份有限公司 | 一种根据磁盘空间和性能变化进行存储空间转化的方法 |
CN103530180A (zh) * | 2013-10-18 | 2014-01-22 | 北京奇虎科技有限公司 | 应用程序的存储空间切换方法及装置 |
CN103677674A (zh) * | 2013-12-27 | 2014-03-26 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN104967807A (zh) * | 2014-12-30 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种缓存方法和装置 |
CN107154966A (zh) * | 2017-04-24 | 2017-09-12 | 浙江宇视科技有限公司 | 一种视频数据写入方法以及装置 |
CN109117087A (zh) * | 2018-07-19 | 2019-01-01 | 北京蜂盒科技有限公司 | 采集监控数据的方法、装置、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI479449B (zh) * | 2012-10-24 | 2015-04-01 | Mstar Semiconductor Inc | 使用在視訊訊號處理裝置中的記憶體空間配置方法 |
-
2019
- 2019-04-15 CN CN201910301232.3A patent/CN111831206B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360337A (zh) * | 2011-10-17 | 2012-02-22 | 杭州海康威视数字技术股份有限公司 | 数字硬盘录像机上按配额使用硬盘的方法及其装置 |
CN103092528A (zh) * | 2011-11-01 | 2013-05-08 | 新太科技股份有限公司 | 一种根据磁盘空间和性能变化进行存储空间转化的方法 |
CN103530180A (zh) * | 2013-10-18 | 2014-01-22 | 北京奇虎科技有限公司 | 应用程序的存储空间切换方法及装置 |
CN103677674A (zh) * | 2013-12-27 | 2014-03-26 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN104967807A (zh) * | 2014-12-30 | 2015-10-07 | 浙江大华技术股份有限公司 | 一种缓存方法和装置 |
CN107154966A (zh) * | 2017-04-24 | 2017-09-12 | 浙江宇视科技有限公司 | 一种视频数据写入方法以及装置 |
CN109117087A (zh) * | 2018-07-19 | 2019-01-01 | 北京蜂盒科技有限公司 | 采集监控数据的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111831206A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
CN108319654B (zh) | 计算***、冷热数据分离方法及装置、计算机可读存储介质 | |
CN111159436B (zh) | 一种推荐多媒体内容的方法、装置及计算设备 | |
US20150213100A1 (en) | Data synchronization method and system | |
CN106227621B (zh) | 基于逻辑卷管理精简卷的数据备份方法及*** | |
CN113111129A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN109800181B (zh) | 一种基于磁盘的数据写入方法、数据写入装置及终端设备 | |
US8799572B2 (en) | Sliding-window multi-class striping | |
CN111158939A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN115408149A (zh) | 一种时序存储引擎内存设计及分配方法及装置 | |
US9734204B2 (en) | Managed runtime cache analysis | |
CN111831206B (zh) | 存储空间切换方法及后端监控*** | |
CN110019870B (zh) | 基于内存图像集群的图像检索方法及*** | |
CN115934999A (zh) | 一种基于块文件的视频流数据存储方法、装置及介质 | |
CN109669814A (zh) | 一种元数据服务的恢复方法、装置、设备及可读存储介质 | |
CN115421856A (zh) | 一种数据恢复方法及装置 | |
CN111625502B (zh) | 数据读取方法及装置、存储介质、电子装置 | |
CN114647658A (zh) | 一种数据检索方法、装置、设备及机器可读存储介质 | |
CN112181277B (zh) | 一种数据存储空间管理方法、装置、存储介质及电子设备 | |
EP3547142B1 (en) | Processing message | |
US11687288B2 (en) | Method of queue design for data storage and management | |
CN106959888B (zh) | 云存储***中的任务处理方法及装置 | |
CN115604290B (zh) | Kafka消息执行方法、装置、设备及存储介质 | |
KR101221992B1 (ko) | 데이터 로깅 장치 | |
CN115794446B (zh) | 一种消息处理方法、装置、电子设备和存储介质 |
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 |