CN110764706A - 存储***、数据管理方法及存储介质 - Google Patents

存储***、数据管理方法及存储介质 Download PDF

Info

Publication number
CN110764706A
CN110764706A CN201911021948.4A CN201911021948A CN110764706A CN 110764706 A CN110764706 A CN 110764706A CN 201911021948 A CN201911021948 A CN 201911021948A CN 110764706 A CN110764706 A CN 110764706A
Authority
CN
China
Prior art keywords
data
storage
index data
index
storage area
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.)
Granted
Application number
CN201911021948.4A
Other languages
English (en)
Other versions
CN110764706B (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.)
TP Link Technologies Co Ltd
Original Assignee
TP Link Technologies 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 TP Link Technologies Co Ltd filed Critical TP Link Technologies Co Ltd
Priority to CN201911021948.4A priority Critical patent/CN110764706B/zh
Publication of CN110764706A publication Critical patent/CN110764706A/zh
Application granted granted Critical
Publication of CN110764706B publication Critical patent/CN110764706B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/061Improving I/O performance
    • 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/0608Saving storage space on storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本申请适用于数据管理技术领域,提供了存储***、数据管理方法及存储介质,其中存储***通过对存储***内部结构进行划分,将磁盘划分为存储视频数据的第一存储区和存储索引数据的第二存储区,且使用索引数据管理器事先存储索引数据,在索引数据管理器的索引数据量达到预设数据阈值时再将索引数据存入第二存储区中,使得索引数据和存储数据不会同时写入磁盘中,减少占用磁盘IO,充分利用磁盘性能,提升磁盘写入效率。

Description

