数据处理方法和装置的利记博彩app

文档序号:6608058阅读:119来源:国知局
专利名称:数据处理方法和装置的利记博彩app
技术领域
本发明涉及视频监控技术,特别涉及数据处理方法和装置。
背景技术
独立磁盘冗余阵列(RAID Redundant Array of Independent Disks),简称磁盘阵列,其原理是利用多个硬盘连成一个阵列,实现以快速、准确和安全的方式来读写磁盘数据,从而达到提高数据的读写速度和安全性。目前利用磁盘阵列处理视频数据的方法中,对视频数据的写入方法主要包括以下步骤步骤1,为视频编解码器(EC)的每个通道制定对应的存储计划。EC通道的存储计划包含EC通道的码流大小、EC通道要求其下刷的数据所要保存的时间(记为数据保存时间)等。步骤2,针对每一 EC通道,根据该EC通道的存储计划为该EC通道选择对应的磁盘阵列。步骤2是根据存储计划中的数据保存时间为EC通道选择磁盘阵列的。步骤3,在步骤2选择的磁盘阵列上创建地址连续的LUN资源,该LUN资源关联到上述EC通道。LUN资源的大小是根据存储计划中的数据保存时间、EC通道码流大小计算的。若步骤2中为EC的4个通道比如通道1至通道4选择了相同的磁盘阵列1,则执行到步骤3时,可在该磁盘阵列1上创建分别关联到该4个通道的LUN资源。比如,在步骤 2选择的磁盘阵列1上创建了 4个LUN资源,分别为LUNl至LUN4,其分别关联到通道1至通道4,具体如图1所示。步骤4,当向步骤2选择的磁盘阵列写入数据时,由EC上的各个通道按照顺序下刷数据,以便顺序向该各个EC通道关联的LUN资源写入数据。由于顺序向磁盘阵列写入数据能保证数据写入处理效率最高,因此,本步骤4顺序向LUN资源写入数据,能够提高数据写入效率,同时也提高磁盘阵列的I/O处理能力。但是,在实际应用过程中,会出现多路EC通道同时下刷数据至磁盘阵列的情况, 比如图1中的通道1、通道3和通道4同时下刷数据至磁盘阵列1,由于不同的通道关联不同的LUN资源,如此,就需要磁盘的磁头不停地寻道,即呈现出了随机写数据至磁盘阵列的现象,这降低了数据写入效率,同时也降低了磁盘阵列的I/O处理能力。

发明内容
本发明提供了数据处理方法和装置,实现在多路EC通道同时向磁盘阵列下刷数据时,以全顺序方式写入该数据至磁盘阵列,提高数据写入效率,同时也提高该磁盘阵列的 I/O处理能力。本发明提供的技术方案包括
一种数据处理方法,包括A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组; 将每一存储单元组中除预设二级索引空间外的空间划分为1个以上大小相同的存储单元;B,所述磁盘阵列的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。一种数据处理装置,包括写入模块、添加模块和查询模块,其中,写入模块,用于以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元;添加模块,用于在写入模块完成写入后,分别在保留空间和二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供所述查询模块查询该路数据;所述存储单元是通过对存储单元组中除所述二级索引空间外的空间划分得到的, 所述存储单元组是通过对磁盘阵列中除保留空间之外的空间划分得到的。由以上技术方案可以看出,本发明中,当多路EC通道同时向同一个磁盘阵列下刷数据时,以单位时间为间隔将同一个单位时间内接收的多路数据顺序写入至同一存储单元,即实现了顺序向磁盘阵列写入数据的目的,提高了数据写入效率,也提高了磁盘阵列的 I/O处理能力,同时降低了视频业务中由于存储端响应缓慢而导致数据丢失的风险。


