一种基于集的网络内存申请方法

著录项
  • CN201610204337.3
  • 20160331
  • CN105786625A
  • 20160720
  • 汉柏科技有限公司
  • G06F9/50
  • G06F9/50

  • 天津市滨海新区华苑产业区海泰西路18号西3楼104室
  • 中国,CN,天津(12)
  • 北京路浩知识产权代理有限公司
  • 李相雨
摘要
本发明提供的一种基于集的网络内存申请方法,方法包括:若第一设备中的第一应用程序向该第一设备中申请内存失败,则第一应用程序向第一设备发送申请网络内存的第一请求,第一设备根据第一请求向集中的主设备发送第二请求,主设备为获知集中每一设备的内存使用信息的设备;主设备根据网络内存申请信息,确定当前集中的内存使用信息小于预设值的至少一个第二设备;主设备向选定的一个第二设备转发第二请求;接收第二请求的第二设备根据第二请求中的网络内存申请信息分配网络内存,以使主设备将第二设备分配的网络内存信息转发至第一设备。大大提高集整体的内存使用效率。
权利要求

1.一种基于集的网络内存申请方法,其特征在于,集包括至少三个设备,每一设备运行有多个应用程序,所述方法包括:

若第一设备中的第一应用程序向该第一设备中申请内存失败,则所述第一应用程序向所述第一设备发送申请网络内存的第一请求,所述第一请求包括:第一应用程序标识和网络内存申请信息;

所述第一设备根据所述第一请求向所述集中的主设备发送第二请求,所述第二请求包括:第一设备标识、第一应用程序标识和网络内存申请信息;所述主设备为获知所述集中每一设备的内存使用信息的设备;

所述主设备根据所述网络内存申请信息,确定当前集中的内存使用信息小于预设值的至少一个第二设备;

所述主设备向选定的一个第二设备转发所述第二请求;

接收第二请求的第二设备根据所述第二请求中的网络内存申请信息分配网络内存,以使所述主设备将所述第二设备分配的网络内存信息转发至所述第一设备。

2.根据权利要求1所述的方法,其特征在于,接收第二请求的第二设备根据所述第二请求中的网络内存申请信息分配网络内存的步骤之后,所述方法还包括:

所述第二设备向所述主设备发送内存分配消息,所述网络内存信息包括:第一设备标识、第一应用程序的标识、网络内存分配信息和第二设备标识;

所述主设备将所述网络内存信息转发所述第一设备,以使所述第一设备中的第一应用程序使用所述第二设备分配的网络内存。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

在所述第一应用程序向所述网络内存写入数据时,所述第一应用程序向所述第一设备发送第一写数据请求,所述第一写数据请求包括:第一应用程序标识、网络内存标识和待写入数据;

所述第一设备根据所述第一写数据请求向第二设备发送第二写数据请求,所述第二写数据请求包括:第一设备标识、第一应用程序标识、网络内存标识和待写入数据;

所述第二设备接收第二写数据请求,以使所述第一设备中的第一应用程序向所述第二设备分配的网络内存写入数据。

6.根据权利要求3所述的方法,其特征在于,所述方法还包括:

若所述第二设备分配的网络内存中写入数据失败,则将写入数据失败信息发送至第一设备,所述第一设备将写入数据失败信息转发至所述第一应用程序,所述写入数据失败信息包括网络内存标识、写入失败信息。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

在所述第一应用程序从所述网络内存读取数据时,所述第一应用程序向所述第一设备发送第一读数据请求,所述第一读数据请求包括:第一应用程序标识和网络内存标识;

所述第一设备根据所述第一写数据请求向第二设备发送第二读数据请求,所述第二读数据请求包括:第一设备标识、第一应用程序标识和网络内存标识;

所述第二设备接收第二读数据请求,以使所述第一设备中的第一应用程序读取所述第二设备分配的网络内存中的数据。

7.根据权利要求4所述的方法,其特征在于,所述方法还包括:

若所述第二设备分配的网络内存中读取数据失败,则将读取数据失败信息发送至第一设备,所述第一设备将读取数据失败信息转发至所述第一应用程序,所述读取数据失败信息包括网络内存标识、读取失败信息。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

所述集中的每一设备周期性的向所述主设备发送每一设备的内存使用信息。

说明书
技术领域

本发明涉及网络内存申请领域,尤其涉及一种基于集的网络内 存申请方法。

