IP Library › Granted Patent US 11,537,566
Granted Patent B1
US 11,537,566 · App. 17/806,852 · Granted Dec 27, 2022

Zone balancing in a multi cluster database system

Inventors: Johan Harjono (San Francisco, CA); Daniel Geoffrey Karp (San Carlos, CA); Rares Radut (Kitchener, CA); Samir Rehmtulla (San Mateo, CA); Arthur Kelvin Shi (San Francisco, CA); Thanakul Wattanawong (Berkeley, CA)
Assignee: Snowflake Inc.
G06F16/1824G06F16/285
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,537,566
App. No.
17/806,852
Granted
Dec 27, 2022
Kind
B1
Abstract

The subject technology determines an availability zone skew among multiple zones. The subject technology, based on the availability zone skew, determines a target skew to meet a global balancing of cluster instances. The subject technology, based on the target skew, selects a particular zone among multiple zones. The subject technology deploys a particular type of cluster instance to the particular zone. The subject technology, for each zone from the multiple zones, determining a respective number of cluster instances. The subject technology identifies a first zone that includes a highest number of cluster instances based on the respective number of cluster instances from each zone. The subject technology identifies a second zone that includes a lowest number of cluster instances based on the respective number of cluster instances from each zone.

Claims (58)

1. A network-based database system comprising:

at least one hardware processor; and

a memory storing instructions that cause the at least one hardware processor to perform operations comprising:

determining an availability zone skew among multiple zones; based on the availability zone skew, determining a target skew to meet a global balancing of cluster instances;

based on the target skew, selecting a particular zone among multiple zones;

determining that a total number of a particular type of cluster instance is less than a second total number of a second particular type of cluster instance in the multiple zones:

deploying the particular type of cluster instance to the particular zone;

for each zone from the multiple zones, determining a respective number of cluster instances;

identifying a first zone that includes a highest number of cluster instances based on the respective number of cluster instances from each zone;

identifying a second zone that includes a lowest number of cluster instances based on the respective number of cluster instances from each zone;

removing a second particular type of cluster instance from a second particular zone to meet the global balancing of cluster instances in the multiple zones, the second particular zone including a particular number of cluster instances that is greater than each number of instances from each of the multiple zones; and

determining that a total number of the second particular type of cluster instance in the multiple zones is greater than a second total number of the particular type of cluster instance in the multiple zones.

2. The system of claim 1 , wherein the operations further comprise:

prior to determining the availability zone skew among the multiple zones: determining, after a period of time elapses over a periodic segment of time, an imbalance of cluster instances deployed in multiple zones based on a threshold value, the cluster instances including different types of clusters associated with compute service manager instances.

3. The system of claim 2 , wherein the operations further comprise: identifying a particular type of cluster instance to include in the particular zone from the multiple zones.

4. The system of claim 3 , wherein the operations further comprise:

adding the particular type of cluster instance to the particular zone to meet a global balancing of cluster instances in the multiple zones; and

determining, after a second period of time elapses over the periodic segment of time, that a number of cluster instances deployed in the multiple zones is below the threshold value indicating a current balance of cluster instances in the multiple zones.

5. The system of claim 1 , wherein a difference between a first number of instances from a most loaded zone and a second number of cluster instances from the particular zone is below a third number associated with the target skew.

6. The system of claim 1 , wherein the availability zone skew is based on a difference between a number of instances in a most loaded zone and a second number of instances in a least loaded zone among the multiple zones.

7. A method comprising:

determining an availability zone skew among multiple zones; based on the availability zone skew, determining a target skew to meet a global balancing of cluster instances;

based on the target skew, selecting a particular zone among multiple zones;

determining that a total number of a particular type of cluster instance is less than a second total number of a second particular type of cluster instance in the multiple zones;

deploying the particular type of cluster instance to the particular zone;

for each zone from the multiple zones, determining a respective number of cluster instances;

identifying a first zone that includes a highest number of cluster instances based on the respective number of cluster instances from each zone;

identifying a second zone that includes a lowest number of cluster instances based on the respective number of cluster instances from each zone;

