实时流文件的处理方法、装置、介质及电子设备与流程

文档序号:25885371发布日期:2021-07-16 19:10阅读:73来源:国知局
1.本申请实施例涉及数据存储
技术领域
:,尤其涉及一种实时流文件的处理方法、装置、介质及电子设备。
背景技术
::2.目前,科技迅速发展,人们对安防水平的要求也越来越高。在楼宇、街道以及各种公众场所都会安装有用于安防的摄像头以获取监控数据。3.安防监控数据以实时流为主,这不同于一般的文件存储。一般的文件大小固定,而实时流只有一帧一帧的数据。监控实时流具有流量大,并发高的特点,而且由于网络、硬件等原因,实时流可能会频繁中断,同时也要快速检索读取及删除存储设备上的流数据,读写次数比较多。因此,一种实时流文件的处理方案亟待产生。技术实现要素:4.本申请实施例提供一种实时流文件的处理方法、装置、介质及电子设备,通过对存储空间划分成多个可用空间,每个可用空间分别布局数据区和元数据区,并对数据区和元数据区进行分块处理,在空间结构上面,为数据读取的结构性提供保证,有利于对监控数据流文件的读写,并且对存储流文件的空间大小可以根据需求进行控制,而且通过动态哈希树形结构的目录可以减少读写次数,实现有效提升读写性能及存储扩展性的效果。5.第一方面,本申请实施例提供了一种实时流文件的处理方法,该方法包括:6.针对不同来源的流文件,对存储空间划分成至少两个可用空间;7.针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区。8.可选的,在针对所述可用空间进行数据区和元数据区的布局之后,所述方法还包括:对于数据区采用持久预分配方式确定流文件的存储地址;元数据区索引信息目录的目录结构采用动态哈希树形结构;其中,所述目录项设置有一个哈希表。9.可选的,所述数据区包括至少两个数据块,以存储流文件,所述元数据区包括至少两个数据块,以存储索引信息目录;10.所述元数据区包括的至少两个数据块中,第一个数据块用于存放元数据区所在的可用空间的全局描述信息;11.第一个数据块以外的其他数据块用于按照预设空间大小划分为索引块,所述索引块用于存放索引信息目录。12.可选的,所述元数据区索引信息目录的目录结构采用动态哈希树形结构,具体包括:13.元数据区索引信息目录的每个目录项包括一个哈希表,所述哈希表的长度为24个哈希值项,其中,前8个哈希值项作为寻址子目录项,后16个哈希值项作为文件子目录项。14.可选的,所述方法还包括:15.检测到元数据区的子目录创建请求时,计算该子目录的哈希值;16.若哈希表中该哈希值项的指向为0,则确定一个未使用的目标索引块,将所述子目录信息写入至所述目标索引块,并将该哈希值项指向所述目标索引块。17.可选的,在计算该子目录的哈希值之后,所述方法还包括:18.若哈希表中该哈希值项的指向不为0,则确定哈希值项所指向的索引块的类型;19.若为目录类型,则在所指向的索引块中找到一个空子目录项,并将所述子目录信息写入至所述索引块的空子目录项中;20.若不存在空子目录项,则将哈希值项所指向的索引块的类型修改为块表类型,并将目录项中的所有子目录项中的信息转移至所述块表下,并在所述块表下写入新的子目录的信息。21.可选的,在确定哈希值项所指向的索引块的类型之后,所述方法还包括:22.若为块表类型,则将所述子目录信息写入至块表中。23.可选的,对于数据区采用持久预分配方式确定流文件的存储地址,包括:24.确定预设流文件大小所占用的数据块个数;25.根据所述数据块个数确定流文件写入数据块的起始块地址和终止块地址;26.若存在新的流文件的写入需求,则以所述终止块地址之后的第一个块地址作为新的流文件的起始块地址。27.第二方面,本申请实施例提供了一种实时流文件的处理装置,该装置包括:28.可用空间划分模块,用于针对不同来源的流文件,对存储空间划分成至少两个可用空间;29.数据区域布局模块,用于针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区。30.第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的实时流文件的处理方法。31.第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的实时流文件的处理方法。32.本申请实施例所提供的技术方案,针对不同来源的流文件,对存储空间划分成至少两个可用空间;针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区。通过采用本申请所提供的技术方案,通过对存储空间划分成多个可用空间,每个可用空间分别布局数据区和元数据区,并对数据区和元数据区进行分块处理,在空间结构上面,为数据读取的结构性提供保证,有利于对监控数据流文件的读写。附图说明33.图1是本申请实施例提供的实时流文件的处理方法的流程图;34.图2是本申请实施例提供的可用空间布局示意图;35.图3是本申请实施例提供的数据区数据块分配示意图;36.图4是本申请实施例提供的动态哈希树形结构示意图;37.图5是本申请实施例提供的创建子目录的效果示意图;38.图6是本申请实施例提供的创建子目录的效果示意图;39.图7是本申请实施例提供的实时流文件的处理装置的结构示意图;40.图8是本申请实施例提供的一种电子设备的结构示意图。具体实施方式41.下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。42.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。43.图1是本申请实施例提供的实时流文件的处理方法的流程图,本实施例可适用于流文件存储的情况,该方法可以由本申请实施例所提供的实时流文件的处理装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于流文件存储服务器等电子设备中。44.如图1所示,所述实时流文件的处理方法包括:45.s110、针对不同来源的流文件,对存储空间划分成至少两个可用空间。46.其中,不同来源的流文件可以是不同的前端相机通过录制视频产生的流文件,由于流文件是不断的通过网络写入存储设备的,因此,本方案将整个存储空间根据每个相机的留存期配置大小,划分为多个可用空间,每个可用空间可以配置1个或者多个相机读写,达到数据隔离的效果。47.本方案中,每个可用空间管理自己的元数据和数据,互不影响。从物理上最大化保证顺序性,有效提升读写性能。48.s120、针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区。49.其中,可以将可用空间的数据区和元数据区以固定大小进行数据块的布局,例如每个数据块的大小均为64mb。50.图2是本申请实施例提供的可用空间布局示意图。如图2所示,1.2.1可用空间分为元数据区和数据区。数据区存储数据流,元数据区存储一些数据描述信息。元数据和数据分开,可针对两种数据的特点,存储到不同的存储介质上。其中,数据区分成n个数据块,如图2中的data0,data1,……,datan,每个数据块大小为64mb。元数据区分成n个数据块,如图2中的meta0、meta1、……、metan,每个数据块大小为64mb。51.在本实施例中,可选的,所述数据区包括至少两个数据块,以存储流文件,所述元数据区包括至少两个数据块,以存储索引信息目录;52.所述元数据区包括的至少两个数据块中,第一个数据块用于存放元数据区所在的可用空间的全局描述信息;第一个数据块以外的其他数据块用于按照预设空间大小划分为索引块,所述索引块用于存放索引信息目录。53.元数据区第一个数据块meta0,存放整个可用空间的全局描述信息(gdi)后续的元数据块meta1,meta2,……,metan存放目录及文件信息,每个元数据块再分成4kb大小索引块。由于监控实时流不需要太多的元数据信息,本方案将每个文件名及少量附加信息存放在一起作为一项存在索引块中,减少io次数。54.在本实施例中,可选的,对于数据区采用持久预分配方式确定流文件的存储地址,包括:确定预设流文件大小所占用的数据块个数;根据所述数据块个数确定流文件写入数据块的起始块地址和终止块地址;若存在新的流文件的写入需求,则以所述终止块地址之后的第一个块地址作为新的流文件的起始块地址。其中,在对数据区划分成多个数据块之后,可以根据流文件的大小,来确定每个流文件所占用的数据块个数。同时还可以通过划分多个数据块,来实现避免出现坏块影响整个数据区的数据存储的效果。55.在本实施例中,可选的,在针对所述可用空间进行数据区和元数据区的布局之后,所述方法还包括:对于数据区采用持久预分配方式确定流文件的存储地址;元数据区索引信息目录的目录结构采用动态哈希树形结构;其中,目录项设置有一个哈希表。56.其中,给文件分配数据块时,文件系统数据块分配器采用持久预分配,跳跃数据块相结合的方式,这种分配方式并不强制预留数据块。57.图3是本申请实施例提供的数据区数据块分配示意图。如图3所示,对于监控实时流,规定每2gb数据大小为一个文件(实际文件大小可支持tb级),即32个数据块。创建文件时,预先给文件分配一个数据块,文件缓存当前数据块指针记下该块地址(如图3中a1),然后分配器指针修改为该文件当前数据块指针加上31(如图3中a2)。文件写满64mb,获取下一个数据块时,移动文件数据块指针即可。58.如果可用空间划分的颗粒度小,每个相机独享一个可用空间,能达到理想的数据块连续性。59.如果多个相机共享一个可用空间,同时创建多个文件时,下一个文件从分配器指针开始寻找空闲数据块即可,如图3中b1,然后分配器指针修改为该文件当前数据块指针加上31(如图3中b2)。60.监控数据绝大部分情况下,能稳定发送数据流。持久预分配,跳跃数据块相结合的方式,算法复杂度低,避免丢失数据,也能比较好保证数据块的连续性,提升读写性能。61.其中,元数据区索引信息目录的目录结构采用动态哈希树形结构;其中,所述目录项设置有一个哈希表。按目录层级建立一棵目录树结构,每个目录均有一个哈希表,目录文件分类哈希,哈希值冲突时,通过线性增加索引块来存储新的目录文件信息。同时增加部分目录缓存,减少哈希及io次数。62.在本实施例中,可选的,所述元数据区索引信息目录的目录结构采用动态哈希树形结构,具体包括:元数据区索引信息目录的每个目录项包括一个哈希表,所述哈希表的长度为24个哈希值项,其中,前8个哈希值项作为寻址子目录项,后16个哈希值项作为文件子目录项。63.图4是本申请实施例提供的动态哈希树形结构示意图。如图4所示,每个目录项中保存一个哈希表,长度为24项,前8项作为寻址子目录,后16项作为寻址该目录下的文件。哈希表每项指向一个索引块地址或者为0,指向的索引块可以为目录、块表或者文件三种类型。图4中的diriterms为目录类型,table为块表类型,fileiterms为文件类型。64.在本实施例中,可选的,在计算该子目录的哈希值之后,所述方法还包括:若哈希表中该哈希值项的指向不为0,则确定哈希值项所指向的索引块的类型;若为目录类型,则在所指向的索引块中找到一个空子目录项,并将所述子目录信息写入至所述索引块的空子目录项中;若不存在空子目录项,则将哈希值项所指向的索引块的类型修改为块表类型,并将目录项中的所有子目录项中的信息转移至所述块表下,并在所述块表下写入新的子目录的信息。65.其中,在元数据区创建子目录时,计算该子目录的哈希值。如果哈希表该项指向为0,则寻找一个未使用索引块,写入将子目录信息,然后将哈希表该项的值修改为索引块地址。66.如果哈希表该项指向不为0,是一个索引块,此时分两种情况:67.图5是本申请实施例提供的创建子目录的效果示意图。如图5所示,如果指向的索引块是目录类型,则在该索引块中寻找一个空项,如果存在空项,则直接写入目录信息。68.如果不存在空项,则寻找一个未使用索引块,作为块表,将块表中一个空项的位置(30个项中没有使用的就是空项)修改为该索引块地址,然后将哈希表项值修改为该块表地址。然后再找一个未使用索引块作为目录块,写入将子目录信息,将块表中下一个空项修改为该目录块地址。69.在上述技术方案的基础上,可选的,在确定哈希值项所指向的索引块的类型之后,所述方法还包括:若为块表类型,则将所述子目录信息写入至块表中。70.图6是本申请实施例提供的创建子目录的效果示意图。如图6所示,如果指向的索引块是块表,则在块表最后一个不为0的地址处找到目录索引块,追加写入该块中的空项即可。最大支持两级块表。71.创建文件与创建目录过程基本相同,只是用的哈希表后16项。72.检索目录或者文件时,计算目录文件哈希值,然后逐级查找即可。73.删除目录或者文件时,计算目录文件哈希值,逐级找到目录文件,删除该项,文件返还数据块,如果索引块为空,返还索引块,如果块表无指向的索引块,则返还块表。74.通过本发明提出的技术方案,能有效提升读写性能及存储扩展性,优化内存使用,增强数据可靠性,提高磁盘利用率。75.本申请实施例所提供的技术方案,针对不同来源的流文件,对存储空间划分成至少两个可用空间;针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区;其中,所述数据区包括至少两个数据块,以存储流文件,所述元数据区包括至少两个数据块,以存储索引信息目录;对于数据区采用持久预分配方式确定流文件的存储地址;元数据区索引信息目录的目录结构采用动态哈希树形结构;其中,所述目录项设置有一个哈希表。通过采用本申请所提供的技术方案,通过对存储空间划分成多个可用空间,每个可用空间分别布局数据区和元数据区,并对数据区和元数据区进行分块处理,在空间结构上面,为数据读取的结构性提供保证,有利于对监控数据流文件的读写,并且对存储流文件的空间大小可以根据需求进行控制,而且通过动态哈希树形结构的目录可以减少读写次数,实现有效提升读写性能及存储扩展性的效果。76.图7是本申请实施例提供的实时流文件的处理装置的结构示意图。如图7所示,所述实时流文件的处理装置,包括:77.可用空间划分模块710,用于针对不同来源的流文件,对存储空间划分成至少两个可用空间;78.数据区域布局模块720,用于针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区。79.本申请实施例所提供的技术方案,针对不同来源的流文件,对存储空间划分成至少两个可用空间;针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区;其中,所述数据区包括至少两个数据块,以存储流文件,所述元数据区包括至少两个数据块,以存储索引信息目录;对于数据区采用持久预分配方式确定流文件的存储地址;元数据区索引信息目录的目录结构采用动态哈希树形结构;其中,所述目录项设置有一个哈希表。通过采用本申请所提供的技术方案,通过对存储空间划分成多个可用空间,每个可用空间分别布局数据区和元数据区,并对数据区和元数据区进行分块处理,在空间结构上面,为数据读取的结构性提供保证,有利于对监控数据流文件的读写,并且对存储流文件的空间大小可以根据需求进行控制,而且通过动态哈希树形结构的目录可以减少读写次数,实现有效提升读写性能及存储扩展性的效果。80.上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。81.本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种实时流文件的处理方法,该方法包括:82.针对不同来源的流文件,对存储空间划分成至少两个可用空间;83.针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区。84.存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddrram、sram、edoram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。85.当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的实时流文件的处理操作,还可以执行本申请任意实施例所提供的实时流文件的处理方法中的相关操作。86.本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的实时流文件的处理装置。图8是本申请实施例提供的一种电子设备的结构示意图。如图8所示,本实施例提供了一种电子设备800,其包括:一个或多个处理器820;存储装置810,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器820执行,使得所述一个或多个处理器820实现本申请实施例所提供的实时流文件的处理方法,该方法包括:87.针对不同来源的流文件,对存储空间划分成至少两个可用空间;88.针对所述可用空间进行数据区和元数据区的布局,以使各可用空间单独管理所布局的数据区和元数据区。89.当然,本领域技术人员可以理解,处理器820还实现本申请任意实施例所提供的实时流文件的处理方法的技术方案。90.图8显示的电子设备800仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。91.如图8所示,该电子设备800包括处理器820、存储装置810、输入装置830和输出装置840;电子设备中处理器820的数量可以是一个或多个,图8中以一个处理器820为例;电子设备中的处理器820、存储装置810、输入装置830和输出装置840可以通过总线或其他方式连接,图8中以通过总线850连接为例。92.存储装置810作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本申请实施例中的实时流文件的处理方法对应的程序指令。93.存储装置810可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置810可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置810可进一步包括相对于处理器820远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。94.输入装置830可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置840可包括显示屏、扬声器等设备。95.本申请实施例提供的电子设备,通过对存储空间划分成多个可用空间,每个可用空间分别布局数据区和元数据区,并对数据区和元数据区进行分块处理,在空间结构上面,为数据读取的结构性提供保证,有利于对监控数据流文件的读写,并且对存储流文件的空间大小可以根据需求进行控制,而且通过动态哈希树形结构的目录可以减少读写次数,实现有效提升读写性能及存储扩展性的效果。96.上述实施例中提供的实时流文件的处理装置、介质及电子设备可执行本申请任意实施例所提供的实时流文件的处理方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的实时流文件的处理方法。97.注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1