在分布式数据库架构中维护会话-主机关系的容错方法技术

技术编号:7594466 阅读:277 留言:0更新日期:2012-07-21 15:08
为了解决现有的分布式数据库中在服务器加入和服务器离开时需对会话进行重新归属,带来了较大的风险并产生了大量开销的问题,本发明专利技术提供了在分布式数据库架构中维护会话-主机关系的容错方法。在一个实施方式中,有新加入的CCF节点时,维持预先决定的、各个关联对象与它的关联主机之间的映射不变,而之后新到来的关联对象和会话考虑该新加入的CCF节点。在另一个实施方式中,有CCF节点无法提供服务时,对于关联主机是该无法提供服务的CCF节点的各个关联对象,将提供服务的CCF节点中的一个作为该关联对象的关联主机。本发明专利技术的实施方式不需要对会话进行重新归属,减少了开销,并避免了重新归属过程中的出错风险。

【技术实现步骤摘要】

本专利技术涉及数据库技木,特别涉及分布式的数据库技木。
技术介绍
在使用计费收集功能(Charging Collection Function,简称CCF)的IP多媒体系统网络中,计费数据记录(CDR)的互相关联是这样ー种功能它接合了来自各个网元(NE) 的要素⑶R,这些网元实现了计费触发功能。在ー个分布式数据库架构(DDB)中,关联的主机典型地是ー个CCF节点,它会被选中从而将负载均衡地分散到CCF节点中。DDB方式具有这样的优点与传统的、受读写TPS —般处于1000读/写毎秒的数量级的商用服务器的读写TPS限制的集中式数据库方式相比,系统地吞吐随着CCF的加入线性地变化。尽管DDB方式在CCF节点中提供了公平的负载分布,并且增加了系统吞吐,但是下面这些相关的问题使得DDB方式还不够优化-关联主机可能无法提供服务(outof service,简称00S),并继而阻止了关联的兀成;-当ー个或多个CCF节点被加入吋,正在进行的会话已经要求重新归属以分散处理负载,由于这ー阶段的特征是大量的数据从ー个数据库到另一个数据库的转移,该转移牵涉到多个源以及目的,这些源和目的最终消耗了很大百分比的CPU周期进行转移,因此在这ー阶段中系统的吞吐会降低。而如果不进行重新归属,CCF节点会不正确地计算关联主机,并且不同的CCF节点会将属于相同会话的记录导向至不同的关联主机,这意味着关联功能(a)对于相同的会话被执行超过一次,以及(b)所有的服务器都使用不完整的会话信息进行工作,这带有很大几率使所有相关联的纪录都是不完整的并且在计费协调系统处不被接受。因此,这种用于处于服务器停运和服务器加入的下雨天场景需要手工来正确地重新计算关联主机以及调整负载分布。在现有技术中,已经提出了一种解决方案克服以上问题,下面将结合图1至3给予说明·现有技术当关联主机无法提供服务 一个关联主机根据f (Key)被选中,其中,该key典型的是被分配给被记账的会话的IMS计费标识(ICID),并且该key被多个作为计费触发功能(CTF)的网元所报告,其中该ICID被保证为在网络中对于一段时间内,例如ー个月内唯一。被使用在ICID上的函数是ー个哈希函数,并且该结果确定关联主机。该方法确保属于同一关联对象的记账记录被发送给单个关联主机,并且平均来说每个CCF节点接纳了大致相同数量的处理负载。在实践中,一个关联对象可以具有多于ー个正在进行的、由CTF所报告的记账会话。 作为ー个例子,考虑具有3个CCF节点CCF节点1至CCF节点3 (下面简称为CCFl 至CCF!3)的网络。假定目前CCF2无法提供服务。对于ー些正在进行会话,CCFl和CCF3能够通过对该些会话相应的ICID施加f (Key)来了解到关联主机是CCF2。由于CCFl和CCF3 无法与CCF2通信,例如计费相关信息等新的会话记录会被插入到这各个服务器的本地缓存中。当CCF2恢复后,CCFl和CCF3检测到其可用性,继而将这些被缓存的会话记录发送给由CCF2拥有并且作为主机的数据库中。这一方式的问题在于没有办法预先得知CCF2的停运将会持续多久。因此,本地缓存的解决方案只能在一定程度上起作用。在一段时间后,本地缓存将变得无法存储记账信息,继而该解决方案失败。当缓存充满时,在这ー时刻可以使用回滚机制产生不关联的 CDR,从而来清空缓存并且避免丢失记录。这ー方式相关的问题在于很多用户拒绝支付不关联的CDR,这意味着这些呼叫或会话将无法被记账,使用者也不会对它们被开具帐単。这产生了收入泄漏问题·现有技术当将ー个或多个CCF节点加入到可用的服务器簇中对于现有的网络,当増加服务器吋,复杂的一系列处理将被运行这些处理首先设立该被加入的一个或多个服务器,暂停目前已有的服务器上的处理,更新各服务器的内部表格以添加被加入的一个或多个服务器的标记,在所更新的服务器数中重新归属正在进行的会话,之后继续处理并恢复正常状态。该处理的每个阶段都具有精心设计的差错处理进程,并且它还需要人工介入以解决下雨天场景。作为这一方式的两个主要缺点,以下这些点值得注意-与精心设计的差错处理进程相关的复杂的一系列步骤需要操作员參照差错日志并且基于失效点使用恢复机制;-正常的处理被暂停,会话被重新归属以及耦合,这样带来的事实是该过程的运行可能出现问题,处理暂停的时间对于网络运营商来说可能无法接受;下面结合图1至4简要地说明根据现有技术增加ー个CCF节点的过程。图1示出了ー个正常状态,这时有两个工作的CCF节点,它们被通过即时增强 CCF(IeCCF)而实现,记作CCFl和CCF2。每个CCF节点都具有位于存储器内的数据库,即 DBll和DB21,并具有eCCF应用模块,即eCCF App 12和eCCF App22。在两个CCF节点之间存在用于交換数据的接ロ,记为ODBC。假定ー关联对象X带有4个会话会话a,会话b,会话c和会话d。并且该关联对象X的关联主机是CCF1,这意味着这ー对象的所有计费数据都会被定向于CCF1,并且CCFl负责对象X的这些计费数据的关联。其中,会话2由CCF2处理,并且CCF2将处理到来的计费会话直至完成,该完成由接收到ACRBtop]来指示。接着, CCF2将生成一个保存了该会话a的⑶R。该⑶R被通过ODBC导向至对于关联对象X的关联主机CCFl现在參照图2,其中根据现有技木,ー个中央节点控制所有的CCF节点暂停它们之间的计费数据交換,该中央节点是ー个集中控制CCF节点的专用设备。例如,所有新来的数据将被放置在各个CCF节点的本地缓存中,例如CCFl的本地缓存13和CCF2的本地缓存23 中。由于相同的原因,新加入的CCF节点CCF3也被提供给一本地缓存33。值得注意的是, 在此时没有数据流入CCF3參照图3,为了将关联负载分散在3个CCF节点中,对于某些关联对象的关联主机从CCFl或CCF2改变到CCF3。因此,ー个“重新归属”过程被执行,其中存储于CCFl和CCF2 的这些关联对象的计费数据被转移给新的关联主机CCF3。在这ー过程中,新的去到CCFl和CCF2的数据仍然被存储在它们各自的缓存中。最后,在重新归属之后,中央节点通知3个CCF节点重新建立它们之间的ODBC连接,继续数据交換和关联。很明显,复杂的加入过程和不足的无法提供服务的服务器处理进程这两者都为这一解决方案的采纳带来了风险。
技术实现思路
本专利技术采用ー些方式来解决与(a) —个CCF节点被加入以及(b) —个CCF节点不可用相关的问题。对于(a),本专利技术提供了ー种在管理元之中的、用于控制CCF节点在分布式数据库架构下实现无缝操作的方法,包括如下步骤判断是否有新加入的CCF节点;如果有新加入的CCF节点,维持预先決定的、各个关联对象与它的关联主机之间的映射不变,向其他CCF节点通知该新加入的CCF的相关信息,并且向新加入的CCF节点通知所述其他CCF节点的相关信息,其中,对于每个相关对象,存在ー个CCF节点作为其相关主机。除此之外,在有新加入的CCF节点的情况下,该方法进ー步包括步骤在包括该新加入的CCF节点在内的所有CCF节点之中为新的关联对象确定关联主机。除此之外,在有新加入的CCF节点的情况下,该方法进ー步包括步骤如果有新本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:R·沙玛胡明
申请(专利权)人:阿尔卡特朗讯
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术