一江春水向东流

做一个有思想的人,期待与每一位热爱思考的人交流,您的关注是对我最大的支持。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  44 随笔 :: 139 文章 :: 81 评论 :: 0 Trackbacks

        BSS系统是每个电信运行商的核心业务支撑系统。近年来,随着支持用户量和话单量的成倍增长和实时业务的不断扩展,数据处理量大量增加,业务处理模式日趋复杂,必然导致主机CPU和I/O占用不断成线性增加。在此情况下,即使增加硬件支持,现有架构下系统的处理速度也很难得到质的提高。
引言
中国加入WTO之后,电信市场将逐步向外资开放,2006年开始外资将全面进入中国电信业,国际先进的服务模式和服务水平势必会对国内电信运营商提出更高的挑战。同时国内电信业的竞争格局也发生了深刻的变化:第三、四张移动牌照即将发放,竞争形势更为残酷;用户增量市场逐渐萎缩,作为我们运营商更需要的是如何提高自身服务质量,在存量市场中保持原有客户以及从竞争对手中获得客户。这些都意味着市场的竞争已逐步由技术驱动转向市场驱动和客户需求驱动,电信运营商必须从传统的经营模式向“以客户为中心,以市场为导向”的经营模式转变,也将从单纯的网络竞争、价格竞争转向网络、价格与服务、渠道、品牌相结合的全方位的竞争模式。
电信业正进入新一轮的高速发展时期,市场需求成为驱动力??市场部门不断推出的各种各样促销计划和市场推广活动,以及用于刺激用户使用运营商的服务以扩大用户群的全新变化,使得计费账务系统必须实现非常复杂的资费、折扣的管理能力和资费批价的能力。随着电信业务的迅猛发展,电信运营商的计费账务系统的压力也越来越大,如何保证计费账务系统的实时性成为各运营商关心的重点。
BSS系统是每个电信运行商的核心业务支撑系统。近年来,随着支持用户量和话单量的成倍增长和实时业务的不断扩展,数据处理量大量增加,业务处理模式日趋复杂,必然导致主机CPU和I/O占用不断成线性增加。在此情况下,即使增加硬件支持,现有架构下系统的处理速度也很难得到质的提高。由此对业务产生了极其不利的影响:账务功能不灵活,系统对业务需求的支撑灵活度不够;难以在短时间内响应市场需求,效率与灵活度难以兼得;计费实时性得不到确切的保障,无法给用户提供实时准确的查询服务;账务批处理情况下可能造成与营业应用的性能相互影响。为此,现有的BSS系统进行框架结构上的全面改造已经是大势所趋。

  内存数据库介绍
1.什么是内存数据库
众所周知,相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相对于从磁盘上访问数据能够极大地提高应用的性能。一方面由于从磁盘上读写数据时需要进行磁头的机械移动,直接从内存中读写数据则是电信号的移动,两者速度完全不在一个数量级上;另外一个容易被忽略的时间就是系统调用时间,因为每次对磁盘进行访问都需要进行一次操作系统的系统调用,而系统调用相对于普通的库函数调用要花费更多的时间。之所以要进行系统调用是因为处于用户态的应用程序不能直接对外部设备进行操作,而需要进入内核态,由操作系统调用相应设备的驱动程序完成对设备的操作。系统调用一般是通过中断来完成得,CPU只有在完成当前时钟周期的操作后在下一个时钟周期处理中断请求,并且在进行中断处理时需要进行上下文信息的保存与切换。所以一个应用如果频繁地进行系统调用也会极大地降低系统地性能。正是由于这两方面的原因,使得从磁盘上读写数据比从内存中读写数据的时间开销要大得多。
传统的数据库管理系统的所有数据都是放在磁盘上进行管理,需要频繁地访问磁盘来进行数据的操作。如上所述,由于磁盘数据访问本身的性能瓶颈,数据库管理系统的性能提升受到了很大的限制。然而,近年来,随着计算机技术的飞速发展,要解决这一问题已经有了现实可能:内存容量的不断提高,而价格不断下跌;计算机进入了64位时代,操作系统可以支持更大的地址空间。
正是基于技术的发展,以及市场上对更加快速和实时的数据库管理系统的需求,出现了内存数据库系统。内存数据库系统抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度一般比传统数据库的数据处理速度要快很多,一般都在10倍以上。

