IP Library › Granted Patent US 12,235,868
Granted Patent B2
US 12,235,868 · App. 18/323,155 · Granted Feb 25, 2025

Failover configuration using replication group objects

Inventors: Robert Bengt Benedikt Gernhardt (Seattle, WA); Mikhail Kazhamiaka (Bellevue, WA); Nithin Mahesh (Redmond, WA); Laxman Mamidi (Redwood City, CA); Subramanian Muralidhar (Mercer Island, WA); Vishnu Dutt Paladugu (Seattle, WA); Sahaj Saini (Seattle, WA)
Assignee: Snowflake Inc.
G06F16/27G06F11/1461G06F11/1464G06F11/2023G06F11/2097G06F16/128G06F16/137G06F16/1787G06F16/1827G06F16/184G06F16/1844G06F16/256
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,235,868
App. No.
18/323,155
Granted
Feb 25, 2025
Kind
B2
Abstract

A method includes generating at a source account of a database system user, a replication group object (RGO). The RGO includes a manifest identifying one or more data object types and one or more databases. A replication of data objects of the one or more data object types is performed from the one or more databases to a target account of the database system user. The replication of the data objects is performed as a unit. The RGO is replicated as a failover group object (FGO) within the target account of the database system user. A network failure is detected at the source account of the database system user. The target account of the database system user is promoted as a new source account based on the detecting of the network failure.

Claims (96)

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:

generating at a source account of a database system user at a first geographic location, a replication group object (RGO) based on a replication request received from a client device of the database system user, the RGO comprising a manifest listing one or more data object types and one or more databases identified by the replication request to be replicated together as a replication unit;

performing a replication of data objects of the one or more data object types from the one or more databases at the first geographic location to a target account of the database system user at a second geographic location, the replication of the data objects being performed at a same time as the replication unit;

replicating the RGO as a failover group object (FGO) within the target account of the database system user at the second geographic location, the replicating as the FGO based on the manifest;

detecting a network failure at a first computing node associated with the source account of the database system user at the first geographic location;

promoting the target account of the database system user at the second geographic location as a new source account based on the detecting of the network failure at the first geographic location;

granting at least a second computing node seeking access to the source account at the first geographic location, access to the new source account at the second geographic location based on the promoting; and

updating the manifest of the source account to indicate failover to the target account and replication of the source account to at least one additional account of the database system user are authorized based on the detecting of the network failure.

2. The system of claim 1 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

initiating replication of the one or more data object types from the new source account to a new target account of the database system user based on the promoting of the target account.

3. The system of claim 1 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

detecting the manifest of the RGO includes an allowed failover property, the allowed failover property indicating one or more additional accounts of the database system user that are authorized for configuration as the new source account based on the detecting of the network failure.

4. The system of claim 3 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

updating a manifest of the FGO to indicate the target account is a replica of the source account, the updating based on a completion of the promoting of the target account.

5. The system of claim 1 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

updating the manifest to configure replication of the RGO as a second FGO within a second target account based on the detecting of the network failure.

6. The system of claim 1 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

performing the replicating of the RGO as the FGO within the target account of the database system user at a first replication schedule specified by the manifest.

7. The system of claim 6 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

performing a replication of the RGO as a second FGO within a second target account based on the detecting of the network failure, the replication of the RGO as the second FGO performed at a second replication schedule specified by the manifest.

8. The system of claim 1 , wherein the one or more data object types comprise at least one of:

a users account object type, wherein a users account object of the users account object type lists users authorized to access the target account;

a roles account object type, wherein a roles account object of the roles account object type configures one or more access privileges for accessing the target account;

a warehouse object type, wherein a warehouse object of the warehouse object type indicates compute resources for executing a workload associated with the one or more databases;

a resource monitor object type, wherein a resource monitor object of the resource monitor object type configures monitoring usage of the compute resources; and

a database account object type, wherein a database account object of the database account object type indicates the one or more databases.

9. The system of claim 1 , wherein the instructions further cause the at least one hardware processor to perform operations comprising:

detecting one or more access privileges associated with the second geographic location and specified by at least one of the data objects of the one or more data object types listed in the manifest;

granting at least one computing device at the first geographic location, access to the data objects replicated into the target account based on the one or more access privileges;

performing a refresh operation of the FGO at the target account based on a refresh command for the FGO; and

generating a notification based on the refresh operation.

10. A method comprising:

performing by at least one hardware processor:

generating at a source account of a database system user at a first geographic location, a replication group object (RGO) based on a replication request received from a client device of the database system user, the RGO comprising a manifest listing one or more data object types and one or more databases identified by the replication request to be replicated together as a replication unit;

performing a replication of data objects of the one or more data object types from the one or more databases at the first geographic location to a target account of the database system user at a second geographic location, the replication of the data objects being performed at a same time as the replication unit;

replicating the RGO as a failover group object (FGO) within the target account of the database system user at the second geographic location, the replicating as the FGO based on the manifest;

detecting a network failure at a first computing node associated with the source account of the database system user at the first geographic location;

promoting the target account of the database system user at the second geographic location as a new source account based on the detecting of the network failure at the first geographic location;

granting at least a second computing node seeking access to the source account at the first geographic location, access to the new source account at the second geographic location based on the promoting; and

updating the manifest of the source account to indicate failover to the target account and replication of the source account to at least one additional account of the database system user are authorized based on the detecting of the network failure.

11. The method of claim 10 , further comprising:

initiating replication of the one or more data object types from the new source account to a new target account of the database system user based on the promoting of the target account.

12. The method of claim 10 , further comprising:

detecting the manifest of the RGO includes an allowed failover property, the allowed failover property indicating one or more additional accounts of the database system user that are authorized for configuration as the new source account based on the detecting of the network failure.

13. The method of claim 12 , further comprising:

updating a manifest of the FGO to indicate the target account is a replica of the source account, the updating based on a completion of the promoting of the target account.

14. The method of claim 10 , further comprising:

updating the manifest to configure replication of the RGO as a second FGO within a second target account based on the detecting of the network failure.

15. The method of claim 10 , further comprising:

performing the replicating of the RGO as the FGO within the target account of the database system user at a first replication schedule specified by the manifest.

16. The method of claim 15 , further comprising:

performing a replication of the RGO as a second FGO within a second target account based on the detecting of the network failure, the replication of the RGO as the second FGO performed at a second replication schedule specified by the manifest.

17. The method of claim 10 , wherein the one or more data object types comprise at least one of:

a users account object type, wherein a users account object of the users account object type lists users authorized to access the target account;

a roles account object type, wherein a roles account object of the roles account object type configures one or more access privileges for accessing the target account;

a warehouse object type, wherein a warehouse object of the warehouse object type indicates compute resources for executing a workload associated with the one or more databases;

a resource monitor object type, wherein a resource monitor object of the resource monitor object type configures monitoring usage of the compute resources; and

a database account object type, wherein a database account object of the database account object type indicates the one or more databases.

18. The method of claim 10 , further comprising:

detecting one or more access privileges associated with the second geographic location and specified by at least one of the data objects of the one or more data object types listed in the manifest;

granting at least one computing device at the first geographic location, access to the data objects replicated into the target account based on the one or more access privileges;

performing a refresh operation of the FGO at the target account based on a refresh command for the FGO; and

generating a notification based on the refresh operation.

19. A computer-storage medium comprising instructions that, when executed by one or more processors of a machine, configure the machine to perform operations comprising:

generating at a source account of a database system user at a first geographic location, a replication group object (RGO) based on a replication request received from a client device of the database system user, the RGO comprising a manifest listing one or more data object types and one or more databases identified by the replication request to be replicated together as a replication unit;

performing a replication of data objects of the one or more data object types from the one or more databases at the first geographic location to a target account of the database system user at a second geographic location, the replication of the data objects being performed at a same time as the replication unit;

replicating the RGO as a failover group object (FGO) within the target account of the database system user at the second geographic location, the replicating as the FGO based on the manifest;

detecting a network failure at a first computing node associated with the source account of the database system user at the first geographic location;

promoting the target account of the database system user at the second geographic location as a new source account based on the detecting of the network failure at the first geographic location;

granting at least a second computing node seeking access to the source account at the first geographic location, access to the new source account at the second geographic location based on the promoting; and

updating the manifest of the source account to indicate failover to the target account and replication of the source account to at least one additional account of the database system user are authorized based on the detecting of the network failure.

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

initiating replication of the one or more data object types from the new source account to a new target account of the database system user based on the promoting of the target account.

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

detecting the manifest of the RGO includes an allowed failover property, the allowed failover property indicating one or more additional accounts of the database system user that are authorized for configuration as the new source account based on the detecting of the network failure.

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

updating a manifest of the FGO to indicate the target account is a replica of the source account, the updating based on a completion of the promoting of the target account.

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

updating the manifest to configure replication of the RGO as a second FGO within a second target account based on the detecting of the network failure.

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

performing the replicating of the RGO as the FGO within the target account of the database system user at a first replication schedule specified by the manifest.

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

performing a replication of the RGO as a second FGO within a second target account based on the detecting of the network failure, the replication of the RGO as the second FGO performed at a second replication schedule specified by the manifest.

26. The computer-storage medium of claim 19 , wherein the one or more data object types comprise at least one of:

a users account object type, wherein a users account object of the users account object type lists users authorized to access the target account;

a roles account object type, wherein a roles account object of the roles account object type configures one or more access privileges for accessing the target account;

a warehouse object type, wherein a warehouse object of the warehouse object type indicates compute resources for executing a workload associated with the one or more databases;

a resource monitor object type, wherein a resource monitor object of the resource monitor object type configures monitoring usage of the compute resources; and

a database account object type, wherein a database account object of the database account object type indicates the one or more databases.

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

detecting one or more access privileges associated with the second geographic location and specified by at least one of the data objects of the one or more data object types listed in the manifest;

granting at least one computing device at the first geographic location, access to the data objects replicated into the target account based on the one or more access privileges;

performing a refresh operation of the FGO at the target account based on a refresh command for the FGO; and

