IP Library Granted Patent US 10,437,682
Granted Patent B1
US 10,437,682 · App. 14/869,960 · Granted Oct 8, 2019

Efficient resource utilization for cross-site deduplication

Inventor: Uday Jonnala (Cupertino, CA)
Assignee: EMC IP Holding Company LLC
G06F11/1451G06F11/1464G06F16/182G06F16/23G06F16/27G06F16/275H04L41/12H04L67/1095G06F2201/84
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,437,682
App. No.
14/869,960
Filed
Sep 29, 2015
Granted
Oct 8, 2019
Kind
B1
Art Unit
2168
USPC
707/624
Abstract

Methods and apparatuses are described to provide a mechanism to improve replication performance by understanding available bandwidths of multiple source servers and load balancing the replication among the source servers based on fingerprints of data units to be replicated. A separate source server can be identified for one source server to replicate the data units to a target server. A replication request is sent from the one source server to the separate source server to identify the data units. A reply may be received from the separate source server to indicate that one or more of the data units are replicated from the separate source server. Subsequently, the remaining ones of the data units not indicated in the reply may be sent directly from the one source server to the target server without sending the one or more data units indicated in the reply.

Claims (65)

1. A machine-readable non-transitory storage medium having instructions therein, which when executed by a machine, cause the machine to perform operations comprising:

identifying, at a first source server, one or more data units to be replicated to a target server, the one or more data units being stored at the first source server;

identifying, at the first source server, a second source server for replicating at least a subset of the one or more data units from the second source server to the target server, the subset of the one or more data units to be replicated from the second source server being stored at both the first source server and the second source server, the second source server coupled with the target server, the second source sever capable of performing data replication to the target server;

sending a replication request from the first source server to the second source server, the replication request identifying the one or more data units for replication;

receiving a reply to the replication request from the second source server, the reply indicating the subset of the one or more data units are replicated from the second source server, wherein remaining ones of the one or more data units are not replicated from the second source server for the replication request; and

sending, subsequent to receiving the reply, at least one of the remaining ones of the one or more data units from the first source server to the target server for the replication of the one or more data units without sending the subset of the one or more data units indicated in the reply,

wherein replication of a portion of the subset of the one or more data units from the second source server to the target server takes place concurrently with replication of a portion of the remaining ones of the one or more data units from the first source server to the target server for the replication of the one or more data units.

2. The machine-readable non-transitory storage medium of claim 1 , wherein a plurality of source servers are separately coupled to the target server, the source servers including the second source server, each source server capable of performing the data replication to the target server, wherein the identification comprises:

maintaining a topology map dynamically during runtime, the topology map identifying the source servers, wherein the identification of the second source server is based on the topology map.

3. The machine-readable non-transitory storage medium of claim 2 , wherein the source servers include a master server monitoring runtime states of the source servers and wherein the topology map is received from the master server.

4. The machine-readable non-transitory storage medium of claim 2 , the identification further comprising:

selecting one or more eligible source servers for the replication of the one or more data units from the plurality of source servers based on the topology map and wherein the selected one or more eligible source servers include the second source server.

5. The machine-readable non-transitory storage medium of claim 4 , wherein the topology map indicates whether a source server is currently performing the data replication to the target server, and wherein an eligible source server is not currently performing the data replication to the target server.

6. The machine-readable non-transitory storage medium of claim 4 , wherein the topology map indicates a connection bandwidth associated with each source server with the target server, and wherein the eligible source servers are selected according to the connection bandwidth associated with each source server.

7. The machine-readable non-transitory storage medium of claim 6 , wherein one source server is not selected if the one source server is associated with a connection bandwidth smaller than a threshold value.

8. The machine-readable non-transitory storage medium of claim 7 , wherein the first source server is coupled with the target server via a network connection having a particular connection bandwidth and wherein the threshold value is determined based on the particular connection bandwidth.

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

determining an ordering relationship among the eligible source servers according to amounts of network bandwidth associated with the eligible source servers to the target server, wherein the second source server is associated with a highest amount of network bandwidth among the eligible source servers according to the ordering relationship.

10. The machine-readable non-transitory storage medium of claim 9 , wherein a third source server is ordered next to the second source server among the eligible source servers according to the ordering relationship, the operations further comprising:

sending, in response to the reply received from the second source server, an updated replication request from the first source server to the third source server, wherein the updated replication request identifying the remaining ones of the one or more data units for replication, the updated replication request without identifying the subset of the one or more data units indicated in the reply from the second source server; and

receiving a separate reply from the third source server, the separate reply indicating one or more of the remaining ones of the one or more data units are replicated from the third source server, wherein the one or more of the remaining ones of the one or more data units do not include the at least one of the remaining ones of the one or more data units sent from the first source server to the target server.

11. The machine-readable non-transitory storage medium of claim 4 , wherein the identification further comprises:

generating a fingerprint describing the one or more data units to be replicated to the target server;

sending inquiry messages to the eligible source servers, each inquiry message identifying the one or more data units for replication; and

collecting response messages from the eligible source servers in response to the inquiry messages, each response message received from one of the eligible source servers, the response message indicating which of the one or more data units are available in the one eligible source server, wherein a particular response message received from the second source server indicates the subset of the one and more data units are available in the second source server.

12. The machine-readable non-transitory storage medium of claim 11 , further comprising:

identifying one or more of the eligible source servers to replicate separate portions of the one or more data units, wherein the identified eligible source servers include the second source server to replicate one of the separate portions of the one or more data units includes the subset of the one or more data units.

13. The machine-readable non-transitory storage medium of claim 12 , further comprising:

sending multiple replication requests to the identified source servers to separately replicate the separate portions of the one or more data units, the multiple replication requests including the replication request to the second source server.

14. The machine-readable non-transitory storage medium of claim 13 , wherein the multiple replication requests are sent concurrently.

15. The machine-readable non-transitory storage medium of claim 13 , further comprising:

receiving multiple replies in response to the multiple replication requests from the identified source servers, the multiple replies including the reply from the second source server; and

determining which of the one or more data units to be replicated from the first source server, wherein the at least one of the remaining ones of the one or more data units are determined to be replicated from the first source server.

16. The machine-readable non-transitory storage medium of claim 1 , wherein the one or more data units are stored in a storage component coupled with the first source server and wherein each data unit represents a fixed sized partition of the storage component.

17. A computer implemented method comprising:

identifying, at a first source server, one or more data units to be replicated to a target server, the one or more data units being stored at the first source server;

identifying, at the first source server, a second source server for replicating at least a subset of one or more data units from the second source server to the target server, the subset of the one or more data units to be replicated from the second source server being stored at both the first source server and the second source server, the second source server coupled with the target server, the second site sever performing data replication to the target server;

sending a replication request from the first source server to the second source server, the replication request identifying the one or more data units for replication;

receiving a reply to the replication request from the second source server, the reply indicating the subset of the one or more data units are replicated from the second source server, wherein remaining ones of the one or more data units are not replicated from the second source server for the replication request; and

sending, subsequent to receiving the reply, at least one of the remaining ones of the one or more data units from the first source server to the target server for the replication of the one or more data units without sending the subset of the one or more data units indicated in the reply,

wherein replication of a portion of the subset of the one or more data units from the second source server to the target server takes place concurrently with replication of a portion of the remaining ones of the one or more data units from the first source server to the target server for the replication of the one or more data units.

18. The computer implemented method of claim 17 , wherein a plurality of source servers are separately coupled to the target server, the source servers including the second source server, each source server performing the data replication to the target server, wherein the identification comprises:

maintaining a topology map dynamically during runtime, the topology map identifying the source servers, wherein the identification of the second source server is based on the topology map.

19. The computer implemented method of claim 18 , the identification further comprising:

selecting one or more eligible source servers for the replication of the one or more data units from the plurality of source servers based on the topology map and wherein the selected one or more eligible source servers include the second source server.

20. The computer implemented method of claim 19 , the operations further comprising:

determining an ordering relationship among the eligible source servers according to amounts of network bandwidth associated with the eligible source servers to the target server, wherein the second source server is associated with a highest amount of network bandwidth among the eligible source servers according to the ordering relationship.

21. The computer implemented method of claim 20 , wherein a third source server is ordered next to the second source server among the eligible source servers according to the ordering relationship, the operations further comprising:

sending, in response to the reply received from the second source server, an updated replication request from the first source server to the third source server, wherein the updated replication request identifying the remaining ones of the one or more data units for replication, the updated replication request without identifying the subset of the one or more data units indicated in the reply from the second source server; and

receiving a separate reply from the third source server, the separate reply indicating one or more of the remaining ones of the one or more data units are replicated from the third source server, wherein the one or more of the remaining ones of the one or more data units do not include the at least one of the remaining ones of the one or more data units sent from the first source server to the target server.

22. The computer implemented method of claim 19 , wherein the identification further comprises:

generating a fingerprint describing the one or more data units to be replicated to the target server;

sending inquiry messages to the eligible source servers, each inquiry message identifying the one or more data units for replication; and

collecting response messages from the eligible source servers in response to the inquiry messages, each response message received from one of the eligible source servers, the response message indicating which of the one or more data units are available in the one eligible source server, wherein a particular response message received from the second source server indicates the subset of the one and more data units are available in the second source server.

23. A computer system comprising:

a memory storing executable instructions;

a network interface coupled to one or more source servers and a target server in a cross-site configuration;

a storage device storing data units;

a processor coupled to the memory, the network interface and the storage device, the processor to execute the executable instructions from the memory to

identify one or more data units to be replicated to a target server, the one or more data units being stored at the computer system;

identify a separate source server in the cross-site configuration for replicating a subset of the one or more data units from the separate source server to a target server, the subset of the one or more data units to be replicated from the separate source server being stored at both the computer system and the separate source server, the separate source capable of performing data replication to the target server,

send a replication request to the separate source server, the replication request identifying the one or more data units for replication,

receive a reply to the replication request from the separate source server, the reply indicating the subset of the one or more data units are replicated from the separate source server, wherein remaining ones of the one or more data units are not replicated from the separate source server for the replication request, and

send, subsequent to receiving the reply, at least one of the remaining ones of the one or more data units to the target server for the replication of the one or more data units without sending the subset of the one or more data units indicated in the reply,

wherein replication of a portion of the subset of the one or more data units from the second source server to the target server takes place concurrently with replication of a portion of the remaining ones of the one or more data units from the first source server to the target server for the replication of the one or more data units.

Assignments (14)
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 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
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 Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
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 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2015
From: JONNALA, UDAY
To: EMC CORPORATION
Reel/Frame 036692/0814 →
Cited By (3)
US 12,197,755 US 12,294,624 US 12,373,126