存储***、数据管理方法及存储介质
技术领域
本申请属于数据管理技术领域,尤其涉及存储***、数据管理方法及存储介质。
背景技术
现有存储技术中,直接在嵌入式中实现存储数据存在一定问题,如使用文件***存储视频数据文件,问题在于将视频数据文件以定长数据文件存储时,在定长数据文件句柄数过多会成为读写速度瓶颈,对数据写入速度造成一定影响,并且容易导致断电数据丢失,数据管理分散会导致严重的体验下降等。或者,使用使用混合流裸盘存储数据,问题在于,存储的数据过于分散,导致数据读取性能严重下降。另外,使用存储***中的内存数据库存储索引数据,即使索引数据相对于视频数据大小较小,但也将消耗过大的内存,并且大量索引数据在内存中也会导致重启恢复速度过慢。
综上所述,目前存储技术中,存在数据存储大量占用磁盘输入/输出端(IO)的情况,导致数据读取与写入速度慢的问题。
发明内容
本申请实施例提供了存储***、数据管理方法及存储介质,可以解决现有技术中,存在数据存储大量占用磁盘输入/输出端(IO)的情况,导致数据读取与写入速度慢的问题。
第一方面,本申请实施例提供一种存储***,所述存储***包括索引数据管理器、数据读写模块和磁盘,所述磁盘包括第一存储区和第二存储区;
所述索引数据管理器连接第二存储区,所述索引数据管理器用于生成所述第一存储数据的索引数据,并当生成的索引数据量达到预设数据阈值时,生成索引数据文件发送至所述第二存储区;
所述数据读写模块连接所述第一存储区,所述数据读写模块用于实时获取所述第一存储数据的数据片段,并将所述数据片段读写至所述第一存储区中;其中,所述第一存储区分为多个存储分区。
第二方面,本申请实施例提供了一种数据管理方法,应用于存储***,方法包括:
获取第一存储数据中的数据片段;
将所述数据片段实时写入第一存储区中;
生成索引数据,将所述索引数据写入索引数据管理器中;其中,所述索引数据用于索引第一存储数据,所述索引数据管理器用于当存储在所述索引数据管理器的索引数据量达到预设数据阈值时,生成索引数据文件;
将所述索引数据文件写入第二存储区中。
在一实施例中,所述存储***包括多个所述第一存储区,每个第一存储区分为多个存储分区,所述第一存储数据中包括多个数据片段,所述存储***还包括客户端;
所述将所述数据片段实时写入第一存储区中,包括:
根据所述客户端的客户端通道选择对应的存储分区;
获取所述存储分区的可存储区域;
判断所述第一存储数据中的第一个数据片段的数据量是否小于所述可存储区域的存储量;
若所述第一存储数据中的第一个数据片段的数据量小于所述可存储区域的存储量,则将所述第一个数据片段实时写入所述存储分区。
在一实施例中,所述索引数据包括事件索引数据,所述事件索引数据用于记录存储数据信息;
所述生成索引数据,将所述索引数据写入所述索引数据管理器中,包括:
获取所述第一存储数据中第一个数据片段的第一时间戳信息;
对应查找所述存储分区中,已存入的第二存储数据的尾部数据片段;
获取所述第二存储数据的尾部数据片段的第二时间戳信息;
判断所述第一时间戳信息与第二时间戳信息是否为连续时间信息;
若第一时间戳信息与第二时间戳信息为连续时间信息,则获取所述第二存储数据的第二事件索引数据;
将所有所述数据片段写入所述存储分区后,将第一存储数据关联所述第二事件索引数据;
将关联后的所述第二事件索引数据写入所述索引数据管理器中。
在一实施例中,所述判断所述第一时间戳信息与第二时间戳信息是否为连续时间信息之后,还包括:
若第一时间戳信息与第二时间戳信息不为连续时间信息,则将所述第一存储数据的所有所述数据片段写入当前所述存储分区后,生成与所述第一存储数据相关联的第一事件索引数据;并将所述第一事件索引数据写入所述索引数据管理器中。
在一实施例中,所述生成索引数据,将所述索引数据写入所述索引数据管理器中,还包括:
将所述数据片段实时写入所述第一存储区的存储分区后,生成分区索引数据;
将所述存储分区关联所述分区索引数据;所述分区索引数据用于记录存储分区的存储信息;
将所述分区索引数据写入所述索引数据管理器中。
在一实施例中,所述索引数据还包括片段索引数据;
所述生成索引数据,将所述索引数据写入所述索引数据管理器中,还包括:
生成第一片段索引数据;所述第一片段索引数据关联已写入所述存储分区中的数据片段;
将所述第一片段索引数据写入所述索引数据管理器中。
在一实施例中,将所述索引数据文件写入第二存储区中之后,还包括:
在所述存储***发生异常后,查询在第一预设时间内写入所述数据片段的所述存储分区;
查询所述存储分区对应的第二存储区;
获取所述存储分区中的尾部片段索引数据,根据所述尾部片段索引数据查询对应所述第一存储区中存储分区的第一目标数据片段;
重新对应生成所述第一目标数据片段之后的所述第一存储数据的索引数据。
在一实施例中,所述索引数据写入所述第二存储区时携带时间信息;
将所述索引数据文件写入第二存储区中之后,还包括:
获取目标客户端,根据第二预设时间段和所述目标客户端的客户端通道获取所有对应的存储分区;
查询各个所述存储分区对应的第二存储区;
根据所述事件索引数据确定目标第二存储区;
在所述目标第二存储区中,获取所述第二预设时间段内的目标片段索引数据;
获取所述目标片段索引数据对应的第二目标数据片段;
根据所述时间信息依次读取所述第二目标数据片段。
第三方面,本申请实施例提供了一种终端设备,所述终端设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第二方面中任一项所述的数据管理方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第二方面中任一项所述的数据管理方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第二方面中任一项所述的数据管理方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:通过对存储***内部结构进行划分,将磁盘划分为存储视频数据的第一存储区和存储索引数据的第二存储区,且使用索引数据管理器事先存储索引数据,在索引数据管理器的索引数据量达到预设数据阈值时再将索引数据存入第二存储区中,使得索引数据和存储数据不会同时写入磁盘中,减少占用磁盘IO,充分利用磁盘性能,提升磁盘读写速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的存储***的一种结构示意图;
图2是本申请实施例提供的存储***中索引数据管理器的一种结构示意图;
图3是本申请实施例提供的存储***中磁盘的一种结构示意图;
图4是本申请实施例提供的数据管理方法的一种实现流程示意图;
图5是本申请实施例提供的数据管理方法的另一种实现流程示意图;
图6是本申请实施例提供的数据管理方法的又一种实现流程示意图;
图7是本申请实施例提供的数据管理装置的一种结构示意图;
图8是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请实施例提供一种存储***,可以为计算机中由存放程序和数据的各种存储设备如各式存储器,如磁芯存储器、磁泡存储器等;也可以为利用磁能方式存储信息的设备,如硬盘、软盘等;也可以为利用光学方式存储信息的设备,如CD或DVD,对此不作限定。参照图1,图1示出了本申请提供的存储***的结构。
如图1和图3所示,本申请实施例提供的一种存储***,所述存储***包括索引数据管理器2、数据读写模块5和磁盘3,所述磁盘3包括第一存储区31和第二存储区32;
所述索引数据管理器2连接第二存储区32,所述索引数据管理器2用于获生成所述第一存储数据的索引数据,并当生成的索引数据量达到预设数据阈值时,生成索引数据文件发送至所述第二存储区32;
所述数据读写模块5连接所述第一存储区31,所述数据读写模块5用于实时获取所述第一存储数据的数据片段,并将所述数据片段读写至所述第一存储区31中;其中,所述第一存储区31分为多个存储分区311。
在应用中,上述索引数据管理器2用于生成索引数据,索引数据索引第一存储数据,上述第一存储数据可以为视频数据、音频数据或者数字数据等,对此不作限定。具体的,上述第一存储数据具体可以为视频数据,上述存储***为存储器,存储器中包括索引数据管理器2、数据读写模块5和磁盘3,其中磁盘3内部划分为第一存储区31和第二存储区32,第一存储区31具体可以为数据分区,用于存储视频数据,上述第二存储区32具体可以为数据库,用于存储索引数据,即在一个磁盘3中,内部对应一个数据库和一个数据分区。参照图3,数据分区又被划分为若干大小相等的存储分区311,每个存储分区311大小可定位为1GB,也可以定为其他大小,具体存储空间随磁盘3大小变动,目的在于减少磁盘3空间浪费,提高磁盘3空间利用率。
在应用中,视频片段采用视频编解码标准H.264/AVC将I帧、P帧、B帧组成图像组来编码图像序列以2s的视频数据(gop)片段为一个单位存储,大小通常随码率变化,同一路视频在一个分区中将连续的存储,到达分区尾部时,将重新选择分区写入,上述gop可以作为一个数据片段,每个数据片段均有对应的索引数据。
在应用中,上述第一存储数据可由与存储***连接的客户端1进行传输,也可以为存储***内部包括客户端1,其客户端1为存储***与外部***进行交互的端口,根据客户端1的客户端通道传输视频数据、音频数据等,对此不作限定。
在应用中,上述数据读写模块5用于将视频数据实时且顺序写入数据分区中,用于连续的存储视频数据,方便视频数据管理,且在读取时也方便连续顺序读取视频数据,避免磁盘IO随机写入视频数据,造成同一路视频数据存储分散。如存储在不同的第一存储区31中,产生在读取视频数据时,读取速度慢的问题。上述预设数据阈值可以为用户设置的可存储数据文件大小,也可以为***预设的可存储数据文件大小,对此不作限定。
在本实施例中,首先通过数据读写模块5对视频数据进行实时写入磁盘3,而由索引数据管理器2在索引数据量达到预设数据阈值时,再生成索引数据文件写入磁盘3的数据库中,使得索引数据和存储数据不会同时写入磁盘中,减少占用磁盘IO,充分利用磁盘性能,提高磁盘IO的写入效率。
参照图1,在一实施例中,所述索引数据管理器2还包括索引预存储区4,所述索引预存储区4用于实时接收所述索引数据,并当所述索引数据量达到阈值时,生成索引数据文件发送至所述第二存储区32。
在应用中,上述索引数据管理器2包括索引预存储区4,上述索引预存储区4可以为索引数据管理器2中的一个存储***或一个数据库,该索引预存储区4为临时存储区。在索引数据管理器2在接收到第一存储数据时,会生成索引数据并把索引数据存储在索引预存储区中4,而数据读写模块5则根据索引数据实时顺序读写第一存储数据的数据片段。在索引预存储区4的索引数据量达到预设数据阈值时,生成索引数据文件发送给第二存储区32中,使得索引数据和第一存储数据可分离存储,不会同时写入磁盘中,减少占用磁盘IO,充分利用磁盘3性能,提升磁盘3写入效率。
在具体应用中,上述索引预存储区4可以为持久化数据库(rocksdb),索引数据管理器2首先将索引数据以预写日志***(write-ahead logging,Wal)的形式存储在索引预存储区4中,当索引预存储区4中Wal大小达到一定阈值后,将Wal内的索引数据生成数据库文件,以sst格式写入磁盘3中。并且使用持久化数据库将生成的数据文件写入磁盘3中的第二存储区32时,新的索引数据文件不需要再次遍历磁盘3结构,可直接根据持久化数据库的特性将新的索引数据文件写入上一次索引数据文件在第二存储区32的位置之后,减少了根据传统方式每次将索引数据写入磁盘时,均需要对磁盘3的结构进行遍历的步骤,大大提高了数据写入效率。
参照图2,在一实施例中,所述索引数据管理器2包括分区管理器21、事件管理器22和片段管理器23;
所述分区管理器21,用于在所述数据片段实时写入所述第一存储区31的存储分区311后,生成所述数据片段的分区索引数据。
在应用中,分区管理器21用于生成第一存储数据的分区索引数据,每个视频数据写入不同或相同的存储分区311中,均会生成对应的分区索引数据用于区分。具体的,第一存储区划分为多个大小相等的存储分区311后,分区索引数据需要记录第一存储区31中每个存储分区311的状态、大小以及使用情况等。如在视频数据写入和视频数据读取时,需要确定或修改存储分区31使用情况。在每个存储分区311中的视频片段数据,分区索引数据均以时间连续排列,以时间排序可做到磁盘3顺序写入分区索引数据,便于读取时快速根据时间段确定所选择的目标具体处于第一存储区31中存储分区311的位置。
所述事件管理器22,用于在所述第一存储数据的所述数据片段写入所述第一存储区31后,生成与所述第一存储数据相关联的第一事件索引数据。
在应用中,上述事件管理器22用于生成第一存储数据的第一事件索引数据。具体的,事件索引数据起到一种对视频数据进行分类或标签的作用。具体的,第一存储数据的标签为A,第二存储数据的标签为B,在两者同时存储在一个第一存储区31内部时,可以根据数据标签索引目标存储数据。
在其他应用中,上述事件可以认为是一段连续的视频,第一事件索引数据可以认为是第一视频索引数据。其中,对于一路视频的视频数据,其可以对应多个事件索引,对于一路视频数据分多次多段进行存储,每次存储的一段视频数据均对应一个事件索引数据,即同一路视频的事件与事件之间的时间不会重合。而对于不同路视频的视频数据,其对应的事件索引数据不同,且不同路视频的视频数据可以同时存储在不同的第一存储区中,即对于不同路视频对应的多个时间索引数据中,可以有时间重合。将时间属性随事件(视频)一起写入,不同路视频(事件)的标签(事件索引数据)不会相同,但可以以时间先后递增排列,时间顺序写入磁盘3中,通过事件索引数据进行视频数据索引,也可转换为根据时间进行视频索引。
所述片段管理器23,用于生成片段索引数据;所述片段索引数据关联已写入所述第一存储区31中的数据片段。
在应用中,上述片段管理器23,用于生成片段索引数据。具体的,片段索引数据为记录一个划分过的视频数据的元数据,如将视频数据编码为多个等长的视频片段,之后为每个视频片段生成对应的片段索引数据,其中,片段索引数据包含每个视频片段的元数据,用于实现对存储的视频数据做到精确查找。
在其他应用中,同一路的视频数据也都是随时间的有序视频片段,片段索引数据的关键词(key)也是随时间不断递增的,因此不管在事件索引数据或者分区索引数据中,都是不断顺序向后添加的,因此,也可以根据时间段索引出该时间段内的全部视频片段的片段索引数据。
在本实施例中,通过建立多个索引数据可使用多种方法,对第一存储数据进行多方面的索引,降低索引难度,且可以精确索引到第一存储数据中的数据片段。
参照图1,在另一实施例中,所述存储***包括多个磁盘3,每个所述磁盘3均对应包含一个第一存储区31与一个第二存储区32。
在应用中,上述一个磁盘3对应内部划分为第一存储区31和第二存储区32,其中,第一存储区31为磁盘3中的数据分区,第二存储区32为磁盘3中的数据库区,用于根据数据库中的索引数据管理数据分区中的视频数据。在***启动时,可由索引数据管理器2直接通过索引预存储区4从磁盘3中将索引数据加载到存储***的内存中,而后存储***中的数据读写模块5根据索引数据读取磁盘3中的视频数据。且索引数据与视频数据写入磁盘3的时间不同步,有利于在发生索引数据丢失时,可直接通过索引数据管理器查找写入磁盘3中的视频数据,并从磁盘3中发起增量恢复,更方便快捷的生成丢失的索引数据。
参照图4,本申请实施例还提供一种数据管理方法,应用于存储***,方法包括:
S101、获取第一存储数据中的数据片段。
S102、将所述数据片段实时写入第一存储区中。
S103、生成索引数据,将所述索引数据写入索引数据管理器中;其中,所述索引数据用于索引第一存储数据,所述索引数据管理器用于当存储在所述索引数据管理器的索引数据量达到预设数据阈值时,生成索引数据文件。
S104、将所述索引数据文件写入第二存储区中。
在应用中,上述第一存储数据可以为视频数据、音频数据或者数字数据等,对此不作限定。具体的,上述第一存储数据具体可以为视频数据,上述存储***为存储器,存储器中包括索引数据管理器、数据读写模块和磁盘,其中磁盘内部划分为第一存储区和第二存储区,第一存储区具体可以为数据分区,用于存储视频数据,上述第二存储区具体可以为数据库,用于存储索引数据,即在一个磁盘中,内部对应一个数据库和一个数据分区。
在应用中,上述将视频数据实时写入数据分区中,可以根据时间顺序,实时顺序写入连续的存储视频数据,方便视频数据管理,且在读取时也方便连续顺序读取视频数据,避免磁盘IO随机写入视频数据,造成同一路视频数据存储分散,如存储在不同的第一存储区中,产生在读取视频数据时,读取速度慢的问题。上述预设数据阈值可以为用户设置的可存储数据文件大小,也可以为***预设的可存储数据文件大小,对此不作限定。
在其他应用中,上述索引数据管理器还包括索引预存储区,上述索引预存储区可以为索引数据管理器中的部分元器件,一个存储***或一个数据库,该索引预存储区做为索引数据管理器的临时存储区。索引数据管理器可生成第一存储数据的索引数据,并将索引数据预先存储在索引预存储区中,在索引预存储区中的索引数据量达到预设数据阈值时,生成索引数据文件发送给第二存储区,使得索引数据和第一存储数据可分离存储,不会同时写入磁盘中,减少占用磁盘IO,充分利用磁盘性能,提升磁盘读写速度。
在本实施例中,存储器中的磁盘在对视频数据进行写入时,数据读写模块对视频数据进行实时刷盘,将视频数据实时写入数据分区中,而索引数据管理器生成的索引数据并不与视频数据同时写入磁盘,而是在索引数据管理器的索引数据量达到预设数据阈值时再将索引数据存入第二存储区中,使得索引数据和存储数据不会同时写入磁盘中,减少占用磁盘IO,充分利用磁盘性能,提升磁盘写入效率。
参照图5,在一实施例中,所述存储***包括多个所述第一存储区,每个第一存储区分为多个存储分区,所述第一存储数据中包括多个数据片段,所述存储***还包括客户端;步骤102,包括:
S201、根据所述客户端的客户端通道选择对应的存储分区。
在应用中,上述客户端为存储客户端,用于接收第一存储数据,且选择第一存储数据将要存储的磁盘。其中,一个客户端工作时只开启一个客户端通道,选择一个磁盘进行写入第一存储数据,一个存储***可对应一个或多个客户端通道,存储***内部可具有多个磁盘,多个磁盘可以同时存储第一存储数据,但同时存储的视频数据无法存储在同一第一存储区中。上述可以根据第一存储区是否处于使用状态进行选择,若该第一存储区处于使用状态,则选择其他未使用的第一存储区进行存储。若第一存储区处于未使用状态,则客户端可以具体选择第一存储区中的某个存储分区进行存储视频数据,如可以根据第一存储区中各个存储分区的存储空间进行选择,对此不作限定。
S202、获取所述存储分区的可存储区域。
在应用中,上述可存储区域可为该存储分区存储其他视频数据后剩余的存储空间,该剩余的存储空间可用于存储第一存储数据。
S203、判断所述第一存储数据中的第一个数据片段的数据量是否小于所述可存储区域的存储量。
在应用中,写入第一存储数据的数据片段时是以时间顺序,从第一个数据片段顺序写入,直到写完第一存储数据,或写满该存储分区后,继续使用之后的另一个存储分区再次进行写入。例如,参照图3,在存储分区1写满第一存储数据后,可在存储分区2中继续写入。上述第一个数据片段具体可以为一个2S的视频数据,当可存储区域的存储量大于2S的视频数据时,第一存储数据便可以开始写入该存储分区,写满后选择其余存储分区进行存储。
在其他实施例中,上述步骤203具体还可包括:
获取所述存储分区内部中,已写入的第二存储数据的尾部数据片段。
判断所述尾部数据片段至所述第一存储区尾部的可存储区域。
判断所述第一存储数据中的第一个数据片段是否小于所述可存储区域的存储量。
若所述第一存储数据中的第一个数据片段大于所述可存储区域的存储量,则重新选择第一存储区。
在应用中,上述根据已写入的第二存储数据的尾部数据片段至第一存储区尾部的存储量,来判断是否可写入第一存储数据,确定可写入第一存储区中可写入视频数据的区域。具体的,存储***包括多个磁盘,如磁盘1和磁盘2,其中磁盘1分为存储分区1、存储分区2···至存储分区N,其中存储分区N为第一存储区中的尾部存储分区,在重新对存储分区N中写入第一存储数据时,若存储分区中的可存储区域的存储量过小,则存储***判定磁盘1已经存储满第二存储数据,则为避免在磁盘1中存了部分第一存储数据后,便要再次选择磁盘进行存储的情况,在判定存储量过小时,便选择其他磁盘中第一存储区的存储分区进行存储。目的在于更稳定的连续顺序写入第一存储数据,不会产生数据分散的问题。
S204、若所述第一存储数据中的第一个数据片段的数据量小于所述可存储区域的存储量,则将所述第一个数据片段实时写入所述存储分区。
在应用中,上述第一存储数据是顺序写入存储分区中,且当第一个数据片段小于可存储区的存储量时,便可以写入,若第一个数据片段小于可存储区的存储量时,则选择其余磁盘的第一存储区进行写入第一存储数据,目的在于减少磁盘空间浪费,最大化的提高磁盘空间利用率。
参照图6,在一实施例中,所述索引数据包括事件索引数据,所述事件索引数据用于记录存储数据信息;步骤S103包括:
S301、获取所述第一存储数据中第一个数据片段的第一时间戳信息。
S302、对应查找所述存储分区中,已存入的第二存储数据的尾部数据片段。
S303、获取所述第二存储数据的尾部数据片段的第二时间戳信息。
S304、判断所述第一时间戳信息与第二时间戳信息是否为连续时间信息。
S305、若第一时间戳信息与第二时间戳信息为连续时间信息,则获取所述第二存储数据的第二事件索引数据。
S306、将所有所述数据片段写入所述存储分区后,将第一存储数据关联所述第二事件索引数据。
S307、将关联后的所述第二事件索引数据写入所述索引数据管理器中。
在应用中,上述数据片段被获取时均是以时间顺序进行顺序排列的,因此,在获取数据片段时,还可获取数据片段携带的时间信息,根据第一存储数据中第一个数据片段的第一时间戳信息和第二存储数据的尾部数据片段的第二时间戳信息判断是否为连续时间,来确定是是否需将第一存储数据关联第二事件索引数据。
在应用中,上述连续时间信息可以存在一定的时间波动阈值,即第二存储数据的尾部数据片段的第二时间戳信息为9:00:01S,第一存储数据中第一个数据片段的第一时间戳信息为9:00:01S-9:00:05S的任意时间信息时,均认为是第一时间戳与第二时间戳信息是连续的时间信息,因在存储过程,存储***可能发生异常,因此可设置波动阈值允许有一定时间内的误差。上述波动阈值可为用户设置的任意数值,且上述是否选择新建立事件索引数据,也可以根据用户指令选择新建或不新建事件索引数据随时更改,对此不作限定。
参照图6,在一实施例中,步骤S304之后,还包括:
S308、若第一时间戳信息与第二时间戳信息不为连续时间信息,则将所述第一存储数据的所有所述数据片段写入当前所述第一存储区后,生成与所述第一存储数据相关联的第一事件索引数据;并将所述第一事件索引数据写入所述索引预存储区中。
在应用中,一个第一存储区可以存储两个第一存储数据,即可以存储两路视频数据,为区分两路视频数据,需对两路视频数据采用不同的事件索引数据,用于在进行分区索引数据索引到视频数据时,索引出的数据分区同时具有多路视频数据,根据事件索引数据可以进一步地确定目标视频数据,起到对不同视频数据进行分类或标签的作用。
在一实施例中,步骤S103还包括:
将所述数据片段实时写入所述第一存储区的存储分区后,生成分区索引数据。
将所述存储分区关联所述分区索引数据;所述分区索引数据用于记录存储分区的存储信息。
将所述分区索引数据写入所述索引预存储区中。
在应用中,上述数据片段是实时写入存储分区中的,而上述分区索引数据是先写入索引预存储区中,数据片段与分区索引数据不同时写入磁盘中,最大化的提高磁盘的写入效率。
上述分区索引数据用于记录第一存储区的存储信息,每个视频数据写入不同或相同的存储分区中,均会生成对应的分区索引数据用于区分。具体的,第一存储区划分为多个大小相等的存储分区后,分区索引数据需要记录第一存储区中每个存储分区的状态、大小以及使用情况等。如在视频数据写入和视频数据读取时,需要确定或修改存储分区使用情况。在每个存储分区中的视频片段数据,分区索引数据均以时间连续排列,以时间排序可做到磁盘顺序写入分区索引数据,便于读取时快速根据时间段确定所选择的目标具体处于第一存储区中存储分区的位置。
在一实施例中,所述索引数据还包括片段索引数据;步骤S103还包括:
生成第一片段索引数据;所述第一片段索引数据关联已写入所述存储分区中的数据片段;
将所述第一片段索引数据写入所述索引数据管理器中。
在应用中,片段索引数据为记录一个划分过的视频数据的元数据,如将视频数据编码为多个等长的视频片段,之后为每个视频片段生成对应的片段索引数据,其中,片段索引数据包含每个视频片段的元数据,用于实现对存储的视频数据做到精确查找。具体的,视频片段采用视频编解码标准H.264/AVC将I帧、P帧、B帧组成图像组来编码图像序列以2s的视频数据(gop)为一个单位存储,大小通常随码率变化,同一路视频在一个分区中将连续的存储,到达分区尾部时,将重新选择分区写入,上述gop可以作为一个数据片段,生成该数据片段的第一片段索引数据。
在一实施例中,步骤S104之后,还包括:
在所述存储***发生异常后,查询在第一预设时间内写入所述数据片段的所述存储分区。
在应用中,上述存储***发生异常可以为存储***存储视频数据时异常断电,也可为存储***内部结构损坏,也可以为存储***重启,上述存储***异常会导致未写入第二存储区中的索引数据丢失,即索引数据管理器中索引预存储区中的索引数据会发生丢失,由于索引数据和数据片段存储分离,且数据片段是实时写入磁盘中数据分区的。因此索引预存储区中的索引数据丢失,会导致数据库中的索引数据,与数据分区中的视频数据不一致,具体表现为重新启动并加载数据库后,无法索引丢失的索引预存储区中索引数据所对应的视频数据。
在应用中,上述第一预设时间可以为***预设的时间段,也可以为用户自设的时间段,对此不作限定。具体的,第一预设时间段为1min中,在存储***发生异常断电并重启后,存储***记录此时时间点为9:01,则存储***查询9:00-9:01时间段内,写入数据片段的第一存储区。
查询所述存储分区对应的第二存储区。
获取所述第二存储区中的尾部片段索引数据,根据所述尾部片段索引数据查询对应所述存储分区中的第一目标数据片段。
在应用中,第一存储区与第二存储区为在磁盘中一对一进行划分的区域,查询第一存储区中的存储分区,便可通过查询该存储分区找到对应的第二存储区。因存储分区是对视频数据实时写入,所以存储***发生异常前的视频数据均已实时写入,而对于第二存储区,存储***发生异常前的索引数据一部分以数据库文件的形式写入了第二存储区中,而另一部分只写入至索引数据管理器中的索引预存储区中,即还未形成数据文件写入第二存储区中,导致存储***发生异常时,索引预存储区中的索引数据未被写入。因此,可根据第二存储区中的尾部片段索引数据,查询对应于存储分区中的第一目标数据片段,第一目标数据片段之后的视频数据均未对应建立索引数据。
重新对应生成所述第一目标数据片段之后的所述第一存储数据的索引数据。
在应用中,对于第一目标数据片段之后的视频数据,可以先对应建立该部分的索引数据后,再重新将视频数据的剩余部分进行实时顺序写入对应的存储分区中,即重复上述获取视频数据的数据片段,将数据片段实时写入存储分区中,生成索引数据,将索引数据写入索引预存储区中,生成索引数据文件,将索引数据文件写入数据库中的步骤。
在本实施例中,存储***发生异常需要重启时,因只需加载第二存储区,便可重新从磁盘中发起增量恢复,不需要加载第一存储区中的视频数据,使得存储***加载更为快速。
在一实施例中,所述索引数据写入所述第二存储区时携带时间信息;步骤S104之后,还包括:
获取目标客户端,根据第二预设时间段和所述目标客户端的客户端通道获取所有对应的存储分区。
上述时间信息包括但不限于索引数据写入数据库中的时间信息,还包括生成索引数据(分区索引数据、片段索引数据、事件索引数据)的时间信息,对此不作限定。上述第二预设时间段具体可以为9:00-9:30的时间段,先在多个客户端中选定目标客户端的客户端通道,而后存储***获取该客户端通道内9:00-9:30的索引数据查询对应的数据片段。或者,通过第二预设时间段获取所有客户端通道在该第二预设时间段内的事件索引数据,而后根据片段索引数据查询读取数据片段,对此不作限定。
查询各个所述存储分区对应的第二存储区。
在应用中,上述已说明第一存储区与第二存储区可为一对一对应关系,即磁盘被划分为一个用于存储索引数据的第二存储区,和一个用于存储视频数据的第一存储区,而第一存储区分为多个存储分区。因此,可通过查询存储分区找到对应的第二存储区。若在第二预设时间段内,所有存储分区中分别来自不同第一存储区,则可根据每个第一存储区查询其对应的一个第二存储区,因此根据多个第一存储区便可查询到多个第二存储区。
根据所述事件索引数据确定目标第二存储区。
在应用中,上述事件索引数据为视频数据写入存储分区中,所对应产生的事件索引数据,其中,每路视频数据可对应一个或多个事件索引数据。若第一存储数据存入第一存储区时,事件索引数据为第一事件索引数据,而对于根据第二预设时间段获取到多个第二存储区时,因每个第二存储区对应的存储分区在存储视频数据时,第二存储区会记录每个视频数据的事件索引数据,可根据事件索引数据进一步的选择目标第二存储区。
在所述目标第二存储区中,获取所述第二预设时间段内的目标片段索引数据。
在应用中,片段索引数据写入第二存储区时还携带相应的时间信息,因此在选出的目标第二存储区中,可进一步选择需读取的目标片段索引数据的时间段,根据目标片段索引数据获取对应的第二目标数据片段。
获取所述目标片段索引数据对应的第二目标数据片段。
根据所述时间信息依次读取所述第二目标数据片段。
在应用中,视频数据以数据片段实时写入数据分区时,数据片段还会携带写入的时间信息,对应的片段索引数据写入数据库中也会携带相应的时间信息。因此,可获取该9:00-9:30时间段内的片段索引数据,根据片段索引数据获取对应的第二目标数据片段,并从9:00开始依次读取该时间段内的视频数据。
在应用中,上述视频数据是以实时且顺序读写在一个存储分区中,即同一路视频在一个存储分区中将连续的存储,到达存储分区尾部时,重新选择之后的存储分区写入,因此,可读取该时间段内的视频数据进行有序播放,方便数据读取。
在本实施例中,第一存储数据是顺序写入第一存储区中,因此在读取第一存储数据时也是连续依次的进行读取,有效提高连续视频的读取效率。并且通过存储分区的方式来分区管理多路存储数据,可在第一存储区写满时,通过选择存储分区来选择需要删除的连续存储数据,便于磁盘内部存储数据的管理。相比于现有技术中,随机将视频数据存储在磁盘中,当第一存储区中的部分视频数据被删除时,就会空出该视频数据原来占有的存储空间,在对该数据分区进行不断的写入新视频数据、删除视频数据,便会产生很多零散的存储空间,造成一个较大的数据文件放在许多不连续的存储空间上。以至于读写这些部分视频数据时,便是随机读写,磁头要不断的调整磁道的位置,以在不同位置上的读写数据,且在开机时、启动大型程序时,要读取大量小文件,而这些文件也不是连续存放,也增加了读取视频数据的难度。
在本实施例中,通过对存储***内部结构进行划分,将磁盘划分为存储视频数据的第一存储区和存储索引数据的第二存储区,且使用索引数据管理器事先存储索引数据,在索引数据管理器的索引数据量达到预设数据阈值时再将索引数据存入第二存储区中,使得索引数据和存储数据不会同时写入磁盘中,减少占用磁盘IO,充分利用磁盘性能,提升磁盘写入效率。
参照图7,本申请还提供一种数据管理装置100,包括第一获取模块10、第一写入模块20、第一生成模块30和第二写入模块40。
第一获取模块10用于获取第一存储数据中的数据片段。
第一写入模块20用于将所述数据片段实时写入第一存储区中。
第一生成模块30用于生成索引数据,将所述索引数据写入索引数据管理器中;其中,所述索引数据用于索引第一存储数据,所述索引数据管理器用于当存储在所述索引数据管理器的索引数据量达到预设数据阈值时,生成索引数据文件。
第二写入模块40用于将所述索引数据文件写入第二存储区中。
在一实施例中,所述存储***包括多个所述第一存储区,每个第一存储区分为多个存储分区,所述第一存储数据中包括多个数据片段,所述存储***还包括客户端;第一写入模块20还用于:
根据所述客户端的客户端通道选择对应的存储分区;
获取所述存储分区的可存储区域;
判断所述第一存储数据中的第一个数据片段的数据量是否小于所述可存储区域的存储量;
若所述第一存储数据中的第一个数据片段的数据量小于所述可存储区域的存储量,则将所述第一个数据片段实时写入所述第一存储区,并将其余所述数据片段实时顺序写入所述存储分区。
在一实施例中,所述索引数据包括事件索引数据,所述事件索引数据用于记录存储数据信息;第一生成模块30还用于:
获取所述第一存储数据中第一个数据片段的第一时间戳信息;
对应查找所述存储分区中,已存入的第二存储数据的尾部数据片段;
获取所述第二存储数据的尾部数据片段的第二时间戳信息;
判断所述第一时间戳信息与第二时间戳信息是否为连续时间信息;
若第一时间戳信息与第二时间戳信息为连续时间信息,则获取所述第二存储数据的第二事件索引数据;
将所有所述数据片段写入所述存分储区后,将第一存储数据关联所述第二事件索引数据;
将关联后的所述第二事件索引数据写入所述索引数据管理器中。
在一实施例中,第一生成模块30还用于:
若第一时间戳信息与第二时间戳信息不为连续时间信息,则将所述第一存储数据的所有所述数据片段写入当前所述第一存储区后,生成与所述第一存储数据相关联的第一事件索引数据;并将所述第一事件索引数据写入所述索引数据管理器中。
在一实施例中,第一生成模块30还用于:
将所述数据片段实时写入所述第一存储区的存储分区后,生成分区索引数据;
将所述存储分区关联所述分区索引数据;所述分区索引数据用于记录存储分区的存储信息;
将所述分区索引数据写入所述索引数据管理器中。
在一实施例中,所述索引数据还包括片段索引数据;第一生成模块还用于:
生成第一片段索引数据;所述第一片段索引数据关联已写入所述第一存储区中的数据片段;
将所述第一片段索引数据写入所述索引数据管理器中。
在一实施例中,数据管理装置还包括第三写入模块、第一查询模块、第二获取模块和第二生成模块。
第三写入模块用于在所述存储***发生异常后,查询在第一预设时间内写入所述数据片段的所述存储分区。
第一查询模块用于查询所述存储分区对应的第二存储区。
第二获取模块用于获取所述第二存储区中的尾部片段索引数据,根据所述尾部片段索引数据查询对应所述第一存储区中存储分区的第一目标数据片段。
第二生成模块用于重新对应生成所述第一目标数据片段之后的所述第一存储数据的索引数据。
在一实施例中,所述索引数据写入所述第二存储区时携带时间信息,数据管理装置还包括第三获取模块、第二查询模块、第一确定模块、第四获取模块、第五获取模块和第一读取模块。
第三获取模块用于获取目标客户端,根据第二预设时间段和所述目标客户端的客户端通道获取所有对应的存储分区。
第二查询模块用于查询各个所述存储分区对应的第二存储区。
第一确定模块用于根据所述事件索引数据确定目标第二存储区。
第四获取模块用于在所述目标第二存储区中,获取所述第二预设时间段内的目标片段索引数据。
第五获取模块用于获取所述目标片段索引数据对应的第二目标数据片段;
第一读取模块用于根据所述时间信息依次读取所述第二目标数据片段。
在本实施例中,通过对存储***内部结构进行划分,将磁盘划分为存储视频数据的第一存储区和存储索引数据的第二存储区,且使用索引数据管理器事先存储索引数据,在索引数据管理器的索引数据量达到预设数据阈值时再将索引数据存入第二存储区中,使得索引数据和存储数据不会同时写入磁盘中,减少占用磁盘IO,充分利用磁盘性能,提升磁盘写入效率。
本申请实施例还提供了一种终端设备,该终端设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
图8是本申请一实施例提供的终端设备50的示意图。如图8所示,该实施例的终端设备50包括:处理器503、存储器501以及存储在所述存储器501中并可在所述处理器503上运行的计算机程序502。所述处理器503执行所述计算机程序502时实现上述各个方法实施例中的步骤,例如图4所示的步骤S101至S104。或者,所述处理器503执行所述计算机程序502时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序502可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器501中,并由所述处理器503执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序502在所述终端设备50中的执行过程。例如,所述计算机程序502可以被分割成第一获取模块、第一写入模块、第一生成模块和第二写入模块,各模块具体功能如下:
获取第一存储数据中的数据片段;
将所述数据片段实时写入第一存储区中;
生成索引数据,将所述索引数据写入索引数据管理器中;其中,所述索引数据用于索引第一存储数据,所述索引数据管理器用于当存储在所述索引数据管理器的索引数据量达到预设数据阈值时,生成索引数据文件;
将所述索引数据文件写入第二存储区中。
所述终端设备50可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器503、存储器501。本领域技术人员可以理解,图8仅仅是终端设备50的示例,并不构成对终端设备50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器503可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器501可以是所述终端设备50的内部存储单元,例如终端设备50的硬盘或内存。所述存储器501也可以是所述终端设备50的外部存储设备,例如所述终端设备50上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。在一个实施例中,所述存储器501还可以既包括所述终端设备50的内部存储单元也包括外部存储设备。所述存储器501用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器501还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (12)

