公开/公告号CN103544319A
专利类型发明专利
公开/公告日2014-01-29
原文格式PDF
申请/专利权人 浪潮(北京)电子信息产业有限公司;
申请/专利号CN201310544688.5
申请日2013-11-06
分类号G06F17/30(20060101);
代理机构11262 北京安信方达知识产权代理有限公司;
代理人王丹;栗若木
地址 100085 北京市海淀区上地信息路2号2-1号C栋1层
入库时间 2024-02-19 22:01:39
法律状态公告日
法律状态信息
法律状态
2016-09-21
授权
授权
2014-03-12
实质审查的生效 IPC(主分类):G06F17/30 申请日:20131106
实质审查的生效
2014-01-29
公开
公开
技术领域
本发明涉及云计算技术领域,尤其涉及的是一种多租户共享数据库的方 法和多租户数据库即服务DBaaS(Database as a Service)系统。
背景技术
随着云计算技术的发展,传统软件层次栈中的操作系统、中间件和应用 纷纷在云中找到了位置,出现了基础设施即服务(IaaS)、平台即服务(PaaS) 和软件即服务(SaaS)模式。实际上,承载信息的数据库也非常适合构建在 云数据中心。传统数据库托管服务以物理机为单位部署租户的数据库,随着 应用的深入,暴露出资源利用不均衡和维护管理困难等问题。以数据库即服 务(Database as a Service,DBaaS)模式将各租户的数据库集中托管起来, 通过共享服务器实现资源的优化利用,降低软硬件成本和维护管理开销,是 解决上述问题的理想方案。
在多个租户数据库之间共享服务器以提高系统资源利用率是DBaaS模 式的核心追求。现有的共享数据库方案使多个租户的数据库共存在同一台服 务器的同一数据库引擎上,虽然能够提高资源的利用率,但租户数据库的性 能隔离得不到保障,某些租户的请求负载可能占用大部分系统资源,造成资 源劫持。。
因此,现有的多租户数据库即服务DBaaS系统中,租户之间互相影响, 租户的性能需求没有得到有力地保障。
发明内容
本发明所要解决的技术问题是提供一种多租户共享数据库的方法和多 租户数据库即服务DBaaS系统,能够实现租户之间的性能隔离,保障租户的 性能需求。
为了解决上述技术问题,本发明提供了一种多租户数据库即服务系统, 该系统包括:
应用层模块,用于接收客户端的指令,在应用层建立和维护租户的逻辑 数据库信息,向数据管理层模块发送第一指令;
数据管理层模块,用于根据所述第一指令建立和维护应用层的逻辑数据 库信息到基础设施层的物理数据库实例信息的映射,向基础设施层模块发送 第二指令;
基础设施层模块,用于根据所述第二指令的指示基于虚拟机创建基础设 施层的物理数据库实例,或者根据所述第二指令的指示对所述物理数据库实 例进行数据操作。
进一步地,该系统还包括下述特点:
所述物理数据库实例信息包括以下信息的一种或多种:物理数据库实例 的IP地址、物理数据库实例的端口、物理数据库实例标识、租户标识、物理 数据库实例密码或宿主虚拟机信息。
进一步地,该系统还包括下述特点:
所述第一指令,包括以下指令的任意一种:创建物理数据库实例、删除 物理数据库实例、存储数据或查询数据。
进一步地,该系统还包括下述特点:
数据管理层模块,用于接收到应用层模块发送的创建物理数据库实例的 第一指令后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数据 库实例信息的映射,包括:
根据基础设施层物理服务器资源的空闲程度,优先在空闲程度高的物理 服务器上创建虚拟机;
根据租户的逻辑数据库信息在虚拟机上创建物理数据库实例;
保存创建的物理数据库实例与租户的逻辑数据库的映射关系。
进一步地,该系统还包括下述特点:
数据管理层模块,用于接收到应用层模块发送的查询/存储数据的第一指 令后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数据库实例 信息的映射,包括:
根据租户的逻辑数据库信息选择物理数据库实例列表,父线程根据所述 映射关系选择逻辑数据库对应的物理数据库实例,针对每个物理数据库实例 启动一个子进行线程数据查询/存储。
进一步地,该系统还包括下述特点:
所述映射的类型包括:哈希路由映射或二分查找路由映射。
进一步地,该系统还包括下述特点:
租户的逻辑数据库基于关系模型建立,包括以下元数据信息的一种或多 种:租户信息、数据库描述信息、数据表描述信息、数据表结构信息或数据 表关系信息。
为了解决上述技术问题,本发明还提供了一种多租户共享数据库的方 法,该方法包括:
应用层模块接收客户端的指令,在应用层建立和维护租户的逻辑数据库 信息,向数据管理层模块发送第一指令;
数据管理层模块根据所述第一指令建立和维护应用层的逻辑数据库信 息到基础设施层的物理数据库实例信息的映射,向基础设施层模块发送第二 指令;
基础设施层模块根据所述第二指令的指示基于虚拟机创建基础设施层 的物理数据库实例,或者根据所述第二指令的指示对所述物理数据库实例进 行数据操作。
进一步地,该方法还包括下述特点:
所述物理数据库实例信息包括以下信息的一种或多种:物理数据库实例 的IP地址、物理数据库实例的端口、物理数据库实例标识、租户标识、物理 数据库实例密码或宿主虚拟机信息。
进一步地,该方法还包括下述特点:
所述第一指令,包括以下指令的任意一种:创建物理数据库实例、删除 物理数据库实例、存储数据或查询数据。
进一步地,该方法还包括下述特点:
数据管理层模块接收到应用层模块发送的创建物理数据库实例的第一 指令后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数据库实 例信息的映射,包括:
根据基础设施层物理服务器资源的空闲程度,优先在空闲程度高的物理 服务器上创建虚拟机;
根据租户的逻辑数据库信息在虚拟机上创建物理数据库实例;
保存创建的物理数据库实例与租户的逻辑数据库的映射关系。
进一步地,该方法还包括下述特点:
数据管理层模块接收到应用层模块发送的查询/存储数据的第一指令后, 建立和维护应用层的逻辑数据库信息到基础设施层的物理数据库实例信息 的映射,包括:
根据租户的逻辑数据库信息选择物理数据库实例列表,父线程根据所述 映射关系选择逻辑数据库对应的物理数据库实例,针对每个物理数据库实例 启动一个子线程进行数据查询。
进一步地,该方法还包括下述特点:
所述映射的类型包括:哈希路由映射或二分查找路由映射。
进一步地,该方法还包括下述特点:
租户的逻辑数据库基于关系模型建立,包括以下元数据信息的一种或多 种:租户信息、数据库描述信息、数据表描述信息、数据表结构信息或数据 表关系信息。
与现有技术相比,本发明提供的一种多租户共享数据库的方法和多租户 数据库即服务DBaaS系统,通过将各租户对逻辑数据库的操作转换为对虚拟 机上的物理数据库实例的虚拟化操作,能够实现租户之间的性能隔离,保障 租户的性能需求。
附图说明
图1为本发明实施例的一种多租户数据库即服务系统的结构示意图。
图2为本发明实施例的一种多租户数据库即服务系统的详细结构示意 图。
图3为本发明实施例的一种多租户共享数据库的方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图 对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申 请中的实施例及实施例中的特征可以相互任意组合。
为保障多租户数据库即服务DBaaS系统中租户的性能需求,基于虚拟机 技术,如VMware、Xen等,能够将物理服务器系统资源(CPU时间、内存 容量和I/O带宽等)按比例分配给互不干扰的虚拟机,通过关系模型实现各 租户的逻辑数据库表示,将逻辑数据库操作映射到虚拟机上的物理数据库操 作,能够实现租户之间的性能隔离。
如图1所示,本发明实施例提供了一种基于虚拟机的多租户DBaaS系统, 包括应用层模块,数据管理层模块和基础设施层模块;其中,
应用层模块,用于接收客户端的指令,在应用层建立和维护租户的逻辑 数据库信息,向数据管理层模块发送第一指令;
数据管理层模块,用于根据所述第一指令建立和维护应用层的逻辑数据 库信息到基础设施层的物理数据库实例信息的映射,向基础设施层模块发送 第二指令;
基础设施层模块,用于根据所述第二指令的指示基于虚拟机创建基础设 施层的物理数据库实例,或者根据所述第二指令的指示对所述物理数据库实 例进行数据操作。
图2示出了一种多租户DBaaS系统。其中,数据管理层模块通过应用层 与数据管理层之间的接口(1)接收应用层发送的数据操作指令,在进行解 析和处理后通过数据管理层与基础设施层之间的接口(3)发送给基础设施 层进行物理数据库的操作;数据管理层模块通过应用层与数据管理层之间的 接口(2)获得租户在应用层的逻辑数据库信息,以指示基础设施层模块创 建物理数据库实例;数据管理层模块通过数据管理层与基础设施层之间的接 口(3)获得基础设施层的物理数据库实例信息;
图2中,设备集群是指承载各种计算、存储和网络物理设备集合,也称 为物理资源池。虚拟机是指从物理资源池中划分出一部分资源形成的虚拟设 备。物理数据库实例是指应用层逻辑数据库的物理实现,依托于在虚拟机上 部署、运行的数据库管理系统或数据库引擎,由物理数据模型(表、字段等) 构成。一个租户的逻辑数据库可能需要多个物理数据库实例来实现,一个物 理数据库实例运行于一个虚拟机上。
上述多租户DBaaS系统,还可以具有以下的特点:
优选地,租户的逻辑数据库基于关系模型建立,可以包括以下元数据信 息的一种或多种:租户信息、数据库描述信息、数据表描述信息、数据表结 构信息或数据表关系信息;
所述物理数据库实例基于虚拟机建立,可以包括以下信息的一种或多 种:物理数据库实例的IP地址、物理数据库实例的端口、物理数据库实例标 识、租户标识、物理数据库实例密码或宿主虚拟机信息;
应用层的逻辑数据库信息到基础设施层的物理数据库实例信息的映射 信息,可以包括以下信息:租户的逻辑数据库标识、物理数据库实例标识和 映射规则。
其中,一个逻辑数据库可以包括多张数据表,数据表之间的引用关系记 录于数据表关系信息中。租户的逻辑数据库标识可以包含租户的标识,比如, 租户的逻辑数据库标识记为“租户标识_逻辑数据库名”;比如,若租户A 建立了逻辑数据库a,则该逻辑数据库命名为“A_a”,若租户B建立了逻 辑数据库b,则该逻辑数据库命名为“B_b”;
优选地,所述第一指令,包括以下指令的任意一种:创建物理数据库实 例、删除物理数据库实例、存储数据或查询数据。
优选地,数据管理层模块接收到应用层模块发送的创建物理数据库实例 的第一指令后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数 据库实例信息的映射,包括:
根据基础设施层物理服务器资源的空闲程度,优先在空闲程度高的物理 服务器上创建虚拟机;
根据租户的逻辑数据库信息在虚拟机上创建物理数据库实例;
保存创建的物理数据库实例与租户的逻辑数据库的映射关系。
优选地,数据管理层模块接收到应用层模块发送的查询数据的第一指令 后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数据库实例信 息的映射,包括:
根据租户的逻辑数据库信息选择物理数据库实例列表,父线程根据数据 库映射规则选择逻辑数据库对应的物理数据库实例,针对每个物理数据库实 例启动一个子线程进行数据查询,父线程合并查询结果并返回;
优选地,数据管理层模块接收到应用层模块发送的存储数据的第一指令 后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数据库实例信 息的映射,包括:
根据租户的逻辑数据库信息选择物理数据库实例列表,父线程根据数据 库映射规则选择逻辑数据库对应的物理数据库实例,针对每个物理数据库实 例启动一个子进行线程数据存储;
其中,所述映射的类型包括:哈希(Hash)路由映射或二分查找路由映 射;
优选地,数据管理层模块还建立、维护物理数据库连接池;数据管理 层模块接收到应用层模块通过JDBC(Java Data Base Connectivity,Java数据 库连接)驱动发送的第一指令后,从物理数据库连接池中选择一个连接使用, 从而节省物理连接的建立开销;
优选地,数据管理层模块还建立、维护客户端连接池;数据管理层模 块接收到应用层模块通过JDBC驱动发送的第一指令后,从客户端连接池中 选择一个连接使用,从而节省线程的创建开销。
如图3所示,本发明实施例提供了一种多租户共享数据库的方法,该方 法包括:
S10,应用层模块接收客户端的指令,在应用层建立和维护租户的逻辑 数据库信息,向数据管理层模块发送第一指令;
S20,数据管理层模块根据所述第一指令建立和维护应用层的逻辑数据 库信息到基础设施层的物理数据库实例信息的映射,向基础设施层模块发送 第二指令;
S30,基础设施层模块根据所述第二指令的指示基于虚拟机创建基础设 施层的物理数据库实例,或者根据所述第二指令的指示对所述物理数据库实 例进行数据操作;
其中,所述多租户共享数据库的方法,还可以包括下述特点:
优选地,租户的逻辑数据库基于关系模型建立,可以包括以下元数据信 息的一种或多种:租户信息、数据库描述信息、数据表描述信息、数据表结 构信息或数据表关系信息;
所述物理数据库实例基于虚拟机建立,可以包括以下信息的一种或多 种:物理数据库实例的IP地址、物理数据库实例的端口、物理数据库实例标 识、租户标识、物理数据库实例密码或宿主虚拟机信息;
应用层的逻辑数据库信息到基础设施层的物理数据库实例信息的映射 信息,包括以下信息:租户的逻辑数据库标识、物理数据库实例标识和映射 规则。
优选地,所述第一指令,包括以下指令的任意一种:创建物理数据库实 例、删除物理数据库实例、存储数据或查询数据;
数据管理层模块接收到应用层模块发送的创建物理数据库实例的第一 指令后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数据库实 例信息的映射,包括:
根据基础设施层物理服务器资源的空闲程度,优先在空闲程度高的物理 服务器上创建虚拟机;
根据租户的逻辑数据库信息在虚拟机上创建物理数据库实例;
保存创建的物理数据库实例与租户的逻辑数据库的映射关系。
优选地,数据管理层模块接收到应用层模块发送的查询数据的第一指令 后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数据库实例信 息的映射,包括:
根据租户的逻辑数据库信息选择物理数据库实例列表,父线程根据数据 库映射规则选择逻辑数据库对应的物理数据库实例,针对每个物理数据库实 例启动一个子线程进行数据查询,父线程合并查询结果并返回;
优选地,数据管理层模块接收到应用层模块发送的存储数据的第一指令 后,建立和维护应用层的逻辑数据库信息到基础设施层的物理数据库实例信 息的映射,包括:
根据租户的逻辑数据库信息选择物理数据库实例列表,父线程根据数据 库映射规则选择逻辑数据库对应的物理数据库实例,针对每个物理数据库实 例启动一个子线程进行数据存储;
其中,所述映射的类型包括:哈希(Hash)路由映射或二分查找路由映 射;
优选地,数据管理层模块还建立、维护物理数据库连接池;数据管理 层模块接收到应用层模块通过JDBC(Java Data Base Connectivity,Java数据 库连接)驱动发送的第一指令后,从物理数据库连接池中选择一个连接使用, 从而节省物理连接的建立开销;
优选地,数据管理层模块还建立、维护客户端连接池;数据管理层模 块接收到应用层模块通过JDBC驱动发送的第一指令后,从客户端连接池中 选择一个连接使用,从而节省线程的创建开销。
上述实施例提供的一种多租户共享数据库的方法和多租户DBaaS系统, 通过对租户逻辑数据库信息的有效关系模型表示,将各租户对应用层的逻辑 数据库操作映射到基础设施层的虚拟机上的物理数据库操作,通过虚拟机承 载物理数据库实现高效地虚拟化转换,满足了各租户共享数据库时的性能隔 离。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程 序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只 读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使 用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采 用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于 任何特定形式的硬件和软件的结合。
需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及 其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变 和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范 围。
机译: 用于共享使用多租户按需数据库系统的租户存储的数据库的单个实例的系统,方法和计算机程序产品
机译: 用于共享使用多租户按需数据库系统的租户存储的数据库的单个实例的系统,方法和计算机程序产品
机译: 使用多租户按需数据库系统的租户共享存储数据库的单实例的系统,方法和计算机程序产品