generating a notification based on the refresh operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2023
From: GERNHARDT, ROBERT BENGT BENEDIKT; KAZHAMIAKA, MIKHAIL; MAHESH, NITHIN; MAMIDI, LAXMAN; MURALIDHAR, SUBRAMANIAN; PALADUGU, VISHNU DUTT; SAINI, SAHAJ
To: SNOWFLAKE INC.
Reel/Frame 063752/0408 →
Continuity (3)
Continuation 17457751 · Dec 6, 2021
Provisional Application 63264699 · Nov 30, 2021
Related Publication 20230297590A1 · Sep 21, 2023
References Cited (80)
US 6269405B1 · Dutcher · 2001 [cited by examiner]
US 6792540B1 · Smith et al. · 2004 [cited by applicant]
US 7617522B2 · Schmidt · 2009 [cited by examiner]
US 8886796B2 · Calder et al. · 2014 [cited by applicant]
US 8935418B2 · Knouse et al. · 2015 [cited by applicant]
US 9081754B1 · Natanzon · 2015 [cited by examiner]
US 9256722B2 · Saxman et al. · 2016 [cited by applicant]
US 9274906B2 · Calder · 2016 [cited by examiner]
US 10372499B1 · Radhakrishnan · 2019 [cited by examiner]
US 10949402B1 · Chu et al. · 2021 [cited by applicant]
US 11144511B1 · Chu et al. · 2021 [cited by applicant]
US 11157458B1 · Carter · 2021 [cited by examiner]
US 11399029B2 · Manna et al. · 2022 [cited by applicant]
US 11436097B1 · Kumar · 2022 [cited by examiner]
US 20020118954A1 · Barton · 2002 [cited by examiner]
US 20040210767A1 · Sinclair · 2004 [cited by examiner]
US 20050289198A1 · Todd · 2005 [cited by examiner]
US 20070127384A1 · Chandrupatla · 2007 [cited by examiner]
US 20070198700A1 · Vivian · 2007 [cited by examiner]
US 20080256606A1 · Koikara et al. · 2008 [cited by applicant]
US 20100161551A1 · Whynot · 2010 [cited by examiner]
US 20110040792A1 · Perry · 2011 [cited by applicant]
US 20130054524A1 · Anglin et al. · 2013 [cited by applicant]
US 20130086628A1 · Kottahachchi · 2013 [cited by examiner]
US 20140207667A1 · Korosec et al. · 2014 [cited by applicant]
US 20140279526A1 · Jackson · 2014 [cited by applicant]
US 20150052382A1 · Sarisky · 2015 [cited by examiner]
US 20150180894A1 · Sadovsky et al. · 2015 [cited by applicant]
US 20160259533A1 · Sudabattula · 2016 [cited by applicant]
US 20170032006A1 · Anglin · 2017 [cited by examiner]
US 20170163650A1 · Seigel et al. · 2017 [cited by applicant]
US 20170192863A1 · Eluri · 2017 [cited by examiner]
US 20170329834A1 · O'neill et al. · 2017 [cited by applicant]
US 20170371567A1 · Piduri · 2017 [cited by applicant]
US 20180004761A1 · Doherty et al. · 2018 [cited by applicant]
US 20190182322A1 · Kumar · 2019 [cited by examiner]
US 20190190957A1 · Barboi et al. · 2019 [cited by applicant]
US 20190306237A1 · Srinivasan et al. · 2019 [cited by applicant]
US 20190317869A1 · Selvaraj et al. · 2019 [cited by applicant]
US 20190391917A1 · Barker et al. · 2019 [cited by applicant]
US 20200081901A1 · Arnold et al. · 2020 [cited by applicant]
US 20200195651A1 · Festa et al. · 2020 [cited by applicant]
US 20200226269A1 · Gandhasri · 2020 [cited by examiner]
US 20200327097A1 · Birka · 2020 [cited by examiner]
US 20210136083A1 · Gordon et al. · 2021 [cited by applicant]
US 20210165573A1 · Demoor et al. · 2021 [cited by applicant]
US 20210224409A1 · Avanes et al. · 2021 [cited by applicant]
US 20210357294A1 · Balcha · 2021 [cited by applicant]
US 20210390083A1 · Chu et al. · 2021 [cited by applicant]
US 20220292374A1 · Mozano · 2022 [cited by examiner]
CN 118355375A · 2024 [cited by applicant]
EP 1770944A1 · 2007 [cited by applicant]
WO WO1997049211A1 · 1997 [cited by examiner]
WO WO2006039020A1 · 2006 [cited by applicant]
WO WO2009131798A1 · 2009 [cited by applicant]
WO WO2010030793A2 · 2010 [cited by examiner]
WO WO2012162176A2 · 2012 [cited by applicant]
WO WO2016003840A1 · 2016 [cited by applicant]
WO WO2016065080A1 · 2016 [cited by applicant]
WO WO2018125989A2 · 2018 [cited by applicant]
WO WO2020009737A1 · 2020 [cited by examiner]
WO WO2022026973A1 · 2022 [cited by applicant]
Kyungchan Ko et al., “Dynamic failover for SDN-based virtual networks”, 2017 IEEE Conference on Network Softwarization (NetSoft), Aug. 20217, pp. 1-5. [cited by examiner]
Claris Castillo et al., “Cost-aware replication for dataflows”, 2012 IEEE Network Operations and Management Symposium, Apr. 16-20, 2012, pp. 171-178. [cited by examiner]
Jussi Kangasharju et al., “Object replication strategies in content distribution networks”, Computer Communications, vol. 25, Issue 4, Mar. 1, 2002, pp. 376-383. [cited by examiner]
“U.S. Appl. No. 17/457,751, Advisory Action mailed Apr. 6, 2023”, 3 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Examiner Interview Summary mailed Aug. 19, 2022”, 3 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Final Office Action mailed Jan. 27, 2023”, 25 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Final Office Action mailed Jul. 19, 2022”, 35 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Non-Final Office Action mailed Apr. 5, 2022”, 48 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Non-Final Office Action mailed Oct. 14, 2022”, 36 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Notice of Allowance mailed Apr. 27, 2023”, 26 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Response filed Jan. 16, 2023 to Non-Final Office Action mailed Oct. 14, 2022”, 16 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Response filed Mar. 28, 2023 to Final Office Action mailed Jan. 27, 2023”, 16 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Response filed Jul. 5, 2022 to Non-Final Office Action mailed Apr. 5, 2022”, 25 pgs. [cited by applicant]
“U.S. Appl. No. 17/457,751, Response filed Sep. 27, 2022 to Final Office Action mailed Jul. 19, 2022”, 17 pgs. [cited by applicant]
“International Application Serial No. PCT/US2022/080591, International Search Report mailed Jan. 3, 2023”, 2 pgs. [cited by applicant]
“International Application Serial No. PCT/US2022/080591, Written Opinion mailed Jan. 3, 2023”, 6 pgs. [cited by applicant]
Felipe, Castro-Medina, et al., “Design of a Horizontal Data Fragmentation, Allocation and Replication Method in the Cloud”, [cited by applicant]
Jinwei, Liu, et al., “A Low-Cost Multi-Failure Resilient Replication Scheme for High-Data Availability inCloud Storage”, [cited by applicant]