IP Library Granted Patent US 11,989,206
Granted Patent B2
US 11,989,206 · App. 17/815,375 · Granted May 21, 2024

Automated database replication using replication preparation objects

Inventors: Pui Kei Johnston Chu (Richmond Hill, CA); Benoit Dageville (San Mateo, CA); Shreyas Narendra Desai (Bellevue, WA); Sameer Deshpande (Mountain View, CA); Subramanian Muralidhar (Mercer Island, WA); Di Wu (Newark, CA)
Assignee: Snowflake Inc.
G06F16/273G06F16/1844G06F16/245
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,989,206
App. No.
17/815,375
Granted
May 21, 2024
Kind
B2
Abstract

Techniques for database replication using replication preparation objects include storing, by at least one hardware processor, at least one task object at a remote deployment of a data provider. A replication request originating from an account of a data consumer is detected at the remote deployment using the at least one task object. The replication request is associated with a database available at a primary deployment of the data provider. Responsive to the detecting of the replication request, a local instance of the database is generated at the remote deployment. The account of the data consumer at the remote deployment is configured to access the local instance of the database.

Claims (63)

1. A system comprising:

at least one hardware processor; and

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

storing at least one task object at a remote deployment of a data provider;

detecting, using the at least one task object, a replication request originating from an account of a data consumer at the remote deployment, the replication request associated with a database available at a primary deployment of the data provider;

responsive to the detecting of the replication request, generating a local instance of the database at the remote deployment, the generating of the local instance based on invoking a database refresh operation and pushing database data of the database available at the primary deployment to a database shell at the remote deployment in response to the database refresh operation, the pushing causing modifying of the database shell from an empty shell without the database data into a remote deployment database shell configured as the local instance of the database, and the remote deployment database shell including the database data of the primary deployment based on completion of the pushing; and

configuring the account of the data consumer at the remote deployment to access the local instance of the database.

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

storing, at the remote deployment of the data provider, a set of replication preparation objects, the set of replication preparation objects including the database shell, a share shell, and the at least one task object.

3. The system of claim 2 , the operations further comprising:

monitoring using the at least one task object, the remote deployment for requests to replicate the database; and

detecting the replication request based on the monitoring.

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

in response to the detecting of the replication request, executing, by the at least one hardware processor, a set of data processing operations to cause the generating of the local instance.

5. The system of claim 2 , wherein the set of replication preparation objects is provisioned at the remote deployment of the data provider prior to the detecting of the replication request.

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

in response to the detecting of the replication request, executing, by the at least one hardware processor, a set of data processing operations to invoke a database refresh operation using the database shell.

7. The system of claim 6 , the operations further comprising: configuring the database shell with the database data at the remote deployment as the local instance of the database; and granting the account of the data consumer at the remote deployment, access to share data in the remote deployment database shell using the share shell.

8. The system of claim 2 , the operations further comprising:

executing a set data processing operations to invoke a share refresh operation that provides the account of the data consumer at the remote deployment with access to share data of the database.

9. The system of claim 8 , wherein the operations for invoking the share-refresh operation further comprise:

initiating the pushing of the share data of the database from a share object at the primary deployment to the share shell of the set of replication preparation objects.

10. A method comprising:

storing, by at least one hardware processor, at least one task object at a remote deployment of a data provider;

detecting, using the at least one task object, a replication request originating from an account of a data consumer at the remote deployment, the replication request associated with a database available at a primary deployment of the data provider;

responsive to the detecting of the replication request, generating a local instance of the database at the remote deployment, the generating of the local instance based on invoking a database refresh operation and pushing database data of the database available at the primary deployment to a database shell at the remote deployment in response to the database refresh operation, the pushing causing modifying of the database shell from an empty shell without the database data into a remote deployment database shell configured as the local instance of the database, and the remote deployment database shell including the database data of the primary deployment based on completion of the pushing; and

configuring the account of the data consumer at the remote deployment to access the local instance of the database.

11. The method of claim 10 , further comprising:

storing, at the remote deployment of the data provider, a set of replication preparation objects, the set of replication preparation objects including the database shell, a share shell, and the at least one task object.

