一种通信网络资源数据高速缓存与状态级联更新的方法
技术领域:
本发明涉及一种通信综合网管领域中通信网络资源数据高速缓存及状态级联更新的方法,面向通信综合网管软件中的数据处理,属于信息技术领域。
背景技术:
通信网络一般由通信设备以及通信设备管理软件组成,通常不同的设备厂家提供配套的通信设备管理软件。一般大型的通信网络,如***、中国电信等运营商的公共网络,或者国有大型企业的企业通信网络,都会采用多个厂家的设备组成,多套网络设备和设备网管软件并存。在这种情况下,对通信网络、设备的监管工作越来越复杂,***运维人员通常需要登陆多个不同的设备网管才能完成工作。为了减轻大型网络的管理复杂度,一般需要使用通信综合网管***。通信综合网管***,顾名思义具有在一套软件***中对管理不同厂家通信设备的能力,这种能力是通过从不同厂家的设备网管***采集数据并集中存储、分析、管理而实现的。
通信网管***的主要管理对象是资源,资源是一切可以直接或间接用于通信的设备、杆路/管路设施等实体以及服务于通信的软体,可以是具体的对象,如机架、光缆,也可以是抽象的对象,如通道、电路。资源在运行时关联不同的状态,如设备告警数量、电路是否连通等。资源之间存在包含、隶属、承载等关系。当资源的状态数据发生变更后,需要级联更新其父对象的相应状态, 如告警计数值需全部自加。
由于管理范围不断扩大,覆盖骨干网、交换网、数据网等不同的网络类型和制式,综合网管***管理的资源数量巨大,关系复杂,资源状态的更新成本高。
发明内容:
有鉴于此,本发明的目的在于实现一种通信网络资源数据高速缓存与状态级联更新的方法,有效解决具有复杂关系的通信资源数据内存缓存以及快速状态级联更新时的性能问题,提高在综合网管中资源状态监视的实时性,使得从数据采集到最终状态展现的时间更短。
为实现上述目的,本发明提供了如下方案:
一种通信网络资源数据高速缓存与状态级联更新的方法,其特征在于,其方法步骤包括:(1)针对资源数据库建立内存二维缓存数据结构,采用内存数据库实现;所述内存二维缓存数据结构提供基于SQL的查询;(2)按照资源数据的承载关系,建立资源数据树形缓存结构即资源树,主要用于快速级联数据更新;(3)内存二维缓存数据结构与资源树双向联动;(4)所述资源树变更后批量更新二维缓存。
所述内存二维缓存可配置缓存加载策略,定义哪些数据项需要缓存。
所述内存二维缓存只向资源树节点同步名称等基本属性,不同步状态字段的变更。所述资源树的树节点与二维缓存结构的记录有一对一关系。
上述步骤(2)中,在创建资源树的同时建立资源索引,即在所述资资源树的节点标识与节点之间建立映射关系,记录资源标识与对象的映射关系,以便于快速索引。
所述资源树中的每个节点中保持与父节点的关联。所述步骤(4)中,所述资源树中的节点状态数据变更后,自动对父节点进行相应的变更操作。
所述步骤(4)中,所述资源树中的状态数据变更过程中,自动构造相应的变更SQL,缓存SQL并不立即执行。
所述步骤(4)中,所述资源树中的根节点变更完成后,批量执行此次变更所有的SQL。
本发明通过面向查询的二维数据缓存与面向操作的树形数据缓存相结合,并对数据进行双向联动,提供了基于SQL的数据查询能力,提供对具有父子、包含等关系的数据进行快速级联更新的能力,有效解决具有复杂关系的通信资源数据内存缓存以及快速状态级联更新时的性能问题,提高综合网管中资源状态监视的实时性,使得从数据采集到最终状态展现的时间更短。
附图说明:
图1是发明实施例提供的方法的流程图。
具体实施方式:
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
参见图1,本实施例的一种通信网络资源数据高速缓存与状态级联更新的方法,其方法步骤如下:
1、加载数据构造内存数据资源表即内存二维缓存数据结构(下文称内存表)。从物理数据库加载资源基本数据至内存表,每类资源一张表,内存表同时添加状态扩展字段。
首先在内存中建立资源数据的二维缓存结构,二维缓存结构依托内存数据 库实现,支持SQL(结构化查询语言,Structured Query Language)标准查询和操作。在通信实时监视场景中,资源数据只需要缓存资源名称、资源标识、上级资源对象标识等基本属性,其他管理性的台账属性不需要缓存,状态数据被认为是扩展的瞬态数据,运行时存在于内存,物理数据表中并不存在对应字段。因此在资源数据缓存配置可以指定缓存哪些数据表以及表中的哪些字段,哪些字段是内存字段。缓存数据来自于物理关系数据库,内存数据库主要用于统计查询,资源树用于快速状态更新和子树查询。
2.1、将内存表二维数据转换成资源树结构即资源树,即将每条资源记录转换成内存对象,树上每个资源节点的parResource属性为其父对象的引用。
本实施例是按照资源的承载关系建立资源数据树形缓存结构。资源树的根是最大的资源容器,如区域,在区域资源中承载站点,站点中承载机房,机房中承载机柜,机柜中承载机槽,机槽中承载板卡,板卡上承载端口,端口之间存在通道等。基于资源关系可以形成从区域至通道的一棵资源树。树上的每个节点代表一个资源对象实例,资源类具有如下的属性和操作:
即在资源对象中除了标识、名称和状态属性外,还保存了对父资源对象的引用。其中标识、名称和父对象是资源的基本属性,状态属性是扩展属性。
2.2、建立资源对象索引。资源对象索引是一种内存数据结构,采用Key=Value的方式建立资源标识与资源对象之间的映射关系,以便于从资源标识快速定位资源对象。在创建资源树的同时建立资源索引,即在所述资资源树的节点标识与节点之间建立映射关系,记录资源标识与对象的映射关系,以便于快速索引。
3、网络事件采集触发更新。
内存数据库与资源树联动。为内存数据表添加触发器(Trigger),在内存表中的数据发生变更后实时更新资源树上的节点。触发器仅在资源的基本属性发生变化后才被触发。
4、查询索引,定位资源节点。首先从资源索引中依据事件中的资源标识查找对应的资源对象。
5、更新节点状态。调用资源节点的状态变更方法,如increaseAlarm,当前节点状态变更,同时更新父节点状态。
6、级联更新更新父节点状态。网络事件采集触发更新后,一个资源节点的状态变更导致级联更新所有祖先资源即父节点的状态,此过程中的状态变化被缓存。
7、批量更新内存数据表。状态更新完毕后,将本次所有节点的变更转换成相应的SQL,执行内存数据变更。当根资源状态变化完毕后,再批量更新内存数据表。
本发明是在资源树上的资源节点的状态属性发生变化时,同步更新内存表中的相应资源记录。一个资源节点的状态变更导致级联更新所有祖先资源的状态,此过程中的状态变化被缓存,当根资源状态变化完毕后,再批量更新内存数据表。
本发明通过面向查询的二维数据缓存与面向操作的树形数据缓存相结合,并对数据进行双向联动,提供了基于SQL的数据查询能力,提供对具有父子、包含等关系的数据进行快速级联更新的能力,有效解决具有复杂关系的通信资源数据内存缓存以及快速状态级联更新时的性能问题,提高综合网管中资源状态监视的实时性,使得从数据采集到最终状态展现的时间更短。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神 和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。