多机系统共享内存的同步实现方法及其系统技术方案

技术编号:8834239 阅读:213 留言:0更新日期:2013-06-22 20:27
本发明专利技术涉及多机系统共享内存的同步实现方法及其系统。本发明专利技术的多机系统共享内存的同步实现方法,用于实现具备多个节点和一个数据库的多机系统的同步,各节点接收来自外部的数据输入并且由共享内存主块和共享内存备块构成,其特征在于,该同步实现方法包括下述步骤:每个节点读取数据库中的数据,加载到各自的共享内存主块和共享内存备块的数据加载步骤;接收外部数据输入的节点将外部数据输入引起的共享内存的数据变化更新到所述数据库中的数据更新步骤;各节点根据上述更新后的数据库刷新各自的共享内存备块的数据刷新步骤;在完成所有节点的共享内存备块的数据刷新后,各节点同步切换共享内存主块和共享内存备块的同步切换步骤。

【技术实现步骤摘要】

本专利技术涉及数据同步处理,具体地涉及多机环境下共享内存的数据同步化。
技术介绍
多机系统在例如通信技术等的领域中已经被广泛使用。在多机系统中为了数据的共享一般会采用共享内存。共享内存是指在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就需要对存储器进行缓存。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立刻更新,否则在不同的处理器可能用到不同的数据。因此,在多机环境下,共享内存之间的数据同步显得格外重要。
技术实现思路
本专利技术鉴于上述问题,旨在提供一种同步机制简单、实时性佳、可靠性高的多机系统共享内存的同步实现方法以及多机系统共享内存的同步实现系统。本专利技术的多机系统共享内存的同步实现方法,用于实现具备多个节点和一个数据库的多机系统的同步,各节点接收来自外部的数据输入并且由共享内存主块和共享内存备块构成,其特征在于,该同步实现方法包括下述步骤: 每个节点读取数据库中的数据,加载到各自的共享内存主块和共享内存备块的数据加载步骤; 接收外部数据输入的节点将外部数据输入引起的共享内存的数据变化更新到所述数据库中的数据更新步骤; 各节点根据上述更新后的数据库刷新各自的共享内存备块的数据刷新步骤; 在完成所有节点的共享内存备块的数据刷新后,各节点同步切换共享内存主块和共享内存备块的同步切换步骤。优选地,在所述数据加载步骤中,在将数据加载到各自的共享内存主块和共享内存备块后,激活共享内存主块。优选地,在所述同步切换步骤中,各节点从共享内存主块同步切换到共享内存备块。优选地,在所述数据刷新步骤中,通知该接收外部数据输入的节点本身和其他节点根据上述更新后的数据库刷新各自的共享内存备块以使得各自的共享内存备块保存与更新后的数据库一致的数据。优选地,在所述同步切换步骤中,通知该接收外部数据输入的节点本身和其他节点激活各个节点的共享内存备块使得成为共享内存主块而将原来的共享内存主块切换成共享内存备块。优选地,所述数据刷新步骤具体包括下述步骤: 该接收外部数据输入的节点向该节点本身和其他节点发出刷新请求的请求步骤; 各节点对共享内存备块中的数据刷新的刷新步骤;以及 各节点再完成数据刷新后,分别反馈刷新成功返回值,根据刷新成功返回值,确认各节点是否刷新成功,以确保所有节点的共享内存备块得以刷新的刷新确认步骤。优选地,在所述同步切换步骤中,共享内存备块和共享内存主块的切换通过设置标志位来实现。优选地,在所述同步切换步骤中,将所述共享内存主块的标志位设置为O并且将所述共享内存备块的标志位设置为1,或者将所述共享内存主块的标志位设置为I并且将所述共享内存备块的标志位设置为O。本专利技术的多机系统共享内存的同步实现系统,用于实现具备多个节点和一个数据库的多机系统的同步,各节点接收来自外部的数据输入并且由共享内存主块和共享内存备块构成,其特征在于,该同步系统包括: 将每个节点读取的数据库中的数据加载到各自的共享内存主块和共享内存备块的数据加载单元; 将由接收外部数据输入的节点引起的共享内存的数据变化更新到所述数据库中的数据更新单元; 各节点根据上述更新后的数据库刷新各自的共享内存备块的数据刷新单元; 在完成所有节点的共享内存备块的数据刷新后对各节点同步切换共享内存主块和共享内存备块的同步切换单元。优选地,所述数据加载单元将数据加载到各自的共享内存主块和共享内存备块后激活共享内存主块。优选地,所述同步切换单元将各节点从共享内存主块同步切换到共享内存备块。优选地,所述数据刷新单元根据由所述数据更新单元更新后的数据库刷新各个节点的共享内存备块以使得各个节点的共享内存备块中的数据与更新后的数据库的数据一致。优选地,所述同步切换单元激活各个节点的共享内存备块使得成为共享内存主块而将原来的共享内存主块切换成共享内存备块。本专利技术采用数据库作为共享内存中数据的来源和存储点,采用同步服务调用的方式实现多机间的通信。每个节点上的共享内存包含结构完全相同的共享内存主块和共享内存备块,并能够相互切换。在本专利技术中数据同步过程是由刷新和切换两个阶段组成,刷新和切换的过程不影响系统在用共享内存的数据一致性,从而不会对系统运行产生任何影响。而且通过共享内存主备块的设计和同步服务调用机制,保证了数据的同步切换及各个节点切换动作的事务性,并使得同步过程对系统运行不会产生影响。通过将数据库作为共享内存的直接数据来源,确保了在同步失败情况下进行再同步有可靠、一致的数据来源,提高了系统的稳定性。因此,基于本专利技术的多机系统共享内存的同步实现方法和多机系统共享内存的同步实现系统,能够确保多机系统中的各个节点上共享内存在完成刷新后进行数据的同步切换,由此,能够将各个节点上的共享内存数据保持为与数据库一致,提高了数据的一致性。附图说明图1是表示本专利技术的多机系统共享内存的同步实现方法的数据流向的示意图。图2是表示本专利技术的多机系统共享内存的同步实现方法的具体流程图。图3是表示本专利技术的多机系统共享内存的同步实现系统的结构示意图。具体实施方式下面介绍的是本专利技术的多个可能实施例中的一些,旨在提供对本专利技术的基本了解。并不旨在确认本专利技术的关键或决定性的要素或限定所要保护的范围。为使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术作进一步的详细描述。以下参照图1和图2对于本专利技术的多机系统共享内存的同步实现方法进行说明。图1是表示本专利技术的多机系统共享内存的同步实现方法的数据流向的示意图。图2是表示本专利技术的多机系统共享内存的同步实现方法的具体流程图。如图1所示,多机系统具备数据库100和多个节点20(^ 200n,各节点分别具有共享内存主块20^ 201 和共享内存备块2(^ 202n构成。各节点20(^ 2 00n都能够从外部接收数据输入,同时各节点20(^ 200n与数据库100之间能够通过数据的读写进行数据的更新、交换等。利用本专利技术的下述多机系统共享内存的同步实现方法能够实现该具备多个节点20(^ 200 和数据库100的多机系统的同步。如图2所示,本专利技术的多机系统共享内存的同步实现方法具体包括下述步骤:(I)数据加载步骤SlOO:每个节点20(^ 200n读取数据库100中的数据,加载到各自的共享内存主块201i 201 和共享内存备块202i 202n,在将数据加载到各自的共享内存主块201i 201 和共享内存备块202i 202 后,激活共享内存主块20^ 201n。该步骤也可以称作为系统初始化步骤,通过该初始化,各节点20(^ 200n的共享内存主块201i 201 和共享内存备块202i 202n与数据库100中的数据都是一致的。(2)数据更新步骤SlOl:这里,假设节点20(^接收从外部接受了数据输入,则该节点20(^将外部数据输入引起的共享内存的数据变化更新到数据库中100。这样,通过该数据更新步骤S101,数据库100中就保持了最新的数据。(3)数据刷新步骤S102:各节点20(^ 200n根据上述更新后的数据库100刷新各自的共享内存备块202i 202n。即,在所述数据刷新步骤S102中,通知该接收外部数据输入的节点20(^本身和其他节点根据上述更新后的数据库刷新本文档来自技高网...

【技术保护点】
一种多机系统共享内存的同步实现方法,用于实现具备多个节点和一个数据库的多机系统的同步,各节点接收来自外部的数据输入并且由共享内存主块和共享内存备块构成,其特征在于,该同步实现方法包括下述步骤:每个节点读取数据库中的数据,加载到各自的共享内存主块和共享内存备块的数据加载步骤;接收外部数据输入的节点将外部数据输入引起的共享内存的数据变化更新到所述数据库中的数据更新步骤;各节点根据上述更新后的数据库刷新各自的共享内存备块的数据刷新步骤;在完成所有节点的共享内存备块的数据刷新后,各节点同步切换共享内存主块和共享内存备块的同步切换步骤。

【技术特征摘要】
1.一种多机系统共享内存的同步实现方法,用于实现具备多个节点和一个数据库的多机系统的同步,各节点接收来自外部的数据输入并且由共享内存主块和共享内存备块构成,其特征在于,该同步实现方法包括下述步骤: 每个节点读取数据库中的数据,加载到各自的共享内存主块和共享内存备块的数据加载步骤; 接收外部数据输入的节点将外部数据输入引起的共享内存的数据变化更新到所述数据库中的数据更新步骤; 各节点根据上述更新后的数据库刷新各自的共享内存备块的数据刷新步骤; 在完成所有节点的共享内存备块的数据刷新后,各节点同步切换共享内存主块和共享内存备块的同步切换步骤。2.如权利要求1所述的多机系统共享内存的同步实现方法,其特征在于, 在所述数据加载步骤中,在将数据加载到各自的共享内存主块和共享内存备块后,激活共享内存主块。3.如权利要求2所述的多机系统共享内存的同步实现方法,其特征在于, 在所述同步切换步骤中,各节点从共享内存主块同步切换到共享内存备块。4.如权利要求2所述的多机系统共享内存的同步实现方法,其特征在于, 在所述数据刷新步骤中,通知该接收外部数据输入的节点本身和其他节点根据上述更新后的数据库刷新各自的共享内存备块以使得各自的共享内存备块保存与更新后的数据库一致的数据。5.如权利要求4所述的多机系统共享内存的同步实现方法,其特征在于, 在所述同步切换步骤中,通知该接收外部数据输入的节点本身和其他节点激活各个节点的共享内存备块使得成为共享内存主块而将原来的共享内存主块切换成共享内存备块。6.如权利要求5所述的多机系统共享内存的同步实现方法,其特征在于, 所述数据刷新步骤具体包括下述步骤: 该接收外部数据输入的节点向该节点本身和其他节点发出刷新请求的请求步骤; 各节点对共享内存备块中的数据刷新的刷新步骤;以及 各节点再完成数据刷新后,分别反馈刷新成功返回值,根据刷新成功返回值,确认各节点是否刷新成功,以确保所...

【专利技术属性】
技术研发人员:丰朋林芃唐旭东
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:

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

1