集环境中的每个设备通常会运行不同的程序,这些程序对内存 的要求也是不一样的,可能会出现某个设备上内存使用率很高,而某 些设备上内存使用率很低。因此会出现在内存使用率很高的设备上的 某个程序申请内存时可能会导致申请失败,集网络中各个设备的内 存没有统一的管理和记录,导致集整体的内存使用效率低下。

针对现有技术的缺陷,本发明提出了解决上述技术问题的基于集 的网络内存申请方法,通过其他设备来避免内存申请失败的问题, 大大提高集整体的内存使用效率。

本发明提供一种基于集的网络内存申请方法,集包括至少三 个设备,每一设备运行有多个应用程序,所述方法包括:

若第一设备中的第一应用程序向该第一设备中申请内存失败,则 所述第一应用程序向所述第一设备发送申请网络内存的第一请求,所 述第一请求包括:第一应用程序标识和网络内存申请信息;

所述第一设备根据所述第一请求向所述集中的主设备发送第二 请求,所述第二请求包括:第一设备标识、第一应用程序标识和网络 内存申请信息;所述主设备为获知所述集中每一设备的内存使用信 息的设备;

所述主设备根据所述网络内存申请信息,确定当前集中的内存 使用信息小于预设值的至少一个第二设备;

所述主设备向选定的一个第二设备转发所述第二请求;

接收第二请求的第二设备根据所述第二请求中的网络内存申请信 息分配网络内存,以使所述主设备将所述第二设备分配的网络内存信 息转发至所述第一设备。

优选的,接收第二请求的第二设备根据所述第二请求中的网络内 存申请信息分配网络内存的步骤之后,所述方法还包括:

所述第二设备向所述主设备发送内存分配消息,所述网络内存信 息包括:第一设备标识、第一应用程序的标识、网络内存分配信息和 第二设备标识;

所述主设备将所述网络内存信息转发所述第一设备,以使所述第 一设备中的第一应用程序使用所述第二设备分配的网络内存。

优选的,所述方法还包括:

在所述第一应用程序向所述网络内存写入数据时,所述第一应用 程序向所述第一设备发送第一写数据请求,所述第一写数据请求包括: 第一应用程序标识、网络内存标识和待写入数据;

所述第一设备根据所述第一写数据请求向第二设备发送第二写数 据请求,所述第二写数据请求包括:第一设备标识、第一应用程序标 识、网络内存标识和待写入数据;

所述第二设备接收第二写数据请求,以使所述第一设备中的第一 应用程序向所述第二设备分配的网络内存写入数据。

优选的,所述方法还包括:

在所述第一应用程序从所述网络内存读取数据时,所述第一应用 程序向所述第一设备发送第一读数据请求,所述第一读数据请求包括: 第一应用程序标识和网络内存标识;

所述第一设备根据所述第一写数据请求向第二设备发送第二读数 据请求,所述第二读数据请求包括:第一设备标识、第一应用程序标 识和网络内存标识;

所述第二设备接收第二读数据请求,以使所述第一设备中的第一 应用程序读取所述第二设备分配的网络内存中的数据。

优选的,所述方法还包括:

所述集中的每一设备周期性的向所述主设备发送每一设备的内 存使用信息;

优选的,所述方法还包括:

若所述第二设备分配的网络内存中写入数据失败,则将写入数据 失败信息发送至第一设备,所述第一设备将写入数据失败信息转发至 所述第一应用程序,所述写入数据失败信息包括网络内存标识、写入 失败信息。

优选的,所述方法还包括:

若所述第二设备分配的网络内存中读取数据失败,则将读取数据 失败信息发送至第一设备,所述第一设备将读取数据失败信息转发至 所述第一应用程序,所述读取数据失败信息包括网络内存标识、读取 失败信息。

由上述技术方案可知,本发明提供一种集的网络内存申请方法, 通过将集中的设备内存使用信息发送到主设备中,将内存使用率较 低设备的内存与欲使用内存的应用程序关联起来,以使应用程序可以 使用网络上的内存,大大提高集整体的内存使用效率。

图1为本发明一实施例提供的集的网络内存申请方法的流程示 意图;

图2为本发明另一实施例提供的基于集的网络内存申请方法的 流程示意图;

图3为本发明另一实施例提供的基于集的网络内存申请方法的 流程示意图;

图4为本发明另一实施例提供的基于集的网络内存申请方法的 流程示意图;

图5为本发明一实施例提供的各个设备交互示意图。