1.一种存储***,其特征在于,所述存储***包括索引数据管理器、数据读写模块和磁盘,所述磁盘包括第一存储区和第二存储区;
所述索引数据管理器连接第二存储区,所述索引数据管理器用于生成第一存储数据的索引数据,并当生成的索引数据量达到预设数据阈值时,生成索引数据文件发送至所述第二存储区;
所述数据读写模块连接所述第一存储区,所述数据读写模块用于实时获取所述第一存储数据的数据片段,并将所述数据片段读写至所述第一存储区中;其中,所述第一存储区分为多个存储分区。
2.如权利要求1所述的一种存储***,其特征在于,所述索引数据管理器还包括索引预存储区,所述索引预存储区用于实时接收所述索引数据,并当所述索引数据量达到阈值时,生成索引数据文件发送至所述第二存储区。
3.如权利要求1所述的一种存储***,其特征在于,所述索引数据管理器包括分区管理器、事件管理器和片段管理器;
所述分区管理器,用于在所述数据片段实时写入所述第一存储区的存储分区后,生成所述数据片段的分区索引数据;
所述事件管理器,用于在所述第一存储数据的所述数据片段写入所述第一存储区后,生成与所述第一存储数据相关联的第一事件索引数据;
所述片段管理器,用于生成片段索引数据;所述片段索引数据关联已写入所述第一存储区中的数据片段。
4.一种数据管理方法,其特征在于,应用于存储***,方法包括:
获取第一存储数据中的数据片段;
将所述数据片段实时写入第一存储区中;
生成索引数据,将所述索引数据写入索引数据管理器中;其中,所述索引数据用于索引第一存储数据,所述索引数据管理器用于当存储在所述索引数据管理器的索引数据量达到预设数据阈值时,生成索引数据文件;
将所述索引数据文件写入第二存储区中。
5.如权利要求4所述的数据管理方法,其特征在于,所述存储***包括多个所述第一存储区,每个第一存储区分为多个存储分区,所述第一存储数据中包括多个数据片段,所述存储***还包括客户端;
所述将所述数据片段实时写入第一存储区中,包括:
根据所述客户端的客户端通道选择对应的存储分区;
获取所述存储分区的可存储区域;
判断所述第一存储数据中的第一个数据片段的数据量是否小于所述可存储区域的存储量;
若所述第一存储数据中的第一个数据片段的数据量小于所述可存储区域的存储量,则将所述第一个数据片段实时写入所述存储分区。
6.如权利要求5所述的数据管理方法,其特征在于,所述索引数据包括事件索引数据,所述事件索引数据用于记录存储数据信息;
所述生成索引数据,将所述索引数据写入所述索引数据管理器中,包括:
获取所述第一存储数据中第一个数据片段的第一时间戳信息;
对应查找所述存储分区中,已存入的第二存储数据的尾部数据片段;
获取所述第二存储数据的尾部数据片段的第二时间戳信息;
判断所述第一时间戳信息与第二时间戳信息是否为连续时间信息;
若第一时间戳信息与第二时间戳信息为连续时间信息,则获取所述第二存储数据的第二事件索引数据;
将所有所述数据片段写入所述存储分区后,将第一存储数据关联所述第二事件索引数据;
将关联后的所述第二事件索引数据写入所述索引数据管理器中。
7.如权利要求6所述的数据管理方法,其特征在于,所述判断所述第一时间戳信息与第二时间戳信息是否为连续时间信息之后,还包括:
若第一时间戳信息与第二时间戳信息不为连续时间信息,则将所述第一存储数据的所有所述数据片段写入当前所述存储分区后,生成与所述第一存储数据相关联的第一事件索引数据;并将所述第一事件索引数据写入所述索引数据管理器中。
8.如权利要求5所述的数据管理方法,其特征在于,所述生成索引数据,将所述索引数据写入所述索引数据管理器中,还包括:
将所述数据片段实时写入所述第一存储区的存储分区后,生成分区索引数据;
将所述存储分区关联所述分区索引数据;所述分区索引数据用于记录存储分区的存储信息;
将所述分区索引数据写入所述索引数据管理器中。
9.如权利要求5-8任一所述的数据管理方法,其特征在于,所述索引数据还包括片段索引数据;
所述生成索引数据,将所述索引数据写入所述索引数据管理器中,还包括:
生成第一片段索引数据;所述第一片段索引数据关联已写入所述存储分区中的数据片段;
将所述第一片段索引数据写入所述索引数据管理器中。
10.如权利要求9所述的数据管理方法,其特征在于,将所述索引数据文件写入第二存储区中之后,还包括:
在所述存储***发生异常后,查询在第一预设时间内写入所述数据片段的所述存储分区;
查询所述存储分区对应的第二存储区;
获取所述第二存储区中的尾部片段索引数据,根据所述尾部片段索引数据查询对应所述第一存储区中存储分区的第一目标数据片段;
重新对应生成所述第一目标数据片段之后的所述第一存储数据的索引数据。
11.如权利要求6所述的数据管理方法,其特征在于,所述索引数据写入所述第二存储区时携带时间信息;
将所述索引数据文件写入第二存储区中之后,还包括:
获取目标客户端,根据第二预设时间段和所述目标客户端的客户端通道获取所有对应的存储分区;
查询各个所述存储分区对应的第二存储区;
根据所述事件索引数据确定目标第二存储区;
在所述目标第二存储区中,获取所述第二预设时间段内的目标片段索引数据;
获取所述目标片段索引数据对应的第二目标数据片段;
根据所述时间信息依次读取所述第二目标数据片段。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求4至11任一项所述的方法。
CN201911021948.4A 2019-10-25 2019-10-25 存储***、数据管理方法及存储介质 Active CN110764706B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911021948.4A CN110764706B (zh) 2019-10-25 2019-10-25 存储***、数据管理方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911021948.4A CN110764706B (zh) 2019-10-25 2019-10-25 存储***、数据管理方法及存储介质

