[发明专利]一种区块链节点的内存管理方法和装置在审
申请号: | 202110810593.8 | 申请日: | 2021-07-19 |
公开(公告)号: | CN113326141A | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 张锦喜;梁增健;陈胜俭;陈志伟 | 申请(专利权)人: | 广东卓启云链科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F16/24;G06F16/27 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 沈闯 |
地址: | 518000 广东省深圳市南山区沙河街*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 节点 内存 管理 方法 装置 | ||
本申请公开了一种区块链节点的内存管理方法和装置,其中方法包括:获取数据查询请求;根据所述数据查询请求,获取待查询区块数据;当判断到所述区块链节点的内存中存在所述待查询区块数据时,从所述内存中读取所述待查询区块数据;当判断到所述内存当前的第一可用内存容量小于预设内存阈值时,对所述内存进行内存回收。改善了现有区块链节点的内存管理方法存在内存使用超标或数据的查询速度较慢的技术问题。
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链节点的内存管理方法和装置。
背景技术
随着计算机技术的发展,区块链技术因其去中心化、开放性、信息不可篡改等特征,得到了广泛应用。
区块链技术中,运行区块链程序的区块链节点往往需要查询本地数据,然而由于查询数据的随机性,区块链节点无法确定使用最频繁的数据是哪些。因此,现有区块链节点的内存管理方法,要么将整条区块链的数据全部添加到内存,要么是在查询某个数据时才从硬盘添加到内存。如此,导致内存使用超标或数据的查询速度较慢。
发明内容
本申请提供了一种区块链节点的内存管理方法和装置,通过对区块链节点的内存管理,在快速查询数据的基础上,避免了内存的超标使用,部分解决了现有区块链节点的内存管理方法存在内存使用超标或数据的查询速度较慢的技术问题。
有鉴于此,本申请第一方面提供了一种区块链节点的内存管理方法,包括:
获取数据查询请求;
根据所述数据查询请求,获取待查询区块数据;
当判断到所述区块链节点的内存中存在所述待查询区块数据时,从所述内存中读取所述待查询区块数据;
当判断到所述内存当前的第一可用内存容量小于预设内存阈值时,对所述内存进行内存回收。
可选地,所述当判断到所述内存当前的第一可用内存容量小于预设内存阈值时,对所述内存进行内存回收,具体包括:
当判断到所述内存当前的第一可用内存容量小于预设内存阈值时,根据内存回收顺序,确定当前次内存回收时对应的内存回收方式;
根据所述内存回收方式对所述内存进行内存回收。
可选地,所述内存回收顺序为:向前回收和向后回收交替进行。
可选地,所述根据所述数据查询请求,获取待查询区块数据,具体包括:
解析所述数据查询请求,得到待查询哈希值;
根据所述待查询哈希值,基于待查询区块数据和待查询哈希值的对应关系,获取所述待查询哈希值对应的待查询区块数据。
可选地,所述哈希值为所述待查询区块数据的数据内容和所述待查询区块数据在所述内存中的最新更新时间。
可选地,所述内存管理方法还包括:
在所述区块链节点执行初始化操作时,获取所述内存当前的第二内存容量;
获取所述区块链节点中运行的区块链程序的当前区块大小;
根据所述第二内存容量和所述当前区块大小的大小关系,将所述区块链中的区块数据读入至所述内存中;
根据所述区块数据读入至所述内存中的时间,更新所述区块数据在所述内存中的更新时间。
可选地,所述根据所述第二内存容量和当前区块大小的大小关系,将所述区块链中的区块数据读入至所述内存中,具体包括:
判断所述第二内存容量是否大于所述当前区块大小,若是,则将所述区块链的全部区块数据读入到所述内存中,若否,则从所述区块链的末端开始,将所述区块链中的部分区块数据读入到所述内存中,直至所述区块链的可用内存容量不足以读入新的区块。
可选地,所述内存管理方法还包括:
获取数据添加请求;
解析所述数据添加请求,得到待添加区块数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东卓启云链科技有限公司,未经广东卓启云链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110810593.8/2.html,转载请声明来源钻瓜专利网。