下面结合附图和实施例,对本发明的具体实施方式作进一步详细 描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图1示出了本发明一实施例提供的基于集的网络内存申请方法 的流程示意图,如图1所示,本实施例的集包括至少三个设备,每 一设备运行有多个应用程序,所述方法包括:

101、若第一设备中的第一应用程序向该第一设备中申请内存失 败,则所述第一应用程序向所述第一设备发送申请网络内存的第一请 求,所述第一请求包括:第一应用程序标识和网络内存申请信息。

可以理解的是,集中的每台设备上都运行一个程序Net_Mem, 用来处理网络内存的管理、申请,第一设备发出的申请内存请求通过 程序Net_Mem发送到集网络中去,申请内存请求包含是由哪个程序 申请的,申请的内存容量等信息。

102、所述第一设备根据所述第一请求向所述集中的主设备发送 第二请求,所述第二请求包括:第一设备标识、第一应用程序标识和 网络内存申请信息;所述主设备为获知所述集中每一设备的内存使 用信息的设备。

可以理解的是,每个集都有一个主设备,主设备是通过选举出 来的,Net_Mem会随着系统启动而启动,并通过当前流行的zookeeper 方式进行选举,也就是在多个Net_Mem程序中间选择一个leader。这 一步是zookeeper保证的。主设备可以获知所述集中每一设备的内存 使用信息的设备。

103、所述主设备根据所述网络内存申请信息,确定当前集中的 内存使用信息小于预设值的至少一个第二设备。

可以理解的是,预设值的设定需要保证当前集中的内存使用信 息小于预设值的第二设备至少存在一个。

104、所述主设备向选定的一个第二设备转发所述第二请求。

105、接收第二请求的第二设备根据所述第二请求中的网络内存申 请信息分配网络内存,以使所述主设备将所述第二设备分配的网络内 存信息转发至所述第一设备。

上述方法将内存使用率最低设备的内存与网络内存申请请求的设 备关联起来,以完成网络内存的申请和分配,大大提高集整体的内 存使用效率。

图2示出了本发明另一实施例提供的基于集的网络内存申请方 法的流程示意图,如图2所示,步骤201、202、203、204与图1中的 步骤101、102、103、104相同,在此不再赘述,图2还包括:

205、接收第二请求的第二设备根据所述第二请求中的网络内存申 请信息分配网络内存。

206、所述第二设备向所述主设备发送内存分配消息,所述网络内 存信息包括:第一设备标识、第一应用程序的标识、网络内存分配信 息和第二设备标识。

207、所述主设备将所述网络内存信息转发所述第一设备,以使所 述第一设备中的第一应用程序使用所述第二设备分配的网络内存。

上述方法提供了网络内存申请消息回传的过程。实现了网络中内 存使用率较高的设备从内存使用率较低的设备中读取数据,提高了网 络中各个设备的内存使用率。

图3示出了本发明另一实施例提供的基于集的网络内存申请方 法的流程示意图,如图3所示,步骤301、302、303、304、305与图1 中的步骤101、102、103、104、105相同,在此不再赘述,图3还包 括:

306、在所述第一应用程序向所述网络内存写入数据时,所述第一 应用程序向所述第一设备发送第一写数据请求,所述第一写数据请求 包括:第一应用程序标识、网络内存标识和待写入数据。

307、所述第一设备根据所述第一写数据请求向第二设备发送第二 写数据请求,所述第二写数据请求包括:第一设备标识、第一应用程 序标识、网络内存标识和待写入数据。

308、所述第二设备接收第二写数据请求,以使所述第一设备中的 第一应用程序向所述第二设备分配的网络内存写入数据。

上述方法实现了网络中内存使用率较高的设备将数据写入到内存 使用率较低的设备中,提高了网络中各个设备的内存使用率。

图4示出了本发明另一实施例提供的基于集的网络内存申请方 法的流程示意图,如图4所示,步骤401、402、403、404、405与图1 中的步骤101、102、103、104、105相同,在此不再赘述,图4还包 括:

406、在所述第一应用程序从所述网络内存读取数据时,所述第一 应用程序向所述第一设备发送第一读数据请求,所述第一读数据请求 包括:第一应用程序标识和网络内存标识。

407、所述第一设备根据所述第一写数据请求向第二设备发送第二 读数据请求,所述第二读数据请求包括:第一设备标识、第一应用程 序标识和网络内存标识。

408、所述第二设备接收第二读数据请求,以使所述第一设备中的 第一应用程序读取所述第二设备分配的网络内存中的数据。