Publications (2)

Publication Number Publication Date
CN110764706A true CN110764706A (zh) 2020-02-07
CN110764706B CN110764706B (zh) 2023-10-03

Family

ID=69333701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911021948.4A Active CN110764706B (zh) 2019-10-25 2019-10-25 存储***、数据管理方法及存储介质

Country Status (1)

Country Link
CN (1) CN110764706B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111382122A (zh) * 2020-03-11 2020-07-07 杭州涂鸦信息技术有限公司 一种多路网络摄像机子设备的文件管理***和方法
CN111506259A (zh) * 2020-03-20 2020-08-07 普联技术有限公司 数据存储、读取方法、装置、设备及可读存储介质
CN112286948A (zh) * 2020-11-18 2021-01-29 成都佳华物链云科技有限公司 时序数据库的数据存储方法、读取方法及装置
CN112463733A (zh) * 2020-08-21 2021-03-09 海信视像科技股份有限公司 一种保护硬盘数据的方法及显示设备
CN112905345A (zh) * 2021-02-23 2021-06-04 深圳市网心科技有限公司 任务调配方法、分布式存储***、服务器
CN112954244A (zh) * 2021-01-19 2021-06-11 普联技术有限公司 监控录像的存储实现方法、装置、设备及存储介质
CN113473143A (zh) * 2021-06-30 2021-10-01 中央广播电视总台 一种第三代音视频标准(avs3)转码支持断点续转的方法
CN113625938A (zh) * 2020-05-06 2021-11-09 华为技术有限公司 一种元数据存储方法及其设备
CN114442927A (zh) * 2021-12-22 2022-05-06 天翼云科技有限公司 一种数据存储空间的管理方法及装置
CN116578741A (zh) * 2023-07-12 2023-08-11 南京奥看信息科技有限公司 视图混合存储方法、装置及***
CN117931098A (zh) * 2024-03-22 2024-04-26 江西云眼视界科技股份有限公司 边缘侧事件存储方法、***、存储介质及计算机

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101641674A (zh) * 2006-10-05 2010-02-03 斯普兰克公司 时间序列搜索引擎
CN101644996A (zh) * 2009-09-25 2010-02-10 杭州华三通信技术有限公司 索引数据的存储方法和存储控制装置
CN102136290A (zh) * 2011-04-21 2011-07-27 北京联合大学 一种嵌入式实时视频文件存储方法
CN106202416A (zh) * 2016-07-11 2016-12-07 腾讯科技(深圳)有限公司 列表数据写方法和装置、列表数据读取方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101641674A (zh) * 2006-10-05 2010-02-03 斯普兰克公司 时间序列搜索引擎
CN101644996A (zh) * 2009-09-25 2010-02-10 杭州华三通信技术有限公司 索引数据的存储方法和存储控制装置
CN102136290A (zh) * 2011-04-21 2011-07-27 北京联合大学 一种嵌入式实时视频文件存储方法
CN106202416A (zh) * 2016-07-11 2016-12-07 腾讯科技(深圳)有限公司 列表数据写方法和装置、列表数据读取方法和装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111382122B (zh) * 2020-03-11 2024-01-30 杭州涂鸦信息技术有限公司 一种多路网络摄像机子设备的文件管理***和方法
CN111382122A (zh) * 2020-03-11 2020-07-07 杭州涂鸦信息技术有限公司 一种多路网络摄像机子设备的文件管理***和方法
CN111506259A (zh) * 2020-03-20 2020-08-07 普联技术有限公司 数据存储、读取方法、装置、设备及可读存储介质
CN111506259B (zh) * 2020-03-20 2023-06-06 普联技术有限公司 数据存储、读取方法、装置、设备及可读存储介质
CN113625938A (zh) * 2020-05-06 2021-11-09 华为技术有限公司 一种元数据存储方法及其设备
CN112463733A (zh) * 2020-08-21 2021-03-09 海信视像科技股份有限公司 一种保护硬盘数据的方法及显示设备
CN112286948B (zh) * 2020-11-18 2023-05-23 成都佳华物链云科技有限公司 时序数据库的数据存储方法、读取方法及装置
CN112286948A (zh) * 2020-11-18 2021-01-29 成都佳华物链云科技有限公司 时序数据库的数据存储方法、读取方法及装置
CN112954244A (zh) * 2021-01-19 2021-06-11 普联技术有限公司 监控录像的存储实现方法、装置、设备及存储介质
CN112954244B (zh) * 2021-01-19 2024-07-19 普联技术有限公司 监控录像的存储实现方法、装置、设备及存储介质
CN112905345B (zh) * 2021-02-23 2024-04-05 深圳市网心科技有限公司 任务调配方法、分布式存储***、服务器
CN112905345A (zh) * 2021-02-23 2021-06-04 深圳市网心科技有限公司 任务调配方法、分布式存储***、服务器
CN113473143B (zh) * 2021-06-30 2022-12-16 中央广播电视总台 一种第三代音视频标准(avs3)转码支持断点续转的方法
CN113473143A (zh) * 2021-06-30 2021-10-01 中央广播电视总台 一种第三代音视频标准(avs3)转码支持断点续转的方法
CN114442927B (zh) * 2021-12-22 2023-11-03 天翼云科技有限公司 一种数据存储空间的管理方法及装置
CN114442927A (zh) * 2021-12-22 2022-05-06 天翼云科技有限公司 一种数据存储空间的管理方法及装置
CN116578741A (zh) * 2023-07-12 2023-08-11 南京奥看信息科技有限公司 视图混合存储方法、装置及***
CN116578741B (zh) * 2023-07-12 2023-10-20 南京奥看信息科技有限公司 视图混合存储方法、装置及***
CN117931098A (zh) * 2024-03-22 2024-04-26 江西云眼视界科技股份有限公司 边缘侧事件存储方法、***、存储介质及计算机
CN117931098B (zh) * 2024-03-22 2024-06-07 江西云眼视界科技股份有限公司 边缘侧事件存储方法、***、存储介质及计算机

