IP Library Granted Patent US 12,475,142
Granted Patent B2
US 12,475,142 · App. 18/494,599 · Granted Nov 18, 2025

System for list-based database replication

Inventors: Pui Kei Johnston Chu (Richmond Hill, 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 12,475,142
App. No.
18/494,599
Granted
Nov 18, 2025
Kind
B2
Abstract

A method of implementing sub-table replication starts with the processor detecting an update to an entitlements table. The processor performs filtering of a data table based on the update to the entitlements table. The data table including an entitlements column. The processor detects an update to the entitlements column and performs incremental replication of the data table by causing a version-based replication to be executed. Other embodiments are also described herein.

Claims (62)

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

receiving, by a replication controller of a data platform, a first inclusion list indicating a first subset of rows from a data table of the data platform to replicate to a first provider account of the data platform;

replicating, by the replication controller, the first subset of rows to the first provider account based on the first inclusion list;

responsive to a provider user updating an entitlements table in the first provider account, performing operations comprising:

updating, by the replication controller, a virtual entitlements column stored in the data table indicating a change in provider accounts associated with a client identifier, the virtual entitlements column indicating a provider account associated with the first subset of rows of the data table;

identifying, by the replication controller, a second subset of rows in the data table associated with the client identifier by performing a filtering of the data table using file-level filtering of partitions of the data table based on metadata associated with the client identifier and the virtual entitlements column, the file-level filtering performed using the metadata without opening the partitions;

generating, by the replication controller, a second inclusion list comprising the second subset of rows associated with the client identifier based on the update to the virtual entitlements column; and

performing, by the replication controller, an incremental replication to replicate the second subset of rows to a second provider account based on the second inclusion list.

2 . The computer-implemented method of claim 1 , wherein the first inclusion list and the second inclusion list each further comprise data of a provider account and a region.

3 . The computer-implemented method of claim 1 , further comprising:

receiving the first inclusion list from a first client device associated with a provider user.

4 . The computer-implemented method of claim 3 , further comprising:

receiving the update to the entitlements table in the first provider account from the first client device.

5 . The computer-implemented method of claim 1 , wherein replicating the first subset of rows comprises:

identifying partitions containing the first subset of rows in the data table; and

replicating the identified partitions.

6 . The computer-implemented method of claim 1 , wherein the data table is distributed across a plurality of storage devices.

7 . The computer-implemented method of claim 1 , wherein replicating the second subset of rows comprises transmitting the second subset of rows to the second provider account over a network.

8 . The computer-implemented method of claim 1 , wherein the incremental replication comprises a version-based replication.

9 . A data platform comprising:

at least one processor; and

at least one memory storing instructions that, when executed by the at least one processor, cause the data platform to perform operations comprising:

providing a first provider account;

providing a second provider account; and

providing a replication controller configured to perform first operations comprising:

receiving a first inclusion list indicating a first subset of rows from a data table to replicate to the first provider account;

replicating the first subset of rows to the first provider account based on the first inclusion list;

responsive to a provider user updating an entitlements table in the first provider account, performing second operations comprising:

updating a virtual entitlements column stored in the data table indicating a change in provider accounts associated with a client identifier, the virtual entitlements column indicating a provider account associated with the first subset of rows of the data table;

identifying a second subset of rows in the data table associated with the client identifier by performing a filtering of the data table using file-level filtering of partitions of the data table based on metadata associated with the client identifier and the virtual entitlements column, the file-level filtering performed using the metadata without opening the partitions;

generating a second inclusion list comprising the second subset of rows associated with the client identifier based on the update to the virtual entitlements column; and

performing an incremental replication to replicate the second subset of rows to a second provider account based on the second inclusion list.

10 . The data platform of claim 9 , wherein the first inclusion list and the second inclusion list each further comprise data of a provider account and a region.

11 . The data platform of claim 9 , wherein the operations further comprise:

receiving the first inclusion list from a first client device associated with a provider user.

12 . The data platform of claim 11 , wherein the operations further comprise:

receiving the update to the entitlements table in the first provider account from the first client device.

13 . The data platform of claim 9 , wherein replicating the first subset of rows comprises:

identifying partitions containing the first subset of rows in the data table; and

replicating the identified partitions.

14 . The data platform of claim 9 , wherein the data table is distributed across a plurality of storage devices.

15 . The data platform of claim 9 , wherein replicating the second subset of rows comprises transmitting the second subset of rows to the second provider account over a network.

16 . The data platform of claim 9 , wherein the incremental replication comprises a version-based replication.

17 . A machine-storage medium comprising machine-readable instructions that, when executed by a machine, cause the machine to perform operations comprising:

receiving, by a replication controller of a data platform, a first inclusion list indicating a first subset of rows from a data table of the data platform to replicate to a first provider account of the data platform;

replicating, by the replication controller, the first subset of rows to the first provider account based on the first inclusion list;

responsive to a provider user updating an entitlements table in the first provider account, performing operations comprising:

updating, by the replication controller, a virtual entitlements column stored in the data table indicating a change in provider accounts associated with a client identifier, the virtual entitlements column indicating a provider account associated with the first subset of rows of the data table;

identifying, by the replication controller, a second subset of rows in the data table associated with the client identifier by performing a filtering of the data table using file-level filtering of partitions of the data table based on metadata associated with the client identifier and the virtual entitlements column, the file-level filtering performed using the metadata without opening the partitions;

generating, by the replication controller, a second inclusion list comprising the second subset of rows associated with the client identifier based on the update to the virtual entitlements column; and

performing, by the replication controller, an incremental replication to replicate the second subset of rows to a second provider account based on the second inclusion list.

18 . The machine-storage medium of claim 17 , wherein the first inclusion list and the second inclusion list each further comprise data of a provider account and data of a region.

19 . The machine-storage medium of claim 17 , wherein the operations further comprise:

receiving the first inclusion list from a first client device associated with a provider user.

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

receiving the update to the entitlements table in the first provider account from the first client device.

21 . The machine-storage medium of claim 17 , wherein replicating the first subset of rows comprises:

identifying partitions containing the first subset of rows in the data table; and

replicating the identified partitions.

22 . The machine-storage medium of claim 17 , wherein the data table is distributed across a plurality of storage devices.

23 . The machine-storage medium of claim 17 , wherein replicating the second subset of rows comprises transmitting the second subset of rows to the second provider account over a network.

24 . The machine-storage medium of claim 17 , wherein the incremental replication comprises a version-based replication.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2023
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 065347/0734 →
Continuity (5)
Continuation 17807956 · Jun 21, 2022
Continuation 17352044 · Jun 18, 2021
Continuation 16944988 · Jul 31, 2020
Provisional Application 63032163 · May 29, 2020
Related Publication 20240054147A1 · Feb 15, 2024
References Cited (91)
US 6882993B1 · Lawande et al. · 2005 [cited by applicant]
US 8676845B2 · Bender · 2014 [cited by examiner]
US 9251020B1 · Kalekar et al. · 2016 [cited by applicant]
US 10997210B1 · Chu et al. · 2021 [cited by applicant]
US 11055315B1 · Chu et al. · 2021 [cited by applicant]
US 11372891B2 · Chu et al. · 2022 [cited by applicant]
US 11436257B2 · Chu et al. · 2022 [cited by applicant]
US 11640412B2 · Chu et al. · 2023 [cited by applicant]
US 11841877B2 · Chu et al. · 2023 [cited by applicant]
US 12093284B2 · Chu et al. · 2024 [cited by applicant]
US 20050288998A1 · Verma · 2005 [cited by examiner]
US 20070143372A1 · Martinez · 2007 [cited by examiner]
US 20070192304A1 · Iyer · 2007 [cited by examiner]
US 20080052291A1 · Bender · 2008 [cited by examiner]
US 20090300019A1 · Itkin et al. · 2009 [cited by applicant]
US 20100072640A1 · Rudmann · 2010 [cited by examiner]
US 20100274765A1 · Murphy · 2010 [cited by examiner]
US 20100325161A1 · Rutter · 2010 [cited by examiner]
US 20120011096A1 · Aggarwal · 2012 [cited by examiner]
US 20120136828A1 · Darcy · 2012 [cited by applicant]
US 20120278282A1 · Lu · 2012 [cited by examiner]
US 20120303581A1 · Calder et al. · 2012 [cited by applicant]
US 20140081950A1 · Rajan et al. · 2014 [cited by applicant]
US 20150142745A1 · Tekade et al. · 2015 [cited by applicant]
US 20160188418A1 · Abed · 2016 [cited by examiner]
US 20170032006A1 · Anglin et al. · 2017 [cited by applicant]
US 20170126695A1 · Nassar et al. · 2017 [cited by applicant]
US 20170149886A1 · Shetty · 2017 [cited by examiner]
US 20180046643A1 · Brodt et al. · 2018 [cited by applicant]
US 20180068008A1 · Cruanes et al. · 2018 [cited by applicant]
US 20180095952A1 · Rehal · 2018 [cited by applicant]
US 20180137186A1 · Brodt et al. · 2018 [cited by applicant]
US 20180203913A1 · Bourbonnais et al. · 2018 [cited by applicant]
US 20190325055A1 · Lee et al. · 2019 [cited by applicant]
US 20200081901A1 · Arnold et al. · 2020 [cited by applicant]
US 20200242129A1 · Botev et al. · 2020 [cited by applicant]
US 20210173851A1 · Dorne · 2021 [cited by examiner]
US 20210176280A1 · Jayanthi · 2021 [cited by applicant]
US 20210326359A1 · Upton · 2021 [cited by examiner]
US 20210365446A1 · Srivastava · 2021 [cited by examiner]
US 20210374158A1 · Chu et al. · 2021 [cited by applicant]
US 20210374159A1 · Chu et al. · 2021 [cited by applicant]
US 20220292115A1 · Chu · 2022 [cited by examiner]
US 20220318269A1 · Chu et al. · 2022 [cited by applicant]
US 20230244695A1 · Chu et al. · 2023 [cited by applicant]
CN 110300963 · 2019 [cited by applicant]
CN 113806358 · 2021 [cited by applicant]
CN 116089432 · 2023 [cited by applicant]
DE 202021102320 · 2021 [cited by applicant]
EP 3916578B1 · 2024 [cited by applicant]
US 11,397,751 B2, 07/2022, Chu et al. (withdrawn) [cited by applicant]
“U.S. Appl. No. 16/944,983, Non Final Office Action mailed Sep. 23, 2020”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 16/944,988, Non Final Office Action mailed Oct. 19, 2020”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 16/944,983, Response filed Dec. 23, 2020 to Non Final Office Action mailed Sep. 23, 2020”, 11 pgs. [cited by applicant]
“U.S. Appl. No. 16/944,988, Response filed Jan. 19, 2021 to Non Final Office Action mailed Oct. 19, 2020”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 16/944,983, Notice of Allowance mailed Jan. 21, 2021”, 7 pgs. [cited by applicant]
“U.S. Appl. No. 16/944,988, Non Final Office Action mailed Mar. 4, 2021”, 23 pgs. [cited by applicant]
“U.S. Appl. No. 16/944,988, Response filed Mar. 31, 2021 to Non Final Office Action mailed Mar. 4, 2021”, 9 pgs. [cited by applicant]
“U.S. Appl. No. 16/944,988, Notice of Allowance mailed Apr. 16, 2021”, 9 pgs. [cited by applicant]
“U.S. Appl. No. 17/226,141, Non Final Office Action mailed Aug. 17, 2021”, 21 pgs. [cited by applicant]
“European Application Serial No. 21171311.0, Extended European Search Report mailed Oct. 15, 2021”, 9 pgs. [cited by applicant]
“U.S. Appl. No. 17/352,044, Non Final Office Action mailed Nov. 3, 2021”, 33 pgs. [cited by applicant]
“U.S. Appl. No. 17/226,141, Response filed Nov. 17, 2021 to Non Final Office Action mailed Aug. 17, 2021”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 17/226,141, Final Office Action mailed Dec. 29, 2021”, 19 pgs. [cited by applicant]
“U.S. Appl. No. 17/352,044, Response filed Feb. 3, 2022 to Non Final Office Action mailed Nov. 3, 2021”, 12 pgs. [cited by applicant]
“Indian Application Serial No. 202144018836, First Examination Report mailed Feb. 11, 2022”, 7 pgs. [cited by applicant]
“U.S. Appl. No. 17/352,044, Final Office Action mailed Feb. 14, 2022”, 35 pgs. [cited by applicant]
“U.S. Appl. No. 17/226,141, Response filed Feb. 28, 2022 to Final Office Action mailed Dec. 29, 2021”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/352,044, Examiner Interview Summary mailed Mar. 18, 2022”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/226,141, Notice of Allowance mailed Mar. 25, 2022”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 17/352,044, Response filed Apr. 14, 2022 to Final Office Action mailed Feb. 14, 2022”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/352,044, Notice of Allowance mailed Apr. 29, 2022”, 9 pgs. [cited by applicant]
“Chinese Application Serial No. 202110467165.X, Voluntary Amendment filed Apr. 7, 2022”, with English claims, 49 pages. [cited by applicant]
“U.S. Appl. No. 17/352,044, Notice of Allowability mailed May 19, 2022”, 6 pgs. [cited by applicant]
“European Application Serial No. 21171311.0, Response filed May 31, 2022 to Extended European Search Report mailed Oct. 15, 2021”, 19 pgs. [cited by applicant]
“Chinese Application Serial No. 202110467165.X, Office Action mailed Jun. 2, 2022”, with English translation, 18 pages. [cited by applicant]
“U.S. Appl. No. 17/352,044, Corrected Notice of Allowability mailed Jul. 29, 2022”, 3 pgs. [cited by applicant]
“U.S. Appl. No. 17/804,753, Non Final Office Action mailed Aug. 4, 2022”, 24 pgs. [cited by applicant]
“Indian Application Serial No. 202144018836, Response filed Aug. 10, 2022 to First Examination Report mailed Feb. 11, 2022”, 41 pgs. [cited by applicant]
“U.S. Appl. No. 17 804,753, Response filed Oct. 31, 2022 to Non Final Office Action mailed Aug. 4, 2022”, 12 pgs. [cited by applicant]
“Chinese Application Serial No. 202110467165.X, Response filed Oct. 17, 2022 to Office Action mailed Jun. 2, 2022”, with English claims, 25 pages. [cited by applicant]
“U.S. Appl. No. 17/807,956, Non Final Office Action mailed Nov. 17, 2022”, 35 pgs. [cited by applicant]
“U.S. Appl. No. 17/804,753, Notice of Allowance mailed Dec. 21, 2022”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 17/807,956, Response filed Feb. 17, 2023 to Non Final Office Action mailed Nov. 17, 2022”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 17/807,956, Final Office Action mailed Mar. 28, 2023”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 17/807,956, Examiner Interview Summary mailed Jul. 3, 2023”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/807,956, Notice of Allowance mailed Aug. 8, 2023”, 9 pgs. [cited by applicant]
“U.S. Appl. No. 18/295,987, Non Final Office Action mailed Dec. 21, 2023”, 15 pgs. [cited by applicant]
“U.S. Appl. No. 18/295,987, Response filed Mar. 21, 2024 to Non Final Office Action mailed Dec. 21, 2023”, 12 pages. [cited by applicant]
“U.S. Appl. No. 18/295,987, Notice of Allowance mailed May 17, 2024”, 8 pages. [cited by applicant]
“U.S. Appl. No. 18/806,986, Non Final Office Action mailed Apr. 10, 2025”, 15 pgs. [cited by applicant]