您现在的位置: 首页 > 技术转让 > 一种基于容器的数据重分布方法及装置
一种基于容器的数据重分布方法及装置

一种基于容器的数据重分布方法及装置

  • 专利类型:发明专利
  • 有效期:2021-03-10至2023-03-10
  • 发布日期:2021-03-10
  • 技术成熟度:详情咨询
交易价格: ¥面议
  • 法律状态核实
  • 签署交易协议
  • 代办官方过户
  • 交易成功

专利推荐

  • 技术(专利)类型 发明专利
  • 申请号/专利号 201610072268.5 
  • 技术(专利)名称 一种基于容器的数据重分布方法及装置 
  • 项目单位
  • 发明人 李晖 陈梅 
  • 行业类别 人类生活必需品
  • 技术成熟度 详情咨询
  • 交易价格 ¥面议
  • 联系人 李先生
  • 发布时间 2021-03-10  
  • 01

    项目简介

    本发明公开了一种基于容器的数据重分布方法及装置,通过确定节点中每一个数据库容器的类型,将不符合所述节点的容器类型的数据库容器加入到待迁移队列中,确定待迁移的目标节点,并判断所述目标节点是否有足够资源运行待迁移队列中的数据库容器,当所述目标节点有足够资源时,将待迁移队列中的数据库容器迁移至所述目标节点,当所述目标节点无足够资源时,将所述数据库容器缓存于所述待迁移队列中。本发明针对不同类型的数据库容器,进行了数据库容器的迁移,优化容器中数据库服务的性能,有效提升容器中数据库服务的性能。

    展开
  • 02

    说明书

    技术领域
    本发明涉及计算机技术领域,尤其涉及一种基于容器的数据重分布方法及装置。
    背景技术
    目前,应用广泛的虚拟化技术包括以VMWare和微软的Virtual PC为代表的全虚拟化技术及以Xen为代表的半虚拟化技术。与上述技术相比,容器级虚拟化可以直接运行CPU指令,避免全虚拟化指令级模拟或即时编译造成的系统开销,同时也避免了半虚拟化和系统调用替换的复杂操作。因此,容器级虚拟化技术比传统虚拟化技术更轻量级,但是容器技术强制所有容器必须使用与宿主机相同的内核。现有技术中,以Docker为代表的Linux容器技术为云平台提供了更轻量级的虚拟化解决方案。Linux容器技术是一种内核虚拟化技术(即操作系统级虚拟化技术),它提供了轻量级的虚拟化解决方案。可以在一台主机上通过隔离进程和资源,同时提供多个虚拟环境(即容器)。每个容器都拥有自己的进程和独立的网络空间。从用户角度看,一个运行的容器与一台运行的主机无异。在Linux容器中可以运行各种应用服务,其中,数据库服务是最常见的也是最重要的应用服务,数据库服务按照应用领域可以划分为面向事务型任务的数据库(即OLTP型数据库)和面向分析型任务的数据库(即OLAP型数据库),现有技术中,一台Docker宿主机上大多同时运行着几个Linux容器,这些Linux容器包括OLTP型数据库容器和OLAP型数据库容器,由于不同类型的数据库对于线程运行的要求不同,几个Linux容器之间的线程运行机制上容易存在冲突,导致数据库服务的整体效率不高。
    发明内容
    本发明提供一种基于容器的数据重分布方法及装置,解决现有技术中不同类型的数据库对于线程运行的要求不同,几个Linux容器之间的线程运行机制上容易存在冲突,导致数据库服务的整体效率不高的技术问题。本发明的目的是通过以下技术方案实现的:一种基于容器的数据重分布方法,包括:确定节点中每一个数据库容器的类型;将不符合所述节点的容器类型的数据库容器加入到待迁移队列中,所述容器类型包括面向事务型任务的数据库和面向分析型任务的数据库;确定待迁移的目标节点,并判断所述目标节点是否有足够资源运行待迁移队列中的数据库容器,当所述目标节点有足够资源时,将待迁移队列中的数据库容器迁移至所述目标节点,当所述目标节点无足够资源时,将所述数据库容器缓存于所述待迁移队列中。前述基于容器的数据重分布方法,所述确定节点中每一个数据库容器的类型,包括:解析数据库容器对应的数据卷中的日志信息;根据执行更新操作和查询操作数目的比例及执行更新操作和查询操作消耗的时间,判断节点中数据库容器的类型。前述基于容器的数据重分布方法,所述根据执行更新操作和查询操作数目的比例及执行更新操作和查询操作消耗的时间,判断节点中数据库容器的类型,包括:当执行更新操作的比例高,且执行查询操作消耗的时间小于预设时间阈值时,判断出所述数据库容器的类型为面向事务型任务的数据库;当执行更新操作的比例低,且执行查询操作消耗的时间大于预设时间阈值时,判断出所述数据库容器的类型为面向分析型任务的数据库。前述基于容器的数据重分布方法,所述当所述目标节点有足够资源时,将待迁移队列中的数据库容器迁移至所述目标节点,包括:当所述目标节点有足够资源时,将待迁移队列中的数据库容器对应的Flocker数据卷迁移至所述目标节点。一种基于容器的数据重分布装置,包括:接收模块,用于接收数据查询请求;判断模块,用于判断所述数据查询请求对应的查询语句是否存在于缓存中;第一查询模块,用于当所述查询语句存在于缓存中时,更新所述查询语句的执行频率和时间戳,并从缓存中取出所述查询语句对应的数据集并返回;第二查询模块,用于当所述查询语句不存在于缓存中时,从数据库中获取所述查询语句对应的数据集,判断缓存的剩余空间大小是否小于特定阈值,当缓存的剩余空间大小小于所述特定阈值时,删除缓存中的数据,更新所述查询语句的执行频率和时间戳,将所述查询语句及所述查询语句对应的数据集添加进缓存中,并返回所述数据集,其中,删除的总数据量大于所述特定阈值;当缓存的剩余空间大小大于所述特定阈值时,更新所述查询语句的执行频率和时间戳,将所述查询语句及所述查询语句对应的数据集添加进缓存中,并返回所述数据集。前述基于容器的数据重分布装置,所述类型判断模块,包括:解析单元,用于解析数据库容器对应的数据卷中的日志信息;分析单元,用于根据执行更新操作和查询操作数目的比例及执行更新操作和查询操作消耗的时间,判断节点中数据库容器的类型。前述基于容器的数据重分布装置,所述分析单元,包括:第一分类子单元,用于当执行更新操作的比例高,且执行查询操作消耗的时间小于预设时间阈值时,判断出所述数据库容器的类型为面向事务型任务的数据库;第二分类子单元,用于当执行更新操作的比例低,且执行查询操作消耗的时间大于预设时间阈值时,判断出所述数据库容器的类型为面向分析型任务的数据库。前述基于容器的数据重分布装置,所述数据迁移模块,包括:目标确定单元,用于确定待迁移的目标节点,并判断所述目标节点是否有足够资源运行待迁移队列中的数据库容器;迁移执行单元,用于当所述目标节点有足够资源时,将待迁移队列中的数据库容器对应的Flocker数据卷迁移至所述目标节点;队列缓存单元,当所述目标节点无足够资源时,将所述数据库容器缓存于所述待迁移队列中。本发明的技术效果为:通过确定节点中每一个数据库容器的类型,将不符合所述节点的容器类型的数据库容器加入到待迁移队列中,确定待迁移的目标节点,并判断所述目标节点是否有足够资源运行待迁移队列中的数据库容器,当所述目标节点有足够资源时,将待迁移队列中的数据库容器迁移至所述目标节点,当所述目标节点无足够资源时,将所述数据库容器缓存于所述待迁移队列中。本发明针对不同类型的数据库容器,进行了数据库容器的迁移,优化容器中数据库服务的性能,有效提升容器中数据库服务的性能。
    附图说明
    图1为本发明实施例中在应用一种基于容器的数据重分布方法之前,两种类型的数据库容器在集群节点中的分布示意图;图2为本发明实施例提供的一种基于容器的数据重分布方法的流程图;图3为本发明实施例中在应用一种基于容器的数据重分布方法之后,两种类型的数据库容器在集群节点中的分布示意图;图4为本发明实施例提供的一种基于容器的数据重分布装置的结构示意图。
    具体实施方式
    为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。如图1所示,云平台上运行Linux容器的集群中有两个节点Node1和Node2,在这两个节点上分别运行着几个Linux容器,其中T代表OLTP型数据库容器(面向事务型任务的数据库),A代表OLAP型数据库容器(面向分析型任务的数据库)。本发明实施例提供了一种基于容器的数据重分布方法,在图1的基础上,将这两种执行不同任务的数据库容器转移到各自的节点上,让同一种任务类型的数据库容器运行在同一台节点或同一集群上,即将T类型容器全部迁移到Node 1节点中,A类型容器全部迁移到Node 2节点中,如图2所示,该方法包括:步骤201、确定节点中每一个数据库容器的类型;其中,由于每个正在运行的数据库容器,都有一个通过容器ID与它绑定的数据卷,该数据卷中存储了该数据库的数据、日志信息以及配置信息。步骤201可以包括:步骤201-1、解析数据库容器对应的数据卷中的日志信息;步骤201-2、根据执行更新操作和查询操作数目的比例及执行更新操作和查询操作消耗的时间,判断节点中数据库容器的类型。其中,当执行更新操作的比例高,且执行查询操作消耗的时间小于预设时间阈值时,判断出所述数据库容器的类型为OLTP型数据库容器;OLTP型数据库容器,其更新操作频繁,日志中更新操作的比例很高,且执行查询操作消耗的时间较短当执行更新操作的比例低,且执行查询操作消耗的时间大于预设时间阈值时,判断出所述数据库容器的类型为OLAP型数据库容器。OLAP型数据库容器,其更新操作非常少,但是由于其经常做复杂分析操作,需要执行大量JOIN操作和聚集操作,查询执行时间较长步骤202、将不符合所述节点的容器类型的数据库容器加入到待迁移队列中;其中,所述容器类型包括面向事务型任务的数据库和面向分析型任务的数据库。步骤203、确定待迁移的目标节点,并判断所述目标节点是否有足够资源运行待迁移队列中的数据库容器,当所述目标节点有足够资源时,将待迁移队列中的数据库容器迁移至所述目标节点,当所述目标节点无足够资源时,将所述数据库容器缓存于所述待迁移队列中。其中,当宿主机系统资源不足时会严重影响宿主机中的容器的执行效率,因此在宿主机资源不足时,应该执行容器数据迁移,但如果待迁移目标主机的资源不足,则待迁移的容器应该等待,以免由于资源竞争引起容器性能降低。将待迁移队列中的数据库容器迁移至所述目标节点,具体可以通过将待迁移队列中的数据库容器对应的Flocker数据卷迁移至所述目标节点实现,Flocker作为容器中的数据迁移的工具。Flocker是ClusterHQ公司的开源项目,它提供了容器数据卷管理以及多主机Docker集群管理功能。数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以在容器之间共享和重用,Flocker中的数据卷也称作数据集(dataset),它可以随着容器迁移到集群中的任何节点。Flocker项目的核心是Control Service,它提供一个简单的REST API,Flocker Control Service使用FlockerAPI管理集群中的节点,通过Flocker API,开发人员可以在多主机集群中部署多容器应用,在集群中迁移容器及其数据卷。本发明实施例提供的一种基于容器的数据重分布方法,通过确定节点中每一个数据库容器的类型,将不符合所述节点的容器类型的数据库容器加入到待迁移队列中,确定待迁移的目标节点,并判断所述目标节点是否有足够资源运行待迁移队列中的数据库容器,当所述目标节点有足够资源时,将待迁移队列中的数据库容器迁移至所述目标节点,当所述目标节点无足够资源时,将所述数据库容器缓存于所述待迁移队列中。本发明针对不同类型的数据库容器,进行了数据库容器的迁移,优化容器中数据库服务的性能,有效提升容器中数据库服务的性能,应用一种基于容器的数据重分布方法之后,两种类型的数据库容器在集群节点中的分布如图3所示,为图3中Node 1的所有容器进程设置更多的IO密集型线程可以提升该节点中OLTP型数据库服务的效率。对于OLAP型数据库服务,CPU需要执行大量的连接、聚集操作,而对于这种计算密集型任务,进程中的线程越多,导致进程内每个线程的执行时间短,影响数据分析效率。因此,理论上,为图3中Node2的所有容器进程设置更少的计算密集型线程可以提升该节点中OLAP型数据库服务的效率。本发明实施例还提供了一种基于容器的数据重分布装置,如图4所示,包括:类型判断模块410,用于确定节点中每一个数据库容器的类型;数据迁移调度模块420,用于将不符合所述节点的容器类型的数据库容器加入到待迁移队列中,所述容器类型包括面向事务型任务的数据库和面向分析型任务的数据库;数据迁移模块430,用于确定待迁移的目标节点,并判断所述目标节点是否有足够资源运行待迁移队列中的数据库容器,当所述目标节点有足够资源时,将待迁移队列中的数据库容器迁移至所述目标节点,当所述目标节点无足够资源时,将所述数据库容器缓存于所述待迁移队列中。其中,所述类型判断模块410,包括:解析单元411,用于解析数据库容器对应的数据卷中的日志信息;分析单元412,用于根据执行更新操作和查询操作数目的比例及执行更新操作和查询操作消耗的时间,判断节点中数据库容器的类型。所述分析单元412,包括:第一分类子单元4121,用于当执行更新操作的比例高,且执行查询操作消耗的时间小于预设时间阈值时,判断出所述数据库容器的类型为面向事务型任务的数据库;第二分类子单元4122,用于当执行更新操作的比例低,且执行查询操作消耗的时间大于预设时间阈值时,判断出所述数据库容器的类型为面向分析型任务的数据库。所述数据迁移模块430,包括:目标确定单元431,用于确定待迁移的目标节点,并判断所述目标节点是否有足够资源运行待迁移队列中的数据库容器;迁移执行单元432,用于当所述目标节点有足够资源时,将待迁移队列中的数据库容器对应的Flocker数据卷迁移至所述目标节点;队列缓存单元433,当所述目标节点无足够资源时,将所述数据库容器缓存于所述待迁移队列中。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

    展开

专利技术附图

< >

服务流程

过户资料

  • 买卖双方需提供资料
  • 平台提供
  • 过户后您将获得
  • 买家
  • 卖家
  • 公司
  • 企业营业执照
  • 企业营业执照

    专利注册证原件

  • 个人
  • 身份证

    个体户营业执照

  • 身份证

    专利注册证原件

  • 专利代理委托书

    转让申请书

    转让协议

  • 手续合格通知书

    专利证书

    专利利登记簿副本

安全保障

  • 品类齐全

    海量资源库,平台整合几十万闲置资源。
  • 交易保障

    完善的资金保障体系确保买卖双方资金安全。
  • 专人跟进

    专业交易顾问全程服跟进,确保交易流畅。
  • 快速响应

    专业在线/电话客服服务,快速响应贴心服务。
  • 售后无忧

    资质过硬,国内大知识产权服务平台。

在线客服

在线咨询

010-83278899

返回顶部