IP Library › Granted Patent US 11,294,868
Granted Patent B2
US 11,294,868 · App. 17/459,334 · Granted Apr 5, 2022

Share replication between remote deployments

Inventors: Pui Kei Johnston Chu (Unionville, CA); Benoit Dageville (San Carlos, CA); Shreyas Narendra Desai (Bellevue, WA); German Alberto Gil Echeverri (San Francisco, CA); Prasanna Krishnan (Palo Alto, CA); Vishnu Dutt Paladugu (Seattle, WA); Bowen Zhang (Newark, CA)
Assignee: SNOWFLAKE INC.
G06F16/1844G06F9/546G06F16/128G06F16/1734G06F16/1827
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,294,868
App. No.
17/459,334
Granted
Apr 5, 2022
Kind
B2
Abstract

Provided herein are systems and methods for an efficient method of replicating share objects to remote deployments. For example, the method may comprise modifying a share object of a first account of a data exchange into a global object wherein the share object includes grant metadata indicating share grants to a set of objects of a database. The method may further comprise creating, in a second account of the data exchange, a local replica of the share object on the remote deployment based on the global object, wherein the second account is located in a remote deployment. The set of objects of the database may be replicated to a local database replica on the remote deployment and the share grants may be replicated to the local replica of the share object.

Claims (74)

1. A method comprising:

creating, in a second database account, a local replica of a share object of a first database account, wherein the first and second database accounts are located in first and second regions respectively and wherein the share object includes grant metadata associated with a set of objects of a database located in the first region and associated with the first database account;

replicating the set of objects of the database to a local database replica located in the second region and associated with the second database account; and

refreshing, by a processing device, the grant metadata to the local replica of the share object using a global message comprising logic to process the grant metadata.

2. The method of claim 1 , wherein refreshing the grant metadata to the local replica of the share object comprises:

receiving a share refresh message;

serializing the grant metadata of the share object;

storing the serialized grant metadata into the global message, wherein the global message comprises logic to inform a deployment in the second region that the global message includes grant metadata and enable the deployment to properly deserialize the grant metadata for the purposes of share replication; and

transmitting the global message to the second deployment.

3. The method of claim 2 , wherein refreshing the grant metadata to the local replica of the share object further comprises:

de-serializing the global message based on the logic of the global message; and

applying the grant metadata to the local replica of the share object.

4. The method of claim 2 , wherein in response to determining that one or more of the set of objects are not present in the local database replica during the subsequent refresh:

refreshing grant metadata associated with objects that are present in the local database replica to the local replica of the share object; and

creating a log file indicating:

the one or more objects that are not present in the local database replica; and

grant metadata associated with the one or more objects that are not present in the local database replica.

5. The method of claim 1 , further comprising:

performing a subsequent refresh of the grant metadata to the local replica of the share object; and

performing a subsequent replication of the set of objects of the database to the local database replica, wherein one or more of the grant metadata and the set of objects are modified.

6. The method of claim 1 , wherein the grant metadata indicates share grants to the set of objects of the database.

7. The method of claim 1 , wherein creating the local replica comprises:

establishing a secure connection between the first database account and the second database account; and

establishing a remote execution context in the second database account, wherein the first database account may create the local replica in the second database account using the remote execution context.

8. A system comprising:

a memory; and

a processing device, operatively coupled to the memory, the processing device to:

create, in a second database account, a local replica of a share object of a first database account, wherein the first and second database accounts are located in first and second regions respectively and wherein the share object includes grant metadata associated with a set of objects of a database located in the first region and associated with the first database account;

replicate the set of objects of the database to a local database replica located in the second region and associated with the second database account; and

refresh the grant metadata to the local replica of the share object using a global message comprising logic to process the grant metadata.

9. The system of claim 8 , wherein to refresh the grant metadata to the local replica of the share object, the processing device is to:

receive a share refresh message;

serialize the grant metadata of the share object;

store the serialized grant metadata into the global message, wherein the global message comprises logic to inform a deployment in the second region that the global message includes grant metadata and enable the deployment to properly deserialize the grant metadata for the purposes of share replication; and

transmit the global message to the second deployment.

10. The system of claim 9 , wherein to refresh the grant metadata to the local replica of the share object, the processing device is further to:

de-serialize the global message based on the logic of the global message; and

apply the grant metadata to the local replica of the share object.

11. The system of claim 9 , wherein in response to determining that one or more of the set of objects are not present in the local database replica during the subsequent refresh, the processing device is to:

refresh grant metadata associated with objects that are present in the local database replica to the local replica of the share object; and

create a log file indicating:

the one or more objects that are not present in the local database replica; and

grant metadata associated with the one or more objects that are not present in the local database replica.

12. The system of claim 8 , wherein the processing device is further to:

perform a subsequent refresh of the grant metadata to the local replica of the share object; and

perform a subsequent replication of the set of objects of the database to the local database replica, wherein one or more of the grant metadata and the set of objects are modified.

13. The system of claim 8 , wherein the grant metadata indicates share grants to the set of objects of the database.

14. The system of claim 8 , wherein to create the local replica, the processing device is to:

establish a secure connection between the first database account and the second database account; and

establish a remote execution context in the second database account, wherein the first database account may create the local replica in the second database account using the remote execution context.

15. A non-transitory computer-readable medium having instructions stored thereon which, when executed by a processing device causes the processing device to:

create, in a second database account, a local replica of a share object of a first database account, wherein the first and second database accounts are located in first and second regions respectively and wherein the share object includes grant metadata associated with a set of objects of a database located in the first region and associated with the first database account;

replicate the set of objects of the database to a local database replica located in the second region and associated with the second database account; and

refresh, by the processing device, the grant metadata to the local replica of the share object using a global message comprising logic to process the grant metadata.

16. The non-transitory computer-readable medium of claim 15 , wherein to refresh the grant metadata to the local replica of the share object, the processing device is to:

receive a share refresh message;

serialize the grant metadata of the share object;

store the serialized grant metadata into the global message, wherein the global message comprises logic to inform a deployment in the second region that the global message includes grant metadata and enable the deployment to properly deserialize the grant metadata for the purposes of share replication; and

transmit the global message to the second deployment.

17. The non-transitory computer-readable medium of claim 16 , wherein to refresh the grant metadata to the local replica of the share object, the processing device is further to:

de-serialize the global message based on the logic of the global message; and

apply the grant metadata to the local replica of the share object.

18. The non-transitory computer-readable medium of claim 16 , wherein in response to determining that one or more of the set of objects are not present in the local database replica during the subsequent refresh, the processing device is to:

refresh grant metadata associated with objects that are present in the local database replica to the local replica of the share object; and

create a log file indicating:

the one or more objects that are not present in the local database replica; and

grant metadata associated with the one or more objects that are not present in the local database replica.

19. The non-transitory computer-readable medium of claim 15 , wherein the processing device is further to:

perform a subsequent refresh of the grant metadata to the local replica of the share object; and

perform a subsequent replication of the set of objects of the database to the local database replica, wherein one or more of the grant metadata and the set of objects are modified.

20. The non-transitory computer-readable medium of claim 15 , wherein the grant metadata indicates share grants to the set of objects of the database.

21. The non-transitory computer-readable medium of claim 15 , wherein to create the local replica, the processing device is to:

establish a secure connection between the first database account and the second database account; and

establish a remote execution context in the second database account, wherein the first database account may create the local replica in the second database account using the remote execution context.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2021
From: CHU, PUI-KEI JOHNSTON; DAGEVILLE, BENOIT; DESAI, SHREYAS NARENDRA; GIL ECHEVERRI, GERMAN ALBERTO; KRISHNAN, PRASANNA; PALADUGU, VISHNU DUTT; ZHANG, BOWEN
To: SNOWFLAKE INC.
Reel/Frame 057316/0583 →
Continuity (4)
Continuation 17193192 · Mar 5, 2021
Continuation 16900840 · Jun 12, 2020
Provisional Application 63030267 · May 26, 2020
Related Publication 20210390083A1 · Dec 16, 2021