IP Library › Granted Patent US 11,372,820
Granted Patent B1
US 11,372,820 · App. 17/461,169 · Granted Jun 28, 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,372,820
App. No.
17/461,169
Filed
Aug 30, 2021
Granted
Jun 28, 2022
Kind
B1
Art Unit
2167
USPC
707/827
Abstract

The subject technology determines, 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. The subject technology identifies a particular type of cluster instance to include in a particular zone from the multiple zones. The subject technology adds the particular type of cluster instance to the particular zone to meet a global balancing of cluster instances in the multiple zones. The subject technology determines, 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.

Claims (77)

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, 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;

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

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

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; and

determining an availability zone skew among the multiple zones.

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

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

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

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

3. The system of claim 2 , 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.

4. 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.

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

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; and

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

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

determining a second particular zone from one of the multiple zones that includes a particular number of cluster instances that is greater than each number of instances from each of the multiple zones.

7. The system of claim 6 , wherein the operations further comprise:

identifying a second particular type of cluster instance to remove based on the second particular zone; and

removing the second particular type of cluster instance from the second particular zone to meet the global balancing of cluster instances in the multiple zones.

8. The system of claim 7 , wherein identifying the second particular type of cluster instance to remove comprises:

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.

9. The system of claim 1 , wherein identifying the particular type of cluster instance to include in the particular zone from the multiple zones comprises:

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

10. A method comprising:

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;

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

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

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; and

determining an availability zone skew among the multiple zones.

11. The method of claim 10 , further comprising:

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

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

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

12. The method of claim 11 , 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.

13. The method of claim 10 , 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.

14. The method of claim 13 , further comprising:

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; and

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

15. The method of claim 10 , further comprising:

determining a second particular zone from one of the multiple zones that includes a particular number of cluster instances that is greater than each number of instances from each of the multiple zones.

16. The method of claim 15 , further comprising:

identifying a second particular type of cluster instance to remove based on the second particular zone; and

removing the second particular type of cluster instance from the second particular zone to meet the global balancing of cluster instances in the multiple zones.

17. The method of claim 16 , wherein identifying the second particular type of cluster instance to remove comprises:

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.

18. The method of claim 10 , wherein identifying the particular type of cluster instance to include in the particular zone from the multiple zones comprises:

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

19. 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, 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;

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

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

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 a below the threshold value indicating a current balance of cluster instances in the multiple zones; and

determining an availability zone skew among the multiple zones.

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

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

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

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

21. The non-transitory computer-storage medium of claim 20 , 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.

22. The non-transitory computer-storage medium of claim 19 , 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.

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

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; and

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

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

determining a second particular zone from one of the multiple zones that includes a particular number of cluster instances that is greater than each number of instances from each of the multiple zones.

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

identifying a second particular type of cluster instance to remove based on the second particular zone; and

removing the second particular type of cluster instance from the second particular zone to meet the global balancing of cluster instances in the multiple zones.

26. The non-transitory computer-storage medium of claim 25 , wherein identifying the second particular type of cluster instance to remove comprises:

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.

27. The non-transitory computer-storage medium of claim 19 , wherein identifying the particular type of cluster instance to include in the particular zone from the multiple zones comprises:

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

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2021
From: HARJONO, JOHAN; KARP, DANIEL GEOFFREY; RADUT, RARES; REHMTULLA, SAMIR; SHI, ARTHUR KELVIN; WATTANAWONG, THANAKUL
To: SNOWFLAKE INC.
Reel/Frame 057656/0057 →
Continuity (1)
Provisional Application 63260425 · Aug 19, 2021
Cited By (10)
US 12,254,020 US 12,306,819 US 12,386,801 US 12,399,706 US 12,481,638 US 12,613,857 US 12,657,097 US 12,693,999 US 12,699,685 US 12,730,914