2.内存数据库和磁盘数据库的性能测试对比
以下比较基于内存数据库和磁盘数据库中完全相同的数据库表结构和应用,测试对比的数据库为Oracle 9i和ALTIBASE 3.5.7,在相同的测试环境下进行。
表1 
INSERT:对oracle和ALTIBASE进行相同表的插入操作,查看插入的效率。

INSERT:对oracle和ALTIBASE进行相同表的插入操作,查看插入的效率。

3.内存数据库和利用程序吊用内存的对比
由于内存的高速特点,早在2000年以前就有通过进程吊用内存的方式来进行程序处理,内存数据库提供的是一个模块化结构,保持一个核心引擎相对不变,外围可变,提供标准扩展接口和灵活的二次开发能力和良好的流程优化能力:

在BSS系统中采用内存数据库的理由
拿江苏联通过去的BSS系统为例,账务处理模块的性能瓶颈是在计费处理和销账处理。
由于数据量大、用户资料量大、计费处理模型相对复杂、以Flist支持字段变化和格式可配置等原因,使得现在的计费处理速度相对较慢。而由于清单数据量非常大,将其全部放入内存数据库中是不太可能的。为了利用内存数据库的高速度,则只能采取折中的方法,全部清单数据放在磁盘数据库中,根据实际情况只将一段时间内的清单数据保存在内存数据库中,费用累计和优惠可以针对这一段时间内的清单数据进行一个事务性处理。其他数据,例如累计费用数据,用户资料,费率和优惠信息等相对与清单数据来说数据量较小,可以直接放在内存数据库中。将数据加载到内存数据库中的基本原则是,数据经常用到且数据量不会很大,数据查询操作比数据写和更新操作要频繁。除计费处理外,当其他业务应用需要用到这些数据时也都直接从内存数据库中取。
对于销账处理而言,由于在销账处理的过程中涉及到多张表,在用户请求缴费时,在数据库中会将查询出来的资料信息和费用信息放在两张临时表中,一个为资料信息临时表,一个为费用临时表。由于所有缴费人员都同时用到这两张临时表,在传统数据库中往往出现大量争用,大大延长这两张物理表查询所需数据的时间。将这两临时表放在内存数据库中后,由于内存处理速度远远快于磁盘IO,争用出现的可能大为降低,极大减少了单独事务的相应处理时间,得以满足大量并发访问的要求。

图1 江苏联通BSS原账务处理流程

当然,如果不采用内存数据库来管理以上的数据,我们可以采取将这些数据组织成相应的数据结构,并用一些共享内存算法来进行查询和更新处理。但是从前面提到的两者对比来看,这样做,开发量大,开发周期长,对程序员要求高;建立的系统也会难以维护、查询和二次开发,并且逻辑结构复杂,接口也难以扩展;而最关键的是,数据完整性和一致性难以保障。相对于利用程序开发调用内存处理来说,内存数据库自有其优势。首先,内存数据库是产品化的数据库管理软件,已经是完整的产品,极大缩短了开发周期;其次,内存数据库有着开放的平台和接口,程序开发和移植更加灵活便捷,也便于维护和二次开发;可以通过使用统一的SQL语言方便的查询内存中的数据;在数据库中保障数据的安全性和完整性。这些优势,对于快速部署和简化维护都是有利的。

内存数据库在江苏联通BSS账务处理系统中应用的特点和效果
江苏联通在账务处理系统中采用了韩国的产品ALTIBASE内存数据库。为完成公司提出的计费实时性指标要求,我们认为只有从底层彻底改变整个账务处理的体系架构,才能对性能有质的提高。ALTIBASE内存数据库管理系统是一个在事务优先的环境中提供高性能和高可用性的软件解决方案。在江苏联通运用之前,在电信领域ALTIBASE内存数据库只有韩国SK有大型的全面解决方案。江苏联通在综合分析了SK的案例以及组织了多次大规模周详的测试后才决定运用此产品。
江苏联通是国内第一家将内存数据库运用于大型支撑系统的运营商。因为账务处理模块是效率瓶颈最大、也是对系统压力最大的一个模块,对用户打电话后查询话单的实时性感知度以及小额欠费都有较大影响,江苏联通重点针对账务处理系统引入了ALTIBASE技术,以便于提高客户满意度和减少费用流失。
自ALTIBASE内存数据库在江苏联通BSS账务处理系统中上线一年来,运行一直非常稳定。在应用中,只把最需要的中间数据放到内存库中,节省了内存的开销又提高了效率,把好钢用在了刀刃上。因为原先的账务处理瓶颈就在于读取营账的用户数据以及写入账务中间数据的频次非常高,频繁的物理读写造成了I/O的瓶颈,而且会影响前台系统的性能。通过采用复制技术将Oracle磁盘数据库中账务处理需要用到的营账数据实时复制增量数据到ALTIBASE内存数据库中去,将处理好的中间账务结果也写入ALTIBASE,这样做到了只把造成瓶颈的数据放到内存中处理,也就是用最快速的存储资源解决了开销最大的处理操作。另外,ALTIBASE内存数据库管理系统为需要容错服务的系统提供实时数据库复制的功能,采用联机日志的网络复制实现了双机之间数据的同步。采用双机热备的方式,既实现了高可用性又实现了负荷分摊。在我们的设计架构中实现了双机热备,同时我们将前台的实时话费的查询接口都链接到备库上,这样就实现了双机分摊账务和营业两种应用的功效。


