CN101207515B - 一种多机共享内存的处理方法、实现方法和同步方法 - Google Patents
一种多机共享内存的处理方法、实现方法和同步方法 Download PDFInfo
- Publication number
- CN101207515B CN101207515B CN2007101250786A CN200710125078A CN101207515B CN 101207515 B CN101207515 B CN 101207515B CN 2007101250786 A CN2007101250786 A CN 2007101250786A CN 200710125078 A CN200710125078 A CN 200710125078A CN 101207515 B CN101207515 B CN 101207515B
- Authority
- CN
- China
- Prior art keywords
- shared drive
- data object
- storage data
- internal storage
- steps
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多机共享内存的处理方法、实现方法和同步方法,处理方法包括以下步骤:A1、预定义内存数据对象;A2、分布式网管系统的任一节点的主机启动时,在本地内存中创建所述内存数据对象;A3、各主机判断某一节点的内存数据对象发生变化,则分别更新本地的内存数据对象。可以采用内部网络的消息通信方式传输所述内存数据对象。通过在分布式网管系统的多个计算机节点的本地内存中维护一份完整的内存数据,并通过一定机制保证每个计算机本地内存中的内存数据的一致性,来达到多机共享内存的目的,从而避免了将内存数据固定的放在一个计算机,实现了本地内存访问,提高了分布式网管系统的内存数据读取效率。
Description
技术领域
本发明涉及多机共享内存的实现,尤其涉及的是,一种用于分布式网管系统的、基于数据同步的多机共享内存的处理方法、实现方法和同步方法。
背景技术
传统的网管系统是集中控制模式,同一个网管应用程序运行在同一个计算机中,所管理的网元都连接到这个计算机中。随着网管系统的复杂性增加及所管网元的数量增加,这种集中控制模式存在以下固有的缺陷。首先,管理大数据量的网元,所管理网元与网管系统的控制信息及数据处理都集中在一台计算机中,使系统的性能明显减低;其次,系统的可靠性减低,一旦该计算机出现故障,整个系统容易崩溃。再次,由于一个计算机的处理能力是有限的,也就限制了系统的可扩展性。
为解决上述问题,现有技术提出了分布式网管系统,通过将网管应用程序分别部署在多个的计算机中,由多个计算机共同完成对网元管理。当所管网元数量庞大时,由多个处理机进行负荷分担,使系统性能维持在良好状态;当其中一个计算机出现故障时,其他的计算机能够自动接管故障机的工作,使系统的可靠性增强;同时,通过增加计算机的方式可以方便的实现系统的扩展。
在分布式网管系统中,为了提高系统的运行效率,通常会在内存中保存一些数据便于快速访问,而由于同一个应用程序同时运行在多个独立计算机中,每个计算机有独立的内存,因此就存在如何对分布式网管系统的内存数据进行管理和访问的问题。
通常的处理方式是将内存数据固定的放在一个计算机,其他计算机上的应用程序需要访问内存时,通过远程调用的方式从该计算机中获取,这样的处理方式的优点是内存数据只有一份,不存在数据不一致的问题,但是存在以下缺点:存放内存数据的计算机网络负载大,其他计算机内存访问的响应速度慢。因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是将内存数据固定的放在一个计算机,导致存放内存数据的计算机网络负载大,其他计算机内存访问的响应速度慢的问题。
本发明的技术方案如下:
一种多机共享内存的处理方法,应用于分布式网管系统中,其包括以下步骤:A1、预定义内存数据对象;A2、分布式网管系统的任一节点的主机启动时,在本地内存中创建所述内存数据对象;A3、各主机判断某一节点的内存数据对象发生变化,则根据发生变化的内存数据对象分别更新本地的内存数据对象,并且保持各节点内存数据的一致性。所述的处理方法,其中,步骤A3中,采用内部网络的消息通信方式传输所述内存数据对象。
所述的处理方法,其中,步骤A2之后,还执行以下步骤:各主机的内存数据对象发生变化,则向所述分布式网管系统的消息服务器,发送共享内存变化消息;所述消息服务器分别向其它主机发送共享内存变更通知消息;其中,共享内存变化消息和共享内存变更通知消息,均包括发生变化的所述内存数据对象。
所述的处理方法,其中,步骤A1中,还包括将所述内存数据对象封装为共享内存服务;并且,步骤A2具体包括以下步骤:各主机启动时,启动所述共享内存服务,在本地内存中创建所述内存数据对象,并加载初始化的数据;并且,步骤A3中,各主机分别通过其共享内存服务更新本地内存中的数据。
所述的处理方法,其中,步骤A2之后,还执行以下步骤:所述共享内存服务向所述分布式网管系统的消息服务器,订阅共享内存变更通知消息;步骤A3之前包括以下步骤:A31、当任一节点的内存数据对象发生变化时,所述消息服务器向所有订阅者或该节点之外的其它订阅者,发送所述共享内存变更通知消息;并且,步骤A3具体包括以下步骤:A32、各主机的所述共享内存服务收到所述共享内存变更通知消息,则分别更新本地内存中的数据。
一种多机共享内存的实现方法,应用于分布式网管系统中,其包括以下步骤:B1、预定义内存数据对象;B2、分布式网管系统的任一节点的主机启动时,在本地内存中创建所述内存数据对象;B3、各主机向分布式网管系统的消息服务器订阅共享内存变更通知消息,各主机在收到共享内存变更通知消息后,根据发生变化的内存数据对象分别更新本地的内存数据对象,并且保持各节点内存数据的一致性,其中,所述共享内存变更通知消息,包括发生变化的所述内存数据对象。
所述的实现方法,其中,步骤B3之后还执行步骤B4:各主机收到所述共享内存变更通知消息,则分别更新本地的内存数据对象。
所述的实现方法,其中,步骤B1中,还包括将所述内存数据对象封装为共享内存服务;并且,步骤B2具体包括以下步骤:所述主机启动时,启动所述共享内存服务,在本地内存中创建所述内存数据对象,并加载初始化的数据;并且,步骤B4中,各主机分别通过其共享内存服务,更新本地内存中的数据。
一种多机共享内存的同步方法,应用于分布式网管系统中,其包括以下步骤:C1、预定义内存数据对象;C2、分布式网管系统的任一节点的主机在启动时在本地内存中创建所述内存数据对象,其内存数据对象发生变化时,向所述分布式网管系统的消息服务器,发送共享内存变化消息,其中,所述共享内存变化消息包括发生变化的所述内存数据对象;C3、所述消息服务器分别向其它主机发送共享内存变更通知消息,其中,所述共享内存变更通知消息包括发生变化的所述内存数据对象;C4、收到所述共享内存变更通知消息的各主机,根据发生变化的内存数据对象分别更新本地的内存数据对象,并且保持各节点内存数据的一致性。
所述的同步方法,其中,步骤C1中,还包括将所述内存数据对象封装为共享内存服务;并且,步骤C2中,各主机分别通过其共享内存服务发送共享内存变化消息;并且,步骤C4中,各主机分别通过其共享内存服务更新本地内存中的数据。
采用上述方案,本发明通过在分布式网管系统的多个计算机节点的本地内存中维护一份完整的内存数据,并通过一定机制保证每个计算机本地内存中的内存数据的一致性,来达到多机共享内存的目的,从而避免了将内存数据固定的放在一个计算机,实现了本地内存访问,提高了分布式网管系统的内存数据读取效率。
附图说明
图1为本发明的多机共享内存系统示意图;
图2为本发明的多机共享内存结构示意图;
图3为本发明的多机共享内存启动流程示意图;
图4为本发明的多机共享内存同步流程示意图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
本发明提出了应用于分布式网管系统的多机共享内存的具体实现,通过在分布式网管系统的多个计算机节点的本地内存中维护一份完整的内存数据,并通过一定机制保证每个计算机本地内存中的内存数据的一致性,来达到多机共享内存的目的,从而做到真正的本地内存访问,提高分布式网管系统的内存数据读取效率。
本发明提出了一种多机共享内存的处理方法,应用于分布式网管系统中,如图1和图2所示,位于分布式网管系统中的多个计算机分别在各自内存中保存一份数据,通过内部网络的消息通信来保证多个计算机内存数据的一致性。该处理方法包括以下步骤,其中,可以采用内部网络的消息通信方式传输所述内存数据对象。
A1、预定义内存数据对象;共享内存对象100是分布式网管系统中需要在内存中进行管理和访问的对象。
A2、分布式网管系统的任一节点的主机启动时,在本地内存中创建所述内存数据对象;
在步骤A2之后,还可以执行以下步骤:各主机的内存数据对象发生变化,则向所述分布式网管系统的消息服务器,发送共享内存变化消息;所述消息服务器分别向其它主机发送共享内存变更通知消息;
其中,共享内存变化消息和共享内存变更通知消息,均包括发生变化的所述内存数据对象。
A3、各主机判断某一节点的内存数据对象发生变化,则分别更新本地的内存数据对象。例如,在步骤A3中,可以采用内部网络的消息通信方式传输所述内存数据对象。
一个实施例是:步骤A1、预定义内存数据对象,将所述内存数据对象封装为共享内存服务;共享内存服务110负责创建共享内存对象100,并在启动服务时对共享内存对象进行初始化,加载初始内存数据。另外,共享内存服务还负责维护共享内存对象的一致性。步骤A2、各主机启动时,启动所述共享内存服务,在本地内存中创建所述内存数据对象,并加载初始化的数据。步骤A3、各主机分别通过其共享内存服务更新本地内存中的数据。
另一个实施例是:在上述的各个例子中,在执行了步骤A2之后,还可以执行以下步骤:所述共享内存服务向所述分布式网管系统的消息服务器,订阅共享内存变更通知消息;消息服务器120负责接收和发送共享内存变化消息。
并且,步骤A3具体包括以下步骤:A31、当任一节点的内存数据对象发生变化时,所述消息服务器向所有订阅者或该节点之外的其它订阅者,发送所述共享内存变更通知消息;A32、各主机的所述共享内存服务收到所述共享内存变更通知消息,则分别更新本地内存中的数据。
又一个完整的实施例是:
步骤1、预定义内存数据对象,并将其封装为共享内存服务。
步骤2、分布式网管系统启动时,启动共享内存服务。
步骤3、共享内存服务在本地内存中创建内存数据对象,并加载初始数据。
步骤4、共享内存服务向消息服务器订阅共享内存变更通知消息。
步骤5、当某个分布式计算机节点上的内存数据发生变化时,该主机的共享内存服务向消息服务器发送共享内存变化消息;消息服务器向所有订阅者发送共享内存变更通知消息。
步骤6、共享内存服务收到消息,更新本地内存中的数据。
综上,本发明对内存数据共享的整个处理流程可以分为两个部分,一个是多机共享内存的启动流程,一个是多机共享内存同步流程,下面再对这两部分进行详细说明。
如图3所示,本发明还提出了一种多机共享内存的实现方法,应用于分布式网管系统中,即实现了多机共享内存的启动流程。其包括以下步骤。
B1、预定义内存数据对象;
B2、分布式网管系统的任一节点的主机启动时,在本地内存中创建所述内存数据对象;
B3、各主机向分布式网管系统的消息服务器订阅共享内存变更通知消息,其中,所述共享内存变更通知消息,包括发生变化的所述内存数据对象。
在步骤B3之后还可以执行步骤B4:各主机收到所述共享内存变更通知消息,则分别更新本地的内存数据对象。此时,一个例子是,步骤B1中,还包括将所述内存数据对象封装为共享内存服务;并且,步骤B2具体包括以下步骤:所述主机启动时,启动所述共享内存服务,在本地内存中创建所述内存数据对象,并加载初始化的数据;并且,步骤B4中,各主机分别通过其共享内存服务,更新本地内存中的数据。
如图3所示,以下是多机共享内存启动流程的一个完整的实施例。
210、分布式网管系统启动的同时启动共享内存服务。
220、共享内存服务在内存中创建分布式网管系统中需要的共享内存对象100。
230、初始化共享内存对象,可以从数据库中读取或者指定固定的值。
240、向消息服务器订阅共享内存变化消息,以便当其他主机的内存数据变化时能收到通知。
并且,如图4所示,本发明还提供了一种多机共享内存的同步方法,应用于分布式网管系统中,即实现了多机共享内存同步流程,其包括以下步骤。
C1、预定义内存数据对象;
C2、分布式网管系统的任一节点的主机,其内存数据对象发生变化时,向所述分布式网管系统的消息服务器,发送共享内存变化消息,其中,所述共享内存变化消息包括发生变化的所述内存数据对象;
C3、所述消息服务器分别向其它主机发送共享内存变更通知消息,其中,所述共享内存变更通知消息包括发生变化的所述内存数据对象;
C4、收到所述共享内存变更通知消息的各主机,分别更新本地的内存数据对象。
优选的使,同上所述,在步骤C1中,还包括将所述内存数据对象封装为共享内存服务;并且,步骤C2中,各主机分别通过其共享内存服务发送共享内存变化消息;并且,步骤C4中,各主机分别通过其共享内存服务更新本地内存中的数据。
如图4所示,以下是多机共享内存同步流程的一个完整的实施例。
310、运行在本机的分布式网管程序修改了本机的共享内存对象100。
320、本机的共享内存服务向消息服务器120发送共享内存变化消息。
330、其他主机收到共享内存变化消息。
340、其他主机的共享内存服务更新本机的共享内存对象。
综上所述,使用本方法可以实现分布式网管系统的多机内存数据共享,并达到真正的本地内存读取,有效的提高分布式网管系统的内存数据读写效率。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (7)
1.一种多机共享内存的处理方法,应用于分布式网管系统中,其包括以下步骤:
A1、预定义内存数据对象;
A2、分布式网管系统的任一节点的主机启动时,在本地内存中创建所述内存数据对象;
A3、各主机判断某一节点的内存数据对象发生变化,则根据发生变化的内存数据对象分别更新本地的内存数据对象,并且保持各节点内存数据的一致性。
2.根据权利要求1所述的处理方法,其特征在于,步骤A3中,采用内部网络的消息通信方式传输发生变化的内存数据对象。
3.根据权利要求1所述的处理方法,其特征在于,步骤A2之后,还执行以下步骤:各主机的内存数据对象发生变化,则向所述分布式网管系统的消息服务器,发送共享内存变化消息;所述消息服务器分别向其它主机发送共享内存变更通知消息;
其中,共享内存变化消息和共享内存变更通知消息,均包括发生变化的所述内存数据对象。
4.根据权利要求1或2所述的处理方法,其特征在于,步骤A1中,还包括将所述内存数据对象封装为共享内存服务;
并且,步骤A2具体包括以下步骤:各主机启动时,启动所述共享内存服务,在本地内存中创建所述内存数据对象,并加载初始化的数据;
并且,步骤A3中,各主机分别通过其共享内存服务更新本地内存中的数据。
5.根据权利要求4所述的处理方法,其特征在于,步骤A2之后,还执行以下步骤:所述共享内存服务向所述分布式网管系统的消息服务器,订阅共享内存变更通知消息;
步骤A3之前包括以下步骤:
A31、当任一节点的内存数据对象发生变化时,所述消息服务器向所有订阅者或该节点之外的其它订阅者,发送所述共享内存变更通知消息;
并且,步骤A3具体包括以下步骤:
A32、各主机的所述共享内存服务收到所述共享内存变更通知消息,则分别更新本地内存中的数据。
6.一种多机共享内存的实现方法,应用于分布式网管系统中,其包括以下步骤:
B1、预定义内存数据对象;
B2、分布式网管系统的任一节点的主机启动时,在本地内存中创建所述内存数据对象;
B3、各主机向分布式网管系统的消息服务器订阅共享内存变更通知消息,各主机在收到共享内存变更通知消息后,根据发生变化的内存数据对象分别更新本地的内存数据对象,并且保持各节点内存数据的一致性,其中,所述共享内存变更通知消息,包括发生变化的所述内存数据对象。
7.根据权利要求6所述的实现方法,其特征在于,步骤B1中,还包括将所述内存数据对象封装为共享内存服务;
并且,步骤B2具体包括以下步骤:所述主机启动时,启动所述共享内存服务,在本地内存中创建所述内存数据对象,并加载初始化的数据;并且,步骤B3中,各主机分别通过其共享内存服务,更新本地内存中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101250786A CN101207515B (zh) | 2007-12-12 | 2007-12-12 | 一种多机共享内存的处理方法、实现方法和同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101250786A CN101207515B (zh) | 2007-12-12 | 2007-12-12 | 一种多机共享内存的处理方法、实现方法和同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101207515A CN101207515A (zh) | 2008-06-25 |
CN101207515B true CN101207515B (zh) | 2011-11-30 |
Family
ID=39567419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101250786A Expired - Fee Related CN101207515B (zh) | 2007-12-12 | 2007-12-12 | 一种多机共享内存的处理方法、实现方法和同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101207515B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103858111A (zh) * | 2013-10-08 | 2014-06-11 | 华为技术有限公司 | 一种实现聚合虚拟化中内存共享的方法、设备和系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101561795B (zh) * | 2009-05-20 | 2014-09-10 | 中兴通讯股份有限公司 | 一种分布式系统中的数据同步方法及装置 |
CN102646058A (zh) * | 2011-02-21 | 2012-08-22 | 华为技术有限公司 | 多节点计算系统下选择共享内存所在节点的方法和装置 |
CN102360323A (zh) * | 2011-10-28 | 2012-02-22 | 东莞市正欣科技有限公司 | 一种网络服务器宕机自修复的方法及系统 |
CN102629221B (zh) | 2012-02-28 | 2014-11-19 | 华为技术有限公司 | 用于分布式共享存储的任务同步方法、装置及系统 |
CN105700962A (zh) * | 2014-11-26 | 2016-06-22 | 中兴通讯股份有限公司 | 数据更新处理方法及装置 |
CN106375362A (zh) * | 2015-07-24 | 2017-02-01 | 广州市百果园信息技术有限公司 | 分布式服务器的缓存同步方法及系统 |
CN109032816A (zh) * | 2018-07-25 | 2018-12-18 | 天津凯发电气股份有限公司 | 一种电能质量管理系统共享内存多机通信同步方法 |
CN113204407B (zh) * | 2021-04-22 | 2024-01-09 | 新华三大数据技术有限公司 | 一种内存超配管理方法及装置 |
CN114116200B (zh) * | 2021-10-27 | 2024-04-05 | 北京百度网讯科技有限公司 | 资源共享方法、服务创建方法、装置和电子设备 |
CN117851021A (zh) * | 2022-09-30 | 2024-04-09 | 成都华为技术有限公司 | 分布式内存系统、分布式内存管理方法、装置及相关设备 |
-
2007
- 2007-12-12 CN CN2007101250786A patent/CN101207515B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103858111A (zh) * | 2013-10-08 | 2014-06-11 | 华为技术有限公司 | 一种实现聚合虚拟化中内存共享的方法、设备和系统 |
WO2015051488A1 (zh) * | 2013-10-08 | 2015-04-16 | 华为技术有限公司 | 一种实现聚合虚拟化中内存共享的方法、设备和系统 |
CN103858111B (zh) * | 2013-10-08 | 2016-03-09 | 华为技术有限公司 | 一种实现聚合虚拟化中内存共享的方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101207515A (zh) | 2008-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101207515B (zh) | 一种多机共享内存的处理方法、实现方法和同步方法 | |
CN102629941B (zh) | 云计算系统中虚拟机镜像缓存的方法 | |
CN102521038B (zh) | 基于分布式文件系统的虚拟机迁移方法和装置 | |
CN103207841B (zh) | 基于键值对缓存的数据读写方法及装置 | |
CN101257406B (zh) | 网元发现方法和系统 | |
CN102316043B (zh) | 端口虚拟化方法、交换机及通信系统 | |
CN102195815B (zh) | 网络管理方法和装置 | |
CN102508693A (zh) | 基于虚拟机的Web服务器扩容系统 | |
CN102833141A (zh) | 一种基于DSP28335的CANopen从站系统 | |
CN102012907A (zh) | 一种浏览器客户端侧的缓存方法及系统 | |
CN102486734A (zh) | 一种富客户端应用系统 | |
CN105577446A (zh) | 一种轻量级嵌入式网络管理系统和方法 | |
CN110196843A (zh) | 一种基于容器集群的文件分发方法及容器集群 | |
CN103095826A (zh) | 一种网关设备升级保护的方法 | |
CN105468643A (zh) | 分布式文件系统的访问方法和系统 | |
CN1972276B (zh) | 一种协议访问管理方法和系统 | |
EP4083795A1 (en) | Method for deploying virtual machine, and related apparatus | |
CN103051478A (zh) | 一种大容量电信网管系统及其设置和应用方法 | |
CN102982033A (zh) | 小文件的存储方法及系统 | |
CN112073499A (zh) | 一种多机型云物理服务器的动态服务方法 | |
CN100488128C (zh) | 一种客服系统参数的动态修改方法及其系统 | |
CN111183622A (zh) | 区块链系统、信息共享方法及相关设备 | |
WO2017128820A1 (zh) | 一种虚拟化网络功能的管理方法、网络设备及系统 | |
CN101193148A (zh) | 手机的个人信息管理方法 | |
CN103986740A (zh) | 一种支持多终端应用的永远在线架构的方法及设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111130 Termination date: 20141212 |
|
EXPY | Termination of patent right or utility model |