首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用内存数据库技术提升高端路由器的性能 2

用内存数据库技术提升高端路由器的性能 2

2、解决复杂的数据管理问题


  PWE3(Pseudowire Emulation Edge to Edge)是MPLS VPN子系统的组成部分,属于L2VPN,是传统网络比如ATM、TDM网络向IP网络迁移的过渡性技术。该业务的特点是业务模型相对简单,但容量需求巨大,可能一个用户需要一条伪线即PW,一个系统需要支撑上万条PW伪线。图1是标准的PWE3参考模型图(摘自RFC4447)。


  AC实体是PW的接入部分,需要使用二级HASH组织,一级为主接口索引HASH,二级为子节口索引HASH,以满足如下两个需求,一是主接口状态变化时,会影响到它所有子节口上的PW状态变化,比如主接口状态DOWN,则该接口下所有的子接口上的PW的AC状态都应该置DOWN;二是子接口状态变化时,需要更新该子接口上的PW的AC状态。


  Local PW实体是本地PW的数据部分,一级通过Peer IP进行HASH,每个Peer IP节点下挂一颗Local PW AVL树,树的Key就是PW的Key,即PW ID + PW TYPE,以满足如下几个需求:


  ①以Peer IP为单位的会话状态变化时,能够快速定位到依赖于该会话的所有PW,处理PW状态的变化,比如删除转发信息等;



  ②收到远端信息时能够通过Peer IP、PW ID + PW TYPE快速定位到Local PW,迅速创建FIB并下发转发信息到转发引擎,以便尽可能快的恢复业务。
  Remote PW实体是通过信令(Mapping)学习到的远端PW信息,该数据也通过上述的Peer IP一起组织,在PeerIP节点下再下挂一颗Remote PW AVL树。

  PW状态UP后创建的转发信息表PW FIB,需要下发到转发引擎指导快速转发,通过一个单向链表组织即可。
  另外:
  ①PW创建、删除流程;
  ②会话DOWN功能,该流程需要删除该会话下所有的远端PW信息以及相关的PW FIB信息;
  ③PWE3子系统使能、去使能功能,使能时需要初始化各种表项的数据结构,去使能时,需要依次删除所有的数据结构。
  根据上面的描述可以看出,PWE3子系统其实就是维护上述几种数据结构,包括表项的添加、删除、更新、查询等,以及尽可能的提高表项的操作效率、节省内存。
  如果使用内存数据库完成上述功能就会使系统简单的多,把数据的维护交给内存数据库完成,比如数据的创建、删除以及更新等,而PWE3子系统本身主要完成业务的处理,比如信令的处理等。重新整理数据库表如下:
  AC Table如图6所示,增加一个主键AC ID列,增加一个Main IfNet Index列,在IfNet Index和Main IfNet Index上分别创建索引,分别用于接口状态变化能够迅速定位到AC、主接口状态变化时能够迅速定位到所有子节口的AC,再增加一个外键列Local PW ID,用于和Local PW Table关联。主键为Local PW ID;在PW ID+ PW TYPE、Peer IP上创建索引,分别用于通过PW ID + PW TYPE快速定位PW、在会话状态变化时能够快速定位到所有基于该会话的PW;增加AC ID、FIB ID列,分别建立和AC Table、FIB Table的关联。主键为Remote PW ID;在PW ID+ PW TYPE、Peer IP上创建索引,分别用于通过PW ID + PW TYPE快速定位PW、在会话状态变化时能够快速定位到所有基于该会话的PW;增加Local PW ID列,建立和Local PW Table的关联。
  PW FIB Table如图9所示,在下发时,实时通过外键查询相关内容,组装后下发给转发引擎。剩下的工作就是处理业务流程,把数据维护交给数据库管理了。

返回列表