removing a second particular type of cluster instance from a second particular zone to meet the global balancing of cluster instances in the multiple zones, the second particular zone including a particular number of cluster instances that is greater than each number of instances from each of the multiple zones; and

determining that a total number of the second particular type of cluster instance in the multiple zones is greater than a second total number of the particular type of cluster instance in the multiple zones.

8. The method of claim 7 , further comprising:

prior to determining the availability zone skew among the multiple zones: determining, after a period of time elapses over a periodic segment of time, an imbalance of cluster instances deployed in multiple zones based on a threshold value, the cluster instances including different types of clusters associated with compute service manager instances.

9. The method of claim 8 , further comprising:

identifying a particular type of cluster instance to include in the particular zone from the multiple zones.

10. The method of claim 9 , further comprising:

adding the particular type of cluster instance to the particular zone to meet a global balancing of cluster instances in the multiple zones; and

determining, after a second period of time elapses over the periodic segment of time, that a number of cluster instances deployed in the multiple zones is below the threshold value indicating a current balance of cluster instances in the multiple zones.

11. The method of claim 7 , wherein a difference between a first number of instances from a most loaded zone and a second number of cluster instances from the particular zone is below a third number associated with the target skew.

12. The method of claim 7 , wherein the availability zone skew is based on a difference between a number of instances in a most loaded zone and a second number of instances in a least loaded zone among the multiple zones.

13. A non-transitory computer-storage medium comprising instructions that, when executed by one or more processors of a machine, configure the machine to perform operations comprising:

determining an availability zone skew among multiple zones;

based on the availability zone skew, determining a target skew to meet a global balancing of cluster instances;

based on the target skew, selecting a particular zone among multiple zones;

determining that a total number of a particular type of cluster instance is less than a second total number of a second particular type of cluster instance in the multiple zones;

deploying the particular type of cluster instance to the particular zone; for each zone from the multiple zones, determining a respective number of cluster instances;

identifying a first zone that includes a highest number of cluster instances based on the respective number of cluster instances from each zone;

identifying a second zone that includes a lowest number of cluster instances based on the respective number of cluster instances from each zone;

removing a second particular type of cluster instance from a second particular zone to meet the global balancing of cluster instances in the multiple zones, the second particular zone including a particular number of cluster instances that is greater than each number of instances from each of the multiple zones; and

determining that a total number of the second particular type of cluster instance in the multiple zones is greater than a second total number of the particular type of cluster instance in the multiple zones.

14. The non-transitory computer-storage medium of claim 13 , wherein the operations further comprise:

prior to determining the availability zone skew among the multiple zones: determining, after a period of time elapses over a periodic segment of time, an imbalance of cluster instances deployed in multiple zones based on a threshold value, the cluster instances including different types of clusters associated with compute service manager instances.

15. The non-transitory computer-storage medium of claim 14 , wherein the operations further comprise:

identifying a particular type of cluster instance to include in the particular zone from the multiple zones.

16. The non-transitory computer-storage medium of claim 15 , wherein the operations further comprise:

adding the particular type of cluster instance to the particular zone to meet a global balancing of cluster instances in the multiple zones; and

determining, after a second period of time elapses over the periodic segment of time, that a number of cluster instances deployed in the multiple zones is below the threshold value indicating a current balance of cluster instances in the multiple zones.

17. The non-transitory computer-storage medium of claim 13 , wherein a difference between a first number of instances from a most loaded zone and a second number of cluster instances from the particular zone is below a third number associated with the target skew.

18. The non-transitory computer-storage medium of claim 13 , wherein the availability zone skew is based on a difference between a number of instances in a most loaded zone and a second number of instances in a least loaded zone among the multiple zones.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2022
From: HARJONO, JOHAN; KARP, DANIEL GEOFFREY; RADUT, RARES; REHMTULLA, SAMIR; SHI, ARTHUR KELVIN; WATTANAWONG, THANAKUL
To: SNOWFLAKE INC.
Reel/Frame 060195/0541 →
Continuity (2)
Continuation 17461169 · Aug 30, 2021
Provisional Application 63260425 · Aug 19, 2021