IP Library › Granted Patent US 12,511,199
Granted Patent B2
US 12,511,199 · App. 18/128,502 · Granted Dec 30, 2025

Disaster recovery in a cell model for an extensibility platform

Inventor: Geoffrey R. Hendrey (San Anselmo, CA)
Assignee: Cisco Technology, Inc.
G06F11/1461G06F11/1464
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,511,199
App. No.
18/128,502
Filed
Mar 30, 2023
Granted
Dec 30, 2025
Kind
B2
Examiner
VU, BAI DUC
Art Unit
2163
USPC
707/654
Abstract

According to one or more embodiments, an example method herein comprises: operating in a particular cell of a multi-celled architecture for an extensibility platform, the particular cell having a plurality of datastores with stored data; determining a backup schedule for the plurality of datastores; sending commands to individual datastore backup controllers based on the backup schedule to cause the individual datastore backup controllers to produce backups of the stored data to a respective local backup volume; and sending, in response to receiving an indication of completion of the backups, the backups of the respective local backup volume to a cloud storage service.

Claims (44)

1 . A method, comprising:

operating, by a backup manager, in a particular cell of a multi-celled architecture for an extensibility platform, the particular cell having a plurality of datastores with stored data, wherein the stored data comprises configuration data and observability data;

determining, by the backup manager, a backup schedule for the plurality of datastores, wherein the backup schedule identifies, for each respective datastore, which of the configuration data and observability data are to be included in a backup;

sending, from the backup manager, commands to individual datastore backup controllers based on the backup schedule to cause the individual datastore backup controllers to produce backups of the stored data to a respective local backup volume; and

sending, from the backup manager and in response to receiving an indication of completion of the backups, the backups of the respective local backup volume to a cloud storage service.

2 . The method as in claim 1 , further comprising:

restoring particular data from a particular backup from the cloud storage service; and

moving the particular backup to a particular local backup volume, wherein a particular datastore backup controller writes the particular backup to a particular datastore to restore the particular data.

3 . The method as in claim 1 , wherein the backup schedule is determined to schedule independent backups for the configuration data and the observability data.

4 . The method as in claim 1 , wherein the backup schedule is determined to schedule backups for only the configuration data.

5 . The method as in claim 1 , wherein observability data comprises one or more of metrics, events, logs, or traces.

6 . The method as in claim 1 , further comprising:

receiving configuration on how many incremental backups to store on the cloud storage service.

7 . The method as in claim 1 , further comprising:

providing a history of backups.

8 . The method as in claim 1 , further comprising:

cleaning up aged backups in the cloud storage service.

9 . The method as in claim 1 , wherein the backup schedule is determined to stagger backups among the plurality of datastores.

10 . The method as in claim 1 , further comprising:

determining whether to command an incremental backup or a full backup.

11 . The method as in claim 10 , wherein an incremental backup is commanded when a full backup exists, and a full backup is commanded when a full backup does not yet exist.

12 . The method as in claim 1 , further comprising:

receiving the indication as a domain event.

13 . The method as in claim 1 , further comprising:

sending commands on a domain event bus.

14 . The method as in claim 1 , further comprising:

performing restoration testing and validation on backups.

15 . A tangible, non-transitory, computer-readable medium having computer-executable instructions stored thereon that, when executed by a processor on a computer, cause the computer to perform a backup manager process comprising:

operating in a particular cell of a multi-celled architecture for an extensibility platform, the particular cell having a plurality of datastores with stored data, wherein the stored data comprises configuration data and observability data;

determining a backup schedule for the plurality of datastores, wherein the backup schedule identifies, for each respective datastore, which of the configuration data and observability data are to be included in a backup;

sending commands to individual datastore backup controllers based on the backup schedule to cause the individual datastore backup controllers to produce backups of the stored data to a respective local backup volume; and

sending, in response to receiving an indication of completion of the backups, the backups of the respective local backup volume to a cloud storage service.

16 . The tangible, non-transitory, computer-readable medium as in claim 15 , wherein the backup manager process further comprises:

restoring particular data from a particular backup from the cloud storage service; and

moving the particular backup to a particular local backup volume, wherein a particular datastore backup controller writes the particular backup to a particular datastore to restore the particular data.

17 . The tangible, non-transitory, computer-readable medium as in claim 15 , wherein the backup schedule is determined to schedule independent backups for the configuration data and the observability data.

18 . An apparatus, comprising:

one or more network interfaces to communicate with a network;

a processor coupled to the one or more network interfaces and configured to execute one or more processes; and

a memory configured to store a backup manager process that is executable by the processor, the backup manager process, when executed, configured to:

operate in a particular cell of a multi-celled architecture for an extensibility platform, the particular cell having a plurality of datastores with stored data, wherein the stored data comprises configuration data and observability data;

determine a backup schedule for the plurality of datastores, wherein the backup schedule identifies, for each respective datastore, which of the configuration data and observability data are to be included in a backup;

send commands to individual datastore backup controllers based on the backup schedule to cause the individual datastore backup controllers to produce backups of the stored data to a respective local backup volume; and

send, in response to receiving an indication of completion of the backups, the backups of the respective local backup volume to a cloud storage service.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2023
From: HENDREY, GEOFFREY R.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 063170/0784 →
Continuity (2)
Provisional Application 63326242 · Mar 31, 2022
Related Publication 20230315580A1 · Oct 5, 2023
References Cited (58)
US 7395282B1 · Crescenti · 2008 [cited by examiner]
US 9710430B2 · Werner · 2017 [cited by applicant]
US 9971590B2 · Hoff et al. · 2018 [cited by applicant]
US 10838714B2 · Sanghvi et al. · 2020 [cited by applicant]
US 10986065B1 · Farhangi et al. · 2021 [cited by applicant]
US 11258797B2 · Wilson et al. · 2022 [cited by applicant]
US 11314601B1 · Natanzon et al. · 2022 [cited by applicant]
US 11321196B1 · Kobayashi et al. · 2022 [cited by applicant]
US 11507363B2 · Totale et al. · 2022 [cited by applicant]
US 20050050141A1 · An et al. · 2005 [cited by applicant]
US 20080288465A1 · Payton et al. · 2008 [cited by applicant]
US 20090177988A1 · Martins · 2009 [cited by applicant]
US 20090183185A1 · Srour et al. · 2009 [cited by applicant]
US 20100161648A1 · Eberlein et al. · 2010 [cited by applicant]
US 20100332454A1 · Prahlad · 2010 [cited by examiner]
US 20110219354A1 · Zhang et al. · 2011 [cited by applicant]
US 20120084261A1 · Parab · 2012 [cited by applicant]
US 20120131646A1 · Chandolu et al. · 2012 [cited by applicant]
US 20140172914A1 · Elnikety et al. · 2014 [cited by applicant]
US 20140237560A1 · Knjazihhin et al. · 2014 [cited by applicant]
US 20140289391A1 · Balaji et al. · 2014 [cited by applicant]
US 20150067641A1 · Nyisztor et al. · 2015 [cited by applicant]
US 20150254289A1 · Junkergard et al. · 2015 [cited by applicant]
US 20150296000A1 · Chandramouli et al. · 2015 [cited by applicant]
US 20150324391A1 · Werner · 2015 [cited by applicant]
US 20150379082A1 · Hu et al. · 2015 [cited by applicant]
US 20160092455A1 · Pedapudi et al. · 2016 [cited by applicant]
US 20160352745A1 · Ilieva et al. · 2016 [cited by applicant]
US 20170177305A1 · Charfi et al. · 2017 [cited by applicant]
US 20170255886A1 · Schmidt et al. · 2017 [cited by applicant]
US 20180173561A1 · Moroski et al. · 2018 [cited by applicant]
US 20190079788A1 · Ruty et al. · 2019 [cited by applicant]
US 20190205230A1 · Basham et al. · 2019 [cited by applicant]
US 20190306237A1 · Srinivasan et al. · 2019 [cited by applicant]
US 20190362087A1 · Ferrans et al. · 2019 [cited by applicant]
US 20200021615A1 · Wainner et al. · 2020 [cited by applicant]
US 20200052957A1 · Tubillara et al. · 2020 [cited by applicant]
US 20200053087A1 · Wilson et al. · 2020 [cited by applicant]
US 20200073896A1 · Nagaraj et al. · 2020 [cited by applicant]
US 20200073987A1 · Perumala et al. · 2020 [cited by applicant]
US 20200137097A1 · Zimmermann et al. · 2020 [cited by applicant]
US 20200192773A1 · Savino et al. · 2020 [cited by applicant]
US 20200274472A1 · A et al. · 2020 [cited by applicant]
US 20200349513A1 · Farah · 2020 [cited by applicant]
US 20210042098A1 · Madisetti et al. · 2021 [cited by applicant]
US 20210360083A1 · Duggal et al. · 2021 [cited by applicant]
US 20220012045A1 · Rudraraju et al. · 2022 [cited by applicant]
US 20220035714A1 · Schultz et al. · 2022 [cited by applicant]
US 20220171648A1 · Rodriguez et al. · 2022 [cited by applicant]
US 20220318060A1 · Choochotkaew et al. · 2022 [cited by applicant]
CN 103699824A · 2014 [cited by applicant]
Abeysinghe, et al., “Cell-Based Architecture—A Decentralized Reference Architecture for Cloud-native Applications”, online: https://github.com/wso2/reference-architecture/blob/master/reference-architecture-cell-based.md… [cited by applicant]
Lin, et al., “A multi-dimensional extensible cloud-native service stack for enterprises”, Journal of Cloud Computing, 2022, 11:83, 18 pages. [cited by applicant]
Ma, et al., “Configuration-Driven Data Pipeline”, online: https://learn.microsoft.com/en-us/azure/architecture/solution-ideas/articles/configuration-driven-data-pipeline, accessed Feb. 27, 2023, 7 pages. [cited by applicant]
Miller, Jim, Flexible Meta Models and IBM Cognos Framework Manager, online: https://blogs.perficient.com/2014/05/29/flexible-meta-models-and-IBM-cognos-framework-manager/, May 29, 2014, accessed Mar. 6, 2023, 17 pages. [cited by applicant]
“Webinar—Bring Extensibility into Your Data Pipelines with Snowflake”, online: https://resources.snowflake.com/webinars-thought-leadership/webinar-bring-extensibility-into-your-data-pipelines-with-snowflake, Jul. 9, 202… [cited by applicant]
Yan, et al., “Multi-SQL: An extensible multi-model data query language”, online: arXiv:2011.08724v1, Nov. 2020, 16 pages. [cited by applicant]
Zhou, et al., “DB2MMT: A massive multi-tenant database platform for cloud computing”, 2011 Eighth IEEE International Conference on e-Business Engineering, Oct. 2011, pp. 335-340, IEEE Computer Society. [cited by applicant]