图2 江苏联通BSS现账务处理流程

1.内存数据库在江苏联通BSS账务处理系统中应用的特点
(1)只把最需要的中间数据放到内存库中,节省了内存的开销又提高了效率,把好钢用在了刀刃上
因为原先的账务处理瓶颈就在于读取营账的用户数据以及写入账务中间数据的频次非常高,频繁的物理读写造成了I/O的瓶颈,而且会影响前台系统的性能。我们采用了复制技术将Oracle磁盘数据库中账务处理需要用到的营账数据实时复制增量数据到Altibase内存中去,将处理好的中间账务结果也写入Altibase,这样做到了只把造成瓶颈的数据放到内存中处理,也就是用最快速的存储资源解决了开销最大的处理操作。
2.采用双机热备的方式,既实现了高可用性又实现了负荷分摊
ALTIBASE内存数据库管理系统为需要容错服务的系统提供实时数据库复制的功能,采用联机日志的网络复制实现了双机之间数据的同步。在我们的设计架构中,备机既实现了双机热备、同时我们将前台的实时话费的查询接口都链接到备库上,这样就实现了双机分摊账务和营业两种应用的功效。
3.投资保护
使用内存数据库可节省硬件投资和系统维护成本。通过对比,如果要达到目前的计费实时性指标要求,按照开发商的建议,要将CPU扩展到32个,内存64G,同时系统开发商还要作大量的程序修改工作;而目前在10个CPU、95G内存上系统正常运行,CPU的平均占用率大约在55%--75%(原先为95%)。按照常识,1G内存的价格约为1颗CPU的1/10。即节省了约19个CPU的投资。而在收益方面:根据指标数据,采用内存数据库后,平均小额欠费率下降到老系统的55%左右,按此推算,每月给公司节约成本千万以上。
结束语
在当今电信领域,传统的一些支撑系统的架构已经逐渐不能满足日益增长的业务需求和客户需求,引入一些新的技术来解决我们生产中遇到的问题是必然的,这些新的技术架构很可能在今后会成为一种发展趋势,就像SAN替代DAS、关系型数据库替代传统数据库那样。
ALTIBASE在江苏联通BSS系统中的运用就是一个采用新技术架构实现系统目标的典型案例。主要有以下几点经验可以借鉴于同类的新产品的应用上:
(1)不轻易对现有架构做大范围的改动,保证框架稳定;
(2)控制成本、有效使用,将好钢用在刀刃上;
(3)针对系统中最主要的问题,投入最合适的产品或解决方案,实现既定的目标。
江苏联通在账务处理系统中率先采用ALTIBASE内存数据库体系架构,提高了系统处理速度2.5倍,使得系统的实时性大大提高,降低了小额欠费率、减轻对生产系统的压力。
内存数据库只是多种新技术中有代表性的一种而已,只要解放思想、选用得当,完全可以在投入不大的情况下以这类实用的产品解决系统中本来难以改变的瓶颈。在未来的BSS发展方向中内存数据库会逐渐成长为一股中坚力量,在客户细分、用户行为分析、产品管理、欠费控制系统等需要复杂高速运算的系统中发挥作用。

 

posted on 2008-01-30 00:19 allic 阅读(349) 评论(0)  编辑  收藏 所属分类: 电信服务技术

只有注册用户登录后才能发表评论。


网站导航: