IP Library Granted Patent US 11,372,891
Granted Patent B2
US 11,372,891 · App. 17/226,141 · Granted Jun 28, 2022

System for implementing sub-database replication

Inventors: Pui Kei Johnston Chu (San Mateo, CA); Shreyas Narendra Desai (Bellevue, WA); German Alberto Gil Echeverri (San Francisco, CA); Prasanna Krishnan (Palo Alto, CA); Nithin Mahesh (Redmond, WA); Subramanian Muralidhar (Mercer Island, WA); Eric Robinson (Sammamish, WA); Sahaj Saini (Seattle, WA)
Assignee: Snowflake Inc.
G06F16/275G06F16/2282G06F16/2379G06Q30/0185G06Q30/0205
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,891
App. No.
17/226,141
Granted
Jun 28, 2022
Kind
B2
Abstract

A method of implementing sub-table replication starts with the processor detecting a first update to an entitlements table. The processor then performs incremental replication of the data table by causing a full inventory replication at a next refresh to be executed for provider accounts associated with the provider account identifiers in the entitlements table. Other embodiments are also described herein.

Claims (55)

1. A method of implementing sub-table replication comprising:

detecting, by a processor, a first update to an entitlements table, the entitlements table comprising a plurality of entitlements table rows, the entitlements table rows being associated with a plurality of client identifiers, a plurality of consumer account identifiers, and a plurality of provider account identifiers;

performing incremental replication of a data table by causing a full inventory replication at a next refresh to be executed for a plurality of provider accounts associated with the provider account identifiers in the entitlements table, the data table comprising a plurality of data table rows associated the client identifiers and including data content; and

performing filtering of the data table based on a second update to the entitlements table, the second update being received before the first update, the first update including a first client identifier of the client identifiers and a first provider account identifier of the provider account identifiers, and the performing filtering comprising:

performing file-level filtering by identifying micro-partitions in a plurality of micro-partitions in the data table having metadata associated with the first client identifier, each of the micro-partitions in the data table comprising one or more of the plurality of data table rows; and

replicating the identified micro-partitions to a first provider account associated with the first provider account identifier.

2. The method of claim 1 , wherein

each of the plurality of micro-partitions in the data table comprises metadata including a minimum client identifier and maximum client identifier.

3. The method of claim 2 , wherein

the metadata is associated with the first client identifier when the first client identifier is within a range established by the minimum client identifier and the maximum client identifier.

4. The method of claim 1 , wherein the plurality of provider account identifiers identify provider accounts in a plurality of geographic regions.

5. The method of claim 1 , wherein the entitlements table further comprises a plurality of entitlements table columns storing the consumer account identifiers and the provider account identifiers.

6. The method of claim 1 , further comprising:

receiving a replication request from the first provider account, the replication request including a first consumer account identifier.

7. The method of claim 1 , wherein the first update and the second update to the entitlements table includes adding a new entitlements table row to the entitlements table, deleting one of the entitlements table rows, or altering information included in one of the entitlements table rows.

8. The method of claim 7 , wherein altering information included in one of the entitlements table rows includes altering the client identifiers, consumer account identifiers, or provider account identifiers.

9. A system implementing sub-table replication comprising:

a processor; and

a memory having instructions stored therein, when executed by the processor, causes the system to perform operations comprising:

detecting a first update to an entitlements table, the entitlements table comprising a plurality of entitlements table rows, the entitlements table rows being associated with a plurality of client identifiers, a plurality of consumer account identifiers, and a plurality of provider account identifiers;

performing incremental replication of a data table by causing a full inventory replication at a next refresh to be executed for a plurality of provider accounts associated with the provider account identifiers in the entitlements table, the data table comprising a plurality of data table rows associated the client identifiers and including data content; and

performing filtering of the data table based on a second update to the entitlements table, the second update being received before the first update, the first update including a first client identifier of the client identifiers and a first provider account identifier of the provider account identifiers, and the performing filtering comprising:

performing file-level filtering by identifying micro-partitions in a plurality of micro-partitions in the data table having metadata associated with the first client identifier, each of the micro-partitions in the data table comprising one or more of the plurality of data table rows; and

replicating the identified micro-partitions to a first provider account associated with the first provider account identifier.

10. The system of claim 9 , wherein

each of the plurality of micro-partitions in the data table comprises metadata including a minimum client identifier and maximum client identifier.

11. The system of claim 10 , wherein

the metadata is associated with the first client identifier when the first client identifier is within a range established by the minimum client identifier and the maximum client identifier.

12. The system of claim 9 , wherein the plurality of provider account identifiers identify provider accounts in a plurality of geographic regions.

13. The system of claim 9 , wherein the entitlements table further comprises a plurality of entitlements table columns storing the consumer account identifiers and the provider account identifiers.

14. The system of claim 9 , further comprising:

receiving a replication request from the first provider account, the replication request including a first consumer account identifier.

15. The system of claim 9 , wherein the first update and the second update to the entitlements table includes adding a new entitlements table row to the entitlements table, deleting one of the entitlements table rows, or altering information included in one of the entitlements table rows.

16. The system of claim 15 , wherein altering information included in one of the entitlements table rows includes altering the client identifiers, consumer account identifiers, or provider account identifiers.

17. A non-transitory computer-readable storage medium including instructions that, when processed by a computer, configure the computer to perform operations comprising:

detecting a first update to an entitlements table, the entitlements table comprising a plurality of entitlements table rows, the entitlements table rows being associated with a plurality of client identifiers, a plurality of consumer account identifiers, and a plurality of provider account identifiers;

performing incremental replication of a data table by causing a full inventory replication at a next refresh to be executed for a plurality of provider accounts associated with the provider account identifiers in the entitlements table, the data table comprising a plurality of data table rows associated the client identifiers and including data content; and

performing filtering of the data table based on a second update to the entitlements table, the second update being received before the first update, the first update including a first client identifier of the client identifiers and a first provider account identifier of the provider account identifiers, and the performing filtering comprising:

performing file-level filtering by identifying micro-partitions in a plurality of micro-partitions in the data table having metadata associated with the first client identifier, each of the micro-partitions in the data table comprising one or more of the plurality of data table rows; and

replicating the identified micro-partitions to a first provider account associated with the first provider account identifier.

18. The non-transitory computer-readable storage medium of claim 17 , wherein performing file-level filtering further comprises:

identifying micro-partitions in a plurality of micro-partitions in the data table having metadata associated with the first client identifier.

19. The non-transitory computer-readable storage medium of claim 18 , wherein performing file-level filtering further comprises:

replicating the identified micro-partitions to a first provider account associated with the first provider account identifier.

20. The non-transitory computer-readable storage medium of claim 19 , wherein each of the micro-partitions in the data table comprising one or more of the plurality of data table rows.

21. The non-transitory computer-readable storage medium of claim 20 , wherein

each of the plurality of micro-partitions in the data table comprises metadata including a minimum client identifier and maximum client identifier.

22. The non-transitory computer-readable storage medium of claim 21 , wherein

the metadata is associated with the first client identifier when the first client identifier is within a range established by the minimum client identifier and the maximum client identifier.

23. The non-transitory computer-readable storage medium of claim 17 , wherein the plurality of provider account identifiers identify provider accounts in a plurality of geographic regions.

24. The non-transitory computer-readable storage medium of claim 17 , wherein the entitlements table further comprises a plurality of entitlements table columns storing the consumer account identifiers and the provider account identifiers.

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

receiving a replication request from the first provider account, the replication request including a first consumer account identifier.

26. The non-transitory computer-readable storage medium of claim 17 , wherein the first update and the second update to the entitlements table includes adding a new entitlements table row to the entitlements table, deleting one of the entitlements table rows, or altering information included in one of the entitlements table rows.

27. The non-transitory computer-readable storage medium of claim 26 , wherein altering information included in one of the entitlements table rows includes altering the client identifiers, consumer account identifiers, or provider account identifiers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2021
From: CHU, PUI KEI JOHNSTON; DESAI, SHREYAS NARENDRA; GIL ECHEVERRI, GERMAN ALBERTO; KRISHNAN, PRASANNA; MAHESH, NITHIN; MURALIDHAR, SUBRAMANIAN; ROBINSON, ERIC; SAINI, SAHAJ
To: SNOWFLAKE INC.
Reel/Frame 055872/0457 →
Continuity (3)
Continuation 16944983 · Jul 31, 2020
Provisional Application 63032163 · May 29, 2020
Related Publication 20210374158A1 · Dec 2, 2021
Cited By (1)
US 12,475,142