图1为现有数据写入磁盘阵列的示意图;图2为本发明实施例提供的磁盘阵列被划分形成的系统结构图;图3为本发明实施例提供的处理流程图;图4为本发明实施例提供的步骤308的处理流程图;图5为本发明实施例提供的数据读取流程图;图6为本发明实施例提供的装置结构图。
具体实施例方式本发明提供的方法主要包括:A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组;将每一存储单元组中除二级索引空间外的空间划分为1个以上大小相同的存储单元;B,该磁盘阵列的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。通过该方法,实现了以全顺序方式向磁盘阵列中写入数据的目的,提高了数据写入效率,同时也提高了磁盘阵列的I/O处理能力,并且,通过设置EC通道的一级索引表和二级索引表,能够快速实现数据的回放和查询。为了使本发明的目的、技术方案和优点更加清楚,下面先对本发明实施例提供的磁盘阵列结构进行描述。假如根据EC通道比如通道1的存储计划选择了磁盘阵列1,其中,存储计划中包含通道1下刷的数据需要被保存时间(记为数据保存时间Tl)和通道1的码流大小等。如果该磁盘阵列1是首次被选择,则对该磁盘阵列执行以下操作,以得到图2所示的结构首先,在磁盘阵列1中保留大小为9MB的空间,其一般为磁盘阵列1中头9MB的空间。该空间可包含大小为8MB的一级索引空间和大小为1MB的超级块空间。其中,一级索引空间用于存放EC通道的一级索引表(具体在下文描述);而超级块空间用于记录EC通道的超级块信息,其与本发明实施例的实现关系不大,不再详述。其次,将磁盘阵列1中除保留空间外的空间划分成M个大小相同的存储单元组 (group),并将每个存储单元组中除预设二级索引空间(用于存放EC通道的二级索引表,具体在下文描述)外的空间划分成N个大小相同的存储单元。通常,在划分存储单元组时,会根据实际应用确定出1个存储单元组包含多少个存储单元(本实施例中存储单元为按单位时间存放数据的单元,因此,其实质上也就是确定1个存储单元组最多容纳多少个单位时间内接收的数据),之后依据该确定的个数和存储计划中的数据保存时间Tl确定M。比如,单位时间为1秒,1个group包含存储单元的个数N为1024,即表示1个 group最多容纳IOM秒内接收的数据,如此,假如存储计划中数据保存时间Tl为20天(记为20*24*3600秒),则划分的group个数M为M = 20*24*3600 (秒)/1024 (秒)=1688 个。如果磁盘阵列1中除保留空间外的空间为16TB,则各个存储单元组的大小为 16*102 牡 1024/1688 = 9939MB。另外,如果每个存储单元组中二级索引空间大小为16MB,一般为每个存储单元组中头16MB的空间,存储单元组的大小为9939B,则存储单元组中每个存储单元的大小为 (9939-16)/1024 = 9. 69MB。如此,通过上面操作,磁盘阵列1即可形成图2所示的结构。基于图2所示的磁盘阵列结构,下面对本发明实施例提供的流程进行详细描述。参见图3,图3为本发明实施例提供的详细流程图。如图3所示,该流程可包括以下步骤步骤301,针对EC的每一通道,为该通道(以通道1为例)制定存储计划。步骤302,根据存储计划中的数据保存时间Tl为通道1选择磁盘阵列,该选择的磁盘阵列用于存储通道1下刷的数据,记为磁盘阵列1。本步骤可按照现有方式为通道1选择磁盘阵列,如果选择出的磁盘阵列数量比较多,可将其中一个作为磁盘阵列1,执行下述步骤。步骤303,判断磁盘阵列1是否已被其他EC通道选择,如果否,执行步骤304,如果是,执行步骤305。由于磁盘阵列1是根据存储计划中的数据保存时间选择出的,而不同EC通道的存储计划中可以包含相同的数据保存时间,所以存在磁盘阵列1已被其他EC通道选择的可能。如此,执行到步骤303时,就需要判断磁盘阵列1是否已被其他EC通道选择,并根据不同的判断结果执行不同的操作,分别见步骤304至步骤305。步骤304,将磁盘阵列1中除保留空间外的空间划分成M个大小相同的存储单元组,并将每个存储单元组中除二级索引空间外的空间划分成N个大小相同的存储单元。该步骤的具体操作如上所述。之后执行步骤307。步骤305,判断磁盘阵列1是否还能容纳通道1下刷的数据量,如果否,执行步骤306,如果是,执行步骤307。假如执行步骤302之前,已有通道2和3选择了磁盘阵列1,而在步骤302中还为通道1选择了磁盘阵列1,如此,执行到本步骤305时,判断该磁盘阵列1除了容纳通道2和 3下刷的数据量外,是否还能进一步容纳通道1下刷的数据量,其中,通道下刷的数据量是根据该通道的存储计划中的数据保存时间和该通道的码流大小计算出的,如果不能,执行步骤306,如果能,执行步骤307。步骤306,如果还能根据存储计划中的数据保存时间Tl选择除磁盘阵列1之外的其他磁盘阵列来存放通道1下刷的数据,则针对该选择的磁盘阵列按照步骤303对磁盘阵列1的操作执行;否则,结束当前流程。本步骤306中的选择操作可按照现有方式执行。步骤307,允许通道1向磁盘阵列1下刷数据。之后执行步骤308。通过以上步骤305至步骤307能够确定出向磁盘阵列1下刷数据的通道。如果通过上述步骤305至步骤307确定出多路EC通道都被允许向磁盘阵列1下刷数据,则当该多路EC通道同时向磁盘阵列1下刷数据时,执行步骤308。步骤308,磁盘阵列1的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在磁盘阵列1的保留空间(具体为该保留空间中的一级索引空间)和该存储单元所在存储单元组的二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。至于步骤308如何实现,下面通过图4所示的流程进行描述步骤401,在向磁盘阵列1写入当前单位时间内接收的数据时,判断当前是否首次向磁盘阵列1写入数据,如果是,执行步骤402 ;否则,执行步骤403 ;步骤402,将该当前单位时间内接收的数据写入至磁盘阵列1中第一个存储单元组的第一个存储单元,之后执行步骤406 ;步骤403,如果上一个存储单元为磁盘阵列1中最后一个存储单元组的最后一个存储单元,则执行步骤404 ;否则,执行步骤405。所述上一个存储单元为上一个单位时间接收的数据所写入的存储单元。步骤404,更新第一个存储单元组中第一个存储单元的数据为当前单位时间内接收的数据,之后执行步骤406。也就是说,当数据写完磁盘阵列1上所有存储单元后,需要重新回到第一个存储单元组的第一个存储单元,覆盖之前保存的数据。步骤405,如果上一个存储单元的下一个存储单元当前还未被写入数据,则直接将当前单位时间内接收的数据写入至该下一个存储单元,之后执行步骤406 ;否则,更新该下一个存储单元中的数据为当前单位时间内接收的数据,之后执行步骤406。通过以上步骤401至步骤405可以看出,本实施例是以单位时间为间隔将同一个单位时间内接收的数据写入至同一个存储单元。当然,由于磁盘阵列1中的存储单元是依据单位时间划分的,如果存储单元不能完全容纳同一单位时间内接收的数据,则可先填满当前待写入的存储单元,将多出的数据写入下一个存储单元,而在写入下一个单位时间接收的数据时,将该下一个单位时间接收的数据接着写入这个存储单元空余的空间,依次类推。
通过以上步骤401至步骤405实现了以全顺序方式向磁盘阵列写入数据。步骤406,针对新写入至存储单元的每路数据,确定该路由数据对应的EC通道, 判断该EC通道上次下刷的数据是否写入至该存储单元所在的存储单元组,是则执行步骤 407,否则,执行步骤408。本步骤406中新写入至存储单元的每路数据具体可为步骤402或者步骤405写入的每路数据,也可为步骤404或者步骤405中发生更新的每路数据。步骤407,在一级索引空间中添加该EC通道的一级索引表,之后执行步骤408。也就是说,如果EC通道本次下刷的数据和上次下刷的数据存放在不同的存储单元组,则会在本次下刷的数据写入至存储单元后,在一级索引空间中记录该EC通道的一级索引表。优选地,本实施例为加快添加操作速度,可先在缓存中执行该添加操作,之后将添加的一级索引表复制到一级索引空间。步骤408,在该存储单元所在存储单元组的二级索引空间中添加该EC通道的二级索引表。本实施例中,一级索引表和二级索引表主要是便于后续数据查询操作,下面对一级索引表和二级索引表进行描述。本实施例中,一级索引表大小可为U8KB,其用于记录EC通道的一级索引信息。其中,EC通道的一级索引信息包含该EC通道的名称、该EC通道的二级索引表在存储单元组中的位置(其可通过起始偏移量标识)、该EC通道下刷的数据写入至存储单元组的时间以及该存储单元组的编号。以步骤406确定的EC通道名称为EC_206-204为例,则该EC通道在一级索引空间中的一级索引表如表1所示表 权利要求
1.一种数据处理方法,其特征在于,该方法包括A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组;将每一存储单元组中除预设二级索引空间外的空间划分为1个以上大小相同的存储单元;B,所述磁盘阵列的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。
2.根据权利要求1所述的方法,其特征在于,所述步骤B中的添加包括B11,针对每路数据对应的EC通道,如果该EC通道上次下刷的数据写入至该存储单元所在的存储单元组,执行步骤B13,否则,执行步骤B12 ;B12,在保留空间中添加该EC通道的一级索引表,之后执行步骤B13;该一级索引表包含该存储单元组的编号、数据写入至该存储单元组的时间、该EC通道的名称及其二级索引表的位置;B13,在该存储单元组的二级索引空间中添加该EC通道的二级索引表; 该二级索引表包含该路数据在存储单元的位置和被采集的数据时间。
3.根据权利要求1所述的方法,其特征在于,所述步骤B中写入包括B21,在向磁盘阵列写入当前单位时间内接收的数据时,如果当前是首次向磁盘阵列写入数据,则将当前单位时间内接收的数据写入至所述磁盘阵列中第一个存储单元组的第一个存储单元;否则,执行步骤B22 ;B22,在上一个存储单元为磁盘阵列中最后一个存储单元组的最后一个存储单元时,所述上一个存储单元为上一个单位时间写入的存储单元,执行步骤B23 ;否则,执行步骤B24 ; B23,更新第一个存储单元组中第一个存储单元的数据为当前单位时间内接收的数据;B24,在上一个存储单元的下一个存储单元还未写入数据时,将当前单位时间内接收的数据写入至该下一个存储单元,否则,更新该下一个存储单元中的数据为当前单位时间内接收的数据。
4.根据权利要求3所述的方法,其特征在于,当接收到EC通道向所述缓存下发的暂停通知时,该方法进一步包括在保留空间中查找到该EC通道的一级索引表;根据一级索引表中该EC通道二级索引表的位置查找到该EC通道的二级索引表; 从该二级索引表中获取该EC通道下刷的数据在各存储单元中的位置,之后锁定该位置;所述步骤B23或者步骤B24中更新包括如果存储单元中存在锁定位置,则更新该存储单元中除锁定位置之外的数据为当前单位时间内接收的数据,否则,更新该存储单元中的数据为当前单位时间内接收的数据。
5.根据权利要求4所述的方法,其特征在于,所述步骤B23或步骤BM在更新存储单元中的数据之前进一步包括判断该存储单元是否包含锁定位置,如果是,确定该存储单元中除锁定位置之外的数据对应的EC通道;如果否,确定该存储单元中存放的数据对应的EC通道;在所述保留空间中删除该确定的EC通道的一级索引表,以及在该存储单元所在存储单元组的二级索引空间中删除该确定的EC通道的二级索引表。
6.根据权利要求1所述的方法,其特征在于,所述步骤B中的查询包括当接收到EC通道请求读取磁盘阵列中的数据时,所述请求携带了读取数据的时间段, 在保留空间中查找到该EC通道的一级索引表;从该一级索引表中确定写入时间早于、且最接近该时间段起始时间的存储单元组的编号1,以及确定晚于、且最接近该时间段结束时间的存储单元组的编号2 ;在一级索引表中查找到该EC通道的二级索引表分别在编号1、编号2以及编号1和编号2之间各个编号对应的各个存储单元组中的位置,根据该位置上的二级索引表所包含的数据时间、数据位置、以及所述时间段查询数据。
7.一种数据处理装置,其特征在于,该装置包括写入模块、添加模块和查询模块,其中,写入模块,用于以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元;添加模块,用于在写入模块完成写入后,分别在保留空间和二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供所述查询模块查询该路数据;所述存储单元是通过对存储单元组中除所述二级索引空间外的空间划分得到的,所述存储单元组是通过对磁盘阵列中除保留空间之外的空间划分得到的。
8.根据权利要求7所述的装置,其特征在于,所述添加模块包括第一判断子模块,用于针对所述写入模块写入的每路数据所对应的EC通道,判断该EC 通道上次下刷的数据是否写入至所述存储单元所在的存储单元组,如果是,发送第二添加通知给第二添加子模块;否则,发送第一添加通知给第一添加子模块;所述第一添加子模块,用于接收到所述第一添加通知时,在保留空间中添加该EC通道的一级索引表,之后发送第三添加通知给所述第二添加子模块;该一级索引表包含所述存储单元组的编号、数据写入至该存储单元组的时间、该EC通道的名称及其二级索引表的位置;所述第二添加子模块,用于接收到所述第二添加通知或者第三添加通知时,在该存储单元组的二级索引空间中添加该EC通道的二级索引表;该二级索引表包含该路数据在存储单元的位置和被采集的数据时间。
9.根据权利要求8所述的装置,其特征在于,所述写入模块包括第二判断子模块,用于在向磁盘阵列写入当前单位时间内接收的数据时,判断当前是否首次向磁盘阵列写入数据,如果是,发送第一写入通知给写入子模块;否则,判断上一个存储单元是否为磁盘阵列中最后一个存储单元组的最后一个存储单元,所述上一个存储单元为上一个单位时间写入的存储单元,如果是,发送第二写入通知给写入子模块;否则,发送第三写入通知给写入子模块;写入子模块,接收到第一写入通知后,将当前单位时间内接收的数据写入至所述磁盘阵列中第一个存储单元组的第一个存储单元;接收到第二写入通知后,更新第一个存储单元组中第一个存储单元的数据为当前单位时间内接收的数据;接收到第三写入通知后,如果上一个存储单元的下一个存储单元还未写入数据,则将当前单位时间内接收的数据写入至该下一个存储单元,否则,更新该下一个存储单元中的数据为当前单位时间内接收的数据
10.根据权利要求8所述的装置,其特征在于,所述查询模块包括 查找子模块,用于接收到EC通道请求读取磁盘阵列中的数据时,所述请求携带了读取数据的时间段,在保留空间中查找到该EC通道的一级索引表;确定子模块,用于从查找子模块查找到的一级索引表中确定写入时间早于、且最接近该时间段起始时间的存储单元组的编号1,以及确定晚于、且最接近该时间段结束时间的存储单元组的编号2 ;查询子模块,用于在一级索引表中查找到该EC通道的二级索引表分别在编号1、编号2 以及编号1和编号2之间各个编号对应的各个存储单元组中的位置,根据该位置上的二级索引表所包含的数据时间、数据位置、以及所述时间段查询数据。
全文摘要
本发明提供了数据处理方法和装置,其中,该方法包括A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组;将每一存储单元组中除预设二级索引空间外的空间划分为1个以上大小相同的存储单元;B,所述磁盘阵列的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。采用本发明,能够实现以全顺序方式写入数据至磁盘阵列。
文档编号G06F3/06GK102375694SQ20101025965
公开日2012年3月14日 申请日期2010年8月20日 优先权日2010年8月20日
发明者孙策, 王珏 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1