在冗余功能单元内预热大量动态数据 【技术领域】
本发明涉及信息技术。本发明尤其描述了一种在冗余功能单元内预热大量动态数据的方法。
背景技术
存在着大量需要例如持续服务于各种计算机与电信网络的现代信息技术系统。这些所谓关键系统同样需要调谐和更新,在无断续或至少仅可能短暂的业务断续的情况下操作应当是可能的。传统技术方案是配备工作单元和空闲单元。所述工作单元正常工作,而在所述工作单元故障或更新的情况下,所述空闲单元继续提供业务。所述空闲单元能够替代所述工作单元,因为所述空闲单元与所述工作单元包括相同的信息。此外,到达所述工作单元的请求同样指向所述空闲单元,以便维持所述两个单元的一致性。
假定出于某些原因所述空闲单元例如以新的空闲单元替代。当然,所述的新空闲单元与所述工作单元并不包括相同的信息,因为其已被启动。在所述启动之后,为了实现2N冗余特征,所述地新空闲单元必需从所述工作单元装入必要的配置数据。将信息再装入新单元的进程被称为预热。
统计数据根本不必被预热。其可由程序(在单元启动阶段内)独立生成。动态数据量是关键问题。如果仅存在少量动态数据,则不再需要中断,因为在预热进程期间内可锁定所述工作单元。否则,需要较长的锁定期间。然而,在动态数据的情况下,所述数据无法被以小的数据块复制,因为所述动态数据可能会随时改变。
执行所述预热进程的传统方法是锁定所述工作单元和空闲单元两者,并将所有所述数据一次拷贝到所述空闲单元。通过锁定两个单元,所述空闲单元将变得与所述工作单元相同。这表示输入配置请求必须被排列,或以否定状态确认。否定状态是指其中无法处理配置请求的情况。
在两种情况下,在长时期内无法生成新配置,因为所述工作单元与空闲单元之间的传送容量是有限的。
所述工作单元的锁定引起业务中断。所阻塞的请求可能被拒绝、排队或改发到其它(多个)单元。所述中断的持续期间取决于必需拷贝的数据量。所述一次拷贝的问题是所述预热进程所需的时间。在大量动态数据的情况下,所述业务中断过长。一种解决方案是在所述工作单元与空闲单元之间具有较大带宽,以使数据传送更快。
另一种缩短所述锁定时间的解决方案可能是将所述预热数据分区为多个小的数据块,且一次仅锁定一个数据块。如果所述配置行为取决于大量动态数据,则所述方法并非一种适当的解决方案。此外,如果所述配置行为引起所述动态数据的不同部分改变,则所述预热进程的分区变得更为复杂,而小的数据块内的预热将难以实施。
另一种实施预热的解决方案如下。所述动态数据的拷贝可由外部一方生成,所述外部一方首先请求配置行为。然后,所述一方和所述空闲单元应当通过使用所收集的数据得到最新的空闲单元。所述工作单元不必参与所述进程。但所述方法具有问题:所有动态数据的拷贝必需存储在一些中心位置内。此外,某种锁定必须用于拷贝所述数据。
【发明内容】
本发明减轻了预热大量动态数据中的上述问题。本发明尤其减轻了所述预热进程中的锁定情况,并使业务中断时期更短。
本发明描述了一种用于在冗余功能单元内预热动态数据的方法。所述功能单元至少包括工作单元和空闲单元,其中配置数据被递送到所述工作单元和空闲单元。所述工作单元包括一个或多个可预热对象,而所述工作单元的一个或多个可预热对象的动态数据被拷贝到所述空闲单元的一个或多个已预热对象。在所述预热进程内锁定所述空闲单元。
在本发明中,所述工作单元的一个或多个可预热对象的动态数据的一个或多个快照可被载入所述工作单元的第一缓存存储器。在每次快照之后确定连续快照之间的差异,并在每次快照之后将所述差异传送到所述空闲单元的第二缓存存储器。当已抽取最终快照,且所述最终快照与先前快照之间的差异已被传送到所述空闲单元的所述第二缓存存储器时,所述第二存储缓存器的内容被写入所述空闲单元的一个或多个已预热对象。所述空闲单元锁定然后可被解锁。
本发明描述了一种用于预热冗余功能单元的预热进程。本发明所述的解决方案在所述预热的大部分时间内将所述功能单元保持为这样一种状态,即其能够服务于新的配置请求。所述工作单元一侧可能仍然被锁定,但持续时间比先前短。本发明易于预热多个客户机内的各种数据区,而无需出于预热目的组织或分类所述数据。数据被作为大量字节对待。
此外,本发明描述了一种控制所述预热进程的预热管理器。其从所述网络单元的恢复子系统中指令“开始预热”消息。
所述预热进程基于这样一个事实,即所述预热管理器抽取所述可预热对象的动态数据的一个或多个快照,并仅将两个连续快照之间的动态数据的差异传送到所述空闲单元一侧的预热管理器。此外,确定代表两个连续快照之间的最小差异量的门限值。当触发所述门限值时,将抽取所述动态数据的最终(最后)快照。
锁定所述工作单元和/或空闲单元是本发明的重要因素。在所述预热进程期间内保持所述空闲单元锁定。
在一个实施例中,在抽取快照时并不锁定所述工作单元。在抽取所述动态数据的快照时到达所述工作单元的请求被缓存,并仅在已抽取所述快照之后被处理。
在另一实施例中,在抽取快照的期间内可能还锁定或可能并不锁定所述工作单元。例如,所述工作单元并非必然在第一轮转预热期间内被锁定。这样的缺点在于,无法在所述轮转时输入最后的传送,因为所述数据内容很可能在所述比较期间内改变。可能在整个最后(最终)的差异传送期间内需要锁定所述工作单元,以实现所述工作与空闲单元之间的相同状态。可能会在所述最后传送之前的一些轮转期间内需要锁定,因为直到启动时方了解所述一轮转是否为最后一轮转。对于此存在两个备选方案:在一些固定的传送轮转(而不是在第一轮转)时,或在第一个“低于门限”轮转已发生之后,启动所述工作单元的锁定。
在一个实施例中,所述工作单元不必在最后传送期间内保持锁定,空闲单元在执行以下行为时写:当发送预热管理器判定是时间最后(最终)传送时,保持所述空闲单元锁定,但到达所述工作单元的配置请求被缓存。在动态数据被写入程序之后,所述锁定被释放,而配置请求被开始处理。然而,在最后(最终)一轮转期间内,还必需缓存空闲单元SP配置请求。在先前轮转期间内不必缓存所述请求,且如果拒绝被用于工作单元,则不再需要缓存所述请求。
本发明动态缩短了工作单元无法服务于新配置请求的时间。除此之外,所述时间被分配在较长时期内,这表示所述工作单元应当能够清除所述消息队列,在借助所述预热管理器读取所述动态数据期间内,可能已累计所述消息队列。
此外,本发明描述了一种使得预热在客户机看来易于使用的解决方案。所述客户机不必将所述动态数据分为块,或以其它任何方式将其分类。所述客户机提供一种将所有动态数据拷贝到所述预热管理器的暂时存储区的功能。
【附图说明】
附图提供了对于本发明的进一步理解,并构成了一部分技术规范,所述附图示出了本发明的实施例,并和所述描述一起协助解释本发明原理。在附图中:
图1示出了根据本发明的系统的实施例,以及
图2-11示出了本发明的实施例,其中根据本发明解释预热进程。
【具体实施方式】
图1示出了根据本发明系统的优选实施例。图1的系统包括网络单元NE,所述网络单元NE包括冗余功能单元FU。所述功能单元FU包括两个相同的可拆卸单元,工作单元WO和空闲单元SP。
在冗余功能单元内,配置数据被传送到所述空闲单元WO和空闲单元SP两者。因此,在预热进程内使所述空闲单元SP成为所述工作单元WO的相同拷贝是重要任务。所述预热进程不应当对所述工作单元的正常操作产生过多干扰。一般而言,预热可被定义为使用所述工作单元的类似数据,在所述空闲单元内更新过程系列的状态数据。所述全部预热是一组预热事件的结果。在预热之后,两个计算机内的过程处于相同状态,并在相同输入端类似操作。然后,所述空闲单元准备执行所述工作单元的任务。为了实现一种实施所述预热进程的有效方式,引入预热管理器。所述工作单元WO和空闲单元都包括预热管理器(SWM和RWM)。所述工作单元WO还包括一个或多个可预热对象PRG1,所述可预热对象PRG1包括将被预热,换言之将被拷贝到所述空闲单元SP,作为已预热对象PRG2的动态数据。
所述发送预热管理器SWM包括指向所述工作单元WO的第一接口IF1,其用于获取所述工作单元WO的一个或多个可预热对象PRG1的动态数据。此外,所述发送预热管理器SWM包括装置SM、第一存储器装置MEM1、计算装置CM以及第二接口IF2,所述装置SM用于使用所述第一接口IF1,抽取所述工作单元WO的可预热对象PRG1的动态数据的一个或多个快照,所述第一存储器装置MEM1用于存储所述快照数据,所述计算装置CM用于确定两个连续快照的数据内的差异,所述第二接口IF2用于将两个连续快照的数据内的差异发送到所述空闲单元SP的接收预热管理器RWM。此外,所述发送预热管理器SWM包括指向所述网络单元NE的恢复子系统RSS的第三接口IF3,其用于接收预热进程请求。
指向其动态数据将被预热的客户机的接口实施方式如下:一种共享存储器类型的机制用于引入所述客户机和预热管理器共有的缓存存储器。在接收到所述预热管理器的请求时,所述客户机将其所有动态数据写入所述缓存存储器。如果以一种结构存储动态数据,则这可借助单个存储拷贝功能呼叫得到执行。
在优选实施例中,所述发送预热管理器SWM包括表示两个连续快照之间的最小差异量的门限值TH,在此之后,抽取所述工作单元WO的可预热对象PRG1的动态数据的最终快照。换言之,如果两个连续快照之间的动态数据的差异量小于所述门限值,则下一快照将是最终快照。例如基于锁定情况可能持续的时间,以及传送数据的速度的信息来判定所述最终传送的门限值。在所述差异并为收敛为零的罕有情况下,所述预热管理器无论如何必须在一些迭代轮转之后判定终止所述预热。
所述接收预热管理器RWM包括指向所述工作单元WO的发送预热管理器SWM的第四接口IF4、第二存储装置MEM2、指向所述空闲单元SP的已预热对象PRG2的第五接口IF5、写入装置RM,所述第四接口IF4用于接收两个连续快照的数据差异,所述第二存储装置MEM2用于存储所述差异数据,所述写入装置RM用于将所述第二存储装置MEM2内的所述差异数据存储在所述空闲单元SP的已预热对象PRG2内。
在优选实施例中,所述预热管理器被实施为独立程序,所述独立程序具有一种指向所述客户机的有效共享存储类型的接口,以及指向恢复和发送预热管理器SWM的异步接口。
所述功能单元FU包括锁定装置LM,所述锁定装置LM用于在所述预热进程期间内锁定并解锁所述空闲单元。在一个实施例中,当抽取快照时还锁定所述工作单元WO。在这种情况下,新配置请求可能被缓存在缓存器BUF内。在缺少缓存器BUF的情况下,另一种可能性是拒绝所述输入请求。
在优选实施例中,以硬件和/或软件组件来实施所述预热管理器和上述装置。
图1的网络单元NE例如是UTRAN(UMTS无线电接入网)的无线电网络控制器(RNC),或移动业务交换中心(MSC)。然而,本发明的使用并不仅限于移动通信网,而是可用于其它通信网络。
图2-11示出了本发明的预热功能。在图2内示出了简化系统。仅示出了相关部分,即工作单元WO、空闲单元SP、可预热对象PRG1和已预热对象PRG2。
空闲单元SP的预热进程通常具有若干特征:
将从所述工作单元WO预热到所述空闲单元SP的数据量很大,
所述数据从所述工作单元WO到所述空闲单元SP的传送通常呈瓶颈状态,以及
在整个传送时间内无法必然将所述工作单元WO一侧锁定。所述传送时间的长度例如超过15秒。所述系统不可能处于这样一种状态,即所述系统无法在这样长的时间内接受配置请求。
本发明所示的技术方案将所有可预热动态数据视为成批字节,因而在所述数据内并不采用任何特定结构。所述预热概念可处理许多可预热对象(PRG)。图2-13仅说明了与所述预热概念一起示出的三个可预热对象。在优选实施例中,所有所述可预热对象PRG1被同时预热,因为只有这样方可保证所有所述对象之间的动态数据的一致性。
图2表示所述预热进程的初始状态。通过使用被称为预热管理器的特殊组件来实施实际预热进程。图3包括两个预热管理器,发送预热管理器SWM和接收预热管理器RWM。
在整个预热进程期间内,删除指向所述空闲单元SP一侧的配置更新消息。换言之,如图4所示,所述空闲单元SP被锁定。所述动态数据的内容被从所述工作单元WO一侧读入所述发送预热管理器SWM的内存。在图5内,在抽取所述动态数据的快照期间内,所述工作单元WO一侧被锁住。实际上,外部请求到达的程序栈的顶部被锁住。然而,并不是必然将所述工作单元WO一侧锁住。在图5的另一实施例内,所述工作单元WO并未被锁住,但存在着存储在抽取快照时到达的配置请求的缓存器。当已抽取所述快照时,所述工作单元WO接受所缓存的配置请求。
所抽取的快照然后被传送到所述空闲单元SP一侧。在此期间内,所述工作单元WO可服务于到达配置请求。这使得WO动态数据渐渐偏离于传送到SP一侧的快照。这在图6内示出。
在图7中,所述工作单元WO被再次锁住,而从所述动态数据抽取另一快照。在传送第一快照期间内,所述工作单元WO内的动态数据已由新配置请求改变。为了处理此项行为,所述预热进程进入其内锁住所述工作单元WO的循环,并抽取快照。然后,最新快照被与先前快照相比较,且仅所述两个快照之间的变化(差异)被传送到接收预热管理器RWM,所述预热管理器RWM将所述差异更新到其内存,如图8所示。在所述循环的每一轮转期间内,必需传送更少的差异,这表示所述传送花费较短的时间,从而意味着平均发生更少的变化。此外,在图7的另一实施例中,所述工作单元WO并未被锁住,而是缓存到达配置请求。
在本发明的一个实施例中,如下执行所述动态数据差异的比较和传送。当在所述第一轮转之后的后续轮转内从所述工作单元WOPRG1读取动态数据时,旧快照被以新快照替代,同时相互扣除数据矢量。借助此进程,得到这样一个矢量,其中零表示未改变数据,而零之外的其它任何值代表已改变数据。然后,使用在所述数据内趋于零的行程编码(或任何运转),将所述矢量传送到所述空闲单元SP。在所述空闲单元SP一侧内,差异矢量被加入所述动态数据的本地拷贝。在此方案内,行程编码隐含充当标记与发送所述差异的协议。
在本发明的另一实施例内,可预热数据被作为相等大小的块处理。连续快照被逐块比较。改变后块的数量被收集为一个表,且仅发送改变后块。与所述块一起,还发送一些识别所述接收预热管理器RWM的决的附加信息。在此之后,在所述发送预热管理器SWM一侧,当前“新缓存器”成为下一轮转的“先前缓存器”,而当前“先前缓存器”成为“新缓存器”。因此,需要所述缓存器之间的数据拷贝。
仅传送所述动态数据内的差异的构思可在所述数据区包括大量标记未使用条目的零的情况下,在所述第一传送期间内节省时间。在从工作单元WO读取数据之前,填充零的数据图象被构造为所述预热管理器的缓存存储器。当以零初始化所述缓存器时至少存在两个优点。所述第一轮转与后续轮转相比被同等处理。所述初始化还表示在所述第一轮转期间内仅传送差异。
可在所述预热管理器与客户机之间实施接口,借助所述接口,所述预热管理器可询问所述可预热数据的“初始状态”(在启动所述程序之后所述数据所处于的状态)。借助此功能,所述预热管理器可独立生成所述可预热数据的初始状态的结果,所述初始状态可能对应于所述工作单元WO一侧内不仅仅为零的动态数据的内容,尤其是如果仅存在少量配置请求的话。
图9示出了最终快照到所述空闲单元SP一侧的传送。抽取快照、计算连续快照之间的差异、重复发送所述差异直至以下条件中的一个得到满足:
差异量已减小到预定义门限值之下。因此,如图10所示,在传送并最终写数据到所述空闲单元SP一侧内的已预热对象PRG1期间内,同样保持锁住WO。只有这样方可实现所述工作单元WO与空闲单元SP两侧之间的一致性。理论上,这种条件应当相当迅速地得到满足,因为差异量应当按指数规律地减少。此外,在图9的另一实施例内,所述工作单元WO并未被锁住,而是将到达配置请求缓存。然而,在所述最后(最终)轮转的期间内,空闲单元SP配置请求同样必需被缓存。在先前轮转期间内所述请求不必被缓存,且如果拒绝被用于所述工作单元,则所述请求不再需要被缓存。
如果出于某些原因差异量在最后几轮转传送期间内并未足够减小,则无论如何执行最后传送,以促成所述预热进程。
图11示出了完成所述预热进程,且所述工作单元WO一侧和空闲单元SP一侧包括相同信息时的情况。所述锁被同步释放,从而使得到达空闲单元SP的第一配置消息对应于到达所述工作单元WO的第一请求。
对于本领域技术人员而言,显然随着技术进步,可以各种方式实施本发明的基本构思。本发明及其实施例因而并不仅限于上述实例,而是可在权利要求书范围内改变。