IP Library Granted Patent US 10,997,207
Granted Patent B2
US 10,997,207 · App. 17/064,888 · Granted May 4, 2021

Connection management in a distributed database

Inventors: Eric Robinson (Sammamish, WA); Benoit Dageville (San Mateo, CA); Shigeyuki Takeda (San Mateo, CA); Kristopher Wagner (San Mateo, CA)
Assignee: Snowflake Inc.
G06F16/27G06F16/21G06F16/2379H04L61/1511H04L67/10
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 10,997,207
App. No.
17/064,888
Granted
May 4, 2021
Kind
B2
Abstract

The subject technology generates a unique identification that references a first connection object of a first deployment and a second connection object of a second deployment of a database. The subject technology receives a notification that the first deployment is unavailable, the notification that the first deployment is unavailable comprises an indication of a downtime for the first deployment. The subject technology provides an external connection group unique identification to the second deployment for the second deployment to determine whether a client is to be connected to the second deployment. The subject technology receives a uniform resource locator from the second deployment when a client device is to be connected to the second deployment, the uniform resource locator being provided to the client device for connecting to the second deployment.

Claims (83)

1. A system comprising:

at least one processor;

a memory device including instructions, which when executed by the at least one processor, cause the at least one processor to perform operations comprising:

generating a unique identification that references a first connection object of a first deployment and a second connection object of a second deployment of a database, the first deployment and the second deployment being separate deployments of the database provided by different cloud providers;

receiving a notification that the first deployment is unavailable, the notification that the first deployment is unavailable comprises an indication of a scheduled downtime for the first deployment that has yet to occur;

providing an external connection group unique identification to the second deployment for the second deployment to determine whether a client is to be connected to the second deployment, the external connection group unique identification and the unique identification being separate identifications to facilitate maintaining security in connecting to the second deployment;

receiving a uniform resource locator from the second deployment when a client device is to be connected to the second deployment, the uniform resource locator being provided to the client device for connecting to the second deployment;

executing updates to database data at an applicable primary deployment based on a client connection; and

propagating the updates to one or more secondary deployments to have the one or more secondary deployments comprise an up-to-date version of the database data and take over as a new primary deployment when the applicable primary deployment becomes unavailable.

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

prior to receiving the notification that the first deployment is unavailable, causing, using a client connection between the client device and the first deployment of the database, traffic to be directed from the client device to the first deployment, the traffic comprises updates to database data.

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

after receiving the uniform resource locator from the second deployment, causing, using a second client connection between the client device and the second deployment of the database, traffic to be directed from the client device to the second deployment.

4. The system of claim 1 , wherein the notification that the first deployment is unavailable comprises a second indication of at least one of:

an error at the first deployment, or

a power outage at the first deployment.

5. The system of claim 1 , wherein providing the external connection group unique identification to the second deployment further comprises performing a lookup with the external connection group unique identification.

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

providing an indication of transitioning to the second deployment when the lookup is true, wherein the indication at least includes the uniform resource locator from the second deployment.

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

causing updates to database data to be executed on the second deployment to have the updates propagated to the first deployment and one or more additional secondary deployments after being executed at the second deployment.

8. The system of claim 1 , wherein the first deployment and the second deployment comprise one or more of:

serviced by different computing resources,

located in different geographic regions, or

serviced by different cloud-based database providers.

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

transitioning the client connection from the first deployment to the second deployment to have database traffic is executed at the second deployment, wherein transitioning the client connection is in response to receiving the uniform resource locator from the second deployment.

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

sending a REST (Representational State Transfer) request from the client device to the second deployment.

11. A method comprising:

generating a unique identification that references a first connection object of a first deployment and a second connection object of a second deployment of a database, the first deployment and the second deployment being separate deployments of the database provided by different cloud providers;

receiving a notification that the first deployment is unavailable, the notification that the first deployment is unavailable comprises an indication of a scheduled downtime for the first deployment that has yet to occur;

providing an external connection group unique identification to the second deployment for the second deployment to determine whether a client is to be connected to the second deployment, the external connection group unique identification and the unique identification being separate identifications to facilitate maintaining security in connecting to the second deployment;

receiving a uniform resource locator from the second deployment when a client device is to be connected to the second deployment, the uniform resource locator being provided to the client device for connecting to the second deployment;

executing updates to database data at an applicable primary deployment based on a client connection; and

propagating the updates to one or more secondary deployments to have the one or more secondary deployments comprise an up-to-date version of the database data and take over as a new primary deployment when the applicable primary deployment becomes unavailable.

12. The method of claim 11 , further comprising:

prior to receiving the notification that the first deployment is unavailable, causing, using a client connection between the client device and the first deployment of the database, traffic to be directed from the client device to the first deployment, the traffic comprises updates to database data.

