IP Library › Granted Patent US 10,289,496
Granted Patent B1
US 10,289,496 · App. 14/863,278 · Granted May 14, 2019

Parallel proxy backup methodology

Inventors: Shelesh Chopra (Bangalore, IN); Yashomathi Krishnamurthy (Bangalore, IN); Arathi Bhandari (Bangalore, IN); Gajendran Raghunathan (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F11/1461G06F11/1451G06F17/30584G06F17/30595G06F2201/80
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 10,289,496
App. No.
14/863,278
Filed
Sep 23, 2015
Granted
May 14, 2019
Kind
B1
Art Unit
2167
USPC
707/654
Abstract

Embodiments describe concurrently backing up data associated with a relational database management system (RDBMS). In an embodiment, a request is received to back up data from multiple nodes to a target storage source. The multiple nodes are configured to provide storage services to data associated with the RDBMS and are communicatively coupled to a backup server configured to manage backup of one or more storage devices. In response to the request, one or more preference nodes are identified from multiple nodes based on a preference configuration. Using a backup algorithm, portions of the backup to be performed are assigned to one or more preference nodes selected from the identified preference nodes. The backup operations are initiated using the selected preference node(s). Each portion is a distinct subset of the data to be backed up and each of the selected preference node(s) is assigned a unique portion.

Claims (45)

1. A computer-implemented method for backing up data, comprising:

receiving a request to back up data from a plurality of nodes to a target storage source, the plurality of nodes communicatively coupled to a backup server configured to manage backup of a plurality of storage devices, the plurality of nodes including a primary node and one or more secondary nodes, and each of the primary node and the one or more secondary nodes being configured to provide storage services to data associated with a relational database management system (RDBMS), wherein the plurality of nodes support a plurality of database availability groups, each database availability group comprising a set of databases that fail over together, wherein each of the plurality of nodes stores replicas of datasets from two or more of the plurality of database availability groups, and wherein the backup comprises datasets from two or more of the plurality of database availability groups;

in response to the request, identifying a plurality of preference nodes from the plurality of nodes based on a preference configuration;

assigning, using a backup algorithm, portions of the backup to be performed by one or more selected preference nodes from the plurality of identified preference nodes, wherein each portion of the backup is a distinct subset of the data to be backed up, wherein each of the one or more selected preference nodes is assigned a unique portion of the backup, and wherein backing up of at least one database availability group is distributed to two or more of the selected preference nodes, each of which stores a respective unique subset of databases of the at least one database availability group and performs backing up of its respective unique subset of databases of the at least one database availability group; and

initiating backup operations with the one or more selected preference nodes.

2. The method of claim 1 , wherein, when backup of a respective one of the portions is unsuccessful, a notification associated with the respective one of the portions indicates that the respective portion was unsuccessfully backed up and the method further comprises:

identifying one or more substitute preference nodes from the plurality of preference nodes; and

re-assigning, using the backup algorithm, the unsuccessfully stored portion of the backup to be performed by the one or more substitute preference nodes.

3. The method of claim 1 , wherein the backup algorithm is implemented by at least one of the backup server or the primary node and wherein the identification of the plurality of preference nodes from the plurality of nodes is performed by at least one of the backup server or the primary node.

4. The method of claim 1 , wherein the backup algorithm determines the portions of the backup to assign to the respective ones of the plurality of preference nodes based on at least one of:

a backup policy,

a size of the data to be backed up, or

a number of the databases or files that make up the data to be backed up.

5. The method of claim 1 , wherein each of the plurality of preference nodes creates its respective portion of the backup, sends its respective portion of the backup to the target storage system, and sends its notification to the backup server independently of operations performed by other ones of the plurality of preference nodes.

6. The method of claim 5 , wherein each notification is sent from a respective one of the plurality of preference nodes and received by the primary node, which forwards the notification to the backup server.

7. A non-transitory computer readable medium comprising instructions, which when executed by a processing system, cause the processing system to perform operations for backup, the operations comprising:

receiving a request to back up data from a plurality of nodes to a target storage source, the plurality of nodes communicatively coupled to a backup server configured to manage backup of a plurality of storage devices, the plurality of nodes including a primary node and one or more secondary nodes, and each of the primary node and the one or more secondary nodes being configured to provide storage services to data associated with a relational database management system (RDBMS), wherein the plurality of nodes support a plurality of database availability groups, each database availability group comprising a set of databases that fail over together, wherein each of the plurality of nodes stores replicas of datasets from two or more of the plurality of database availability groups, and wherein the backup comprises datasets from two or more of the plurality of database availability groups;

in response to the request, identifying a plurality of preference nodes from the plurality of nodes based on a preference configuration;

assigning, using a backup algorithm, portions of the backup to be performed by one or more selected preference nodes from the plurality of identified preference nodes, wherein each portion of the backup is a distinct subset of the data to be backed up, wherein each of the one or more selected preference nodes is assigned a unique portion of the backup, and wherein backing up of at least one database availability group is distributed to two or more of the selected preference nodes, each of which stores a respective unique subset of databases of the at least one database availability group and performs backing up of its respective unique subset of databases of the at least one database availability group; and

initiating backup operations with the one or more selected preference nodes.

8. The non-transitory computer readable medium of claim 7 , wherein, when backup of a respective one of the portions is unsuccessful, a notification associated with the respective one of the portions indicates that the respective portion was unsuccessfully backed up and the method further comprises:

identifying one or more substitute preference nodes from the plurality of preference nodes; and

re-assigning, using the backup algorithm, the unsuccessfully stored portion of the backup to be performed by the one or more substitute preference nodes.

9. The non-transitory computer readable medium of claim 7 , wherein the backup algorithm is implemented by at least one of the backup server or the primary node and wherein the identification of the plurality of preference nodes from the plurality of nodes is performed by at least one of the backup server or the primary node.

10. The non-transitory computer readable medium of claim 7 , wherein the backup algorithm determines the portions of the backup to assign to the respective ones of the plurality of preference nodes based on at least one of:

a backup policy,

a size of the data to be backed up, or

a number of the databases or files that make up the data to be backed up.

11. The non-transitory computer readable medium of claim 7 , wherein each of the plurality of preference nodes creates its respective portion of the backup, sends its respective portion of the backup to the target storage system, and sends its notification to the backup server independently of operations performed by other ones of the plurality of preference nodes.

12. The non-transitory computer readable medium of claim 11 , wherein each notification is sent from a respective one of the plurality of preference nodes and received by the primary node, which forwards the notification to the backup server.

13. A system for backing up data, the system comprising one or more processing devices, the one or more processing devices being configured to:

receive a request to back up data from a plurality of nodes to a target storage source, the plurality of nodes communicatively coupled to a backup server configured to manage backup of a plurality of storage devices, the plurality of nodes including a primary node and one or more secondary nodes, and each of the primary node and the one or more secondary nodes being configured to provide storage services to data associated with a relational database management system (RDBMS), wherein the plurality of nodes support a plurality of database availability groups, each database availability group comprising a set of databases that fail over together, wherein each of the plurality of nodes stores replicas of datasets from two or more of the plurality of database availability groups, and wherein the backup comprises datasets from two or more of the plurality of database availability groups;

in response to the request, identify a plurality of preference nodes from the plurality of nodes based on a preference configuration;

assign, using a backup algorithm, portions of the backup to be performed by one or more selected preference nodes from the plurality of identified preference nodes, wherein each portion of the backup is a distinct subset of the data to be backed up, wherein each of the one or more selected preference nodes is assigned a unique portion of the backup, and wherein backing up of at least one database availability group is distributed to two or more of the selected preference nodes, each of which stores a respective unique subset of databases of the at least one database availability group and performs backing up of its respective unique subset of databases of the at least one database availability group; and

initiate backup operations with the one or more selected preference nodes.

14. The system of claim 13 , wherein, when backup of a respective one of the portions is unsuccessful, a notification associated with the respective one of the portions indicates that the respective portion was unsuccessfully backed up and the method further comprises:

identify one or more substitute preference nodes from the plurality of preference nodes; and

re-assign, using the backup algorithm, the unsuccessfully stored portion of the backup to be performed by the one or more substitute preference nodes.

15. The system of claim 13 , wherein the backup algorithm is implemented by at least one of the backup server or the primary node and wherein the identification of the plurality of preference nodes from the plurality of nodes is performed by at least one of the backup server or the primary node.

16. The system of claim 13 , wherein the backup algorithm determines the portions of the backup to assign to the respective ones of the plurality of preference nodes based on at least one of:

a backup policy,

a size of the data to be backed up, or

a number of the databases or files that make up the data to be backed up.

17. The system of claim 13 , wherein each of the plurality of preference nodes creates its respective portion of the backup, sends its respective portion of the backup to the target storage system, and sends its notification to the backup server independently of operations performed by other ones of the plurality of preference nodes.

18. The system of claim 17 , wherein each notification is sent from a respective one of the plurality of preference nodes and received by the primary node, which forwards the notification to the backup server.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2015
From: CHOPRA, SHELESH; KRISHNAMURTHY, YASHOMATHI; BHANDARI, ARATHI; RAGHUNATHAN, GAJENDRAN
To: EMC CORPORATION
Reel/Frame 036639/0270 →
Cited By (2)
US 12,216,550 US 12,242,358