用于串流存储装置中的高效内容高速缓冲存储的系统和方法_3

文档序号:9200166阅读:来源:国知局
为连续内容对象与入的每一块而完成。
[0050] 图3呈现说明根据本发明的实施例的示范性磁盘块的格式的图。在图3中,磁盘 块300包含磁盘块标头字段302和数据字段304。磁盘块标头字段302进一步包含索引字 段306、SH字段308JH字段310和编号字段312。索引字段306包含SH-Hl组合的向下散 列索引,SH字段308包含相似性散列,FH字段310包含转发散列,且编号字段312包含块序 列(如果内容对象占据多个连续块)。举例来说,编号字段312中的数字"2"指示当前块 是从内容对象的开始(块"0")计数的第三块。在一些实施例中,块大小是4KB(千字节)。 举例来说,对于多达64KB的CCN内容对象,将需要16个4KB块,从而需要高速缓冲存储器 表条目中的4位块计数字段。也可能具有其它块大小。
[0051] 图4呈现说明根据本发明的实施例的含有内容对象片段的示范性磁盘块的图。在 图4中,磁盘块400包含磁盘块标头字段402和数据字段404。磁盘块标头字段402类似于 磁盘块标头字段302,且包含索引字段、SH字段、FH字段和编号字段。数据字段404包含以 接收次序写入的许多内容对象片段。应注意每一片段包含例如CCN标头406的CCN标头, 和例如CCN片段数据字段408的CCN片段数据字段。片段不需要依序写入。应注意此处我 们假定没有片段大于磁盘块大小减磁盘块标头大小。如果CCN片段横跨多个磁盘块,那么 可能需要对高速缓冲存储算法的稍微修改。CCN中的内容对象的片段标头的详细描述可参 见由发明人马可· E ·莫斯科在2013年10月30日申请的标题为"用于内容中心网络中的 最小路径MTU发现的系统和方法"的第14/067, 857号(代理人案号PARC-20130874US01) 美国专利申请案。
[0052] 为了确保高速读取和写入,在一些实施例中,系统在例如随机存取存储器(RAM) 的快速存储器中维持索引表(或高速缓冲存储器表)。或者,系统可使用经页交换到所 述RAM的基于磁盘的索引。存储器内索引需要足够大以覆盖串流存储装置中的所有4KB 块,意味着存储器内高速缓冲存储器表需要包含足够数目的索引条目。对于具有多达 ITB(百万兆字节)容量的串流存储装置,将需要256, 000, 000的索引条目。如果每一条目 是40位长,那么高速缓冲存储器表将需要10. 24GB的RAM。对于具有16TB串流存储装置的 系统,将需要160GB的RAM。在一些实施例中,系统可包含100个磁盘,各自具有250GB容 量,因此提供25TB的总存储容量。如先前所描述,并行使用100个磁盘可提供超过12. 5GB/ 秒的串流速度。
[0053] 图5呈现呈现根据本发明的实施例的CCN启用节点的示范性架构的图。在图5中, CCN启用节点500包含包处理模块502、散列模块504、磁盘管理模块506、高速缓冲存储器 表508和磁盘存取模块510。包处理模块502负责处理所接收的包,其为兴趣或内容对象。 在一些实施例中,CCN启用节点500实施散列转发,且包处理模块502从所接收包的标头提 取相似性散列和转发散列。散列模块504负责将SH-Hl组合串向下散列到较短长度索引串。 在一些实施例中,散列模块504可使用某些抗冲突散列函数,例如CRC-64-ECMA-182的较低 位和FVN-Ia算法。磁盘管理模块506负责维持将索引映射到磁盘位置的高速缓冲存储器 表508。此外,磁盘管理模块506控制存取适当磁盘位置用于读取和写入操作的磁盘存取模 块510。在一些实施例中,当写入到串流存储装置时,磁盘存取模块510将磁盘块标头添加 到每一内容数据块。应注意,还可能需要例如包缓冲器或操作缓冲器等其它数据结构来实 现内容数据的高速缓冲存储且图5中不包含所述数据结构。
[0054] 由于磁盘存取(读取或写入)等待时间,需要操作缓冲器来在执行兴趣和内容对 象的磁盘操作之前保持所述兴趣和内容对象。在一些实施例中,为了确保高速,还在快速存 储器中维持操作缓冲器。此存储器内操作缓冲器可实施为循环缓冲器或自由列表。更具体 来说,操作缓冲器保持指向包缓冲器的指针以允许依序执行等待同一磁盘块的多个操作。
[0055] 图6呈现说明根据本发明的实施例的用于串流存储装置中的内容高速缓冲存储 的示范性数据结构的图。在图6中,将从包提取的256位SH-Hl组合串602向下散列到较短 长度索引604。在图6中所示的实例中,索引604是34位长,意味着多达17, 179, 869, 184 个表条目是可能的。在一些实施例中,所述34位索引是从CRC-64-ECMA-180摘要提取。较 短长度索引604映射到索引表606中的条目,例如条目608。在图6中所示的实例中,高速 缓冲存储器表606中的每一条目至少56位长,具有10位磁盘编号字段610、26位块编号字 段612、4位块计数字段614、15位操作索引字段616和1位证实字段618。磁盘编号字段 610、块编号字段612和块计数字段614类似于字段210、212和214。操作索引(opindex) 字段616存储可为连续存储器的操作缓冲器620的15位索引。证实字段618指示高速缓 冲存储器表条目是否有效。在一些实施例中,系统实际上在64位字中存储高速缓冲存储 器表以对准表条目与CPU高速缓冲存储器行。使用64位字,高速缓冲存储器表606将需要 128GB 的 RAM。
[0056] 操作缓冲器620中的每一条目对应于待决的读取或写入操作。在一些实施例中, 例如条目622的操作缓冲器条目包含包指针字段624 (可为15位长)、索引字段626 (可映 射到散列表606中的条目)、下一操作索引字段628和编号字段630。包指针字段624存 储指向包缓冲器640中的包的指针,其允许32, 768个过程中的包。下一操作索引字段628 存储指向操作缓冲器620中等待同一磁盘操作的下一条目的单独链接列表指针(如果多个 操作正等待存取同一磁盘块)。编号字段630类似于编号字段312,指示由同一内容对象占 据的块当中的块的序号。在图6中所示的实例中,两个操作缓冲器条目(条目622和条目 632)在等待同一磁盘块;两者具有相同索引但不同编号字段,意味着它们属于同一内容对 象的不同块。存储于下一操作索引字段628中的指针指向条目632,其等待SH-Hl索引条目 的第二块。
[0057] 图3中已展示索引表606中的条目(也被称作索引条目)与磁盘位置(磁盘编号 和块编号)之间的映射。图6中所示的磁盘块具有与图4中所示的磁盘块格式相似的格式。 在图6中所示的实例中,每一磁盘具有250GB的容量。应注意,即使物理硬盘驱动器可大于 250GB,它们也可经分割为250GB虚拟磁盘,其中每一者被指派其自身的磁盘编号。应注意 应交错磁盘编号以使得连续编号寻址不同的物理磁盘。对于标准4KB块大小,每一磁盘可 容纳多达64, 000, 000个索引条目,因此需要至少26位长的索引。在图6中所示的实例中, 10位磁盘编号字段意味着系统中可存在多达1023个磁盘(磁盘编号字段中的0x3FF是无 效条目)。26位块计数字段允许每磁盘64, 000, 000个块,且4位块编号字段允许每内容对 象多达16个4KB块。对于以200, 000个对象/秒(假定64KB对象)操作的实例系统,这 是大约60, 000秒(16小时)的存储装置。34位索引足以提供多达17, 179, 869, 184个表 条目,占据128GB的RAM。包含68位长的条目的操作缓冲器也位于RAM中,需要额外的RAM 空间。
[0058] 操作缓冲器620中的每一条目对应于待决的读取或写入操作。在一些实施例中, 例如条目622的操作缓冲器条目包含包指针(PKT-PTR)字段624 (可为15位长)、索引字段 626 (映射到索引表606中的条目)、下一操作索引字段628和编号字段630。包指针字段 624存储指向包缓冲器640中的包的指针,其允许多达32, 768个过程中的包。下一操作索 引字段628存储指向操作缓冲器620中等待同一磁盘操作的下一条目的单独链接列表指针 (如果多个操作正在同一磁盘块上等待)。编号字段630类似于编号字段312,指示由内容 对象占据的所有块当中的块的序号。在图6中所示的实例中,两个操作缓冲器条目(条目 622和条目632)正等待同一磁盘块,且形成操作链。两个条目具有同一索引(=47)但不 同编号字段(分别为〇和1),意味着它们属于同一内容对象的不同块。存储于下一操作索 引字段628中的指针指向条目632,其等待SH-FH索引条目的第二块。
[0059] 图3中已展示索引表606中的条目与磁盘位置(由磁盘编号和块编号界定)之间 的映射。图6中所示的磁盘块具有与图4中所示的磁盘块格式相似的格式。在图6中所示 的实例中,每一磁盘具有250GB的容量
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1