数据处理方法和装置.pdf

上传人:xia****o6 文档编号:1001808 上传时间:2018-03-24 格式:PDF 页数:17 大小:733.15KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010259653.3

申请日:

2010.08.20

公开号:

CN102375694A

公开日:

2012.03.14

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20100820|||专利申请权的转移IPC(主分类):G06F 3/06变更事项:申请人变更前权利人:杭州华三通信技术有限公司变更后权利人:浙江宇视科技有限公司变更事项:地址变更前权利人:310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更后权利人:310053 浙江省杭州市滨江区东信大道66号C厂房二、三层A区登记生效日:20120222|||公开

IPC分类号:

G06F3/06

主分类号:

G06F3/06

申请人:

杭州华三通信技术有限公司

发明人:

孙策; 王珏

地址:

310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

优先权:

专利代理机构:

北京德琦知识产权代理有限公司 11018

代理人:

谢安昆;宋志强

PDF下载: PDF下载
内容摘要

本发明提供了数据处理方法和装置,其中,该方法包括:A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组;将每一存储单元组中除预设二级索引空间外的空间划分为1个以上大小相同的存储单元;B,所述磁盘阵列的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。采用本发明,能够实现以全顺序方式写入数据至磁盘阵列。

权利要求书

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 或步骤 B24 在更新存储单元 中的数据之前进一步包括 : 判断该存储单元是否包含锁定位置, 如果是, 确定该存储单元中除锁定位置之外的数 据对应的 EC 通道 ; 如果否, 确定该存储单元中存放的数据对应的 EC 通道 ; 在所述保留空间中删除该确定的 EC 通道的一级索引表, 以及在该存储单元所在存储 2 单元组的二级索引空间中删除该确定的 EC 通道的二级索引表。
6: 根据权利要求 1 所述的方法, 其特征在于, 所述步骤 B 中的查询包括 : 当接收到 EC 通道请求读取磁盘阵列中的数据时, 所述请求携带了读取数据的时间段, 在保留空间中查找到该 EC 通道的一级索引表 ; 从该一级索引表中确定写入时间早于、 且最接近该时间段起始时间的存储单元组的编 号 1, 以及确定晚于、 且最接近该时间段结束时间的存储单元组的编号 2 ; 在一级索引表中查找到该 EC 通道的二级索引表分别在编号 1、 编号 2 以及编号 1 和编 号 2 之间各个编号对应的各个存储单元组中的位置, 根据该位置上的二级索引表所包含的 数据时间、 数据位置、 以及所述时间段查询数据。
7: 一种数据处理装置, 其特征在于, 该装置包括 : 写入模块、 添加模块和查询模块, 其 中, 写入模块, 用于以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个 存储单元 ; 添加模块, 用于在写入模块完成写入后, 分别在保留空间和二级索引空间中添加每路 数据对应的 EC 通道的一级索引表和二级索引表, 以供所述查询模块查询该路数据 ; 所述存储单元是通过对存储单元组中除所述二级索引空间外的空间划分得到的, 所述 存储单元组是通过对磁盘阵列中除保留空间之外的空间划分得到的。
8: 根据权利要求 7 所述的装置, 其特征在于, 所述添加模块包括 : 第一判断子模块, 用于针对所述写入模块写入的每路数据所对应的 EC 通道, 判断该 EC 通道上次下刷的数据是否写入至所述存储单元所在的存储单元组, 如果是, 发送第二添加 通知给第二添加子模块 ; 否则, 发送第一添加通知给第一添加子模块 ; 所述第一添加子模块, 用于接收到所述第一添加通知时, 在保留空间中添加该 EC 通道 的一级索引表, 之后发送第三添加通知给所述第二添加子模块 ; 该一级索引表包含所述存 储单元组的编号、 数据写入至该存储单元组的时间、 该 EC 通道的名称及其二级索引表的位 置; 所述第二添加子模块, 用于接收到所述第二添加通知或者第三添加通知时, 在该存储 单元组的二级索引空间中添加该 EC 通道的二级索引表 ; 该二级索引表包含该路数据在存 储单元的位置和被采集的数据时间。
9: 根据权利要求 8 所述的装置, 其特征在于, 所述写入模块包括 : 第二判断子模块, 用于在向磁盘阵列写入当前单位时间内接收的数据时, 判断当前是 否首次向磁盘阵列写入数据, 如果是, 发送第一写入通知给写入子模块 ; 否则, 判断上一个 存储单元是否为磁盘阵列中最后一个存储单元组的最后一个存储单元, 所述上一个存储单 元为上一个单位时间写入的存储单元, 如果是, 发送第二写入通知给写入子模块 ; 否则, 发 送第三写入通知给写入子模块 ; 写入子模块, 接收到第一写入通知后, 将当前单位时间内接收的数据写入至所述磁盘 阵列中第一个存储单元组的第一个存储单元 ; 接收到第二写入通知后, 更新第一个存储单 元组中第一个存储单元的数据为当前单位时间内接收的数据 ; 接收到第三写入通知后, 如 则将当前单位时间内接收的数据写入 果上一个存储单元的下一个存储单元还未写入数据, 至该下一个存储单元, 否则, 更新该下一个存储单元中的数据为当前单位时间内接收的数 3 据
10: 根据权利要求 8 所述的装置, 其特征在于, 所述查询模块包括 : 查找子模块, 用于接收到 EC 通道请求读取磁盘阵列中的数据时, 所述请求携带了读取 数据的时间段, 在保留空间中查找到该 EC 通道的一级索引表 ; 确定子模块, 用于从查找子模块查找到的一级索引表中确定写入时间早于、 且最接近 该时间段起始时间的存储单元组的编号 1, 以及确定晚于、 且最接近该时间段结束时间的存 储单元组的编号 2 ; 查询子模块, 用于在一级索引表中查找到该 EC 通道的二级索引表分别在编号 1、 编号 2 以及编号 1 和编号 2 之间各个编号对应的各个存储单元组中的位置, 根据该位置上的二级 索引表所包含的数据时间、 数据位置、 以及所述时间段查询数据。

说明书


