CN108829507A - 分布式数据库系统的资源隔离方法、装置和服务器 - Google Patents
分布式数据库系统的资源隔离方法、装置和服务器 Download PDFInfo
- Publication number
- CN108829507A CN108829507A CN201810288731.9A CN201810288731A CN108829507A CN 108829507 A CN108829507 A CN 108829507A CN 201810288731 A CN201810288731 A CN 201810288731A CN 108829507 A CN108829507 A CN 108829507A
- Authority
- CN
- China
- Prior art keywords
- tenant
- data
- business
- database instance
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Abstract
本发明实施例提出一种分布式数据库系统的资源隔离方法、装置和服务器。分布式数据库系统包括多个服务器,每个服务器上部署有多个容器,每个容器在所归属的服务器中占用预分配的资源,每个容器对应一个数据库实例,所述方法包括:接收来自所述分布式数据库系统外部的业务或租户的待处理请求;将待处理请求发送到为业务或租户分配的数据库实例;通过为业务或租户分配的各数据库实例对应的各容器处理待处理请求。本发明实施例可以通过为业务或租户分配的各数据库实例对应的容器处理该业务或租户的请求,能够将该请求按照业务或租户限定在对应的容器允许使用的服务器资源内部处理,实现对不同的业务或租户资源隔离。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种分布式数据库系统的资源隔离方法、装置和服务器。
背景技术
随着互联网业务及大数据技术的快速发展,要求数据库系统并发处理的数据量越来越大,存量数据也在持续增长。各厂商及企业设计和实现自己的分布式数据库系统。为了解决多业务使用同一套数据库系统带来的资源竞争问题,目前常见的方法是:为每一个业务(或者租户)单独部署一套独立的集群,通过集群物理上隔离不同业务之间的对硬件资源竞争,解决业务(或者租户)之间的资源分配和竞争问题。
但是,如果业务和集群数量接近1:1,运维管理成本高。特别是在业务种类比较多的场景下,大量的小集群管理难度大。并且,由于需要为每个集群单独分配物理机器,对小规模业务来说资源浪费严重。例如,在云上部署之后这种问题会更加突出,会加剧了云服务提供商的硬件投入。此外,集群之间完全隔离,不能相互访问。
因此,物理上隔离不同业务之间的对硬件资源竞争,容易导致管理运维成本上升以及机器资源利用效率不高。
发明内容
本发明实施例提供一种分布式数据库系统的资源隔离方法、装置和服务器,以解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种分布式数据库系统的资源隔离方法,所述分布式数据库系统包括多个服务器,每个服务器上部署有多个容器,每个容器在所归属的服务器中占用预分配的资源,每个容器对应一个数据库实例,所述方法包括:
接收来自所述分布式数据库系统外部的业务或租户的待处理请求;
将所述待处理请求发送到为所述业务或租户分配的数据库实例;
通过为所述业务或租户分配的各数据库实例对应的各容器处理所述待处理请求。
结合第一方面,本发明实施例在第一方面的第一种实现方式中,接收来自所述分布式数据库系统外部的业务或租户的待处理请求,包括:通过与业务或租户连接的代理接收来自所述业务或租户的待处理请求;
将所述待处理请求发送到为所述业务或租户分配的数据库实例,包括:通过所述代理从为所述业务或租户分配的各数据库实例中选择一个数据库实例,并向所选择的数据库实例发送所述待处理请求。
结合第一方面,本发明实施例在第一方面的第二种实现方式中,通过为所述业务或租户分配的各数据库实例对应的各容器处理所述待处理请求,包括:
数据库实例将收到的待处理请求转换为待执行计划;
获取待执行计划所涉及的待处理数据;
在为所述业务或租户分配的各数据库实例对应的各容器内部,按照所述待执行计划对所述待处理数据进行处理。
结合第一方面的第二种实现方式,本发明实施例在第一方面的第三种实现方式中,在为所述业务或租户分配的各数据库实例对应的各容器内部,按照所述待执行计划对所述待处理数据进行处理,包括:
数据库实例中的数据路由器根据待处理数据中的数据标签,确定待处理数据在为所述业务或租户分配的各数据库实例中的数据分布位置,所述数据标签用于标识所述待处理数据所属的业务或租户;
在所述数据分布位置对所述待处理数据执行读操作、写操作和修改操作中的至少一种或者任意组合。
结合第一方面、第一方面的第一种实现方式、第二种实现方式或第三种实现方式,本发明实施例在第一方面的第四种实现方式中,还包括:
如果均衡器监测到需要对数据库实例中的数据进行均衡,根据待均衡数据的数据标签确定待均衡数据所属的业务或租户的各数据库实例;
在待均衡数据所属的业务或租户的各数据库实例对应的容器之间,对所述待均衡数据进行迁移处理。
第二方面,本发明实施例提供了一种分布式数据库系统的资源隔离装置,所述分布式数据库系统包括多个服务器,每个服务器上部署有多个容器,每个容器在所归属的服务器中占用预分配的资源,每个容器对应一个数据库实例,所述装置包括:
接收模块,用于接收来自所述分布式数据库系统外部的业务或租户的待处理请求;
发送模块,用于将所述待处理请求发送到为所述业务或租户分配的数据库实例;
处理模块,用于通过为所述业务或租户分配的各数据库实例对应的各容器处理所述待处理请求。
结合第二方面,本发明实施例在第二方面的第一种实现方式中,所述接收模块还用于通过与业务或租户连接的代理接收来自所述业务或租户的待处理请求;
所述发送模块还用于通过所述代理从为所述业务或租户分配的各数据库实例中选择一个数据库实例,并向所选择的数据库实例发送所述待处理请求。。
结合第二方面,本发明实施例在第二方面的第二种实现方式中,所述处理模块包括:
计划转换子模块,用于数据库实例将收到的待处理请求转换为待执行计划;
数据获取子模块,用于获取待执行计划所涉及的待处理数据;
计划执行子模块,用于在为所述业务或租户分配的各数据库实例对应的各容器内部,按照所述待执行计划对所述待处理数据进行处理。
结合第二方面的第二种实现方式,本发明实施例在第二方面的第三种实现方式中,所述计划执行子模块还用于通过数据库实例中的数据路由器根据待处理数据中的数据标签,确定待处理数据在为所述业务或租户分配的各数据库实例中的数据分布位置,所述数据标签用于标识所述待处理数据所属的业务或租户;在所述数据分布位置对所述待处理数据执行读操作、写操作和修改操作中的至少一种或者任意组合。
结合第二方面、第二方面的第一种实现方式、第二种实现方式或第三种实现方式,本发明实施例在第二方面的第四种实现方式中,还包括:
均衡模块,用于如果均衡器监测到需要对数据库实例中的数据进行均衡,根据待均衡数据的数据标签确定待均衡数据所属的业务或租户的各数据库实例;在待均衡数据所属的业务或租户的各数据库实例对应的容器之间,对所述待均衡数据进行迁移处理。
第三方面,本发明实施例提供了一种服务器,所述服务器的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,服务器的结构中包括处理器和存储器,所述存储器用于存储支持服务器执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述服务器还可以包括通信接口,用于服务器与其他设备或通信网络通信。
第四方面,本发明实施例提供了计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:每个服务器上部署有多个容器,每个容器在所归属的服务器中占用预分配的资源,每个容器对应一个数据库实例,可以将分布式数据库系统外部的待处理请求发送到对应的第一数据库实例,以通过第一数据库实例对应的第一容器处理该请求。这样,能够将该请求限定在容器允许使用的服务器资源内部处理,实现资源隔离。
上述技术方案中的另一个技术方案具有如下优点或有益效果:将业务或租户的待处理请求发送到为业务或租户分配的数据库实例,通过为业务或租户分配的各数据库实例对应的容器处理该业务或租户的请求,能够将该请求按照业务或租户限定在对应的容器允许使用的服务器资源内部处理,实现对不同的业务或租户资源隔离。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1示出根据本发明一实施例的分布式数据库系统的资源隔离方法的流程图。
图2示出分布式数据库系统的一个服务器中容器划分的示意图。
图3示出分布式数据库系统的多个服务器的容器划分的示意图。
图4示出根据本发明一实施例的分布式数据库系统的资源隔离方法中通过代理转发请求的是示意图。
图5示出根据本发明另一实施例的分布式数据库系统的资源隔离方法的流程图。
图6示出根据本发明另一实施例的分布式数据库系统的资源隔离方法的流程图。
图7示出根据本发明一实施例的分布式数据库系统的资源隔离装置的结构框图。
图8示出根据本发明另一实施例的分布式数据库系统的资源隔离装置的结构框图。
图9示出根据本发明一实施例的服务器的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
图1示出根据本发明一实施例的分布式数据库系统的资源隔离方法的流程图。如图1所示,该分布式数据库系统的资源隔离方法可以包括以下步骤:
101、接收来自分布式数据库系统外部的业务或租户的待处理请求;
102、将所述待处理请求发送到为所述业务或租户分配的数据库实例;
103、通过为所述业务或租户分配的各数据库实例对应的各容器处理所述待处理请求。
本实施例中,所述分布式数据库系统可以包括多个服务器(Server),每个服务器上部署有多个容器(Container)。每个容器在所归属的服务器中占用预分配的资源。每个容器对应一个数据库实例。也就是说,预先将服务器的硬件资源划分为多个容器。每个数据库实例在运行时占用其对应的容器的所分配到的服务器资源。此外,可以为一个租户(或业务)预先分配一个或多个数据库实例,从而这个租户(或业务)的请求限定在为其分配的数据库实例的容器中处理。
作为服务器的物理机上的硬件资源包括但不限于CPU(Central ProcessingUnit,中央处理器)、内存、磁盘空间(DISK)、NIC(Network Interface Card,网卡)等。如图2所示,按需求将作为服务器的物理机上的硬件资源分配给不同的容器。容器之间按照配额共享服务器的硬件资源,数据库实例独享其对应的容器分配到的硬件资源。一个租户(或业务)的请求、计划等可能通过一个容器来执行,也可能通过分布在多个服务器上的多个容器来执行。租户(或业务)的请求包括但不限于对数据库的访问请求,对数据库中数据的读写、修改请求等。一个租户(或业务)的数据可以存储在为其分配的一个数据库实例对应的容器内,也可以分布式的存储在为其分配的多个数据库实例对应的容器内。
在一个示例中,如图3所示,可以将同一租户(或业务)对应的容器采用相同的标记来表示。本示例中的分布式数据库系统包括4个服务器,服务器_1、服务器_4中分别包括两个容器,服务器_2、服务器_3中分别包括三个容器。不同的容器标记分别对应不同的业务或租户。例如,容器_11表示业务S1对应的容器,容器_12表示租户S2对应的容器,容器_13表示租户S3对应的容器。业务S1对应的数据库实例S1-1、S1-2、S1-3分别分布在服务器_1、服务器_2、服务器_3的容器_11上。租户S2对应的数据库实例S2-2、S2-3、S2-4分别分布在服务器_2、服务器_3、服务器_4的容器_12上。租户S3对应的数据库实例S1-1、S1-2、S1-3分别分布在服务器_1、服务器_2、服务器_3、服务器_4的容器_13上。
在一种可能的实现方式中,步骤101包括:通过与业务或租户连接的代理接收来自所述业务或租户的待处理请求。
在一种可能的实现方式中,步骤102包括:通过所述代理从为所述业务或租户分配的各数据库实例中选择一个数据库实例,并向所选择的数据库实例发送所述待处理请求。
在本发明实施例中,可以为每个业务或租户分配独立的代理(Proxy)。例如,一个租户具有一个代理。这个代理能够获取属于该租户的所有的数据库实例的地址信息(例如数据库实例的IP地址和端口号)。然后,如果代理从该租户收到待处理请求,可以从该租户的多个数据库实例中选择一个,然后根据所选择的这个数据库实例的地址信息向这个数据库实例发送待处理请求。
其中,代理可以根据该租户的各数据库实例对应的容器的使用情况、该容器所在的服务器的资源状况等,来选择向哪个数据库实例发送待处理请求。待处理请求的类型包括但不限于读请求、写请求、修改请求、更新请求等。
如图4所示,在一个示例中,代理收到租户S2的请求后,可以获取为租户S2分配的多个数据库实例S2-2、S2-3、S2-4的地址。代理根据这些地址,将该请求分发到服务器_2、服务器_3和服务器_4中的数据库实例S2-2、S2-3、S2-4,由这些服务器中与这些数据库实例对应的容器_12处理这些请求。
本发明实施例的每个服务器上部署有多个容器,每个容器在所归属的服务器中占用预分配的资源,每个容器对应一个数据库实例,将业务或租户的待处理请求发送到为业务或租户分配的数据库实例,通过为业务或租户分配的各数据库实例对应的容器处理该业务或租户的请求,能够将该请求按照业务或租户限定在对应的容器允许使用的服务器资源内部处理,实现对不同的业务或租户资源隔离。
图5示出根据本发明另一实施例的分布式数据库系统的资源隔离方法的流程图。
与上述实施例的不同之处在于,如图5所示,该方法的步骤103包括:
步骤201、数据库实例将收到的待处理请求转换为待执行计划;
步骤202、获取待执行计划所涉及的待处理数据;
步骤203、在为所述业务或租户分配的各数据库实例对应的各容器内部,按照所述待执行计划对所述待处理数据进行处理。
在一种可能的实现方式中,步骤203包括:
数据库实例中的数据路由器根据待处理数据中的数据标签,确定待处理数据在为所述业务或租户分配的各数据库实例中的数据分布位置,所述数据标签用于标识所述待处理数据所属的业务或租户;
在所述数据分布位置对所述待处理数据执行读操作、写操作和修改操作中的至少一种或者任意组合。
在分布式数据库系统内部可以为不同的业务或租户的数据添加不同的数据标签(或称为标签前缀)。数据库实例中的数据路由器(DataRouter)可以根据数据标签保证业务或租户数据只落到预先分配好的数据库实例上。由该数据库实例对应的容器(Container)处理收到的数据。如果需要进行租户合并,只需要修改数据标签,即可完成租户合并。此外,执行引擎可以将待执行计划控制在这些容器中执行,以保证不侵占其他租户(或业务)的硬件资源。
例如,在需要执行某种运算时,数据库实例将收到的SQL(Structured QueryLanguage,结构化查询语言)请求转换为SQL执行计划,并获取执行该SQL执行计划所涉及的数据的分布位置和内容。数据的分布位置可以包括索引信息。以下为数据的索引信息和内容的一种示例:
/key_prefix/DataTag/table_prefix/…Value
其中,索引信息为“/key_prefix/DataTag/table_prefix/…”,内容为“Value”。索引信息中可以包括指向该数据的分布位置的“key_prefix”、“table_prefix”等信息,还可以包括用于区分该数据属于哪个租户(或业务)的“DataTag”。
例如,参见图4,对于某一租户S2的SQL执行计划为对一些进行读操作,根据该SQL执行计划的租户S2的标签确定该执行计划涉及的数据分布在数据库实例S2-2、S2-3、S2-4上。并且根据这些数据的索引信息,找到这些数据在这些数据库实例的具体位置,从这些位置读出数据。
图6示出根据本发明另一实施例的分布式数据库系统的资源隔离方法的流程图。
与上述实施例的不同之处在于,如图6所示,该方法还包括以下步骤:
301、如果均衡器监测到需要对数据库实例中的数据进行均衡,根据待均衡数据的数据标签确定待均衡数据所属的业务或租户的各数据库实例;
302、在待均衡数据所属的业务或租户的各数据库实例对应的容器之间,对所述待均衡数据进行迁移处理。
此外,均衡器(Rebalancer)可以检测服务器的资源状况,从而判断是否需要进行数据迁移。例如,如果确定需要对某一数据库实例的数据进行迁移,均衡器可以根据待均衡数据的数据标签来确定该数据库实例属于哪个租户。然后找到该租户的其他的数据库实例,向该租户的其他的数据库实例迁移数据。均衡器可以根据其他数据库实例对应的容器的实际使用状况,或所在服务器的资源情况等,来确定具体迁移到哪个数据库实例中。这样,可以保证某一租户(或业务)数据只在预先分配好的数据库实例对应的容器(Container)之间迁移。例如,参见图4,均衡器根据业务S的标签,控制租户S2的数据只能够在服务器_2、服务器_3、服务器_4的容器_12之间迁移。
本发明实施例在作为服务器的物理机上按需求为容器分配硬件资源,并且在分布式数据库系统的数据库级别,限定相应的数据库实例的数据只能分布到所分配的容器中。同时相应数据的读写、计算(例如属于同一租户(或业务)的标签相同的SQL请求、SQL执行计划等)也被数据库限定在所分配的容器中,从而达到在分布式数据库内部根据租户(或业务)等实施资源隔离的目的。换句话说,该方法从硬件资源、租户(或业务)SQL请求、数据、SQL执行计划等多维度实现了资源隔离,能够通过一套分布式数据库系统同时服务于多个租户(或业务)。
进一步地,对运维管理来说,依然可以运维管理一套服务器集群。而且,作为服务器的一个物理机中可以部署多个不同容量的容器,充分利用机器的硬件资源。
综上,本发明实施例的方法不仅实现了租户(或业务)之间在资源上的相互隔离,无需为每个租户(或业务)单独搭建集群,还有效降低了运维管理成本。此外,该方法还提供了更细粒度的资源分配,能够提高对单服务器的资源利用率。因此,该方法可以解决集群数量多,管理成本高,硬件资源利用率不高的问题,
举例而言,本发明实施例可以应用于百度分布式NewSQL数据库(NewSQLDatabase,NDB)中,解决分布式数据库系统中的多租户(或业务)共享集群资源隔离的问题。
图7示出根据本发明一实施例的分布式数据库系统的资源隔离装置的结构框图。如图7所示,该分布式数据库系统的资源隔离装置可以包括:
接收模块41,用于接收来自所述分布式数据库系统外部的业务或租户的待处理请求;
发送模块43,用于将所述待处理请求发送到为所述业务或租户分配的数据库实例;
处理模块45,用于通过为所述业务或租户分配的各数据库实例对应的各容器处理所述待处理请求。
其中,参见图3,分布式数据库系统可以包括多个服务器,每个服务器上部署有多个容器,每个容器在所归属的服务器中占用预分配的资源,每个容器对应一个数据库实例。
图8示出根据本发明另一实施例的分布式数据库系统的资源隔离装置的结构框图。在上述实施例的基础上,该分布式数据库系统的资源隔离装置中,所述接收模块41还用于通过与业务或租户连接的代理接收来自所述业务或租户的待处理请求;
所述发送模块43还用于通过所述代理从为所述业务或租户分配的各数据库实例中选择一个数据库实例,并向所选择的数据库实例发送所述待处理请求。
在一种可能的实现方式中,所述处理模块45包括:
计划转换子模块51,用于数据库实例将收到的待处理请求转换为待执行计划;
数据获取子模块53,用于获取待执行计划所涉及的待处理数据;
计划执行子模块55,用于在为所述业务或租户分配的各数据库实例对应的各容器内部,按照所述待执行计划对所述待处理数据进行处理。
在一种可能的实现方式中,所述计划执行子模块55还用于通过数据库实例中的数据路由器根据待处理数据中的数据标签,确定待处理数据在为所述业务或租户分配的各数据库实例中的数据分布位置,所述数据标签用于标识所述待处理数据所属的业务或租户;在所述数据分布位置对所述待处理数据执行读操作、写操作和修改操作中的至少一种或者任意组合。
在一种可能的实现方式中,该装置还包括:
均衡模块47,用于如果均衡器监测到需要对数据库实例中的数据进行均衡,根据待均衡数据的数据标签确定待均衡数据所属的业务或租户的各数据库实例;在待均衡数据所属的业务或租户的各数据库实例对应的容器之间,对所述待均衡数据进行迁移处理。
本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
图9示出根据本发明另一实施例的服务器的结构框图。如图9所示,该服务器包括:存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。所述处理器920执行所述计算机程序时实现上述实施例中的分布式数据库系统的资源隔离方法。所述存储器910和处理器920的数量可以为一个或多个。
该服务器还包括:
通信接口930,用于与外界设备进行通信,进行数据交互传输。
存储器910可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器910、处理器920和通信接口930独立实现,则存储器910、处理器920和通信接口930可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器910、处理器920及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。
本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述实施例中任一所述的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种分布式数据库系统的资源隔离方法,其特征在于,所述分布式数据库系统包括多个服务器,每个服务器上部署有多个容器,每个容器在所归属的服务器中占用预分配的资源,每个容器对应一个数据库实例,所述方法包括:
接收来自所述分布式数据库系统外部的业务或租户的待处理请求;
将所述待处理请求发送到为所述业务或租户分配的数据库实例;
通过为所述业务或租户分配的各数据库实例对应的各容器处理所述待处理请求。
2.根据权利要求1所述的方法,其特征在于,接收来自所述分布式数据库系统外部的业务或租户的待处理请求,包括:通过与业务或租户连接的代理接收来自所述业务或租户的待处理请求;
将所述待处理请求发送到为所述业务或租户分配的数据库实例,包括:通过所述代理从为所述业务或租户分配的各数据库实例中选择一个数据库实例,并向所选择的数据库实例发送所述待处理请求。
3.根据权利要求1所述的方法,其特征在于,通过为所述业务或租户分配的各数据库实例对应的各容器处理所述待处理请求,包括:
数据库实例将收到的待处理请求转换为待执行计划;
获取待执行计划所涉及的待处理数据;
在为所述业务或租户分配的各数据库实例对应的各容器内部,按照所述待执行计划对所述待处理数据进行处理。
4.根据权利要求3所述的方法,其特征在于,在为所述业务或租户分配的各数据库实例对应的各容器内部,按照所述待执行计划对所述待处理数据进行处理,包括:
数据库实例中的数据路由器根据待处理数据中的数据标签,确定待处理数据在为所述业务或租户分配的各数据库实例中的数据分布位置,所述数据标签用于标识所述待处理数据所属的业务或租户;
在所述数据分布位置对所述待处理数据执行读操作、写操作和修改操作中的至少一种或者任意组合。
5.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:
如果均衡器监测到需要对数据库实例中的数据进行均衡,根据待均衡数据的数据标签确定待均衡数据所属的业务或租户的各数据库实例;
在待均衡数据所属的业务或租户的各数据库实例对应的容器之间,对所述待均衡数据进行迁移处理。
6.一种分布式数据库系统的资源隔离装置,其特征在于,所述分布式数据库系统包括多个服务器,每个服务器上部署有多个容器,每个容器在所归属的服务器中占用预分配的资源,每个容器对应一个数据库实例,所述装置包括:
接收模块,用于接收来自所述分布式数据库系统外部的业务或租户的待处理请求;
发送模块,用于将所述待处理请求发送到为所述业务或租户分配的数据库实例;
处理模块,用于通过为所述业务或租户分配的各数据库实例对应的各容器处理所述待处理请求。
7.根据权利要求6所述的装置,其特征在于,所述接收模块还用于通过与业务或租户连接的代理接收来自所述业务或租户的待处理请求;
所述发送模块还用于通过所述代理从为所述业务或租户分配的各数据库实例中选择一个数据库实例,并向所选择的数据库实例发送所述待处理请求。
8.根据权利要求6所述的装置,其特征在于,所述处理模块包括:
计划转换子模块,用于数据库实例将收到的待处理请求转换为待执行计划;
数据获取子模块,用于获取待执行计划所涉及的待处理数据;
计划执行子模块,用于在为所述业务或租户分配的各数据库实例对应的各容器内部,按照所述待执行计划对所述待处理数据进行处理。
9.根据权利要求8所述的装置,其特征在于,所述计划执行子模块还用于通过数据库实例中的数据路由器根据待处理数据中的数据标签,确定待处理数据在为所述业务或租户分配的各数据库实例中的数据分布位置,所述数据标签用于标识所述待处理数据所属的业务或租户;在所述数据分布位置对所述待处理数据执行读操作、写操作和修改操作中的至少一种或者任意组合。
10.根据权利要求6所述的装置,其特征在于,还包括:
均衡模块,用于如果均衡器监测到需要对数据库实例中的数据进行均衡,根据待均衡数据的数据标签确定待均衡数据所属的业务或租户的各数据库实例;在待均衡数据所属的业务或租户的各数据库实例对应的容器之间,对所述待均衡数据进行迁移处理。
11.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的方法。
12.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810288731.9A CN108829507B (zh) | 2018-03-30 | 2018-03-30 | 分布式数据库系统的资源隔离方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810288731.9A CN108829507B (zh) | 2018-03-30 | 2018-03-30 | 分布式数据库系统的资源隔离方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108829507A true CN108829507A (zh) | 2018-11-16 |
CN108829507B CN108829507B (zh) | 2019-07-26 |
Family
ID=64155165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810288731.9A Active CN108829507B (zh) | 2018-03-30 | 2018-03-30 | 分布式数据库系统的资源隔离方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108829507B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783109A (zh) * | 2018-12-11 | 2019-05-21 | 航天信息软件技术有限公司 | 一种可扩展的软件部署系统及方法 |
CN110086881A (zh) * | 2019-05-07 | 2019-08-02 | 网易(杭州)网络有限公司 | 业务处理方法、装置及设备 |
CN110569302A (zh) * | 2019-08-16 | 2019-12-13 | 苏宁云计算有限公司 | 一种基于lucene的分布式集群的物理隔离的方法及装置 |
CN111045802A (zh) * | 2019-11-22 | 2020-04-21 | 中国联合网络通信集团有限公司 | Redis集群组件调度系统及方法、平台设备 |
CN111131034A (zh) * | 2019-11-28 | 2020-05-08 | 江苏艾佳家居用品有限公司 | 一种用于分布式系统的基于标签的环境隔离方法 |
CN111258759A (zh) * | 2020-01-13 | 2020-06-09 | 北京百度网讯科技有限公司 | 资源分配方法、装置以及电子设备 |
CN111782396A (zh) * | 2020-07-01 | 2020-10-16 | 浪潮云信息技术股份公司 | 一种基于分布式数据库的并发弹性控制方法 |
CN111796929A (zh) * | 2020-05-19 | 2020-10-20 | 冠群信息技术(南京)有限公司 | 一种多租户模式下的租户合并方法 |
CN111865980A (zh) * | 2020-07-20 | 2020-10-30 | 北京百度网讯科技有限公司 | 信息存储中心的信息处理方法和装置 |
CN112069210A (zh) * | 2020-08-21 | 2020-12-11 | 北京首汽智行科技有限公司 | 一种saas平台多租户数据隔离方法 |
CN113328939A (zh) * | 2021-05-26 | 2021-08-31 | 西安热工研究院有限公司 | 基于数据库实例名前缀的电力数据传输中间件标签路由方法 |
CN113487412A (zh) * | 2021-07-07 | 2021-10-08 | 中国工商银行股份有限公司 | 基于多渠道的共享服务隔离方法及装置 |
CN114449042A (zh) * | 2020-11-06 | 2022-05-06 | Sap欧洲公司 | 自适应云请求处理 |
WO2022228121A1 (zh) * | 2021-04-27 | 2022-11-03 | 华为云计算技术有限公司 | 提供服务的方法及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267441A (zh) * | 2008-04-23 | 2008-09-17 | 北京航空航天大学 | 一种c/s和b/s混合架构模式实现方法和平台 |
CN103634344A (zh) * | 2012-08-23 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 一种单机运行多MySQL数据库实例的方法和设备 |
US20140181833A1 (en) * | 2012-12-21 | 2014-06-26 | International Business Machines Corporation | Processor provisioning by a middleware system for a plurality of logical processor partitions |
CN104270349A (zh) * | 2014-09-17 | 2015-01-07 | 广州中国科学院软件应用技术研究所 | 一种云计算多租户应用的隔离方法及装置 |
CN102708316B (zh) * | 2012-04-19 | 2015-04-08 | 北京华胜天成科技股份有限公司 | 一种用于多租户架构中数据隔离的方法 |
CN104735118A (zh) * | 2013-12-24 | 2015-06-24 | 中国移动通信集团江苏有限公司 | 一种业务支撑系统的业务处理方法、装置及服务器 |
CN106471472A (zh) * | 2014-06-23 | 2017-03-01 | 甲骨文国际公司 | 用于多租户应用服务器环境中的分区迁移的系统和方法 |
CN107016059A (zh) * | 2017-03-10 | 2017-08-04 | 北京聚睿智能科技有限公司 | 一种数据库集群部署方法、装置及物理服务器 |
CN107196982A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种用户请求的处理方法和装置 |
CN107329837A (zh) * | 2016-09-21 | 2017-11-07 | 广州特道信息科技有限公司 | 一种负载均衡的方法和单元、分布式NewSQL数据库系统 |
CN107851106A (zh) * | 2015-05-01 | 2018-03-27 | 微软技术许可有限责任公司 | 用于关系数据库即服务的自动需求驱动的资源缩放 |
CN108334396A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置、资源组的创建方法和装置 |
-
2018
- 2018-03-30 CN CN201810288731.9A patent/CN108829507B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267441A (zh) * | 2008-04-23 | 2008-09-17 | 北京航空航天大学 | 一种c/s和b/s混合架构模式实现方法和平台 |
CN102708316B (zh) * | 2012-04-19 | 2015-04-08 | 北京华胜天成科技股份有限公司 | 一种用于多租户架构中数据隔离的方法 |
CN103634344A (zh) * | 2012-08-23 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 一种单机运行多MySQL数据库实例的方法和设备 |
US20140181833A1 (en) * | 2012-12-21 | 2014-06-26 | International Business Machines Corporation | Processor provisioning by a middleware system for a plurality of logical processor partitions |
CN104735118A (zh) * | 2013-12-24 | 2015-06-24 | 中国移动通信集团江苏有限公司 | 一种业务支撑系统的业务处理方法、装置及服务器 |
CN106471472A (zh) * | 2014-06-23 | 2017-03-01 | 甲骨文国际公司 | 用于多租户应用服务器环境中的分区迁移的系统和方法 |
CN104270349A (zh) * | 2014-09-17 | 2015-01-07 | 广州中国科学院软件应用技术研究所 | 一种云计算多租户应用的隔离方法及装置 |
CN107851106A (zh) * | 2015-05-01 | 2018-03-27 | 微软技术许可有限责任公司 | 用于关系数据库即服务的自动需求驱动的资源缩放 |
CN107196982A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种用户请求的处理方法和装置 |
CN107329837A (zh) * | 2016-09-21 | 2017-11-07 | 广州特道信息科技有限公司 | 一种负载均衡的方法和单元、分布式NewSQL数据库系统 |
CN108334396A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置、资源组的创建方法和装置 |
CN107016059A (zh) * | 2017-03-10 | 2017-08-04 | 北京聚睿智能科技有限公司 | 一种数据库集群部署方法、装置及物理服务器 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783109A (zh) * | 2018-12-11 | 2019-05-21 | 航天信息软件技术有限公司 | 一种可扩展的软件部署系统及方法 |
CN110086881A (zh) * | 2019-05-07 | 2019-08-02 | 网易(杭州)网络有限公司 | 业务处理方法、装置及设备 |
CN110569302A (zh) * | 2019-08-16 | 2019-12-13 | 苏宁云计算有限公司 | 一种基于lucene的分布式集群的物理隔离的方法及装置 |
CN111045802A (zh) * | 2019-11-22 | 2020-04-21 | 中国联合网络通信集团有限公司 | Redis集群组件调度系统及方法、平台设备 |
CN111045802B (zh) * | 2019-11-22 | 2024-01-26 | 中国联合网络通信集团有限公司 | Redis集群组件调度系统及方法、平台设备 |
CN111131034B (zh) * | 2019-11-28 | 2021-11-02 | 江苏艾佳家居用品有限公司 | 一种用于分布式系统的基于标签的环境隔离方法 |
CN111131034A (zh) * | 2019-11-28 | 2020-05-08 | 江苏艾佳家居用品有限公司 | 一种用于分布式系统的基于标签的环境隔离方法 |
CN111258759A (zh) * | 2020-01-13 | 2020-06-09 | 北京百度网讯科技有限公司 | 资源分配方法、装置以及电子设备 |
CN111258759B (zh) * | 2020-01-13 | 2023-05-16 | 北京百度网讯科技有限公司 | 资源分配方法、装置以及电子设备 |
CN111796929A (zh) * | 2020-05-19 | 2020-10-20 | 冠群信息技术(南京)有限公司 | 一种多租户模式下的租户合并方法 |
CN111796929B (zh) * | 2020-05-19 | 2022-09-16 | 冠群信息技术(南京)有限公司 | 一种多租户模式下的租户合并方法 |
CN111782396A (zh) * | 2020-07-01 | 2020-10-16 | 浪潮云信息技术股份公司 | 一种基于分布式数据库的并发弹性控制方法 |
CN111865980A (zh) * | 2020-07-20 | 2020-10-30 | 北京百度网讯科技有限公司 | 信息存储中心的信息处理方法和装置 |
CN112069210A (zh) * | 2020-08-21 | 2020-12-11 | 北京首汽智行科技有限公司 | 一种saas平台多租户数据隔离方法 |
CN114449042A (zh) * | 2020-11-06 | 2022-05-06 | Sap欧洲公司 | 自适应云请求处理 |
WO2022228121A1 (zh) * | 2021-04-27 | 2022-11-03 | 华为云计算技术有限公司 | 提供服务的方法及装置 |
CN113328939A (zh) * | 2021-05-26 | 2021-08-31 | 西安热工研究院有限公司 | 基于数据库实例名前缀的电力数据传输中间件标签路由方法 |
CN113487412A (zh) * | 2021-07-07 | 2021-10-08 | 中国工商银行股份有限公司 | 基于多渠道的共享服务隔离方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108829507B (zh) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108829507B (zh) | 分布式数据库系统的资源隔离方法、装置和服务器 | |
US11943104B2 (en) | Application migration system | |
AU2020200578B2 (en) | Intelligent configuration discovery techniques | |
US8200705B2 (en) | Method and apparatus for applying database partitioning in a multi-tenancy scenario | |
US10404614B2 (en) | Multi-cloud resource allocation | |
CN109684065B (zh) | 一种资源调度方法、装置及系统 | |
US9979596B2 (en) | Configuration discovery service data visualization | |
US7451071B2 (en) | Data model for automated server configuration | |
CN103177059B (zh) | 用于数据库计算引擎的分离处理路径 | |
CN108737325A (zh) | 一种多租户数据隔离方法、装置及系统 | |
US9800650B2 (en) | Resource management for multiple desktop configurations for supporting virtual desktops of different user classes | |
US20220191168A1 (en) | Cloud infrastructure resource information scanning | |
EP3807779B1 (en) | Dynamic distributed data clustering | |
CN106790692A (zh) | 一种多集群的负载均衡方法和装置 | |
CN107113341A (zh) | 用于数据划分的分布式关系数据库管理系统中事务的高吞吐量处理的系统 | |
CN106933891A (zh) | 访问分布式数据库的方法和分布式数据服务的装置 | |
US20230100484A1 (en) | Serverless function colocation with storage pools | |
CN110457288A (zh) | 数据模型构建方法、装置、设备及计算机可读存储介质 | |
CN109471725A (zh) | 资源分配方法、装置和服务器 | |
US7433872B2 (en) | Hierarchical repository for configuration-related and performance-related information related to computerized systems | |
CN110888878A (zh) | 一种面向业务的主数据管理方法及系统 | |
CN106227577A (zh) | 一种可用于虚拟桌面的应用数据与配置数据分离存储方法 | |
CN108197164A (zh) | 业务数据保存方法及装置 | |
WO2015182471A1 (ja) | Itシステムにおけるサーバの性能の抽象化方法および資源管理方法 | |
CN108933843A (zh) | 一种dns调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |