IP Library Granted Patent US 11,704,043
Granted Patent B1
US 11,704,043 · App. 17/649,545 · Granted Jul 18, 2023

Backup and/or restore as a service

Inventors: Andrew Throgmorton (New Haven, CT); Christopher Anderson (Jacksonville, OR); Cyrille Roy (Laval, FR); Ilan Ginzburg (Plateau des Petites Roches, FR); Jeffrey Allan Miller, Jr. (Renton, WA); John Martin Buisson, Jr. (Missoula, MT); Julien Pilourdault (Meylan, FR)
Assignee: Salesforce, Inc.
G06F3/065G06F3/067G06F3/0619
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,704,043
App. No.
17/649,545
Granted
Jul 18, 2023
Kind
B1
Abstract

A service, responsive to a request, determines a scope that includes a specific tenant and a specific component. The service is extensible through addition of different components to manage different data sources used by different services that contribute to a set of one or more multi-tenant cloud services. The service also determines, for the specific component, parameters usable to identify the specific tenant and a specific storage path. Each of the components, responsive to being called to perform a backup or restore with a current set of parameters, is to be implemented to cause data, which belongs to a currently identified tenant, to be copied between the respective one of the data sources and a backup store according to a currently identified storage path. The service also calls the specific component to perform the backup or restore with the parameters.

Claims (76)

1. A non-transitory machine-readable storage medium that provides instructions that, if executed by a set of one or more processors, are configurable to cause the set of one or more processors to provide a service that is to backup and/or restore data with a backup store by performing operations comprising:

determining, based at least in part on a request, a scope that includes at least a specific tenant of a plurality of tenants and a specific component, wherein the service is extensible through implementation and addition of different components to manages different data sources used by different services that contribute to a set of one or more multi-tenant cloud services, wherein each of the components, including the specific component, is for a respective one of the data sources;

determining, for the specific component, a set of one or more parameters usable to identify the specific tenant and a specific storage path particular to a combination including the specific tenant and the respective one of the data sources, wherein each of the components, responsive to being called to perform a specific process type with a current set of parameters usable to identify one of the plurality of tenants as a currently identified tenant and a currently identified storage path, is to be implemented to cause data, which belongs to the currently identified tenant, to be copied between the respective one of the data sources and the backup store according to the currently identified storage path; and

calling the specific component to perform a specific process type with the set of one or more parameters usable to identify the specific tenant and the specific storage path respectively as the currently identified tenant and the currently identified storage path, wherein the specific process type is one of backup and restore.

2. The machine-readable storage medium of claim 1 , the operations further comprising:

calling the specific component to perform a dependency check; and

when the specific component responds to the dependency check representing that the respective one of the data sources is dependent on another respective one of the data sources, performing the following:

determining, for a second specific component that is for the another respective one of the data sources, a second set of one or more parameters usable to identify the specific tenant and a second specific storage path particular to a combination including the specific tenant and the another respective one of the data sources; and

calling the second specific component to perform the specific process type with the second set of one or more parameters usable to identify the specific tenant and the second specific storage path respectively as the currently identified tenant and the currently identified storage path.

3. The machine-readable storage medium of claim 1 , wherein the scope also includes a specific domain of a plurality of domains, wherein each of the plurality of domains hosts a respective one of the set of one or more multi-tenant cloud services, hosts the one or more of the services that contribute to the respective one of the set of one or more multi-tenant cloud services, and hosts the one or more of the data sources used by the one or more of the services that contribute to the respective one of the set of one or more multi-tenant cloud services, and wherein the combination also includes the specific domain.

4. The machine-readable storage medium of claim 1 , wherein the respective one of the data sources for the specific component is to store a plurality of versions of the data for the specific tenant, wherein the scope also includes a specific version of the plurality of versions, and wherein the combination also includes the specific version.

5. The machine-readable storage medium of claim 1 , wherein a second of the components is for a second respective one of the data sources, wherein the specific component and the second component are for respective ones of the data sources that are used by a single one of the services that contribute to the set of one or more multi-tenant cloud services.

6. The machine-readable storage medium of claim 1 , the operations further comprising:

determining, for the specific component, a second set of parameters usable to identify a second specific tenant and a second specific storage path particular to a second combination including the second specific tenant and the respective one of the data sources; and

calling the specific component to perform the specific process type with the second set of one or more parameters that are usable to identify the second specific tenant and the second specific storage path respectively as the currently identified tenant and the currently identified storage path.

7. The machine-readable storage medium of claim 1 , wherein the specific component is to be implemented to access the data, which belongs to the currently identified tenant, to be copied between the respective one of the data sources and the backup store according to the currently identified storage path.

8. The machine-readable storage medium of claim 1 , wherein the specific component is to be implemented to cause an internal backup and restore service of the respective one of the data sources to copy the data, which belongs to the currently identified tenant, between the respective one of the data sources and the backup store according to the currently identified storage path.

9. The machine-readable storage medium of claim 8 , the operations further comprising:

calling the specific component to perform a dependency check; and

when the specific component responds to the dependency check representing that the respective one of the data sources is dependent on another respective one of the data sources, performing the following:

determining, for a second specific component that is for the another respective one of the data sources, a second set of one or more parameters usable to identify the specific tenant and a second specific storage path particular to a combination including the specific tenant and the respective another one of the data source; and

calling the second specific component to perform the specific process type with the second set of one or more parameters usable to identify the specific tenant and the second specific storage path respectively as the currently identified tenant and the currently identified storage path, wherein the second specific component is to be implemented to access the data, which belongs to the currently identified tenant, to be copied between the another respective one of the data sources and the backup store according to the currently identified storage path.

10. The machine-readable storage medium of claim 1 , the operations further comprising:

calling the specific component to perform an integrity check with the set of one or more parameters before the calling to perform the specific process type; and

calling the specific component to perform an integrity check with the set of one or more parameters after the calling to perform the specific process type.

11. The machine-readable storage medium of claim 10 , the operations further comprising:

calling the specific component to perform a dependency check with the set of one or more parameters before the calling to perform the specific process type; and

calling the specific component to perform a dependency check with the set of one or more parameters after the calling to perform the specific process type.

12. A method for providing a service that is to backup and/or restore data with a backup store, the method comprising:

responsive to receipt of a request, a manager of the service being executed by an electronic device performing the following:

determining, based at least in part on the request, a scope that includes at least a specific tenant of a plurality of tenants and a specific component, wherein the service is extensible through implementation and addition of different components to manages different data sources used by different services that contribute to a set of one or more multi-tenant cloud services, wherein each of the components, including the specific component, is for a respective one of the data sources;

determining, for the specific component, a set of one or more parameters usable to identify the specific tenant and a specific storage path particular to a combination including the specific tenant and the respective one of the data sources, wherein each of the components, responsive to being called to perform a specific process type with a current set of parameters usable to identify one of the plurality of tenants as a currently identified tenant and a currently identified storage path, is to be implemented to cause data, which belongs to the currently identified tenant, to be copied between the respective one of the data sources and the backup store according to the currently identified storage path; and

calling the specific component to perform a specific process type with the set of one or more parameters usable to identify the specific tenant and the specific storage path respectively as the currently identified tenant and the currently identified storage path, wherein the specific process type is one of backup and restore.

13. The method of claim 12 , wherein the manager additionally performs the following:

calling the specific component to perform a dependency check; and

when the specific component responds to the dependency check representing that the respective one of the data sources is dependent on another respective one of the data sources, performing the following:

determining, for a second specific component that is for the another respective one of the data sources, a second set of one or more parameters usable to identify the specific tenant and a second specific storage path particular to a combination including the specific tenant and the another respective one of the data sources; and

calling the second specific component to perform the specific process type with the second set of one or more parameters usable to identify the specific tenant and the second specific storage path respectively as the currently identified tenant and the currently identified storage path.

14. The method of claim 12 , wherein the scope also includes a specific domain of a plurality of domains, wherein each of the plurality of domains hosts a respective one of the set of one or more multi-tenant cloud services, hosts the one or more of the services that contribute to the respective one of the set of one or more multi-tenant cloud services, and hosts the one or more of the data sources used by the one or more of the services that contribute to the respective one of the set of one or more multi-tenant cloud services, and wherein the combination also includes the specific domain.

15. The method of claim 12 , wherein the respective one of the data sources for the specific component is to store a plurality of versions of the data for the specific tenant, wherein the scope also includes a specific version of the plurality of versions, and wherein the combination also includes the specific version.

16. The method of claim 12 , wherein a second of the components is for a second respective one of the data sources, wherein the specific component and the second component are for respective ones of the data sources that are used by a single one of the services that contribute to the set of one or more multi-tenant cloud services.

17. The method of claim 12 , wherein the manager additionally performs the following:

determining, for the specific component, a second set of parameters usable to identify a second specific tenant and a second specific storage path particular to a second combination including the second specific tenant and the respective one of the data sources; and

calling the specific component to perform the specific process type with the second set of one or more parameters that are usable to identify the second specific tenant and the second specific storage path respectively as the currently identified tenant and the currently identified storage path.

18. The method of claim 12 , wherein the specific component is to be implemented to access the data, which belongs to the currently identified tenant, to be copied between the respective one of the data sources and the backup store according to the currently identified storage path.

19. The method of claim 12 , wherein the specific component is to be implemented to cause an internal backup and restore service of the respective one of the data sources to copy the data, which belongs to the currently identified tenant, between the respective one of the data sources and the backup store according to the currently identified storage path.

20. The method of claim 19 , wherein the manager additionally performs the following:

calling the specific component to perform a dependency check; and

when the specific component responds to the dependency check representing that the respective one of the data sources is dependent on another respective one of the data sources, performing the following:

determining, for a second specific component that is for the another respective one of the data sources, a second set of one or more parameters usable to identify the specific tenant and a second specific storage path particular to a combination including the specific tenant and the respective another one of the data source; and

calling the second specific component to perform the specific process type with the second set of one or more parameters usable to identify the specific tenant and the second specific storage path respectively as the currently identified tenant and the currently identified storage path, wherein the second specific component is to be implemented to access the data, which belongs to the currently identified tenant, to be copied between the another respective one of the data sources and the backup store according to the currently identified storage path.

21. The method of claim 12 , wherein the manager additionally performs the following:

calling the specific component to perform an integrity check with the set of one or more parameters before the calling to perform the specific process type; and

calling the specific component to perform an integrity check with the set of one or more parameters after the calling to perform the specific process type.

22. The method of claim 21 , wherein the manager additionally performs the following:

calling the specific component to perform a dependency check with the set of one or more parameters before the calling to perform the specific process type; and

calling the specific component to perform a dependency check with the set of one or more parameters after the calling to perform the specific process type.

23. An apparatus comprising:

a set of one or more processors;

a non-transitory machine-readable storage medium that provides instructions that, if executed by the set of one or more processors, are configurable to cause the apparatus to provide a service that is to backup and/or restore data with a backup store by performing operations comprising:

determining, based at least in part on a request, a scope that includes at least a specific tenant of a plurality of tenants and a specific component, wherein the service is extensible through implementation and addition of different components to manages different data sources used by different services that contribute to a set of one or more multi-tenant cloud services, wherein each of the components, including the specific component, is for a respective one of the data sources;

determining, for the specific component, a set of one or more parameters usable to identify the specific tenant and a specific storage path particular to a combination including the specific tenant and the respective one of the data sources, wherein each of the components, responsive to being called to perform a specific process type with a current set of parameters usable to identify one of the plurality of tenants as a currently identified tenant and a currently identified storage path, is to be implemented to cause data, which belongs to the currently identified tenant, to be copied between the respective one of the data sources and the backup store according to the currently identified storage path; and

calling the specific component to perform a specific process type with the set of one or more parameters usable to identify the specific tenant and the specific storage path respectively as the currently identified tenant and the currently identified storage path, wherein the specific process type is one of backup and restore.

24. The apparatus of claim 23 , the operations further comprising:

calling the specific component to perform a dependency check; and

when the specific component responds to the dependency check representing that the respective one of the data sources is dependent on another respective one of the data sources, performing the following:

determining, for a second specific component that is for the another respective one of the data sources, a second set of one or more parameters usable to identify the specific tenant and a second specific storage path particular to a combination including the specific tenant and the another respective one of the data sources; and

calling the second specific component to perform the specific process type with the second set of one or more parameters usable to identify the specific tenant and the second specific storage path respectively as the currently identified tenant and the currently identified storage path.

25. The apparatus of claim 23 , wherein the scope also includes a specific domain of a plurality of domains, wherein each of the plurality of domains hosts a respective one of the set of one or more multi-tenant cloud services, hosts the one or more of the services that contribute to the respective one of the set of one or more multi-tenant cloud services, and hosts the one or more of the data sources used by the one or more of the services that contribute to the respective one of the set of one or more multi-tenant cloud services, and wherein the combination also includes the specific domain.

26. The apparatus of claim 23 , wherein the respective one of the data sources for the specific component is to store a plurality of versions of the data for the specific tenant, wherein the scope also includes a specific version of the plurality of versions, and wherein the combination also includes the specific version.

27. The apparatus of claim 23 , wherein a second of the components is for a second respective one of the data sources, wherein the specific component and the second component are for respective ones of the data sources that are used by a single one of the services that contribute to the set of one or more multi-tenant cloud services.

28. The apparatus of claim 23 , the operations further comprising:

determining, for the specific component, a second set of parameters usable to identify a second specific tenant and a second specific storage path particular to a second combination including the second specific tenant and the respective one of the data sources; and

calling the specific component to perform the specific process type with the second set of one or more parameters that are usable to identify the second specific tenant and the second specific storage path respectively as the currently identified tenant and the currently identified storage path.

29. The apparatus of claim 23 , wherein the specific component is to be implemented to access the data, which belongs to the currently identified tenant, to be copied between the respective one of the data sources and the backup store according to the currently identified storage path.

30. The apparatus of claim 23 , wherein the specific component is to be implemented to cause an internal backup and restore service of the respective one of the data sources to copy the data, which belongs to the currently identified tenant, between the respective one of the data sources and the backup store according to the currently identified storage path.

Assignments (2)
CHANGE OF NAME Recorded Feb 17, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062794/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2022
From: THROGMORTON, ANDREW; ANDERSON, CHRISTOPHER; ROY, CYRILLE; GINZBURG, ILAN; MILLER, JEFFREY ALLAN, JR.; BUISSON, JOHN MARTIN, JR.; PILOURDAULT, JULIEN
To: SALESFORCE.COM, INC.
Reel/Frame 058882/0522 →
Cited By (8)
US 12,265,536 US 12,417,018 US 12,468,457 US 12,481,585 US 12,524,154 US 12,585,384 US 12,656,972 US 12,693,803