上述方法提供了写入数据失败的返回信息,提供了完善的写入机 制。

在本发明的另一个优选的实施例中,所述方法还包括图1未示出 的:

106、所述集中的每一设备周期性的向所述主设备发送每一设备 的内存使用信息;

上述方法中主设备可以获知各个时刻集网络中各个设备的内存 使用率的情况。

下面通过一个具体的例子对上述方法进行详细的说明,如图5所 示,假设设备A,设备B,设备C组成了一个集,它们之间可以通 过网络相互通信,如下图5所示。应用程序APP_1运行在设备A上

集中的每台设备上都运行一个程序Net_Mem,用来处理网络内 存的管理、申请。Net_Mem会随着系统启动而启动,并通过当前流行 的zookeeper方式进行选举,也就是在多个Net_Mem程序中间选择一 个leader。这一步是zookeeper保证的,Net_Mem在启动时可以添加 启动参数-t

当选举出leader后(比如图5中设备B中Net_Mem(leader)就是 leader),其他设备的Net_Mem程序动态的,每隔5秒,向leader汇报 本设备的内存使用情况。

当APP_1在设备A上申请内存失败后,APP_1向本设备的 Net_Mem(A)发出申请网络内存的请求,Net_Mem(A)则将请求发送给 Net_Mem(leader),因为其他Net_Mem每隔一定时间就向leader汇报本 设备的内存情况,因此leader可以轻松的判断,那个设备上的内存使 用率比较低。

当leader判断出某个设备上内存使用率比较低后,那么 Net_Mem(leader)就将原先的请求转发给该设备的Net_Mem,在此假设 是设备C的内存使用率最低

因此,消息是这样传递的:

APP_1->Net_Mem(A)->Net_Mem(leader)->Net_Mem(C)。

Net_Mem(C)收到请求后,申请出对应的内存,然后将消息(包括 设备C看到的内存地址,以及谁申请的内存,本设备是谁)通过 Net_Mem(leader)返回给Net_Mem(A),最终返回给APP_1。

通过上述的两次消息传递,就将Net_Mem(A)和Net_Mem(C),对 本次内存申请建立了关联。

APP_1收到网络内存申请成功的消息后,就可以使用这块内存了, 但是由于该内存并不是本设备的,所以后续对内存的操作都会发送给 本设备的Net_Mem(A),由它将具体的操作,以及操作的内容发送给 Net_Mem(C),最终由Net_Mem(C)对其设备C进行内存操作。

具体举例来说,申请内存时的消息:

APP_1->Net_Mem(A)->Net_Mem(leader)->Net_Mem(C)

消息内容:设备A的APP_1需要内存,大小是100M

申请内存返回的消息:

Net_Mem(C)->Net_Mem(leader)->Net_Mem(A)->APP_1

消息内容:内存地址是0x12345678,位于Net_Mem(C),是 Net_Mem(A)的APP_1申请的。

APP_1向内存写入数据时:

APP_1->Net_Mem(A)->Net_Mem(C)->Net_Mem(C)实际来写设 备C的内存

消息内容:APP_1(表明是该程序要读而不是其他程序),内存地 址(可能是0x12345678也可能是其他合法值),需要写入的内容。

当内存写入成功(失败)后,原路返回成功或失败的消息

APP_1从内存读数据时:

APP_1->Net_Mem(A)->Net_Mem(C)->Net_Mem(C)-> Net_Mem(C)实际来读设备C的内存

消息内容:APP_1(表明是该程序要读而不是其他程序),内存地 址,需要读的地址,需要读的大小。

当Net_Mem(C)读取内存成功后,将内存内容原路返回,如果读取 内存失败则返回失败。

本领域技术人员可以理解,可以对实施例中的设备中的模块进行 自适应性地改变并且把它们设置在于该实施例不同的一个或多个设备 中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组 件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这 样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用 任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所 有特征以及如此公开的任何方法或者设备的所有过程或单元进行组 合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图) 中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代 替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例 包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施 例的特征的组合意味着处于本发明的范围之内并且形成不同的实施 例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一 都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多 个处理器上运行的软件模块实现,或者以它们的组合实现。应该注意 的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本 领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实 施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对 权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件 或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样 的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适 当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些 装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第 二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

最后应说明的是:本领域普通技术人员可以理解:以上各实施例 仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施 例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其 依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部 分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相 应技术方案的本质脱离本发明权利要求所限定的范围。

本文发布于:2024-09-24 22:23:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/86128.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议