一种利用Docker容器进行虚拟内存数据库存储的实现方法与流程

文档序号:12465766阅读:1254来源:国知局

本发明涉及虚拟存储设计技术领域,特别涉及一种利用Docker容器进行虚拟内存数据库存储的实现方法。



背景技术:

内存数据库是指在内存中直接进行数据的存储操作,是一种存放在内存中的数据库,它具有高效的访问效率,能够极大地提高数据处理能力。

数据库访问是从数据库中进行数据的存储操作,磁盘数据库存放数据的位置是物理磁盘中,程序访问磁盘的速度低,影响数据处理的效率。

要提高数据访问的效率,可以分为四个层次,一是减少对数据的访问,即减少磁盘的访问;二是返回更少的数据,即减少网络传输或磁盘访问;三是减少交互次数;四是减少服务器CPU的开销。

Docker是一个开源的容器引擎,Docker架构允许多个容器共享同一个内核的情况下完全隔离运行,它对于操作系统没有要求,可以实现轻量级的虚拟环境。Docker中容器停止后,对其中的操作会丢失,类似于内存的数据存储特性,且容器中数据存储相比磁盘速度高。

Docker具有简单、高效、快捷的迭代策略,能够将配置更新及时反映到生产环境中,具有高效的自动化管理能力。

现有技术下,针对物理磁盘中的内存数据库的处理效率受到限制。



技术实现要素:

为了解决现有技术的问题,本发明提供了一种利用Docker容器进行虚拟内存数据库存储的实现方法,其能够模拟内存数据库存储数据的同时,扩大了数据库的容量,提高了数据访问的效率。

本发明所采用的技术方案如下:

一种利用Docker容器进行虚拟内存数据库存储的实现方法,是在磁盘和物理内存之间构建Docker容器虚拟数据库,所述的Docker容器虚拟数据库内存有磁盘数据库中对应的数据副本,所述的副本包含实际数据经常访问的信息,用户通过程序直接访问Docker容器虚拟数据库中的数据副本。

Docker容器虚拟数据库分为高频访问数据层、固定访问数据层和索引层三层结构,用户访问数据时,逐层进行遍历,索引层中对应磁盘数据库相应数据的索引,在上面两层遍历无果时,进行磁盘数据库访问。

用户访问Docker容器虚拟数据库的速度介于物理内存访问和磁盘访问之间。

本发明是采用Docker容器方式在磁盘与物理内存之间构建一个虚拟环境,将存储在磁盘上的数据库进行映射,程序可以访问虚拟数据库中的数据资源,访问速度介于内存访问和磁盘访问之间,扩大了数据库存储的容量。

本发明提供的技术方案带来的有益效果是:

利用Docker容器在内存与磁盘交互的中间层构建一个虚拟环境,简称虚拟数据库,该数据库中存有磁盘数据库对应的数据简易副本,该副本包含实际数据经常访问的信息,用户可以通过程序直接访问虚拟数据库中的数据,同时,将虚拟数据库进行分层管理,分为高频访问数据层、固定访问数据层和索引层三层结构。用户访问数据时,逐层进行遍历。索引层中对应磁盘数据库相应数据的索引,在上面两层遍历无果时,进行磁盘数据库访问,通过此过程,模拟内存数据库存储数据的同时,扩大了数据库的容量,提高了数据访问的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的一种利用Docker容器进行虚拟内存数据库存储的实现方法的实现原理图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

实施例一

如附图1所示,使用Docker创建一个虚拟内存环境,该环境中保存磁盘数据库中的数据副本,该环境类似于Cache作用,称为Docker容器虚拟数据库。采用容器配置文件配置容器,将虚拟数据库进行分层处理,分为高频访问数据层、固定访问数据层和索引层三层。

高频访问数据层中包含程序最常访问的数据副本,通过磁盘调度算法进行该层数据的填充操作;固定数据访问层是某一程序固定访问的数据层,例如系统登录程序固定访问用户数据等。索引层是虚拟数据库与磁盘数据库之间的映射层,当上两层没有对应的数据资源时,通过索引层进行磁盘数据的访问。

依据“最长时间未访问则替换”的原则,当高频访问层中的数据需要进行替换时,则查找该层最长时间未访问的数据元组,进行替换;设置替换的元组数量,可以进行批量的替换。替换原则、替换数目等属性可以通过容器配置文件进行设置。

用户访问数据时,逐层进行遍历。索引层中对应磁盘数据库相应数据的索引,在上面两层遍历无果时,最终进行磁盘数据库访问。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1