数据处理方法和装置

    【技术领域】
     本发明涉及视频监控技术, 特别涉及数据处理方法和装置。背景技术 独立磁盘冗余阵列 (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 资源, 分别为 LUN1 至 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 下刷的数据需要被保存时间 ( 记为数据保存时间 T1) 和通道 1 的码流大小等。如果该磁盘阵列 1 是首次被选择, 则对该磁盘阵列执行以下操作, 以得到图 2 所示的结构 :
     首先, 在磁盘阵列 1 中保留大小为 9MB 的空间, 其一般为磁盘阵列 1 中头 9MB 的空 间。该空间可包含 : 大小为 8MB 的一级索引空间和大小为 1MB 的超级块空间。其中, 一级索 引空间用于存放 EC 通道的一级索引表 ( 具体在下文描述 ) ; 而超级块空间用于记录 EC 通 道的超级块信息, 其与本发明实施例的实现关系不大, 不再详述。
     其次, 将磁盘阵列 1 中除保留空间外的空间划分成 M 个大小相同的存储单元组 (group), 并将每个存储单元组中除预设二级索引空间 ( 用于存放 EC 通道的二级索引表, 具 体在下文描述 ) 外的空间划分成 N 个大小相同的存储单元。通常, 在划分存储单元组时, 会 根据实际应用确定出 1 个存储单元组包含多少个存储单元 ( 本实施例中存储单元为按单位 时间存放数据的单元, 因此, 其实质上也就是确定 1 个存储单元组最多容纳多少个单位时 间内接收的数据 ), 之后依据该确定的个数和存储计划中的数据保存时间 T1 确定 M。
     比如, 单位时间为 1 秒, 1 个 group 包含存储单元的个数 N 为 1024, 即表示 1 个 group 最多容纳 1024 秒内接收的数据, 如此, 假如存储计划中数据保存时间 T1 为 20 天 ( 记 为 20*24*3600 秒 ), 则划分的 group 个数 M 为 :
     M = 20*24*3600( 秒 )/1024( 秒 ) = 1688 个。 如果磁盘阵列 1 中除保留空间外的空间为 16TB, 则各个存储单元组的大小为 : 16*1024*1024/1688 = 9939MB。
     另外, 如果每个存储单元组中二级索引空间大小为 16MB, 一般为每个存储单元组 中头 16MB 的空间, 存储单元组的大小为 9939B, 则存储单元组中每个存储单元的大小为 (9939-16)/1024 = 9.69MB。
     如此, 通过上面操作, 磁盘阵列 1 即可形成图 2 所示的结构。
     基于图 2 所示的磁盘阵列结构, 下面对本发明实施例提供的流程进行详细描述。
     参见图 3, 图 3 为本发明实施例提供的详细流程图。如图 3 所示, 该流程可包括以 下步骤 :
     步骤 301, 针对 EC 的每一通道, 为该通道 ( 以通道 1 为例 ) 制定存储计划。
     步骤 302, 根据存储计划中的数据保存时间 T1 为通道 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, 如果还能根据存储计划中的数据保存时间 T1 选择除磁盘阵列 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 通道的二级 索引表。
     本实施例中, 一级索引表和二级索引表主要是便于后续数据查询操作, 下面对一 级索引表和二级索引表进行描述。
     本实施例中, 一级索引表大小可为 128KB, 其用于记录 EC 通道的一级索引信息。 其 中, EC 通道的一级索引信息包含该 EC 通道的名称、 该 EC 通道的二级索引表在存储单元组 中的位置 ( 其可通过起始偏移量标识 )、 该 EC 通道下刷的数据写入至存储单元组的时间以 及该存储单元组的编号。以步骤 406 确定的 EC 通道名称为 EC_206-204 为例, 则该 EC 通道 在一级索引空间中的一级索引表如表 1 所示 :
     表1
     视频通道名称 二级索引表起始偏移量 存储单元组编号 1 2 3 EC2004_206-204 24 写入时间 2010_6_4_8:45:15 2010_6_4_8:50:15 2010_6_4_9:15:23 2010_6_4_9:30:23 4 ……
     ……在表 1 中, EC 通道的二级索引表在各个存储单元组的位置是相同的 ( 当然, 也可 不同, 原理类似 ), 即二级索引表的起始偏移量相同。至于二级索引表, 其大小可为 256KB, 用于记录 EC 通道的二级索引信息。其中, EC 通道的二级索引信息包含该 EC 通道下刷的数据的大小 ( 通过 block 数量表示 )、 在存储单 元中的位置 ( 通过存储单元的编号和起始偏移量表示 ) 和相应的采集时间 ( 具体为被 EC 通道采集的时间, 记为数据时间 ), 具体可参见表 2 所示。
     表2
     在表 2 中, 出现了存储单元编号相同, 但存储单元起始偏移量不同的情况, 比如, 表 2 中编号为 2 的存储单元, 之所以会出现这种情况, 主要是由于视频业务中常常存在不稳 定因素比如网络不稳定等导致的多个数据时间不同的数据在一个单位时间内被下刷至磁 盘阵列 1 的缓存, 比如表 2 中数据时间分别为 2010_6_49:00:08 和 2010_6_49:00:09 的数 据在同一个单位时间到达缓存, 则缓存就会将这两个数据顺序写入至同一个存储单元即表 2 中的存储单元 2, 即出现了上述情况。
     至此, 完成一级索引表和二级索引表的描述。通过上面步骤 407 至步骤 408 实现 EC 通道的一级索引表和二级索引表的添加操作。需要说明的是, 如果在上述数据写入过程 中, 需要删除某一路 EC 通道的存储计划, 则从磁盘阵列 1 的一级索引空间查找并删除该 EC 通道的一级索引表, 并根据该被删除的一级索引表包含的该 EC 通道二级索引表的位置查 找并删除该 EC 通道的二级索引表。
     需要说明的是, 在上述写入过程中, 如果某路 EC 通道暂停向磁盘阵列 1 下刷数据, 这里, EC 通道暂停向磁盘阵列 1 下刷数据通常是表示当前正在对该 EC 通道已下刷的数据 进行核查, 为了方便该核查工作, 需要保证该 EC 通道下刷的数据不被更新, 具体可通过以 下操作实现 : 首先使暂停的 EC 通道下发暂停通知至磁盘阵列 1 的缓存 ; 当缓存接收到暂停 通知后, 在一级索引空间中查找该暂停的 EC 通道的一级索引表, 根据该一级索引表中 EC 通 道二级索引表位置查找到该 EC 通道的二级索引表, 并在查找到的二级索引表中获取该 EC 通道下刷的数据在存储单元中的位置, 之后锁定该位置, 以使该位置的数据不被更新。比 如, 通道 1 需要暂停向磁盘阵列 1 下刷数据, 则该通道 1 就会下发暂停通知告知给磁盘阵列 1 的缓存, 当该缓存接收到通知后, 在一级索引空间中查找到通道 1 的一级索引表, 根据该 查找到的一级索引表包含的该通道 1 二级索引表的位置查找到通道 1 的二级索引表, 在该 查找到的二级索引表中获取该通道 1 下刷的数据在各个存储单元中的位置, 之后锁定该位
     置, 以使该位置的数据不被更新。
     如此, 上述步骤 404 或步骤 405 执行的更新操作具体可包括 : 如果该存储单元包含 锁定位置, 则更新该存储单元中除锁定位置之外的数据为当前单位时间内接收的数据 ; 否 则, 更新该存储单元中的数据为当前单位时间内接收的数据。
     另外, 本实施实例为节省一级索引空间和二级索引空间资源, 可在步骤 404 或者 步骤 405 执行更新操作之前, 执行以下步骤 : 先判断当前待写入数据的存储单元是否锁定 位置, 如果是, 确定该存储单元中除锁定位置之外的数据对应的 EC 通道 ; 如果否, 确定该存 储单元中存放的数据对应的 EC 通道 ; 之后, 在一级索引空间中删除该确定的 EC 通道的一级 索引表, 以及在该存储单元所在存储单元组的二级索引空间中删除该确定的 EC 通道的二 级索引表。
     步骤 409, 当针对每一单位时间内接收的数据都按照上述步骤 401 至步骤 408 执行 后, 完成数据写入流程。
     至此, 实现了本发明实施例提供的数据写入流程。
     之后, 如果某一通道比如通道 1 向磁盘阵列 1 的缓存请求读取数据, 该请求携带了 读取数据的时间段, 则执行图 5 所示的流程。 步骤 501, 在一级索引空间中查找到通道 1 的一级索引表。
     由于一级索引表包含通道的名称, 因此, 本步骤 501 可以通道 1 的名称为关键字在 一级索引空间搜索包含该关键字的一级索引表。
     步骤 502, 从该一级索引表中确定写入时间早于、 且最接近该时间段起始时间的存 储单元组的编号, 以及确定晚于、 且最接近该时间段结束时间的存储单元组的编号。
     比如, 如果请求中携带的时间段为 2010_6_4_8:55:10 至 2010_6_4_9:28:10, 通道 1 的名称为 EC_206-204, 则根据表 1 可以得到写入时间早于、 且最接近 2010_6_4_8:55:10 的存储单元组的编号为 2, 而晚于、 且最接近 2010_6_4_9:28:10 的存储单元组的编号为 4。
     步骤 503, 在一级索引表中查找到该 EC 通道的二级索引表分别在上述两个编号、 以及上述两个编号之间的各个编号对应的存储单元组中的位置, 根据该位置上的二级索引 表所包含的数据时间、 数据位置、 以及所述时间段查询数据。
     根据表 1 可以看出, 数据是按照时间先后顺序依次写入至磁盘阵列的各个存储单 元组, 因此, 在步骤 502 确定的两个编号对应的存储单元组满足上述时间段时, 该两个编号 之间的各个编号所对应的存储单元组肯定也满足上述时间段。比如, 如果步骤 502 确定 出写入时间早于、 且最接近 2010_6_4_8:55:10 的存储单元组的编号为 2, 晚于、 且最接近 2010_6_4_9:28:10 的存储单元组的编号为 4, 则根据表 1 可以知道, 该编号 2 和编号 4 之间 的编号 3 所对应的存储单元组也满足该时间段, 因此, 本步骤需要确定该 EC 通道的二级索 引表分别在编号 2、 3 和 4 三个存储单元组中的位置, 之后根据该位置上的二级索引表所包 含的数据时间、 数据位置、 以及所述时间段查询数据。
     至此, 实现了数据读取流程。
     以上对本发明实施例提供的方法进行了描述, 下面对本发明实施例提供的装置进 行描述。
     参见图 6, 图 6 为本发明实施例提供的装置结构图。如图 6 所示, 该装置包括 : 写 入模块 601、 添加模块 602 和查询模块 603,
     其中, 写入模块 601, 用于在多路 EC 通道同时向磁盘阵列下刷数据时, 将同一个单 位时间内接收的各路数据顺序写入至存储单元 ;
     添加模块 602, 用于在写入模块 601 完成写入后, 分别在保留空间和二级索引空间 中添加每路数据对应的 EC 通道的一级索引表和二级索引表, 以供查询模块 603 查询该路数 据;
     其中, 所述存储单元是通过对存储单元组中除所述二级索引空间外的空间划分得 到的, 所述存储单元组是通过对磁盘阵列中除保留空间之外的空间划分得到的。
     如图 6 所示, 添加模块 602 具体实现时可包括 :
     第一判断子模块 6021, 用于针对写入模块 601 写入的每路数据所对应的 EC 通道, 判断该 EC 通道上次下刷的数据是否写入至所述存储单元所在的存储单元组, 如果是, 发送 第二添加通知给第二添加子模块 6023 ; 否则, 发送第一添加通知给第一添加子模块 6022 ;
     第一添加子模块 6022, 用于接收到所述第一添加通知时, 在保留空间中添加该 EC 通道的一级索引表, 之后发送第三添加通知给第二添加子模块 6023 ; 该一级索引表包含所 述存储单元组的编号、 数据写入至该存储单元组的时间、 该 EC 通道的名称及其二级索引表 的位置 ; 第二添加子模块 6023, 用于接收到所述第二添加通知或者第三添加通知时, 在该 存储单元组的二级索引空间中添加该 EC 通道的二级索引表 ; 该二级索引表包含该路数据 在存储单元的位置和被采集的数据时间。
     优选地, 如图 6 所示, 写入模块 601 可包括 :
     第二判断子模块 6011, 用于在向磁盘阵列写入当前单位时间内接收的数据时, 判 断当前是否首次向磁盘阵列写入数据, 如果是, 发送第一写入通知给写入子模块 6012 ; 否 则, 判断上一个存储单元是否为磁盘阵列中最后一个存储单元组的最后一个存储单元, 所 述上一个存储单元为上一个单位时间写入的存储单元, 如果是, 发送第二写入通知给写入 子模块 6012 ; 否则, 发送第三写入通知给写入子模块 6012 ;
     写入子模块 6012, 接收到第一写入通知后, 将当前单位时间内接收的数据写入至 所述磁盘阵列中第一个存储单元组的第一个存储单元 ; 接收到第二写入通知后, 更新第一 个存储单元组中第一个存储单元的数据为当前单位时间内接收的数据 ; 接收到第三写入通 知后, 如果上一个存储单元的下一个存储单元还未写入数据, 则将当前单位时间内接收的 数据写入至该下一个存储单元, 否则, 更新该下一个存储单元中的数据为当前单位时间内 接收的数据。
     优选地, 如图 6 所示, 查询模块 603 具体实现时可包括 :
     查找子模块 6031, 用于接收到 EC 通道请求读取磁盘阵列中的数据时, 所述请求携 带了读取数据的时间段, 在保留空间中查找到该 EC 通道的一级索引表 ;
     确定子模块 6032, 用于从查找子模块 6031 查找到的一级索引表中确定写入时间 早于、 且最接近该时间段起始时间的存储单元组的编号 1, 以及确定晚于、 且最接近该时间 段结束时间的存储单元组的编号 2 ;
     查询子模块 6033, 用于在一级索引表中查找到该 EC 通道的二级索引表分别在编 号 1、 编号 2 以及编号 1 和编号 2 之间各个编号对应的各个存储单元组中的位置, 根据该位 置上的二级索引表所包含的数据时间、 数据位置、 以及所述时间段查询数据。
     由以上技术方案可以看出, 本发明中, 当多路 EC 通道同时向同一个磁盘阵列下刷 数据时, 以单位时间为间隔将同一个单位时间内接收的多路数据顺序写入至同一存储单 元, 即实现了顺序向磁盘阵列写入数据的目的, 提高了数据写入效率, 也提高了磁盘阵列的 I/O 处理能力, 同时降低了视频业务中由于存储端响应缓慢而导致数据丢失的风险。
     以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含在本发明保护的范围之内。

数据处理方法和装置.pdf_第1页
第1页 / 共17页
数据处理方法和装置.pdf_第2页
第2页 / 共17页
数据处理方法和装置.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《数据处理方法和装置.pdf》由会员分享,可在线阅读,更多相关《数据处理方法和装置.pdf(17页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102375694A43申请公布日20120314CN102375694ACN102375694A21申请号201010259653322申请日20100820G06F3/0620060171申请人杭州华三通信技术有限公司地址310053浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地72发明人孙策王珏74专利代理机构北京德琦知识产权代理有限公司11018代理人谢安昆宋志强54发明名称数据处理方法和装置57摘要本发明提供了数据处理方法和装置,其中,该方法包括A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组;将每一存储单元组中除预。

2、设二级索引空间外的空间划分为1个以上大小相同的存储单元;B,所述磁盘阵列的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。采用本发明,能够实现以全顺序方式写入数据至磁盘阵列。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书9页附图4页CN102375701A1/3页21一种数据处理方法,其特征在于,该方法包括A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组;将每一存储单元组中除预设二级索引空。

3、间外的空间划分为1个以上大小相同的存储单元;B,所述磁盘阵列的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。2根据权利要求1所述的方法,其特征在于,所述步骤B中的添加包括B11,针对每路数据对应的EC通道,如果该EC通道上次下刷的数据写入至该存储单元所在的存储单元组,执行步骤B13,否则,执行步骤B12;B12,在保留空间中添加该EC通道的一级索引表,之后执行步骤B13;该一级索引表包含该存储单元组的编号、数据写入至该存储单元组的时间、该EC通。

4、道的名称及其二级索引表的位置;B13,在该存储单元组的二级索引空间中添加该EC通道的二级索引表;该二级索引表包含该路数据在存储单元的位置和被采集的数据时间。3根据权利要求1所述的方法,其特征在于,所述步骤B中写入包括B21,在向磁盘阵列写入当前单位时间内接收的数据时,如果当前是首次向磁盘阵列写入数据,则将当前单位时间内接收的数据写入至所述磁盘阵列中第一个存储单元组的第一个存储单元;否则,执行步骤B22;B22,在上一个存储单元为磁盘阵列中最后一个存储单元组的最后一个存储单元时,所述上一个存储单元为上一个单位时间写入的存储单元,执行步骤B23;否则,执行步骤B24;B23,更新第一个存储单元组中。

5、第一个存储单元的数据为当前单位时间内接收的数据;B24,在上一个存储单元的下一个存储单元还未写入数据时,将当前单位时间内接收的数据写入至该下一个存储单元,否则,更新该下一个存储单元中的数据为当前单位时间内接收的数据。4根据权利要求3所述的方法,其特征在于,当接收到EC通道向所述缓存下发的暂停通知时,该方法进一步包括在保留空间中查找到该EC通道的一级索引表;根据一级索引表中该EC通道二级索引表的位置查找到该EC通道的二级索引表;从该二级索引表中获取该EC通道下刷的数据在各存储单元中的位置,之后锁定该位置;所述步骤B23或者步骤B24中更新包括如果存储单元中存在锁定位置,则更新该存储单元中除锁定位。

6、置之外的数据为当前单位时间内接收的数据,否则,更新该存储单元中的数据为当前单位时间内接收的数据。5根据权利要求4所述的方法,其特征在于,所述步骤B23或步骤B24在更新存储单元中的数据之前进一步包括判断该存储单元是否包含锁定位置,如果是,确定该存储单元中除锁定位置之外的数据对应的EC通道;如果否,确定该存储单元中存放的数据对应的EC通道;在所述保留空间中删除该确定的EC通道的一级索引表,以及在该存储单元所在存储权利要求书CN102375694ACN102375701A2/3页3单元组的二级索引空间中删除该确定的EC通道的二级索引表。6根据权利要求1所述的方法,其特征在于,所述步骤B中的查询包括。

7、当接收到EC通道请求读取磁盘阵列中的数据时,所述请求携带了读取数据的时间段,在保留空间中查找到该EC通道的一级索引表;从该一级索引表中确定写入时间早于、且最接近该时间段起始时间的存储单元组的编号1,以及确定晚于、且最接近该时间段结束时间的存储单元组的编号2;在一级索引表中查找到该EC通道的二级索引表分别在编号1、编号2以及编号1和编号2之间各个编号对应的各个存储单元组中的位置,根据该位置上的二级索引表所包含的数据时间、数据位置、以及所述时间段查询数据。7一种数据处理装置,其特征在于,该装置包括写入模块、添加模块和查询模块,其中,写入模块,用于以单位时间为间隔将同一个单位时间内接收的数据顺序写入。

8、至同一个存储单元;添加模块,用于在写入模块完成写入后,分别在保留空间和二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供所述查询模块查询该路数据;所述存储单元是通过对存储单元组中除所述二级索引空间外的空间划分得到的,所述存储单元组是通过对磁盘阵列中除保留空间之外的空间划分得到的。8根据权利要求7所述的装置,其特征在于,所述添加模块包括第一判断子模块,用于针对所述写入模块写入的每路数据所对应的EC通道,判断该EC通道上次下刷的数据是否写入至所述存储单元所在的存储单元组,如果是,发送第二添加通知给第二添加子模块;否则,发送第一添加通知给第一添加子模块;所述第一添加子模块,用于接。

9、收到所述第一添加通知时,在保留空间中添加该EC通道的一级索引表,之后发送第三添加通知给所述第二添加子模块;该一级索引表包含所述存储单元组的编号、数据写入至该存储单元组的时间、该EC通道的名称及其二级索引表的位置;所述第二添加子模块,用于接收到所述第二添加通知或者第三添加通知时,在该存储单元组的二级索引空间中添加该EC通道的二级索引表;该二级索引表包含该路数据在存储单元的位置和被采集的数据时间。9根据权利要求8所述的装置,其特征在于,所述写入模块包括第二判断子模块,用于在向磁盘阵列写入当前单位时间内接收的数据时,判断当前是否首次向磁盘阵列写入数据,如果是,发送第一写入通知给写入子模块;否则,判断。

10、上一个存储单元是否为磁盘阵列中最后一个存储单元组的最后一个存储单元,所述上一个存储单元为上一个单位时间写入的存储单元,如果是,发送第二写入通知给写入子模块;否则,发送第三写入通知给写入子模块;写入子模块,接收到第一写入通知后,将当前单位时间内接收的数据写入至所述磁盘阵列中第一个存储单元组的第一个存储单元;接收到第二写入通知后,更新第一个存储单元组中第一个存储单元的数据为当前单位时间内接收的数据;接收到第三写入通知后,如果上一个存储单元的下一个存储单元还未写入数据,则将当前单位时间内接收的数据写入至该下一个存储单元,否则,更新该下一个存储单元中的数据为当前单位时间内接收的数权利要求书CN1023。

11、75694ACN102375701A3/3页4据10根据权利要求8所述的装置,其特征在于,所述查询模块包括查找子模块,用于接收到EC通道请求读取磁盘阵列中的数据时,所述请求携带了读取数据的时间段,在保留空间中查找到该EC通道的一级索引表;确定子模块,用于从查找子模块查找到的一级索引表中确定写入时间早于、且最接近该时间段起始时间的存储单元组的编号1,以及确定晚于、且最接近该时间段结束时间的存储单元组的编号2;查询子模块,用于在一级索引表中查找到该EC通道的二级索引表分别在编号1、编号2以及编号1和编号2之间各个编号对应的各个存储单元组中的位置,根据该位置上的二级索引表所包含的数据时间、数据位置、。

12、以及所述时间段查询数据。权利要求书CN102375694ACN102375701A1/9页5数据处理方法和装置技术领域0001本发明涉及视频监控技术,特别涉及数据处理方法和装置。背景技术0002独立磁盘冗余阵列RAIDREDUNDANTARRAYOFINDEPENDENTDISKS,简称磁盘阵列,其原理是利用多个硬盘连成一个阵列,实现以快速、准确和安全的方式来读写磁盘数据,从而达到提高数据的读写速度和安全性。0003目前利用磁盘阵列处理视频数据的方法中,对视频数据的写入方法主要包括以下步骤0004步骤1,为视频编解码器EC的每个通道制定对应的存储计划。0005EC通道的存储计划包含EC通道的码。

13、流大小、EC通道要求其下刷的数据所要保存的时间记为数据保存时间等。0006步骤2,针对每一EC通道,根据该EC通道的存储计划为该EC通道选择对应的磁盘阵列。0007步骤2是根据存储计划中的数据保存时间为EC通道选择磁盘阵列的。0008步骤3,在步骤2选择的磁盘阵列上创建地址连续的LUN资源,该LUN资源关联到上述EC通道。0009LUN资源的大小是根据存储计划中的数据保存时间、EC通道码流大小计算的。0010若步骤2中为EC的4个通道比如通道1至通道4选择了相同的磁盘阵列1,则执行到步骤3时,可在该磁盘阵列1上创建分别关联到该4个通道的LUN资源。比如,在步骤2选择的磁盘阵列1上创建了4个LU。

14、N资源,分别为LUN1至LUN4,其分别关联到通道1至通道4,具体如图1所示。0011步骤4,当向步骤2选择的磁盘阵列写入数据时,由EC上的各个通道按照顺序下刷数据,以便顺序向该各个EC通道关联的LUN资源写入数据。0012由于顺序向磁盘阵列写入数据能保证数据写入处理效率最高,因此,本步骤4顺序向LUN资源写入数据,能够提高数据写入效率,同时也提高磁盘阵列的I/O处理能力。0013但是,在实际应用过程中,会出现多路EC通道同时下刷数据至磁盘阵列的情况,比如图1中的通道1、通道3和通道4同时下刷数据至磁盘阵列1,由于不同的通道关联不同的LUN资源,如此,就需要磁盘的磁头不停地寻道,即呈现出了随机。

15、写数据至磁盘阵列的现象,这降低了数据写入效率,同时也降低了磁盘阵列的I/O处理能力。发明内容0014本发明提供了数据处理方法和装置,实现在多路EC通道同时向磁盘阵列下刷数据时,以全顺序方式写入该数据至磁盘阵列,提高数据写入效率,同时也提高该磁盘阵列的I/O处理能力。0015本发明提供的技术方案包括说明书CN102375694ACN102375701A2/9页60016一种数据处理方法,包括0017A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组;将每一存储单元组中除预设二级索引空间外的空间划分为1个以上大小相同的存储单元;0018B,所述磁盘阵列的缓存以单位时间为间隔将同。

16、一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。0019一种数据处理装置,包括写入模块、添加模块和查询模块,其中,0020写入模块,用于以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元;0021添加模块,用于在写入模块完成写入后,分别在保留空间和二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供所述查询模块查询该路数据;0022所述存储单元是通过对存储单元组中除所述二级索引空间外的空间划分得到的,所述存储单元组是通过对磁盘阵列中除。

17、保留空间之外的空间划分得到的。0023由以上技术方案可以看出,本发明中,当多路EC通道同时向同一个磁盘阵列下刷数据时,以单位时间为间隔将同一个单位时间内接收的多路数据顺序写入至同一存储单元,即实现了顺序向磁盘阵列写入数据的目的,提高了数据写入效率,也提高了磁盘阵列的I/O处理能力,同时降低了视频业务中由于存储端响应缓慢而导致数据丢失的风险。附图说明0024图1为现有数据写入磁盘阵列的示意图;0025图2为本发明实施例提供的磁盘阵列被划分形成的系统结构图;0026图3为本发明实施例提供的处理流程图;0027图4为本发明实施例提供的步骤308的处理流程图;0028图5为本发明实施例提供的数据读取流。

18、程图;0029图6为本发明实施例提供的装置结构图。具体实施方式0030本发明提供的方法主要包括A,将磁盘阵列中除保留空间之外的空间划分为1个以上大小相同的存储单元组;将每一存储单元组中除二级索引空间外的空间划分为1个以上大小相同的存储单元;B,该磁盘阵列的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在所述保留空间和所述二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。通过该方法,实现了以全顺序方式向磁盘阵列中写入数据的目的,提高了数据写入效率,同时也提高了磁盘阵列的I/O处理能力,并且,通过设置EC通道的一级索。

19、引表和二级索引表,能够快速实现数据的回放和查询。0031为了使本发明的目的、技术方案和优点更加清楚,下面先对本发明实施例提供的磁盘阵列结构进行描述。0032假如根据EC通道比如通道1的存储计划选择了磁盘阵列1,其中,存储计划中包含通道1下刷的数据需要被保存时间记为数据保存时间T1和通道1的码流大小等。如果说明书CN102375694ACN102375701A3/9页7该磁盘阵列1是首次被选择,则对该磁盘阵列执行以下操作,以得到图2所示的结构0033首先,在磁盘阵列1中保留大小为9MB的空间,其一般为磁盘阵列1中头9MB的空间。该空间可包含大小为8MB的一级索引空间和大小为1MB的超级块空间。其。

20、中,一级索引空间用于存放EC通道的一级索引表具体在下文描述;而超级块空间用于记录EC通道的超级块信息,其与本发明实施例的实现关系不大,不再详述。0034其次,将磁盘阵列1中除保留空间外的空间划分成M个大小相同的存储单元组GROUP,并将每个存储单元组中除预设二级索引空间用于存放EC通道的二级索引表,具体在下文描述外的空间划分成N个大小相同的存储单元。通常,在划分存储单元组时,会根据实际应用确定出1个存储单元组包含多少个存储单元本实施例中存储单元为按单位时间存放数据的单元,因此,其实质上也就是确定1个存储单元组最多容纳多少个单位时间内接收的数据,之后依据该确定的个数和存储计划中的数据保存时间T1。

21、确定M。0035比如,单位时间为1秒,1个GROUP包含存储单元的个数N为1024,即表示1个GROUP最多容纳1024秒内接收的数据,如此,假如存储计划中数据保存时间T1为20天记为20243600秒,则划分的GROUP个数M为0036M20243600秒/1024秒1688个。0037如果磁盘阵列1中除保留空间外的空间为16TB,则各个存储单元组的大小为1610241024/16889939MB。0038另外,如果每个存储单元组中二级索引空间大小为16MB,一般为每个存储单元组中头16MB的空间,存储单元组的大小为9939B,则存储单元组中每个存储单元的大小为993916/1024969M。

22、B。0039如此,通过上面操作,磁盘阵列1即可形成图2所示的结构。0040基于图2所示的磁盘阵列结构,下面对本发明实施例提供的流程进行详细描述。0041参见图3,图3为本发明实施例提供的详细流程图。如图3所示,该流程可包括以下步骤0042步骤301,针对EC的每一通道,为该通道以通道1为例制定存储计划。0043步骤302,根据存储计划中的数据保存时间T1为通道1选择磁盘阵列,该选择的磁盘阵列用于存储通道1下刷的数据,记为磁盘阵列1。0044本步骤可按照现有方式为通道1选择磁盘阵列,如果选择出的磁盘阵列数量比较多,可将其中一个作为磁盘阵列1,执行下述步骤。0045步骤303,判断磁盘阵列1是否已。

23、被其他EC通道选择,如果否,执行步骤304,如果是,执行步骤305。0046由于磁盘阵列1是根据存储计划中的数据保存时间选择出的,而不同EC通道的存储计划中可以包含相同的数据保存时间,所以存在磁盘阵列1已被其他EC通道选择的可能。如此,执行到步骤303时,就需要判断磁盘阵列1是否已被其他EC通道选择,并根据不同的判断结果执行不同的操作,分别见步骤304至步骤305。0047步骤304,将磁盘阵列1中除保留空间外的空间划分成M个大小相同的存储单元组,并将每个存储单元组中除二级索引空间外的空间划分成N个大小相同的存储单元。该步骤的具体操作如上所述。之后执行步骤307。0048步骤305,判断磁盘阵。

24、列1是否还能容纳通道1下刷的数据量,如果否,执行步骤说明书CN102375694ACN102375701A4/9页8306,如果是,执行步骤307。0049假如执行步骤302之前,已有通道2和3选择了磁盘阵列1,而在步骤302中还为通道1选择了磁盘阵列1,如此,执行到本步骤305时,判断该磁盘阵列1除了容纳通道2和3下刷的数据量外,是否还能进一步容纳通道1下刷的数据量,其中,通道下刷的数据量是根据该通道的存储计划中的数据保存时间和该通道的码流大小计算出的,如果不能,执行步骤306,如果能,执行步骤307。0050步骤306,如果还能根据存储计划中的数据保存时间T1选择除磁盘阵列1之外的其他磁盘。

25、阵列来存放通道1下刷的数据,则针对该选择的磁盘阵列按照步骤303对磁盘阵列1的操作执行;否则,结束当前流程。0051本步骤306中的选择操作可按照现有方式执行。0052步骤307,允许通道1向磁盘阵列1下刷数据。之后执行步骤308。0053通过以上步骤305至步骤307能够确定出向磁盘阵列1下刷数据的通道。如果通过上述步骤305至步骤307确定出多路EC通道都被允许向磁盘阵列1下刷数据,则当该多路EC通道同时向磁盘阵列1下刷数据时,执行步骤308。0054步骤308,磁盘阵列1的缓存以单位时间为间隔将同一个单位时间内接收的数据顺序写入至同一个存储单元,并在完成写入后,分别在磁盘阵列1的保留空间。

26、具体为该保留空间中的一级索引空间和该存储单元所在存储单元组的二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表,以供查询该路数据。0055至于步骤308如何实现,下面通过图4所示的流程进行描述0056步骤401,在向磁盘阵列1写入当前单位时间内接收的数据时,判断当前是否首次向磁盘阵列1写入数据,如果是,执行步骤402;否则,执行步骤403;0057步骤402,将该当前单位时间内接收的数据写入至磁盘阵列1中第一个存储单元组的第一个存储单元,之后执行步骤406;0058步骤403,如果上一个存储单元为磁盘阵列1中最后一个存储单元组的最后一个存储单元,则执行步骤404;否则,执行步骤4。

27、05。0059所述上一个存储单元为上一个单位时间接收的数据所写入的存储单元。0060步骤404,更新第一个存储单元组中第一个存储单元的数据为当前单位时间内接收的数据,之后执行步骤406。0061也就是说,当数据写完磁盘阵列1上所有存储单元后,需要重新回到第一个存储单元组的第一个存储单元,覆盖之前保存的数据。0062步骤405,如果上一个存储单元的下一个存储单元当前还未被写入数据,则直接将当前单位时间内接收的数据写入至该下一个存储单元,之后执行步骤406;否则,更新该下一个存储单元中的数据为当前单位时间内接收的数据,之后执行步骤406。0063通过以上步骤401至步骤405可以看出,本实施例是以。

28、单位时间为间隔将同一个单位时间内接收的数据写入至同一个存储单元。当然,由于磁盘阵列1中的存储单元是依据单位时间划分的,如果存储单元不能完全容纳同一单位时间内接收的数据,则可先填满当前待写入的存储单元,将多出的数据写入下一个存储单元,而在写入下一个单位时间接收的数据时,将该下一个单位时间接收的数据接着写入这个存储单元空余的空间,依次类推。说明书CN102375694ACN102375701A5/9页90064通过以上步骤401至步骤405实现了以全顺序方式向磁盘阵列写入数据。0065步骤406,针对新写入至存储单元的每路数据,确定该路由数据对应的EC通道,判断该EC通道上次下刷的数据是否写入至该。

29、存储单元所在的存储单元组,是则执行步骤407,否则,执行步骤408。0066本步骤406中新写入至存储单元的每路数据具体可为步骤402或者步骤405写入的每路数据,也可为步骤404或者步骤405中发生更新的每路数据。0067步骤407,在一级索引空间中添加该EC通道的一级索引表,之后执行步骤408。0068也就是说,如果EC通道本次下刷的数据和上次下刷的数据存放在不同的存储单元组,则会在本次下刷的数据写入至存储单元后,在一级索引空间中记录该EC通道的一级索引表。0069优选地,本实施例为加快添加操作速度,可先在缓存中执行该添加操作,之后将添加的一级索引表复制到一级索引空间。0070步骤408,。

30、在该存储单元所在存储单元组的二级索引空间中添加该EC通道的二级索引表。0071本实施例中,一级索引表和二级索引表主要是便于后续数据查询操作,下面对一级索引表和二级索引表进行描述。0072本实施例中,一级索引表大小可为128KB,其用于记录EC通道的一级索引信息。其中,EC通道的一级索引信息包含该EC通道的名称、该EC通道的二级索引表在存储单元组中的位置其可通过起始偏移量标识、该EC通道下刷的数据写入至存储单元组的时间以及该存储单元组的编号。以步骤406确定的EC通道名称为EC_206204为例,则该EC通道在一级索引空间中的一级索引表如表1所示0073表10074视频通道名称EC2004_20。

31、6204二级索引表起始偏移量24存储单元组编号写入时间12010_6_4_8451522010_6_4_8501532010_6_4_9152342010_6_4_930230075在表1中,EC通道的二级索引表在各个存储单元组的位置是相同的当然,也可不同,原理类似,即二级索引表的起始偏移量相同。说明书CN102375694ACN102375701A6/9页100076至于二级索引表,其大小可为256KB,用于记录EC通道的二级索引信息。其中,EC通道的二级索引信息包含该EC通道下刷的数据的大小通过BLOCK数量表示、在存储单元中的位置通过存储单元的编号和起始偏移量表示和相应的采集时间具体为被。

32、EC通道采集的时间,记为数据时间,具体可参见表2所示。0077表200780079在表2中,出现了存储单元编号相同,但存储单元起始偏移量不同的情况,比如,表2中编号为2的存储单元,之所以会出现这种情况,主要是由于视频业务中常常存在不稳定因素比如网络不稳定等导致的多个数据时间不同的数据在一个单位时间内被下刷至磁盘阵列1的缓存,比如表2中数据时间分别为2010_6_490008和2010_6_490009的数据在同一个单位时间到达缓存,则缓存就会将这两个数据顺序写入至同一个存储单元即表2中的存储单元2,即出现了上述情况。0080至此,完成一级索引表和二级索引表的描述。通过上面步骤407至步骤408。

33、实现EC通道的一级索引表和二级索引表的添加操作。需要说明的是,如果在上述数据写入过程中,需要删除某一路EC通道的存储计划,则从磁盘阵列1的一级索引空间查找并删除该EC通道的一级索引表,并根据该被删除的一级索引表包含的该EC通道二级索引表的位置查找并删除该EC通道的二级索引表。0081需要说明的是,在上述写入过程中,如果某路EC通道暂停向磁盘阵列1下刷数据,这里,EC通道暂停向磁盘阵列1下刷数据通常是表示当前正在对该EC通道已下刷的数据进行核查,为了方便该核查工作,需要保证该EC通道下刷的数据不被更新,具体可通过以下操作实现首先使暂停的EC通道下发暂停通知至磁盘阵列1的缓存;当缓存接收到暂停通知。

34、后,在一级索引空间中查找该暂停的EC通道的一级索引表,根据该一级索引表中EC通道二级索引表位置查找到该EC通道的二级索引表,并在查找到的二级索引表中获取该EC通道下刷的数据在存储单元中的位置,之后锁定该位置,以使该位置的数据不被更新。比如,通道1需要暂停向磁盘阵列1下刷数据,则该通道1就会下发暂停通知告知给磁盘阵列1的缓存,当该缓存接收到通知后,在一级索引空间中查找到通道1的一级索引表,根据该查找到的一级索引表包含的该通道1二级索引表的位置查找到通道1的二级索引表,在该查找到的二级索引表中获取该通道1下刷的数据在各个存储单元中的位置,之后锁定该位说明书CN102375694ACN1023757。

35、01A7/9页11置,以使该位置的数据不被更新。0082如此,上述步骤404或步骤405执行的更新操作具体可包括如果该存储单元包含锁定位置,则更新该存储单元中除锁定位置之外的数据为当前单位时间内接收的数据;否则,更新该存储单元中的数据为当前单位时间内接收的数据。0083另外,本实施实例为节省一级索引空间和二级索引空间资源,可在步骤404或者步骤405执行更新操作之前,执行以下步骤先判断当前待写入数据的存储单元是否锁定位置,如果是,确定该存储单元中除锁定位置之外的数据对应的EC通道;如果否,确定该存储单元中存放的数据对应的EC通道;之后,在一级索引空间中删除该确定的EC通道的一级索引表,以及在该。

36、存储单元所在存储单元组的二级索引空间中删除该确定的EC通道的二级索引表。0084步骤409,当针对每一单位时间内接收的数据都按照上述步骤401至步骤408执行后,完成数据写入流程。0085至此,实现了本发明实施例提供的数据写入流程。0086之后,如果某一通道比如通道1向磁盘阵列1的缓存请求读取数据,该请求携带了读取数据的时间段,则执行图5所示的流程。0087步骤501,在一级索引空间中查找到通道1的一级索引表。0088由于一级索引表包含通道的名称,因此,本步骤501可以通道1的名称为关键字在一级索引空间搜索包含该关键字的一级索引表。0089步骤502,从该一级索引表中确定写入时间早于、且最接近。

37、该时间段起始时间的存储单元组的编号,以及确定晚于、且最接近该时间段结束时间的存储单元组的编号。0090比如,如果请求中携带的时间段为2010_6_4_85510至2010_6_4_92810,通道1的名称为EC_206204,则根据表1可以得到写入时间早于、且最接近2010_6_4_85510的存储单元组的编号为2,而晚于、且最接近2010_6_4_92810的存储单元组的编号为4。0091步骤503,在一级索引表中查找到该EC通道的二级索引表分别在上述两个编号、以及上述两个编号之间的各个编号对应的存储单元组中的位置,根据该位置上的二级索引表所包含的数据时间、数据位置、以及所述时间段查询数据。。

38、0092根据表1可以看出,数据是按照时间先后顺序依次写入至磁盘阵列的各个存储单元组,因此,在步骤502确定的两个编号对应的存储单元组满足上述时间段时,该两个编号之间的各个编号所对应的存储单元组肯定也满足上述时间段。比如,如果步骤502确定出写入时间早于、且最接近2010_6_4_85510的存储单元组的编号为2,晚于、且最接近2010_6_4_92810的存储单元组的编号为4,则根据表1可以知道,该编号2和编号4之间的编号3所对应的存储单元组也满足该时间段,因此,本步骤需要确定该EC通道的二级索引表分别在编号2、3和4三个存储单元组中的位置,之后根据该位置上的二级索引表所包含的数据时间、数据位。

39、置、以及所述时间段查询数据。0093至此,实现了数据读取流程。0094以上对本发明实施例提供的方法进行了描述,下面对本发明实施例提供的装置进行描述。0095参见图6,图6为本发明实施例提供的装置结构图。如图6所示,该装置包括写入模块601、添加模块602和查询模块603,说明书CN102375694ACN102375701A8/9页120096其中,写入模块601,用于在多路EC通道同时向磁盘阵列下刷数据时,将同一个单位时间内接收的各路数据顺序写入至存储单元;0097添加模块602,用于在写入模块601完成写入后,分别在保留空间和二级索引空间中添加每路数据对应的EC通道的一级索引表和二级索引表。

40、,以供查询模块603查询该路数据;0098其中,所述存储单元是通过对存储单元组中除所述二级索引空间外的空间划分得到的,所述存储单元组是通过对磁盘阵列中除保留空间之外的空间划分得到的。0099如图6所示,添加模块602具体实现时可包括0100第一判断子模块6021,用于针对写入模块601写入的每路数据所对应的EC通道,判断该EC通道上次下刷的数据是否写入至所述存储单元所在的存储单元组,如果是,发送第二添加通知给第二添加子模块6023;否则,发送第一添加通知给第一添加子模块6022;0101第一添加子模块6022,用于接收到所述第一添加通知时,在保留空间中添加该EC通道的一级索引表,之后发送第三添。

41、加通知给第二添加子模块6023;该一级索引表包含所述存储单元组的编号、数据写入至该存储单元组的时间、该EC通道的名称及其二级索引表的位置;0102第二添加子模块6023,用于接收到所述第二添加通知或者第三添加通知时,在该存储单元组的二级索引空间中添加该EC通道的二级索引表;该二级索引表包含该路数据在存储单元的位置和被采集的数据时间。0103优选地,如图6所示,写入模块601可包括0104第二判断子模块6011,用于在向磁盘阵列写入当前单位时间内接收的数据时,判断当前是否首次向磁盘阵列写入数据,如果是,发送第一写入通知给写入子模块6012;否则,判断上一个存储单元是否为磁盘阵列中最后一个存储单元。

42、组的最后一个存储单元,所述上一个存储单元为上一个单位时间写入的存储单元,如果是,发送第二写入通知给写入子模块6012;否则,发送第三写入通知给写入子模块6012;0105写入子模块6012,接收到第一写入通知后,将当前单位时间内接收的数据写入至所述磁盘阵列中第一个存储单元组的第一个存储单元;接收到第二写入通知后,更新第一个存储单元组中第一个存储单元的数据为当前单位时间内接收的数据;接收到第三写入通知后,如果上一个存储单元的下一个存储单元还未写入数据,则将当前单位时间内接收的数据写入至该下一个存储单元,否则,更新该下一个存储单元中的数据为当前单位时间内接收的数据。0106优选地,如图6所示,查询。

43、模块603具体实现时可包括0107查找子模块6031,用于接收到EC通道请求读取磁盘阵列中的数据时,所述请求携带了读取数据的时间段,在保留空间中查找到该EC通道的一级索引表;0108确定子模块6032,用于从查找子模块6031查找到的一级索引表中确定写入时间早于、且最接近该时间段起始时间的存储单元组的编号1,以及确定晚于、且最接近该时间段结束时间的存储单元组的编号2;0109查询子模块6033,用于在一级索引表中查找到该EC通道的二级索引表分别在编号1、编号2以及编号1和编号2之间各个编号对应的各个存储单元组中的位置,根据该位置上的二级索引表所包含的数据时间、数据位置、以及所述时间段查询数据。。

44、说明书CN102375694ACN102375701A9/9页130110由以上技术方案可以看出,本发明中,当多路EC通道同时向同一个磁盘阵列下刷数据时,以单位时间为间隔将同一个单位时间内接收的多路数据顺序写入至同一存储单元,即实现了顺序向磁盘阵列写入数据的目的,提高了数据写入效率,也提高了磁盘阵列的I/O处理能力,同时降低了视频业务中由于存储端响应缓慢而导致数据丢失的风险。0111以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。说明书CN102375694ACN102375701A1/4页14图1图2说明书附图CN102375694ACN102375701A2/4页15图3说明书附图CN102375694ACN102375701A3/4页16图4说明书附图CN102375694ACN102375701A4/4页17图5图6说明书附图CN102375694A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1