12. The method of claim 11 , further comprising:

monitoring using the at least one task object, the remote deployment for requests to replicate the database; and

detecting the replication request based on the monitoring.

13. The method of claim 12 , further comprising:

in response to the detecting of the replication request, executing, by the at least one hardware processor, a set of data processing operations to cause the generating of the local instance.

14. The method of claim 11 , wherein the set of replication preparation objects is provisioned at the remote deployment of the data provider prior to the detecting of the replication request.

15. The method of claim 14 , further comprising:

in response to the detecting of the replication request, executing, by the at least one hardware processor, a set of data processing operations to invoke a database refresh operation using the database shell.

16. The method of claim 15 , further comprising: configuring the database shell with the database data at the remote deployment as the local instance of the database; and granting the account of the data consumer at the remote deployment, access to share data in the remote deployment database shell using the share shell.

17. The method of claim 11 , further comprising:

executing a set of data processing operations to invoke a share-refresh operation that provides the account of the data consumer at the remote deployment with access to share data of the database.

18. The method of claim 17 , wherein invoking the share-refresh operation further comprises:

initiating the pushing of the share data of the database from a share object at the primary deployment to the share shell of the set of replication preparation objects.

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:

storing at least one task object at a remote deployment of a data provider;

detecting, using the at least one task object, a replication request originating from an account of a data consumer at the remote deployment, the replication request associated with a database available at a primary deployment of the data provider;

responsive to the detecting of the replication request, generating a local instance of the database at the remote deployment, the generating of the local instance based on invoking a database refresh operation and pushing database data of the database available at the primary deployment to a database shell at the remote deployment in response to the database refresh operation, the pushing causing modifying of the database shell from an empty shell without the database data into a remote deployment database shell configured as the local instance of the database, and the remote deployment database shell including the database data of the primary deployment based on completion of the pushing; and

configuring the account of the data consumer at the remote deployment to access the local instance of the database.

20. The computer-storage medium of claim 19 , the operations further comprising:

storing, at the remote deployment of the data provider, a set of replication preparation objects, the set of replication preparation objects including the database shell, a share shell, and the at least one task object.

21. The computer-storage medium of claim 20 , the operations further comprising:

monitoring using the at least one task object, the remote deployment for requests to replicate the database; and

detecting the replication request based on the monitoring.

22. The computer-storage medium of claim 21 , the operations further comprising:

in response to the detecting of the replication request, executing a set of data processing operations to cause the generating of the local instance.

23. The computer-storage medium of claim 20 , wherein the set of replication preparation objects is provisioned at the remote deployment of the data provider prior to the detecting of the replication request.

24. The computer-storage medium of claim 23 , the operations further comprising:

in response to the detecting of the replication request, executing a set of data processing operations to invoke a database refresh operation using the database shell.

25. The computer-storage medium of claim 24 , the operations further comprising:

configuring the database shell with the database data at the remote deployment as the local instance of the database; and

granting the account of the data consumer at the remote deployment, access to share data in the remote deployment database shell using the share shell.

26. The computer-storage medium of claim 20 , the operations further comprising: executing a set of data processing operations to invoke a share-refresh operation that provides the account of the data consumer at the remote deployment with access to share data of the database.

27. The computer-storage medium of claim 26 , wherein the operations for invoking the share-refresh operation further comprise:

initiating the pushing of the share data of the database from a share object at the primary deployment to the share shell of the set of replication preparation objects.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2022
From: CHU, PUI KEI JOHNSTON; DAGEVILLE, BENOIT; DESAI, SHREYAS NARENDRA; DESHPANDE, SAMEER; MURALIDHAR, SUBRAMANIAN; WU, DI
To: SNOWFLAKE INC.
Reel/Frame 060643/0167 →
Continuity (4)
Continuation 17490543 · Sep 30, 2021
Continuation 17302396 · Apr 30, 2021
Provisional Application 63200668 · Mar 21, 2021
Related Publication 20220358141A1 · Nov 10, 2022
Cited By (1)
US 12,314,284