13. The method of claim 11 , further comprising:

after receiving the uniform resource locator from the second deployment, causing, using a second client connection between the client device and the second deployment of the database, traffic to be directed from the client device to the second deployment.

14. The method of claim 11 , wherein the notification that the first deployment is unavailable comprises a second indication of at least one of:

an error at the first deployment, or

a power outage at the first deployment.

15. The method of claim 11 , wherein providing the external connection group unique identification to the second deployment further comprises performing a lookup with the external connection group unique identification.

16. The method of claim 15 , further comprising:

providing an indication of transitioning to the second deployment when the lookup is true, wherein the indication at least includes the uniform resource locator from the second deployment.

17. The method of claim 15 , further comprising:

causing updates to database data to be executed on the second deployment to have the updates propagated to the first deployment and one or more additional secondary deployments after being executed at the second deployment.

18. The method of claim 11 , wherein the first deployment and the second deployment comprise one or more of:

serviced by different computing resources,

located in different geographic regions, or

serviced by different cloud-based database providers.

19. The method of claim 11 , further comprising:

transitioning the client connection from the first deployment to the second deployment to have database traffic is executed at the second deployment, wherein transitioning the client connection is in response to receiving the uniform resource locator from the second deployment.

20. The method of claim 11 , further comprising:

sending a REST (Representational State Transfer) request from the client device to the second deployment.

21. A non-transitory computer-readable medium comprising instructions, which when executed by at least one processor, cause the at least one processor to perform operations comprising:

generating a unique identification that references a first connection object of a first deployment and a second connection object of a second deployment of a database, the first deployment and the second deployment being separate deployments of the database provided by different cloud providers;

receiving a notification that the first deployment is unavailable, the notification that the first deployment is unavailable comprises an indication of a scheduled downtime for the first deployment that has yet to occur;

providing an external connection group unique identification to the second deployment for the second deployment to determine whether a client is to be connected to the second deployment, the external connection group unique identification and the unique identification being separate identifications to facilitate maintaining security in connecting to the second deployment;

receiving a uniform resource locator from the second deployment when a client device is to be connected to the second deployment, the uniform resource locator being provided to the client device for connecting to the second deployment;

executing updates to database data at an applicable primary deployment based on a client connection; and

propagating the updates to one or more secondary deployments to have the one or more secondary deployments comprise an up-to-date version of the database data and take over as a new primary deployment when the applicable primary deployment becomes unavailable.

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

prior to receiving the notification that the first deployment is unavailable, causing, using a client connection between the client device and the first deployment of the database, traffic to be directed from the client device to the first deployment, the traffic comprises updates to database data.

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

after receiving the uniform resource locator from the second deployment, causing, using a second client connection between the client device and the second deployment of the database, traffic to be directed from the client device to the second deployment.

24. The non-transitory computer-readable medium of claim 21 , wherein the notification that the first deployment is unavailable comprises a second indication of at least one of:

an error at the first deployment, or

a power outage at the first deployment.

25. The non-transitory computer-readable medium of claim 21 , wherein providing the external connection group unique identification to the second deployment further comprises performing a lookup with the external connection group unique identification.

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

providing an indication of transitioning to the second deployment when the lookup is true, wherein the indication at least includes the uniform resource locator from the second deployment.

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

causing updates to database data to be executed on the second deployment to have the updates propagated to the first deployment and one or more additional secondary deployments after being executed at the second deployment.

28. The non-transitory computer-readable medium of claim 21 , wherein the first deployment and the second deployment comprise one or more of:

serviced by different computing resources,

located in different geographic regions, or

serviced by different cloud-based database providers.

29. The non-transitory computer-readable medium of claim 21 , wherein the operations further comprise:

transitioning the client connection from the first deployment to the second deployment to have database traffic is executed at the second deployment, wherein transitioning the client connection is in response to receiving the uniform resource locator from the second deployment.

30. The non-transitory computer-readable medium of claim 21 , wherein the operations further comprise:

sending a REST (Representational State Transfer) request from the client device to the second deployment.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE TO APRIL 1, 2019, THAT WAS INCORRECTLY RECORDED AS MARCH 14, 2019 PREVIOUSLY RECORDED AT REEL: 054079 FRAME: 0631. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 12, 2021
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 057181/0745 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2020
From: ROBINSON, ERIC; DAGEVILLE, BENOIT; TAKEDA, SHIGEYUKI; WAGNER, KRISTOPHER
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 054079/0534 →
CHANGE OF NAME Recorded Oct 16, 2020
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 054079/0631 →
Continuity (3)
Continuation 16778817 · Jan 31, 2020
Continuation 16357822 · Mar 19, 2019
Related Publication 20210019331A1 · Jan 21, 2021
Cited By (1)
US 12,455,800