[发明专利]一种减少Buildrun消耗的方法及装置有效
申请号: | 202010220199.4 | 申请日: | 2020-03-25 |
公开(公告)号: | CN111538864B | 公开(公告)日: | 2023-03-31 |
发明(设计)人: | 王洋 | 申请(专利权)人: | 新华三技术有限公司合肥分公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/23 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 230001 安徽省合肥市高新区创*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 减少 buildrun 消耗 方法 装置 | ||
本申请提供一种减少Buildrun消耗的方法及装置,所述方法应用于索引服务模块中包括的管理模块,所述方法包括:接收多个获取指令,每个获取指令包括父节点的版本号以及子节点的标识;根据所述父节点的版本号,获取与所述父节点的版本号对应的树形结构;根据所述子节点的标识,从所述树形结构中,查找到与所述子节点的标识对应的子节点;获取所述子节点的地址信息,并将所述子节点的地址信息反馈至所述父节点。
技术领域
本申请涉及通信技术领域,尤其涉及一种减少Buildrun消耗的方法及装置。
背景技术
Buildrun具体是指将机器二进制配置数据逆向转化成人类易读的文本过程,也可指最终转化出的文本。
当前,当只读版本中的一个节点发生变化时,通常采用的方式为自底向上对每个节点进行写时拷贝(英文:Copy-on-write,简称:COW)处理。具体过程为:如图1所示的初始版本。父节点(Parent)与N个子节点(Child)连接。
当一个节点发生变化时,例如,对Child N进行修改,需要对Child N进行复制,进而触发对父节点的复制,如图2所示的父节点复制版本(图中虚所示)。可以理解的是,父节点记录着其到达各子节点的连接,如下表1所示。
表1父节点到达各子节点连接
其中,P1,P2,…,PN为Parent到达Child1,Child2,…,Child N的连接。
当子节点数量众多且对多个子节点进行更新时,复制多次父节点将导致消耗大量的存储空间。尤其是当用户配置版本数较多时,将产生版本个数*子节点个数的复制次数,而且,复制的过程中,大部分内容均为重复。
再者,由于每个父节点的大小是不确定的,其在内存中也占据着不同的长度,反复的申请释放后,可能造成内存碎片,浪费内存资源。
发明内容
有鉴于此,本申请提供了一种减少Buildrun消耗的方法及装置,实现了减少无效拷贝,降低存储空间的占用;同时,也减少了内存碎片的发生。
第一方面,本申请提供了一种减少Buildrun消耗的方法,该方法应用于索引服务模块中包括的管理模块,该方法包括:
接收获取指令,该获取指令包括父节点的版本号以及子节点的标识;
根据父节点的版本号,获取与父节点的版本号对应的树形结构;
根据子节点的标识,从树形结构中,查找到与子节点的标识对应的子节点;
获取子节点的地址信息,并将子节点的地址信息反馈至父节点。
结合第一方面,在第一种可能的实现方式中,该索引服务模块包括至少一个树形结构,每个树形结构与一个父节点的版本号对应,且每个树形结构包括的节点的大小固定。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,每个树形结构包括一个根节点、至少一个中间节点以及至少一个叶节点,至少1个中间节点分布在多层级中;
管理模块与每个树形结构包括的根节点连接,根节点与至少1个中间节点连接,至少1个中间节点与至少一个叶节点连接,至少一个叶节点与所述子节点连接。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,该方法还包括:
接收新增的父节点发送的创建指令,该创建指令包括父节点的版本号以及父节点的版本号对应的树形结构内容;
根据父节点的版本号,建立与父节点版本号之间的对应关系;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三技术有限公司合肥分公司,未经新华三技术有限公司合肥分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010220199.4/2.html,转载请声明来源钻瓜专利网。