CN117836759A - 多集群数据库系统中的区平衡 - Google Patents
多集群数据库系统中的区平衡 Download PDFInfo
- Publication number
- CN117836759A CN117836759A CN202280056684.XA CN202280056684A CN117836759A CN 117836759 A CN117836759 A CN 117836759A CN 202280056684 A CN202280056684 A CN 202280056684A CN 117836759 A CN117836759 A CN 117836759A
- Authority
- CN
- China
- Prior art keywords
- cluster
- instances
- zone
- regions
- particular type
- 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.)
- Pending
Links
- 230000000737 periodic effect Effects 0.000 claims abstract description 10
- 238000003860 storage Methods 0.000 claims description 81
- 238000000034 method Methods 0.000 claims description 70
- 230000015654 memory Effects 0.000 claims description 17
- 238000005516 engineering process Methods 0.000 abstract description 17
- 238000013500 data storage Methods 0.000 description 47
- 238000004891 communication Methods 0.000 description 37
- 230000008569 process Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 21
- 230000033001 locomotion Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000013138 pruning Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 229910000078 germane Inorganic materials 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/826—Involving periods of time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
主题技术在经过周期性时间段的一个时间段之后,基于阈值确定被部署在多个区中的集群实例的不平衡,该集群实例包括与计算服务管理器实例相关联的不同类型的集群。主题技术识别要包括在多个区中的特定区中的特定类型的集群实例。主题技术将特定类型的集群实例添加到特定区,以满足在多个区中集群实例的全局平衡。主题技术在经过周期性时间段的第二时间段之后,确定被部署在多个区中的集群实例的数量低于指示在多个区中集群实例的当前平衡的阈值。
Description
相关申请的交叉引用
本申请要求2021年8月19日提交的标题为“ZONE BALANCING IN AMULTI CLUSTERDATABASE SYSTEM”的序列号为63/260,425的美国临时专利申请的优先权,并且该美国临时专利申请的全部内容通过引用并入本文以用于所有目的。
技术领域
本公开的实施例总体上涉及数据库,更具体地,涉及与结合这样的数据库执行任务相关的资源管理。
背景
数据库是一个有组织的数据集合,使数据易于访问、操作和更新。数据库是一种以高效方式存储、管理和检索信息的方法。传统的数据库管理要求公司调配基础设施和资源来管理数据中心中的数据库。传统数据库的管理成本非常高,需要多个拥有广泛技术技能的人员进行监督。
数据库被广泛用于计算应用中的数据存储和访问。数据库存储的目标是以有组织的方式提供大量信息,以便可以对其进行访问、管理和更新。
传统的关系数据库管理系统(RDMS)需要大量的计算和存储资源,可扩展性有限。大量数据可以存储在多个计算设备上。服务器可以管理数据,使得具有本地操作的客户可以访问该数据。对于希望拥有内部数据库服务器的实体来说,该实体必须在数据库硬件和基础设施的资本投资上花费大量的资源,以及花费用于存储数据库基础设施的大量物理空间。此外,在断电或其他灾难情况下,数据库可能非常容易丢失数据。这种传统的数据库系统具有显著的缺点,基于云的数据库系统可以减轻这些缺点。
云数据库系统可以通过云平台进行部署和交付,该云平台允许组织和终端用户(end user)从云存储、管理和检索数据。一些云数据库系统包括通过在计算云之上安装数据库软件来实现的传统数据库架构。数据库可以通过网络浏览器或应用编程接口(API)进行访问,以实现应用和服务的集成。一些云数据库系统由供应商操作,该供应商代表客户直接管理数据库安装、部署和资源分配任务的后端过程。客户端可能有多个终端用户通过网络浏览器和/或API访问数据库。云数据库可以通过降低丢失数据库数据的风险并允许跨多个地理区域的多个用户访问数据,来为一些客户端提供显著的好处。
当要从数据库中提取某些信息时,可以对数据库数据执行查询语句。基于网络的数据库系统处理查询,并根据指示该查询应该返回什么信息的一个或更多个查询谓词(query predicates)返回某些数据。数据库系统从数据库中提取特定数据,并将该数据格式化为可读形式。
可以对数据库数据执行查询,以在数据库中找到某些数据。数据库查询从数据库中提取数据,并将其格式化为可读的形式。例如,当用户想要数据库中的数据时,用户可以用数据库支持的查询语言编写查询。该查询可以向数据库请求特定信息。该查询可以请求存储在数据库内的任何相关信息。如果可以找到适当的数据来响应查询,则数据库有可能揭示复杂的趋势和活动。
附图简述
从下面给出的详细描述和本公开的各种实施例的附图中,将更全面地理解本公开。
图1示出了根据本公开的一些实施例的示例计算环境,其包括与存储平台通信的基于网络的数据库系统。
图2是示出根据本公开的一些实施例的计算服务管理器的组件的框图。
图3是示出根据本公开的一些实施例的执行平台的组件的框图。
图4是描绘根据本公开的一些实施例的示例计算环境的框图,该示例计算环境具有与不同可用性区中的计算服务管理器集群的实例通信的资源管理器。
图5示出了根据本公开的一些实施例的以区平衡方式缩放(scaling)集群的示例。
图6示出了根据本公开的一些实施例的为每个集群选择再平衡移动(rebalancingmoves)的示例。
图7示出了根据本公开的一些实施例的次优横向扩展(scale out)的示例。
图8是示出根据本公开的一些实施例的数据库系统在执行方法中的操作的流程图。
图9是示出根据本公开的一些实施例的数据库系统在执行方法中的操作的流程图。
图10是示出根据本公开的一些实施例的数据库系统在执行方法中的操作的流程图。
图11示出了根据本公开的一些实施例的计算机系统形式的机器的图解表示,在该计算机系统形式的机器内可以执行指令集,以用于使机器执行本文所讨论方法中的任何一种或更多种方法。
详细描述
现在将详细参考用于实现本发明主题的具体示例实施例。这些具体实施例的示例在附图中示出,并且具体细节在以下描述中阐述,以便提供对主题的透彻理解。应当理解,这些示例并不旨在将权利要求的范围限制于所示的实施例。相反,它们旨在覆盖可能包含在本公开范围内的替代、修改和等同物。
各种实体和公司都使用数据库来存储可能需要访问或分析的信息。在一个示例中,零售公司可以将所有销售交易的清单存储在数据库中。数据库可以包括关于交易何时发生、交易发生在哪里、交易的总成本、在交易中购买的所有物品的标识符和/或描述等信息。同一家零售公司还可能在同一数据库中存储例如员工信息,该信息可能包括员工姓名、员工联系信息、员工工作历史记、员工薪酬率等。根据该零售公司的需求,员工信息和交易信息可以存储在同一数据库的不同表中。当零售公司想要得知存储在数据库中的信息时,可能需要“查询”其数据库。该零售公司可能希望找到有关例如在特定商店工作的所有员工的姓名、在特定日期工作的所有员工的姓名、在特定时间范围内针对特定产品进行的所有交易的数据,等等。
当零售商店要查询其数据库以从数据库中提取某些组织的信息时,将针对数据库数据执行查询语句。该查询根据一个或更多个查询谓词返回某些数据,这些查询谓词指示该查询应返回哪些信息。该查询从数据库中提取特定数据,并将该数据格式化为可读形式。可以用数据库理解的语言(诸如结构化查询语言(“SQL”))编写查询,由此数据库系统可以确定应定位哪些数据以及应如何返回数据。该查询可以请求存储在数据库内的任何相关信息。如果可以找到适当的数据来响应查询,则数据库有可能揭示复杂的趋势和活动。只能通过使用成功执行的查询来利用此功能。
在某些情况下,用户(例如,客户)希望数据库系统始终可用,而这意味着协调各种服务并安排虚拟仓库运行查询的云服务层能够抵御多种故障模式。例如,一个罕见但灾难性的案例是云服务提供商的数据中心遭遇意外中断。
如本文进一步描述的,给定的云服务提供商(例如,Google/>Microsoft/>等)可以提供可用性区,可用性区是单个区域中的隔离数据中心,主题系统可以选择从这些隔离数据中心提供资源。通过在这些可用性区之间保持云服务实例的平衡,主题系统可以在可用性区发生故障的情况下减少对用户(例如,客户)的影响,因为请求可以透明地被重定向到另一个区中的实例。
根据前述内容,本主题技术的实施例提供跨多个集群的负载平衡,每个集群包括执行查询(和执行其他操作)的相应的虚拟仓库。
本文描述的系统、方法和设备提供了用于在共享存储和执行平台上调度和执行任务的实施例。本文描述的系统、方法和设备可以在基于网络的数据库平台上实现。此外,本文描述的实现使得能够代表客户端账户执行查询。
图1示出了根据本公开的一些实施例的示例计算环境100,其包括与存储平台104-1通信的基于网络的数据库系统102。为了避免用不必要的细节模糊本发明主题,图1中省略了与传达对本发明主题的理解不密切相关的各种功能组件。然而,本领域技术人员将容易认识到,各种附加功能组件可以被包括作为计算环境100的一部分,以促进本文没有具体描述的附加功能。
在一些实施例中,基于网络的数据库系统102包括计算服务管理器108-1至计算服务管理器108-N,计算服务管理器108-1至计算服务管理器108-N中的每一个可以与以下中的一个或更多个通信:队列124-1至队列124-N、客户端账户128、数据库114、和执行平台110-1至执行平台110-N。在实施例中,每个执行平台可以对应于给定的(或不同的)云服务提供商(例如,Google/>Microsoft/>等)。
在实施例中,计算服务管理器(例如,图1中所示的任何计算服务管理器)不从客户端账户128接收任何直接通信,并且仅从队列接收关于作业的通信。在特定实现中,计算服务管理器可以支持任意数量的客户端账户128,例如对应于提供数据存储和检索请求的相对应的一个或更多个用户设备112的终端用户、管理本文描述的系统和方法的系统管理员、以及与计算服务管理器交互的其他组件/设备。如本文所使用的,计算服务管理器也可以被称为执行本文所讨论的各种功能的“全局服务系统”,并且计算服务管理器108-1至计算服务管理器108-N中的每一个可以对应于本文进一步描述的计算资源的特定集群(或多个集群)。
因此,应当理解,本主题技术的实施例可以提供前述组件的多个实例,其中计算服务管理器的每个实例还可以利用执行平台、数据库或队列的不同实例。特别地,应当理解,基于网络的数据库系统102提供组件的不同实例,以使不同版本的数据库或执行平台能够被给定的计算服务管理器利用,从而确保进一步灵活地执行与执行查询(例如,从与用户设备112相关联的客户端账户128接收的查询)相关联的操作。例如,特定查询可以与特定版本的数据库或执行平台兼容,并且给定的计算服务管理器必须促进对由基于网络的数据库系统102提供的该特定版本的数据库或执行平台的这种查询的执行。
如图所示,计算环境100包括基于网络的数据库系统102和存储平台104(例如,Microsoft Azure Blob/>或Google/>)。基于网络的数据库系统102用于访问和/或处理来自包括存储平台104内的数据存储设备106-1至106-N的一个或更多个不同源的集成数据。存储平台104包括多个计算机器,并向基于网络的数据库系统102按需提供计算机系统资源,例如数据存储和计算能力。
基于网络的数据库系统102包括一个或更多个计算服务管理器、执行平台和数据库。基于网络的数据库系统102托管数据库服务并向多个客户端账户提供数据库服务。管理用户可以创建和管理身份(例如,用户、角色和组),并使用权限来允许或拒绝身份对资源和服务的访问。
每个计算服务管理器(例如,图1所示的任何计算服务管理器)协调和管理基于网络的数据库系统102的操作。计算服务管理器还执行查询优化和编译,以及管理提供计算资源的计算服务的集群(也称为“虚拟仓库”)。计算服务管理器可以支持任意数量的客户端账户,如提供数据存储和检索请求的终端用户、管理本文描述的系统和方法的系统管理员以及与计算服务管理器108-1交互的其他组件/设备。
计算服务管理器(例如,图1中所示的任何计算服务管理器)也与用户设备112通信。用户设备112对应于由基于网络的数据仓库系统102支持的多个客户端账户之一的用户。如图所示,用户与客户端账户128相关联。在一些实施例中,计算服务管理器108-1不从用户设备112接收任何直接通信,并且仅从基于网络的数据库系统102内的队列124-1接收关于作业的通信。
计算服务管理器还耦合到一个或更多个数据库114,该数据库114与存储在计算环境100中的数据相关联。数据库114存储涉及与基于网络的数据库系统102及其用户相关联的各种功能和方面的数据。在一些实施例中,数据库114包括存储在远程数据存储系统中的数据以及可从本地高速缓存获得的数据的概要。另外,数据库114可以包括关于数据如何在远程数据存储系统(例如,存储平台104)和本地高速缓存中组织的信息。数据库114允许系统和服务确定是否需要在不从存储设备加载或访问实际数据的情况下访问一段数据。
在一些实施例中,计算服务管理器可以基于来自数据库114的数据来确定应该执行作业。在这样的实施例中,计算服务管理器可以扫描数据并确定应该执行作业来改善数据组织或数据库性能。例如,计算服务管理器可以确定源表的新版本已经生成,并且修剪索引(pruning index)没有被刷新以反映源表的新版本。数据库114可以包括事务性变化跟踪流(transactional change tracking stream),该事务性变化跟踪流指示源表的新版本何时被生成以及修剪索引何时被最后刷新。基于该事务流,计算服务管理器可以确定应该执行作业。在一些实施例中,计算服务管理器基于触发事件确定应该执行作业,并将作业存储在队列中,直到计算服务管理器准备好调度和管理作业的执行。在本公开的实施例中,计算服务管理器基于执行的一个或更多个DML命令来确定是否需要对表或修剪索引重新聚类,其中一个或更多个DML命令构成触发事件。
计算服务管理器可以从客户端账户128接收规则或参数,并且这样的规则或参数可以指导计算服务管理器调度和管理内部作业。客户端账户128可以指示内部作业应该仅在特定时间执行或者应该仅利用设定最大量的处理资源。客户端账户128可以进一步指示一个或更多个触发事件,该一个或更多个触发事件应当提示计算服务管理器确定应当执行作业。客户端账户128可以提供关于任务可以被重新执行多少次和/或任务应该在何时被重新执行的参数。
计算服务管理器与一个或更多个队列124-1通信。在实施例中,计算服务管理器不从客户端账户128接收任何直接通信,而仅从队列124-1接收与作业有关的通信。在特定实现中,计算服务管理器可以支持任意数量的客户端账户128,诸如提供数据存储和检索请求的终端用户、管理本文描述的系统和方法的系统管理员以及与计算服务管理器交互的其他组件/设备。
队列124-1可以向计算服务管理器提供作业。可以按接收顺序和/或优先级顺序将一个或更多个作业存储在队列124-1中,并且可以将这些一个或更多个作业中的每个作业传送到计算服务管理器以进行调度和执行。
在一个实现中,队列124-1可以基于触发事件(诸如数据的摄取、删除表中的一个或更多个行、更新表中的一个或更多个行、实例化视图相对于其源表已过时、表达到指示该表应重新聚类的预定义的聚类阈值等等)来确定要执行的作业。
队列124-1可以确定应该执行的内部作业,以改善数据库的性能和/或改善数据库数据的组织。在一个实施例中,队列124-1不存储要为客户端账户执行的查询,而是仅存储改善数据库性能的数据库作业。
计算服务管理器还耦合到执行平台(例如,执行平台110-1、执行平台110-2、执行平台110-N中的一个),执行平台提供执行各种数据存储和数据检索任务的多个计算资源。执行平台耦合到存储平台之一(例如,存储平台104-1、存储平台104-2、存储平台104-N)。存储平台104-1包括多个数据存储设备106-1至106-N,并且每个其他存储平台还可以包括多个数据存储设备。在一些实施例中,数据存储设备106-1至106-N是位于一个或更多个地理位置的基于云的存储设备。例如,数据存储设备106-1至106-N可以是公共云基础设施或私有云基础设施的一部分。数据存储设备106-1至106-N可以包括硬盘驱动(HDD)、固态驱动(SSD)、存储集群、亚马孙(Amazon)S3TM存储系统或任何其它数据存储技术。另外,存储平台104可以包括分布式文件系统(例如Hadoop分布式文件系统(HDFS))、对象存储系统等等。类似地,其他存储平台中的任何数据存储设备也可以具有上述结合存储平台104-1描述的类似特征。
执行平台(例如,图1中所示的任何执行平台)包括多个计算节点。计算节点上的进程集合执行由计算服务管理器编译的查询计划。进程集合可以包括:执行查询计划的第一进程;第二进程,其使用最近最少使用(least recently used,LRU)策略来监视和删除微分区文件(micro-partition files),并实现内存不足(OOM)错误缓解进程;从进程日志和状态提取健康信息以发送回计算服务管理器108-1的第三进程;在系统启动(boot)之后建立与计算服务管理器108-1的通信的第四进程;以及第五进程,该第五进程处理与由计算服务管理器108-1提供的给定作业的计算集群的所有通信,并将信息传送回计算服务管理器108-1和执行平台的其他计算节点。
在一些实施例中,计算环境100的元件之间的通信链路经由一个或更多个数据通信网络来实现。这些数据通信网络可以利用任何通信协议和任何类型的通信介质。在一些实施例中,数据通信网络是彼此耦合的两个或更多个数据通信网络(或子网络)的组合。在替代实施例中,使用任何类型的通信介质和任何通信协议来实现这些通信链路。
如图1所示,数据存储设备106-1至106-N从与执行平台110-1相关联的计算资源解耦。该架构支持基于网络的数据库系统基于变化的数据存储/检索需求以及用户和系统的变化的需求进行动态变化。对动态变化的支持允许基于网络的数据库系统102响应于对基于网络的数据库系统102内的系统和组件的不断变化的需求而快速按比例缩放(scale)。计算资源与数据存储设备的分离支持大量数据的存储,而无需相应的大量计算资源。类似地,资源的这种分离支持在特定时间使用的计算资源的显著增加,而无需相应增加可用数据存储资源。
图1中所示的计算服务管理器、数据库、执行平台和存储平台中的每一个都可以被实现为分布式系统(例如,分布在位于多个地理位置的多个系统/平台上)。另外,计算服务管理器、数据库、执行平台和存储平台中的每一个可以根据所接收的请求的变化和基于网络的数据库系统102的变化的需求而(彼此独立地)扩容(scale up)或缩容(scaledown)。因此,在所描述的实施例中,基于网络的数据库系统102是动态的,并且支持定期改变以满足当前的数据处理需求。
在典型操作期间,基于网络的数据库系统102处理由计算服务管理器确定的多个作业。这些作业由计算服务管理器调度和管理,以确定何时以及如何执行该作业。例如,计算服务管理器可以将作业划分为多个离散任务,并且可以确定需要什么数据来执行多个离散任务中的每个离散任务。计算服务管理器可以将多个离散任务中的每个离散任务分配给执行平台的一个或更多个节点以处理任务。计算服务管理器108-1可以确定需要哪些数据来处理任务,并且进一步确定执行平台110-1内的哪些节点最适合于处理该任务。一些节点可能已经缓存了处理任务所需的数据,因此是用于处理任务的不错的候选者。存储在数据库114中的元数据帮助计算服务管理器确定执行平台中的哪些节点已经缓存了处理该任务所需的至少一部分数据。执行平台中的一个或更多个节点使用由节点缓存的数据以及必要时从存储平台检索到的数据来处理任务。期望从执行平台内的高速缓存中检索尽可能多的数据,因为检索速度通常比从存储平台中检索数据快得多。
如图1所示,计算环境100将执行平台110与存储平台分开。在这种布置中,执行平台中的处理资源和高速缓存资源独立于存储平台中的数据存储设备操作。因此,计算资源和高速缓存资源不局限于特定的数据存储设备。相反,所有计算资源和所有高速缓存资源都可以从存储平台中的任何数据存储资源中检索数据并将数据存储到其中。
如本文进一步描述的,资源管理器150可以执行与可用性区(如本文进一步提到的“AZ”)相关的负载平衡操作,可用性区包括具有不同计算资源(例如,不同的虚拟仓库等)的计算服务管理器的实例的不同集群。
图2是示出根据本公开的一些实施例的计算服务管理器108-1的组件的框图。如图2所示,计算服务管理器108-1包括耦合到数据存储设备206的访问管理器202和密钥管理器204。访问管理器202处理针对本文描述的系统的认证和授权任务。密钥管理器204管理在认证和授权任务期间使用的密钥的存储和认证。例如,访问管理器202和密钥管理器204管理用于访问存储在远程存储设备(例如,存储平台104-1中的数据存储设备)中的数据的密钥。如本文所用,远程存储设备也可以被称为“永久存储设备”或“共享存储设备”。
请求处理服务208管理接收到的数据存储请求和数据检索请求(例如,将对数据库数据执行的作业)。例如,请求处理服务208可以确定处理接收到的查询(例如,数据存储请求或数据检索请求)所必需的数据。数据可以存储在执行平台110-1内的高速缓存中,或者存储在存储平台104-1中的数据存储设备中。
管理控制台服务210支持管理员和其他系统管理员对各种系统和进程的访问。另外,管理控制台服务210可以接收对于执行作业和监视系统上的工作负载的请求。
计算服务管理器108-1还包括作业编译器212、作业优化器214、和作业执行器216。作业编译器212将作业解析为多个离散任务,并为多个离散任务中的每个离散任务生成执行代码。作业优化器214基于需要处理的数据来确定执行多个离散任务的最佳方法。作业优化器214还处理各种数据修剪操作和其他数据优化技术,以提高执行作业的速度和效率。作业执行器216执行从队列接收的或由计算服务管理器108-1确定的作业的执行代码。
作业调度器和协调器218将接收到的作业发送到适当的服务或系统,以进行编译、优化并分派到执行平台110-1。例如,可以将作业优先化并按该优先顺序对作业进行处理。在实施例中,作业调度器和协调器218确定由计算服务管理器108-1调度的内部作业的优先级,以及确定其他“外部”作业(诸如可以由数据库中的其他系统调度但可以利用执行平台110-1中的相同处理资源的用户查询)的优先级。在一些实施例中,作业调度器和协调器218识别或分配执行平台110-1中的特定节点以处理特定任务。虚拟仓库管理器220管理在执行平台110-1中实现的多个虚拟仓库的操作。如下所述,每个虚拟仓库都包括多个执行节点,每个执行节点包括高速缓存和处理器。
另外,计算服务管理器108-1包括配置和元数据管理器222,配置和元数据管理器222管理与存储在远程数据存储设备和本地高速缓存(例如,执行平台110-1中的高速缓存)中的数据相关的信息。配置和元数据管理器222使用元数据来确定需要访问哪些数据微分区来检索用于处理特定任务或作业的数据。监视器和工作负载分析器224监管由计算服务管理器108-1执行的进程,并管理任务(例如,工作负载)在执行平台110-1中的执行节点和虚拟仓库之间的分配。监视器和工作负载分析器224还根据需要,基于整个基于网络的数据库系统102中不断变化的工作负载来重新分配任务,并且还可以基于也可以由执行平台110-1处理的用户(例如,“外部”)查询工作负载来重新分配任务。配置和元数据管理器222以及监视器和工作负载分析器224耦合到数据存储设备226。图2中的数据存储设备226表示基于网络的数据库系统102内的任何数据存储设备。例如,数据存储设备226可以表示执行平台110-1中的高速缓存、存储平台104-1中的存储设备或任何其他存储设备。
尽管上述讨论和示例与计算服务管理器108-1相关,但是在一些实施例中,在图1中所示的每个计算服务管理器中包括相似或相同的组件。
图3是示出根据本公开的一些实施例的执行平台110-1的组件的框图。如图3所示,执行平台110-1包括多个虚拟仓库,其包括虚拟仓库1、虚拟仓库2和虚拟仓库n。每个虚拟仓库包括多个执行节点,每个执行节点包括一个数据高速缓存和一个处理器。虚拟仓库可以通过使用多个执行节点并行执行多个任务。如本文所讨论的,执行平台110-1可以基于系统和用户的当前处理需求实时添加新的虚拟仓库和删除现有的虚拟仓库。这种灵活性允许执行平台110-1在需要时快速部署大量计算资源,而不必在不再需要计算资源时继续为那些计算资源付费。所有虚拟仓库都可以访问任何数据存储设备(例如,存储平台104中的任何存储设备)中的数据。
尽管图3中所示的每个虚拟仓库包括三个执行节点,但是特定的虚拟仓库可以包括任意数量的执行节点。此外,虚拟仓库中执行节点的数量是动态的,使得在存在额外需求时创建新的执行节点,并在不再需要现有执行节点时将其删除。
每个虚拟仓库能够访问图1中所示的数据存储设备106-1至106-N中的任何一个。因此,虚拟仓库不必被分配给特定的数据存储设备106-1至106-N,而是可以从存储平台104内的数据存储设备106-1至106-N中的任何一个访问数据。类似地,图3中所示的每个执行节点可以从数据存储设备106-1至106-N中的任何一个访问数据。在一些实施例中,特定的虚拟仓库或特定的执行节点可以被临时分配给具体的数据存储设备,但是该虚拟仓库或执行节点后续可以从任何其他数据存储设备访问数据。
在图3的示例中,虚拟仓库1包括三个执行节点302-1、302-2和302-n。执行节点302-1包括高速缓存304-1和处理器306-1。执行节点302-2包括高速缓存304-2和处理器306-2。执行节点302-n包括高速缓存304-n和处理器306-n。每个执行节点302-1、302-2和302-n与处理一个或更多个数据存储和/或数据检索任务相关联。例如,虚拟仓库可以处理与内部服务(诸如,聚类服务、实例化视图刷新服务、文件压缩服务、存储程序服务或文件升级服务)相关联的数据存储和数据检索任务。在其他实施方式中,特定虚拟仓库可以处理与特定数据存储系统或特定类别的数据相关联的数据存储和数据检索任务。
类似于上面讨论的虚拟仓库1,虚拟仓库2包括三个执行节点312-1、312-2和312-n。执行节点312-1包括高速缓存314-1和处理器316-1。执行节点312-2包括高速缓存314-2和处理器316-2。执行节点312-n包括高速缓存314-n和处理器316-n。另外,虚拟仓库3包括三个执行节点322-1、322-2和322-n。执行节点322-1包括高速缓存324-1和处理器326-1。执行节点322-2包括高速缓存324-2和处理器326-2。执行节点322-n包括高速缓存324-n和处理器326-n。
在一些实施例中,图3中所示的执行节点相对于执行节点正在缓存的数据是无状态的。例如,这些执行节点不存储或以其他方式维护关于执行节点或由特定执行节点缓存的数据的状态信息。因此,在执行节点发生故障的情况下,可以用另一个节点透明地替换发生故障的节点。由于没有与发生故障的执行节点相关联的状态信息,因此新的(替换)执行节点可以轻松替换发生故障的节点,而无需考虑重新创建特定状态。
尽管图3中所示的执行节点各自包括一个数据高速缓存和一个处理器,但是替代实施例可以包括包含任意数量的处理器和任意数量的高速缓存的执行节点。另外,高速缓存的大小在不同执行节点之间可能有所不同。图3中所示的高速缓存在本地执行节点中存储从存储平台104中的一个或更多个数据存储设备检索到的数据。因此,高速缓存减小或消除了在从远程存储系统中不断检索数据的平台中出现的瓶颈问题。本文描述的系统和方法不是从远程存储设备重复访问数据,而是从执行节点中的高速缓存访问数据,这明显更快并且避免了上面讨论的瓶颈问题。在一些实施例中,使用提供对高速缓存的数据的快速访问的高速存储器设备来实现高速缓存。每个高速缓存可以存储来自存储平台104中的任何存储设备的数据。
此外,高速缓存资源和计算资源可以在不同的执行节点之间变化。例如,一个执行节点可包含大量的计算资源和最少的高速缓存资源,从而使该执行节点可用于需要大量计算资源的任务。另一个执行节点可包含大量的高速缓存资源和最少的计算资源,从而使该执行节点可用于需要高速缓存大量数据的任务。又一个执行节点可包含提供更快的输入-输出操作的高速缓存资源,这对于需要快速扫描大量数据的任务很有用。在一些实施例中,基于执行节点将要执行的预期任务,在创建执行节点时确定与特定执行节点相关联的高速缓存资源和计算资源。
另外,与特定执行节点相关联的高速缓存资源和计算资源可以基于由执行节点执行的改变的任务而随时间改变。例如,如果执行节点执行的任务变得更加处理器密集,则可以为执行节点分配更多的处理资源。类似地,如果执行节点执行的任务需要更大的高速缓存容量,则可以为执行节点分配更多的高速缓存资源。
尽管虚拟仓库1、2和n与同一执行平台110-1相关联,但是可以使用在多个地理位置处的多个计算系统来实现虚拟仓库。例如,虚拟仓库1可以由第一地理位置处的计算系统来实现,而虚拟仓库2和n由第二地理位置处的另一计算系统来实现。在一些实施例中,这些不同的计算系统是由一个或更多个不同的实体维护的基于云的计算系统。
另外,每个虚拟仓库在图3中被示为具有多个执行节点。可以使用位于多个地理位置处的多个计算系统来实现与每个虚拟仓库相关联的多个执行节点。例如,虚拟仓库1的实例在一个地理位置处的一个计算平台上实现执行节点302-1和302-2,并且在另一个地理位置处的不同计算平台上实现执行节点302-n。选择特定的计算系统以实施执行节点可以取决于各种因素,诸如特定的执行节点所需的资源水平(例如,处理资源要求和高速缓存要求)、特定计算系统处可用的资源、地理位置内或地理位置之间的网络的通信能力以及哪些计算系统已在虚拟仓库中实现其他执行节点。
执行平台110-1也是容错的。例如,如果一个虚拟仓库发生故障,那么该虚拟仓库将很快被位于不同地理位置处的不同虚拟仓库替换。
特定执行平台110-1可以包括任意数量的虚拟仓库。另外,特定执行平台中虚拟仓库的数量是动态的,使得在需要附加的处理和/或高速缓存资源时创建新的虚拟仓库。类似地,当不再需要与虚拟仓库关联的资源时,可以删除现有的虚拟仓库。
在一些实施例中,虚拟仓库可以在存储平台104中的相同数据上操作,但是每个虚拟仓库具有其自己的具有独立处理和高速缓存资源的执行节点。此配置允许对不同虚拟仓库上的请求进行独立处理,并且请求之间不会相互干扰。这种独立的处理与动态添加和移除虚拟仓库的能力相结合,支持为新用户添加新的处理能力,而不会影响现有用户观察到的性能。
尽管上述讨论和示例与执行平台110-1相关,但是在一些实施例中,在图1所示的每个执行平台中包括相似或相同的组件。
在一些示例中,对应于给定执行平台的云服务提供商在一个区域中提供多个可用性区。这些区可能会因不可预见的事件而关闭。本主题技术的实施例以提供针对可用性区中断的最大保护的方式可以主动地和被动地平衡计算服务管理器(例如,计算服务管理器108-1、计算服务管理器108-2、计算服务管理器108-N)的实例在可用性区之间的放置。
图4是描绘具有资源管理器150的示例计算环境400的框图,该资源管理器150与不同可用性区中的计算服务管理器集群的实例通信。在一个实施例中,资源管理器150可以被包含在计算服务管理器的特定实例中,或者可以被实现为与计算服务管理器分开的组件。
在计算环境400中,资源管理器150可以通过可用性区402-1、402-2和402-N访问共享存储设备420a、420b、420c、420d、420e和420n。在特定实施例中,共享存储设备420a-420n被包含在图1中描述的存储平台之一中,并且可由在前面描述的一个或更多个执行平台中实现的任何虚拟仓库访问。在一些实施例中,资源管理器150可以使用数据通信网络(诸如互联网)来访问计算服务管理器集群之一。在一些实现中,客户端账户可以指定资源管理器150(被配置为存储要完成的内部作业)应该在特定时间与特定虚拟仓库404a-404n交互。
如图所示,多个计算服务管理器集群被布置在每个可用性区402-1、402-2和402-N中。例如,计算服务管理器集群404A、计算服务管理器集群404B、计算服务管理器集群404N被包括在可用性区402-1中。计算服务管理器集群406A、计算服务管理器集群406B和计算服务管理器集群406N被包括在可用性区402-2中。计算服务管理器集群408A、计算服务管理器集群408B和计算服务管理器集群408N被包括在可用性区402-3中。
如前所述(例如,图3),每个计算服务管理器集群可以包括一个或更多个虚拟仓库(未示出)。在一个实施例中,来自给定计算服务管理器集群的每个虚拟仓库可以与共享存储设备420a-420n的子集通信。在这样的安排中,与一组数据相关联的单个客户端账户可以通过单个虚拟仓库和/或向共享存储设备406a-406n的特定子集发送所有数据检索和数据存储请求。
在一个实施例中,资源管理器150接收数据检索、数据存储和数据处理请求。响应于这样的请求,资源管理器150将请求路由到具有适当计算服务管理器集群的适当可用性区。
在一些实施例中,资源管理器150通过响应于给定计算服务管理器集群的故障而创建计算服务管理器集群的新实例来提供容错能力。新计算服务管理器群集可以位于相同可用性区中,或者可以在不同区的不同计算服务管理器群集中创建。
在一些示例中,对应于给定执行平台的云服务提供商在一个区域中提供多个可用性区。这些区可能会因不可预见的事件而关闭。本主题技术的实施例以提供针对可用性区中断的最大保护的方式可以主动地和被动地平衡计算服务管理器(例如,计算服务管理器108-1、计算服务管理器108-2、计算服务管理器108-N)的实例在可用性区之间的放置。
主题系统在相同云提供商区域中运行多个全局服务集群(例如,计算服务管理器),以服务不同的客户组。在这种多集群架构中,重要的是要确保不仅每个集群在可用性区之间平衡,而且每个集群中的所有实例加在一起都是区平衡的(“全局区平衡”),否则在发生区中断时将对客户产生巨大影响。
主题系统的实施例可以避免大小大于1的整个集群由于区中断而关闭的情况,从而防止查询的透明重定向并导致客户可见的中断(customer-visible outage)。此外,主题系统将所有集群中的所有实例一起平衡,从而保护较小的集群,并将区中断的影响分散到每个集群上,在每个集群上可以透明地处理它们。
本文描述的实施例具有以下优点:
·利用当前架构可以实现针对区中断的最佳抵御。每个集群都是完全平衡的,因此在每个集群的区中断期间,丢失绝对最小比例的实例。此外,由于整体部署也经由全局区平衡来平衡,因此可以丢失最少数量的实例和影响最少数量的集群。
·主动纠正不平衡的集群。集群和整体部署可能会因为实例出现问题或者需要新的实例但在需要的区中没有可用的实例而变得不平衡。主题技术可以考虑这些情况,且还可以同时在集群和全局级别同时执行区再平衡。
·可参数化的平衡参数,以限制再平衡移动的次数,从而实现更大的灵活性并限制实例流失(churn)。
·对客户完全透明。在正常情况下,在再平衡过程期间,对客户的影响为零。此外,区中断对客户来说通常也是透明的,因为我们会将查询无缝地重定向到另一个实例。最后,用于再平衡的空闲池实例仅按需提供且在再平衡移动之前提供,并且该过程在后台完成。
直观地说,当每个区中的集群的数量基本相等时,一组计算服务管理器集群是平衡的。通过计算负载最多的区中的实例数量(例如,基于与其他区中的集群实例相比,该区中的集群实例的总数)和负载最少的区中的实例数量之间的差异,可以量化一组实例的平衡程度,该差异在本文被称为可用性区(AZ)偏斜。
在某些示例中,有几个原因使得最小化AZ偏斜不仅仅是跨可用性区条带化(striping)所有虚拟机实例。在一些实施例中,主题系统实现多集群架构,其中每个集群服务于不同的客户组,并且每个集群可以彼此独立地缩放以根据需要处理负载。为了最大限度地减少AZ中断对每个集群和整体部署的影响,在集群级别和部署级别实现平衡。
目标是在可接受数量的再平衡变化的约束下,最小化每个集群和整体部署的AZ偏斜。因此,本文描述的实施例可以优先最小化集群偏斜而不是最小化全局偏斜,因为任何单个集群的完全中断可能是灾难性的。
图5示出了以区平衡方式缩放集群的示例500。
如图所示,资源管理器150可以使集群横向扩展,从全局角度从关于该集群的一组负载最少的区中选择负载最少的区。在该示例中,负载最少的区对应于区C,且没有任何当前正在执行的集群。区A具有第一类型的集群510的实例,并且区A和区B各自具有不同于第一类型的第二类型的集群(例如,集群511、集群512)的实例。在示例中,资源管理器150确定(例如,对应于集群510的)第一类型的集群的另一实例可以部署在区C中(例如,如虚线集群514所指示)。为了执行“横向扩展”操作,资源管理器150部署第一类型的集群的新实例(例如,如集群514所指示)。集群的类型可以基于在给定集群的特定实例上执行的应用、数据库或服务器等的版本,并且不同的类型可以具有前述中的一个或更多个的不同版本。
在第二示例中,资源管理器150确定具有关于特定集群(例如,上面讨论的集群的类型)的最少数量的实例的一组区,且然后在全局级别上选择具有最少数量的活动实例的特定区。资源管理器150可以使集群缩容(scale in)(例如,移除集群实例),从全局角度从关于该集群的一组负载最多的区中选择一个负载最多的区。在该示例中,在区A、区B(例如,集群524)和区C(例如,集群523)中存在第一类型的集群(例如,对应于集群520的集群的类型)的三个相应的实例。区B具有两种不同类型的两个集群(第二类型的集群522和第一类型的集群524)。为了执行“缩容”操作,资源管理器150可以移除或关停区B中的第一类型的集群524。
图6示出了针对每个集群选择再平衡移动的示例600。
可能存在无法保持全局区平衡或集群级别的区平衡的情况。因此,有一个额外的活动区再平衡后台任务,它检查部署的当前状态,并执行一系列移动来平衡它。即,由资源管理器150执行的这种任务按照以下顺序对移动进行优先级排序:
1.改善集群级别和全局区平衡的移动
2.改善集群平衡的移动
3.改善全局区平衡的移动
为了生成移动,资源管理器150可以计算关于集群的平衡阈值,该平衡阈值可以基于该集群中实例的数量除以可用区的数量来定义。然后,从实例多于该级别的区到实例少于该级别的区的任何移动不会使集群级别平衡变得更差。之后,资源管理器150可以评估每个移动改善部署的标准,并选择最佳标准。
如图所示,在示例中,区A具有第一类型的集群的两个实例(例如,集群610和集群611)。该示例中的资源管理器150可以确定集群610将被迁移到区B(例如,集群612)或区C(例如,集群614)。如上所述,资源管理器150可以选择不将集群610移动到区B,而是基于将通过移动到区C而不是区B来改善集群平衡的确定来决定将集群610移动到区C(例如,如集群614所指示),因为区A将具有两个集群实例,区B将具有单个集群实例(例如,与区A中的集群620相同的第二类型的集群622),并且区C将具有单个集群实例(例如,对应于现在移动到区C的第一类型的集群610)。
因为允许旧实例完成当前正在运行的作业而新实例接受传入的查询,所以每次移动都以对客户的影响最小来执行。此外,资源管理器150知道需要多少实例来将一组实例再平衡到目标偏斜内,并且将提供正确类别和区的空闲实例。
很难保持完整的全局区平衡(偏斜≤1)而不进行过于频繁的移动,过于频繁的移动会妨碍资源管理器150执行其他编排任务的能力。例如,集群可以扩容到特定区以保持集群级别的区平衡,但是如果该区已经在全局上负载很重,则资源管理器150可能需要再平衡另一个集群以保持全局区平衡。如上所述,再平衡会导致调度开销,因为旧区中的实例需要完成执行正在运行的作业。
从而,资源管理器150保持全局AZ偏斜宽厚误差(skew leniency)阈值,低于该阈值,资源管理器150只能考虑集群级别的再平衡移动。该参数本质上用偏斜宽厚误差交换实例流失率,并且资源管理器150可以决定一个最佳值,该最佳值提供可接受偏斜,同时平滑临时全局区的不平衡,导致这种临时全局区的不平衡是正常集群缩放操作的一部分。该最佳值可以被确定为部署的总大小的百分比,包括最小值和最大值。
图7示出了根据本公开的一些实施例的次优横向扩展的示例700。
如图所示,当前配置包括在相应区中的几个集群(例如,没有在区C中的虚线集群702,该虚线集群对应于与区A中的集群708和区B中的集群710对应的集群类型)。在该示例中,在区A和区B中存在相同类型的集群的实例(例如,集群708和集群710),并且在区C中添加相同类型的另一个集群实例(例如,表示为虚线集群702)可以导致区A到区C中的这种集群的平衡。此外,在区B(例如,集群711)和区C(例如,集群704)中存在相同类型的集群704的两个实例,并且在区C中存在不同类型的集群706的单个实例(例如,不同于对应于集群708和集群710的类型,并且不同于对应于集群711和集群704的其他类型)。
然而,在该示例中,如果另一个实例被添加到区C,这将导致区之间的全局不平衡,从而潜在地导致(例如,触发)资源管理器150的再平衡操作。如果允许将另一个实例添加到区C中(例如,容忍特定时间段),则另一个事件可能会触发将额外的集群添加到区A和区B中,从而在区中产生更平衡的一组集群。在一些示例中,由资源管理器150开始另一个再平衡操作的该事件可以包括周期性地(例如,在诸如1分钟、30秒、几分钟等预定时间段内)确定区不平衡,确定添加集群704或集群706的另一个集群实例可以在全局级别上导致集群的更好的平衡。
以下讨论涉及可由资源管理器150执行的全局区平衡的附加的不同实现。
资源管理器150可以跨可用性区均匀地分布集群,使得一个区的丢失会扰乱最小部分的客户。完全区平衡的部署是以下两者:
·集群级别的区平衡:所有集群内部都是区平衡的(当前通过实例计数实现)。
·全局区平衡:集群分布在整个部署中使用称为唯一集群计数的指标进行区平衡。
例如,考虑以下部署,其中AZ 1-3和集群实例A-E:
左:仅集群级别的区平衡
中间:仅全局区平衡
右:全局和集群级别的区平衡两者
下面的讨论涉及用于执行如上所描述的全局区平衡的实现。
首先,主题系统运行集群级别的区平衡算法,以确保每个集群内部平衡。这个顺序有助于隔离新的变化,因为旧的算法不需要被修改就能感知这种变化。
可用性区的唯一集群计数是指该可用性区中表示的唯一集群的数量,而与每个集群的实例的数量无关。不平衡部署是指其中唯一集群计数的最大差大于1的部署。主题系统可以将阈值调整得更宽松,如果这因参数而引起太多的流失的话。
如果部署不平衡,该阶段将在负载不足的区中找到一个空闲池实例,该负载不足的区是小于具有最大唯一集群计数的区的唯一集群计数大于1的任何区。
如果找到有效的空闲池实例,该阶段将在具有最高唯一集群计数的区中找到一实例,暂停它,并用新实例替换它。在示例中,在该区中选择关于该区的实例数最高的集群。
图8是示出根据本公开的一些实施例的数据库系统在执行方法中的操作的流程图。方法800可以体现为用于由一个或更多个硬件组件(例如,一个或更多个处理器)执行的计算机可读指令,使得方法800的操作可以由基于网络的数据库系统102的组件执行。相应地,方法800在下面通过参考其示例来描述。然而,应当理解,方法800可以被部署在各种其他硬件配置上,并且不旨在局限于部署在基于网络的数据库系统102内。
在操作802,资源管理器150在经过周期性时间段的一个时间段之后,基于阈值确定部署在多个区中的集群实例的不平衡,集群实例包括与计算服务管理器实例相关联的不同类型的集群。
在操作804,资源管理器150识别要包括在多个区中的特定区中的特定类型的集群实例。在示例中,资源管理器150确定特定类型的集群实例的总数小于多个区中第二特定类型的集群实例的第二总数。
在操作806,资源管理器150将特定类型的集群实例添加到特定区,以满足多个区中集群实例的全局平衡。在示例中,添加特定类型的集群实例包括资源管理器150将特定类型的集群实例的新实例部署到该特定区。
在操作808,资源管理器150在经过周期性时间段的第二时间段之后确定部署在多个区中的集群实例的数量低于指示多个区中集群实例的当前平衡的阈值。
图9是示出根据本公开的一些实施例的数据库系统在执行方法中的操作的流程图。方法900可以体现为用于由一个或更多个硬件组件(例如,一个或更多个处理器)执行的计算机可读指令,使得方法900的操作可以由基于网络的数据库系统102的组件执行。相应地,方法900在下面通过参考其示例来描述。然而,应当理解,方法900可以被部署在各种其他硬件配置上,并且不旨在局限于部署在基于网络的数据库系统102内。
在操作902,资源管理器150确定多个区之间的可用性区偏斜。在示例中,可用性区偏斜基于多个区中负载最多的区中的实例数量与负载最少的区中的第二实例数量之间的差。
在实施例中,资源管理器150针对多个区中的每个区,确定集群实例的相应数量,基于每个区中的集群实例的相应数量识别包括最高数量的集群实例的第一区,以及基于每个区中的集群实例的相应数量识别包括最低数量的集群实例的第二区。
在操作904,资源管理器150基于可用性区偏斜确定目标偏斜以满足集群实例的全局平衡。在示例中,目标偏斜基于许多因素,这些因素包括要包括在每个区中以满足可用性区偏斜的阈值或百分比的集群实例的特定数量。
在操作906,资源管理器150基于目标偏斜,在多个区中选择特定区。例如,当负载最多的区中的实例的第一数量和特定区中的集群实例的第二数量之间的差低于与目标偏斜相关联的第三数量时,由资源管理器150选择特定区。
在操作908,资源管理器150将特定类型的集群实例部署到特定区。
图10是示出根据本公开的一些实施例的数据库系统在执行方法中的操作的流程图。方法1000可以体现为用于由一个或更多个硬件组件(例如,一个或更多个处理器)执行的计算机可读指令,使得方法1000的操作可以由基于网络的数据库系统102的组件执行。相应地,方法1000在下面通过参考其示例来描述。然而,应当理解,方法1000可以被部署在各种其他硬件配置上,并且不旨在限于被部署在基于网络的数据仓库系统102内。
在操作1002,资源管理器150从多个区之一确定第二特定区,该第二特定区包括特定数量的集群实例,该特定数量大于多个区中的每个区的每个实例数量。
在操作1004,资源管理器150基于第二特定区识别要移除的第二特定类型的集群实例。在实施例中,资源管理器150确定多个区中的第二特定类型的集群实例的总数大于在多个区中的特定类型的集群实例的第二总数。
在操作1006,资源管理器150从第二特定区移除第二特定类型的集群实例,以满足在多个区中集群实例的全局平衡。
图11示出了根据示例实施例的计算机系统形式的机器1100的图解表示,在该计算机系统形式的机器1100内可以执行指令集以使机器1100执行本文所讨论方法中的任何一种或更多种方法。具体地,图11以计算机系统的示例形式示出了机器1100的图解表示,用于使机器1100执行本文所讨论方法中的任何一种或更多种方法的指令1116(例如,软件、程序、应用、小程序、app、或其他可执行代码)可以在该计算机系统内执行。例如,指令1116可以使机器1100执行上述方法中的任何一个或更多个的任何一个或更多个操作。作为另一个示例,指令1116可以使机器1100实现上面讨论的任何一个或更多个前面提到的附图中所示的部分功能。以这种方式,指令1116将通用的、未编程的机器转换成特定的机器1100(例如,计算服务管理器108-1、执行平台110和用户设备112),该特定的机器1100被具体配置成以本文描述的方式执行所描述和示出的功能中的任何一个。
在替代实施例中,机器1100作为独立的设备操作或者可以耦合(例如,联网)到其它机器。在联网部署中,机器1100可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份来操作,或者作为对等(或分布式)网络环境中的对等机器来操作。机器1100可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本(netbook)、智能电话、移动设备、网络路由器、网络交换机、网络桥接器(networkbridge)或能够顺序地或以其它方式执行指令1116的任何机器,指令1116指定要由机器1100采取的动作。此外,虽然仅示出了单个机器1100,但术语“机器”还应被理解为包括单独或联合地执行指令1116以执行本文所讨论方法中的任何一种或更多种方法的机器1100的集合。
机器1100包括处理器1110、存储器1130和输入/输出(I/O)组件1150,它们被配置成例如经由总线1102彼此通信。在示例实施例中,处理器1110(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如可以执行指令1116的处理器1112和处理器1114。术语“处理器”旨在包括多核处理器1110,多核处理器1110可以包括可以同时执行指令1116的两个或更多个独立处理器(有时称为“核”)。尽管图11示出了多个处理器1110,但是机器1100可以包括具有单核的单个处理器、具有多核的单个处理器(例如,多核处理器)、具有单核的多个处理器、具有多核的多个处理器或者它们的任意组合。
存储器1130可以包括主存储器1132、静态存储器1134和存储单元1136,它们都可以由处理器1110例如经由总线1102访问。主存储器1132、静态存储器1134和存储单元1136存储指令1116,指令1116体现本文描述的方法或功能中的任何一种或更多种。在由机器1100执行期间,指令1116也可以全部或部分地驻留在主存储器1132内、静态存储器1134内、存储单元1136内、处理器1110中的至少一个内(例如,在处理器的高速缓存存储器内)或其任何合适的组合。
I/O组件1150包括用于接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量值等的组件。包括在特定机器1100中的具体的I/O组件1150将取决于机器的类型。例如,诸如移动电话的便携式机器将有可能包括触摸输入设备或其他这样的输入机构,而无头服务器(headless server)机器将不太可能包括这样的触摸输入设备。将认识到的是,I/O组件1150可以包括图11中未示出的许多其他组件。I/O组件1150根据功能进行分组仅仅是为了简化下面的讨论,并且该分组决不是限制性的。在各种示例实施例中,I/O组件1150可以包括输出组件1152和输入组件1154。输出组件1152可以包括视觉组件(例如,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学组件(例如,扬声器)、其他信号发生器等。输入组件1154可以包括字母数字输入组件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于指向的输入组件(例如,鼠标、触控板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
可以使用多种技术来实现通信。I/O组件1150可以包括通信组件1164,通信组件可操作来分别经由耦合1182和耦合1172将机器1100耦合到网络1180或设备1170。例如,通信组件1164可以包括网络接口组件或与网络1180对接的另一合适的设备。在进一步的示例中,通信组件1164可以包括有线通信组件、无线通信组件、蜂窝通信组件和经由其他模态提供通信的其他通信组件。设备1170可以是另一台机器或多种外围设备中的任一种(例如,经由通用串行总线(USB)耦合的外围设备)。例如,如上所述,机器1100可以对应于计算服务管理器108-1、执行平台110中的任何一个,以及设备1170可以包括用户设备112或本文描述的与基于网络的数据库系统102或存储平台104通信的任何其他计算设备。
可执行指令和机器存储介质
各种存储器(例如,1130、1132、1134和/或处理器1110的存储器和/或存储单元1136)可以存储指令1116和数据结构(例如,软件)的一个或更多个集合,这些指令和数据结构(例如软件)体现本文所描述的方法或功能中的任何一种或更多种或被本文所描述的方法或功能中的任何一种或更多种利用。当由处理器1110执行时,这些指令1116使各种操作实现所公开的实施例。
如本文所使用的,术语“机器存储介质”、“设备存储介质”和“计算机存储介质”意思相同,并且可以在本公开中互换使用。这些术语指的是存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。相应地,这些术语应当被认为包括但不限于固态存储器以及光介质和磁介质,包括在处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括非易失性存储器,非易失性存储器包括例如:半导体存储器设备,诸如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)和闪存设备;磁盘,例如内部硬盘和可移除磁盘;磁光盘;以及CD-ROM和DVD-ROM光盘。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”具体排除了载波、经调制的数据信号和其他这样的介质(其中的至少一些包含在下面讨论的术语“信号介质”中)。
传输介质
在各种示例实施例中,网络1180的一个或更多个部分可以是自组织网络(ad hocnetwork)、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网、互联网的一部分、公共交换电话网络(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络、或两种或更多种这样的网络的组合。例如,网络1180或网络1180的一部分可以包括无线或蜂窝网络,并且耦合1182可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一种类型的蜂窝或无线耦合。在该示例中,耦合1182可以实现多种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xRTT)、演进数据优化(Evolution-Data Optimized,EVDO)技术、通用分组无线电服务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准的第三代合作伙伴计划(3GPP)、由各种标准设置组织定义的其他技术、其他长程协议、或其他数据传输技术。
指令1116可以使用传输介质经由网络接口设备(例如,包括在通信组件1164中的网络接口组件)并利用多种众所周知的传输协议(例如,超文本传输协议(HTTP))中的任何一种在网络1180上被传输或接收。类似地,指令1116可以使用传输介质经由耦合1172(例如,对等耦合)被传输或接收到设备1170。术语“传输介质”和“信号介质”意思相同,并且在本公开中可以互换使用。术语“传输介质”和“信号介质”应被理解为包括能够存储、编码或携带用于由机器1100执行的指令1116的任何无形介质,并且包括数字或模拟通信信号或便于这样的软件的通信的其他无形介质。因此,术语“传输介质”和“信号介质”应被理解为包括任何形式的经调制的数据信号、载波等。术语“经调制的数据信号”意指这样的信号:其具有以对信号中的信息进行编码的这样的方式设置或更改的其特性中的一个或更多个特性。
计算机可读介质
术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意思相同,并且在本公开中可以互换使用。这些术语被定义为包括机器存储介质和传输介质二者。因此,这些术语包括存储设备/介质和载波/经调制的数据信号二者。
本文描述的示例方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或永久配置为执行相关操作的一个或更多个处理器来执行。类似地,本文描述的方法可以至少部分地是处理器实现的。例如,方法800和1100的至少一些操作可以由一个或更多个处理器执行。某些操作的执行可以在一个或更多个处理器之间分配,该一个或更多个处理器不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施例中,一个或更多个处理器可以位于单个位置(例如,在家庭环境、办公室环境或服务器场内)中,而在其他实施例中,处理器可以分布在多个位置上。
尽管参考具体的示例实施例描述了本公开的实施例,但显然地,在不偏离本发明主题的更广泛范围的情况下,可以对这些实施例做出各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的。形成本申请的一部分的附图通过说明而非限制的方式示出了其中可以实施主题的具体实施例。所示出的实施例以充分的细节被描述,以使本领域的技术人员能够实施本文公开的教导。可以使用其他实施例和从其中衍生的实施例,使得可以做出结构和逻辑的替换和改变而不偏离本公开的范围。因此,此详细描述不应被理解为限制性意义,并且各种实施例的范围仅由所附权利要求连同这些权利要求所享有的完整范围的等同物一起限定。
本发明主题的这样的实施例可以在本文中单独地和/或共同地由术语“发明”提到,这仅仅是为了便利,并不意图自愿将本申请的范围局限于任何单一发明或发明构思(如果实际上公开了多于一种发明或发明构思的话)。因此,虽然本文中已经说明和描述了特定实施例,但是应当理解,可以用经计算以实现相同目的的任何布置来替换所示出的特定实施例。本公开旨在覆盖各种实施例的任何和所有修改或变型。在阅读以上描述后,本领域的技术人员将明白以上实施例的组合以及本文未具体描述的其他实施例。
在本文档中,术语“一个(a)”或“一个(an)”,如专利文档中常见的那样,用于包括一个或多于一个,与“至少一个”或“一个或更多个”的任何其他实例或用法无关。在本文档中,术语“或”用于指非排他性的或,因此除非另有说明,否则“A或B”包括“A但不包括B”、“B但不包括A”和“A和B”。在所附权利要求中,术语“包括(including)”和“其中(in which)”被用作相应术语“包括(comprising)”和“其中(wherein)”的纯英语等效词。此外,在所附权利要求中,术语“包括(including)”和“包括(comprising)”是开放式的;也就是说,包括除了权利要求中在这样的术语之后列出的那些元素之外的元素的系统、设备、物品或过程仍然被认为落入该权利要求的范围内。
Claims (30)
1.一种基于网络的数据库系统,包括:
至少一个硬件处理器;和
存储器,所述存储器存储使所述至少一个硬件处理器执行包括以下项的操作的指令:
在经过周期性时间段的一个时间段之后,基于阈值确定被部署在多个区中的集群实例的不平衡,所述集群实例包括与计算服务管理器实例相关联的不同类型的集群;
识别要包括在所述多个区中的特定区中的特定类型的集群实例;
将所述特定类型的集群实例添加到所述特定区,以满足在所述多个区中集群实例的全局平衡;和
在经过所述周期性时间段的第二时间段之后,确定被部署在所述多个区中的集群实例的数量低于指示在所述多个区中集群实例的当前平衡的所述阈值。
2.根据权利要求1所述的系统,其中,所述操作还包括:
确定在所述多个区之间的可用性区偏斜。
3.根据权利要求2所述的系统,其中,所述操作还包括:
基于所述可用性区偏斜,确定目标偏斜以满足集群实例的全局平衡;
基于所述目标偏斜,在所述多个区中选择所述特定区;和
将所述特定类型的集群实例部署到所述特定区。
4.根据权利要求3所述的系统,其中,负载最多的区中的实例的第一数量和所述特定区中的集群实例的第二数量之间的差低于与所述目标偏斜相关联的第三数量。
5.根据权利要求2所述的系统,其中,所述可用性区偏斜基于在所述多个区中负载最多的区中的实例的数量与负载最少的区中的实例的第二数量之间的差。
6.根据权利要求5所述的系统,其中,所述操作还包括:
对于所述多个区中的每个区,确定集群实例的相应数量;
基于每个区中集群实例的相应数量,识别包括最高数量的集群实例的第一区;和
基于每个区中集群实例的相应数量,识别包括最低数量的集群实例的第二区。
7.根据权利要求1所述的系统,其中,所述操作还包括:
从所述多个区之一中确定第二特定区,所述第二特定区包括特定数量的集群实例,所述特定数量大于所述多个区中的每一个区的每个实例数量。
8.根据权利要求7所述的系统,其中,所述操作还包括:
基于所述第二特定区,识别要移除的第二特定类型的集群实例;和
从所述第二特定区移除所述第二特定类型的集群实例,以满足所述多个区中集群实例的全局平衡。
9.根据权利要求8所述的系统,其中,识别要移除的所述第二特定类型的集群实例包括:
确定所述多个区中所述第二特定类型的集群实例的总数大于所述多个区中所述特定类型的集群实例的第二总数。
10.根据权利要求1所述的系统,其中,识别要包括在所述多个区中的所述特定区中的所述特定类型的集群实例包括:
确定在所述多个区中所述特定类型的集群实例的总数小于第二特定类型的集群实例的第二总数。
11.一种方法,包括:
在经过周期性时间段的一个时间段之后,基于阈值确定被部署在多个区中的集群实例的不平衡,所述集群实例包括与计算服务管理器实例相关联的不同类型的集群;
识别要包括在所述多个区中的特定区中的特定类型的集群实例;
将所述特定类型的集群实例添加到所述特定区,以满足在所述多个区中集群实例的全局平衡;和
在经过所述周期性时间段的第二时间段之后,确定被部署在所述多个区中的集群实例的数量低于指示在所述多个区中集群实例的当前平衡的所述阈值。
12.根据权利要求11所述的方法,还包括:
确定在所述多个区之间的可用性区偏斜。
13.根据权利要求12所述的方法,还包括:
基于所述可用性区偏斜,确定目标偏斜以满足集群实例的全局平衡;
基于所述目标偏斜,在所述多个区中选择所述特定区;和
将所述特定类型的集群实例部署到所述特定区。
14.根据权利要求13所述的方法,其中,负载最多的区中的实例的第一数量和所述特定区中的集群实例的第二数量之间的差低于与所述目标偏斜相关联的第三数量。
15.根据权利要求12所述的方法,其中,所述可用性区偏斜基于在所述多个区中负载最多的区中的实例的数量与负载最少的区中的实例的第二数量之间的差。
16.根据权利要求15所述的方法,还包括:
对于所述多个区中的每个区,确定集群实例的相应数量;
基于每个区中集群实例的相应数量,识别包括最高数量的集群实例的第一区;和
基于每个区中集群实例的相应数量,识别包括最低数量的集群实例的第二区。
17.根据权利要求11所述的方法,还包括:
从所述多个区之一中确定第二特定区,所述第二特定区包括特定数量的集群实例,所述特定数量大于所述多个区中的每一个区的每个实例数量。
18.根据权利要求17所述的方法,还包括:
基于所述第二特定区,识别要移除的第二特定类型的集群实例;和
从所述第二特定区移除所述第二特定类型的集群实例,以满足所述多个区中集群实例的全局平衡。
19.根据权利要求18所述的方法,其中,识别要移除的所述第二特定类型的集群实例包括:
确定所述多个区中所述第二特定类型的集群实例的总数大于所述多个区中所述特定类型的集群实例的第二总数。
20.根据权利要求11所述的方法,其中,识别要包括在所述多个区中的所述特定区中的所述特定类型的集群实例包括:
确定在所述多个区中所述特定类型的集群实例的总数小于第二特定类型的集群实例的第二总数。
21.一种有形计算机存储介质,其包括指令,所述指令在由机器的一个或更多个处理器执行时将所述机器配置成执行包括以下项的操作:
在经过周期性时间段的一个时间段之后,基于阈值确定被部署在多个区中的集群实例的不平衡,所述集群实例包括与计算服务管理器实例相关联的不同类型的集群;
识别要包括在所述多个区中的特定区中的特定类型的集群实例;
将所述特定类型的集群实例添加到所述特定区,以满足在所述多个区中集群实例的全局平衡;和
在经过所述周期性时间段的第二时间段之后,确定被部署在所述多个区中的集群实例的数量低于指示在所述多个区中集群实例的当前平衡的所述阈值。
22.根据权利要求21所述的有形计算机存储介质,其中,所述操作还包括:
确定在所述多个区之间的可用性区偏斜。
23.根据权利要求22所述的有形计算机存储介质,其中,所述操作还包括:
基于所述可用性区偏斜,确定目标偏斜以满足集群实例的全局平衡;
基于所述目标偏斜,在所述多个区中选择所述特定区;和
将所述特定类型的集群实例部署到所述特定区。
24.根据权利要求23所述的有形计算机存储介质,其中,负载最多的区中的实例的第一数量和所述特定区中的集群实例的第二数量之间的差低于与所述目标偏斜相关联的第三数量。
25.根据权利要求22所述的有形计算机存储介质,其中,所述可用性区偏斜基于在所述多个区中负载最多的区中的实例的数量与负载最少的区中的实例的第二数量之间的差。
26.根据权利要求25所述的有形计算机存储介质,其中,所述操作还包括:
对于所述多个区中的每个区,确定集群实例的相应数量;
基于每个区中集群实例的相应数量,识别包括最高数量的集群实例的第一区;和
基于每个区中集群实例的相应数量,识别包括最低数量的集群实例的第二区。
27.根据权利要求21所述的有形计算机存储介质,其中,所述操作还包括:
从所述多个区之一中确定第二特定区,所述第二特定区包括特定数量的集群实例,所述特定数量大于所述多个区中的每一个区的每个实例数量。
28.根据权利要求27所述的有形计算机存储介质,其中,所述操作还包括:
基于所述第二特定区,识别要移除的第二特定类型的集群实例;和
从所述第二特定区移除所述第二特定类型的集群实例,以满足所述多个区中集群实例的全局平衡。
29.根据权利要求28所述的有形计算机存储介质,其中,识别要移除的所述第二特定类型的集群实例包括:
确定所述多个区中所述第二特定类型的集群实例的总数大于所述多个区中所述特定类型的集群实例的第二总数。
30.根据权利要求21所述的有形计算机存储介质,其中,识别要包括在所述多个区中的所述特定区中的所述特定类型的集群实例包括:
确定在所述多个区中所述特定类型的集群实例的总数小于第二特定类型的集群实例的第二总数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163260425P | 2021-08-19 | 2021-08-19 | |
US63/260,425 | 2021-08-19 | ||
PCT/US2022/075115 WO2023023579A1 (en) | 2021-08-19 | 2022-08-18 | Zone balancing in multi cluster database systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117836759A true CN117836759A (zh) | 2024-04-05 |
Family
ID=82320275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280056684.XA Pending CN117836759A (zh) | 2021-08-19 | 2022-08-18 | 多集群数据库系统中的区平衡 |
Country Status (3)
Country | Link |
---|---|
US (4) | US11372820B1 (zh) |
CN (1) | CN117836759A (zh) |
WO (1) | WO2023023579A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11604806B2 (en) | 2020-12-28 | 2023-03-14 | Nutanix, Inc. | System and method for highly available database service |
US11372820B1 (en) | 2021-08-19 | 2022-06-28 | Snowflake Inc. | Zone balancing in a multi cluster database system |
US20230103223A1 (en) * | 2021-09-24 | 2023-03-30 | Sap Se | Cloud application management using instance metadata |
US11922163B2 (en) | 2021-09-24 | 2024-03-05 | Sap Se | Cloud version management for legacy on-premise application |
US11841731B2 (en) | 2021-09-24 | 2023-12-12 | Sap Se | Cloud plugin for legacy on-premise application |
US20230195700A1 (en) * | 2021-12-22 | 2023-06-22 | Nutanix, Inc. | Autonomous database management system |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8321558B1 (en) * | 2009-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Dynamically monitoring and modifying distributed execution of programs |
US8719415B1 (en) * | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US8260840B1 (en) * | 2010-06-28 | 2012-09-04 | Amazon Technologies, Inc. | Dynamic scaling of a cluster of computing nodes used for distributed execution of a program |
US10997211B2 (en) * | 2010-12-23 | 2021-05-04 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US10977277B2 (en) * | 2010-12-23 | 2021-04-13 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US8538926B2 (en) * | 2011-03-08 | 2013-09-17 | Rackspace Us, Inc. | Massively scalable object storage system for storing object replicas |
US8510267B2 (en) * | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
US10394611B2 (en) * | 2012-11-26 | 2019-08-27 | Amazon Technologies, Inc. | Scaling computing clusters in a distributed computing system |
US9495257B2 (en) * | 2013-02-27 | 2016-11-15 | Oracle International Corporation | Networking support for zone clusters based on virtualization of servers |
US10938787B2 (en) * | 2017-12-01 | 2021-03-02 | Kohl's, Inc. | Cloud services management system and method |
US11171913B2 (en) * | 2018-09-28 | 2021-11-09 | Nutanix, Inc. | Systems and methods for implementing address translation services |
US10880367B2 (en) * | 2019-01-23 | 2020-12-29 | Vmware, Inc. | Load balancing stretched clusters in a distributed network |
US10887380B2 (en) * | 2019-04-01 | 2021-01-05 | Google Llc | Multi-cluster ingress |
US11436218B2 (en) * | 2019-08-02 | 2022-09-06 | Alibaba Group Holding Limited | Transaction processing for a database distributed across availability zones |
US20210272137A1 (en) * | 2019-12-31 | 2021-09-02 | Affinio Inc. | Apparatus for Fast Clustering of Massive Data Based on Variate-Specific Population Strata |
US10909135B1 (en) * | 2020-01-31 | 2021-02-02 | Capital One Services, Llc | Systems and methods for context development |
US11863352B2 (en) * | 2020-07-30 | 2024-01-02 | Vmware, Inc. | Hierarchical networking for nested container clusters |
US20220067061A1 (en) * | 2020-08-28 | 2022-03-03 | Nutanix, Inc. | Multi-cluster database management system |
US11463314B2 (en) * | 2020-12-16 | 2022-10-04 | Oracle International Corporation | Automatically inferring software-defined network policies from the observed workload in a computing environment |
US11539754B2 (en) * | 2020-12-16 | 2022-12-27 | Oracle International Corporation | Techniques for generating network security policies for application components deployed in a computing environment |
US11372820B1 (en) * | 2021-08-19 | 2022-06-28 | Snowflake Inc. | Zone balancing in a multi cluster database system |
-
2021
- 2021-08-30 US US17/461,169 patent/US11372820B1/en active Active
-
2022
- 2022-06-14 US US17/806,852 patent/US11537566B1/en active Active
- 2022-08-18 WO PCT/US2022/075115 patent/WO2023023579A1/en active Application Filing
- 2022-08-18 CN CN202280056684.XA patent/CN117836759A/zh active Pending
- 2022-09-28 US US17/936,169 patent/US11698886B2/en active Active
-
2023
- 2023-05-31 US US18/326,645 patent/US11966368B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11966368B2 (en) | 2024-04-23 |
US11537566B1 (en) | 2022-12-27 |
US11372820B1 (en) | 2022-06-28 |
US20230069578A1 (en) | 2023-03-02 |
US20230325362A1 (en) | 2023-10-12 |
US11698886B2 (en) | 2023-07-11 |
WO2023023579A1 (en) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11537566B1 (en) | Zone balancing in a multi cluster database system | |
US11216481B2 (en) | Virtual warehouse pools for executing tasks | |
US11960505B2 (en) | Export data from tables into partitioned folders on an external data lake | |
CN113672359B (zh) | 柔性计算 | |
CN113474764A (zh) | 共享数据库对象上的流 | |
US11599389B2 (en) | Autoscaling in an elastic cloud service | |
US20230401229A1 (en) | Replication of unstructured staged data between database deployments | |
US20240095232A1 (en) | Background job based refresh fulfillment | |
CN116472527A (zh) | 用于控制数据库系统中的信息访问的受限视图 | |
CN116348864A (zh) | 自动缩放外部功能请求 | |
US11507465B1 (en) | Query retry using quiesce notification | |
US11748327B2 (en) | Streams using persistent tables | |
US20240143565A1 (en) | Observability loop |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: U.S.A. Address after: Montana Applicant after: Snowflake Co. Address before: Montana Applicant before: SNOWFLAKE COMPUTING Inc. Country or region before: U.S.A. |