Also Published As

Publication number Publication date
CN110764706B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
CN110764706B (zh) 存储***、数据管理方法及存储介质
KR102240557B1 (ko) 데이터 저장 방법, 장치 및 시스템
US11853549B2 (en) Index storage in shingled magnetic recording (SMR) storage system with non-shingled region
CN106874348B (zh) 文件存储和索引方法、装置及读取文件的方法
CN103020255B (zh) 分级存储方法和装置
CN109710572B (zh) 一种基于HBase的文件分片方法
CN101281542B (zh) 一种文件存储方法及装置
CN106326292B (zh) 数据结构和文件聚合、读取方法及装置
US20170031948A1 (en) File synchronization method, server, and terminal
CN113064859B (zh) 一种元数据处理方法、装置及电子设备和存储介质
CN111782134B (zh) 数据处理方法、装置、***和计算机可读存储介质
CN103399823A (zh) 业务数据的存储方法、设备和***
CN101963977A (zh) 无城市搜索方法及移动终端
US20170177602A1 (en) Compressed data layout with variable group size
US8214343B2 (en) Purposing persistent data through hardware metadata tagging
CN107423425B (zh) 一种对k/v格式的数据快速存储和查询方法
CN109388651B (zh) 一种数据处理方法和装置
CN105069139B (zh) 文件访问方法和文件访问装置以及服务器
US11250001B2 (en) Accurate partition sizing for memory efficient reduction operations
CN113297267A (zh) 数据缓存和任务处理方法、装置、设备以及存储介质
CN111966845B (zh) 图片管理方法、装置、存储节点及存储介质
CN112799872B (zh) 一种基于键值对存储***的纠删码编码方法及装置
CN114217741A (zh) 存储装置的存储方法及存储装置
JP2003296156A (ja) 情報記録管理装置、データ記録再生装置、情報記録管理方法及びファイル管理方法
CN111625502A (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