[发明专利]一种数据存储方法和装置在审
申请号: | 201810804363.9 | 申请日: | 2018-07-20 |
公开(公告)号: | CN109144891A | 公开(公告)日: | 2019-01-04 |
发明(设计)人: | 王洋 | 申请(专利权)人: | 新华三技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F16/22 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 310052 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 操作系统 数据存储 键值数据库 回收 预留 方法和装置 可用 释放 申请 内存消耗 信息确定 信息通知 归类 获知 存储 | ||
本申请提供一种数据存储方法和装置,该方法包括:获取键值数据库释放的第一数量个可用内存页;将所述第一数量个可用内存页归类为回收内存页或预留内存页;将所述回收内存页的信息通知给操作系统,以使所述操作系统根据所述回收内存页的信息确定所述回收内存页已经被所述键值数据库释放;根据所述预留内存页,对待存入所述键值数据库的数据进行存储。通过本申请的技术方案,操作系统能够获知被释放的内存页,并使用这些回收内存页进行非LMDB业务的处理,减少内存消耗。可以使用预留内存页进行数据存储,不需要从操作系统申请内存页,减少与操作系统的交互次数,提高数据存储性能。
技术领域
本申请涉及存储技术领域,尤其是涉及一种数据存储方法和装置。
背景技术
Key-Value(键值)数据库是目前使用最广泛的数据库,可以通过唯一标识来对数据进行存储、读取和管理。Key-Value数据库的存储结构可以为树结构或者哈希结构,且可以包括LMDB(Lighting Memory-mapped DataBase,内存映射数据库)。
Key-Value数据库可以使用COW(Copy-On-Write,写时拷贝)机制来提供并发保护,由于COW机制的读写性能较高,从而提高数据存储的并发性,并且可以达到减少空间占用的目的。
Key-Value数据库通常设置在内存中,若通过Key-Value数据库存储数据文件A,则数据文件A会占用大量内存页,这些内存页在数据文件A被删除时才会被释放,由于内存资源有限,因此上述方式会导致大量的内存消耗。
发明内容
本申请提供一种数据存储方法和装置,用于使操作系统尽快获知被释放的内存资源,从而减少内存消耗,并且可以减少交互过程,提高数据存储性能。
第一方面,本申请提供一种数据存储方法,所述方法包括:
获取键值数据库释放的第一数量个可用内存页;
将所述第一数量个可用内存页归类为回收内存页或预留内存页;
将所述回收内存页的信息通知给操作系统,以使所述操作系统根据所述回收内存页的信息确定所述回收内存页已经被所述键值数据库释放;
根据所述预留内存页,对待存入所述键值数据库的数据进行存储。
结合第一方面,在第一种可能的实现方式中,所述将所述第一数量个可用内存页归类为回收内存页或预留内存页,包括:
根据每个可用内存页的释放时间顺序,将所述第一数量个可用内存页中的第二数量个可用内存页确定为预留内存页;
将所述第一数量个可用内存页中除所述第二数量个预留内存页之外的第三数量个可用内存页确定为回收内存页;
其中,所述第二数量与第三数量之和为所述第一数量,所述第二数量为预先配置的存储经验值。
结合第一方面和第一种可能的实现方式,在第二种可能的实现方式中,网络设备包括的内存中配置预留队列和回收队列,所述预留队列用于存储预留内存页,所述回收队列用于存储回收内存页;所述将所述第一数量个可用内存页归类为回收内存页或预留内存页,包括:
在所述键值数据库释放第一数量个可用内存页时,将释放的所述第一数量个可用内存页添加到所述预留队列的尾部;
判断所述预留队列中可用内存页总数量是否大于第二数量;如果是,则从所述预留队列的顶部为起始,选取所述可用内存页总数量减第二数量个可用内存页,并将选取的可用内存页添加到所述回收队列;
将选取后所述预留队列中的第二数量个可用内存页确定为预留内存页;
将所述回收队列中的可用内存页确定为回收内存页;
其中,所述第二数量为预先配置的存储经验值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三技术有限公司,未经新华三技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810804363.9/2.html,转载请声明来源钻瓜专利网。