IP Library Patent Application 16117575
Patent Application
App. No. 16/117,575

METHOD, DEVICE AND COMPUTER PROGRAM PRODUCT FOR REPLICATING DATA BLOCK

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 None
App. No.
16/117,575
Abstract

Embodiments of the present disclosure relate to method, device and computer program product for replicating a data block. The method comprises obtaining a first set of identifiers associated with a first client and a second set of identifiers associated with a second client, the first set of identifiers comprising an identifier of a data block having been replicated to a target server from the first client and the second set of identifiers comprising an identifier of a data block having been replicated to the target server from the second client. The method also comprises merging the first set of identifiers and the second set of identifiers into a third set of identifiers to eliminate duplicated identifiers. The method further comprises replicating, based on the third set of identifiers and an identifier of a data block to be replicated, the data block to be replicated to the target server.

Claims (67)

1 . A method of replicating data blocks, comprising:

obtaining a first set of identifiers associated with a first client and a second set of identifiers associated with a second client, the first set of identifiers comprising an identifier of a data block having been replicated to a target server from the first client and the second set of identifiers comprising an identifier of a second data block having been replicated to the target server from the second client;

merging the first set of identifiers and the second set of identifiers into a third set of identifiers to eliminate duplicative identifiers; and

replicating, based on the third set of identifiers and an identifier of a third data block, the third data block to the target server.

2 . The method of claim 1 , wherein obtaining the first set of identifiers associated with the first client comprises:

performing a hash processing on the data block replicated to the target server from the first client to obtain a hash value of the data block; and

determining the identifier of the data block based on the hash value.

3 . The method of claim 1 , wherein merging the first set of identifiers and the second set of identifiers into the third set of identifier comprises:

sorting hash values corresponding to identifiers of the first set of identifier by size;

sorting hash values corresponding to identifiers of the second set of identifiers by size; and

merging the sorted hash values using a tree structure.

4 . The method of claim 3 , wherein the tree structure comprises at least one of a loser tree and a winner tree.

5 . The method of claim 1 , wherein replicating the third data block to the target server comprises:

determining an identifier of the third data block;

determining that the identifier of the third block does not match any identifiers of the third set of identifiers; and

in response to the determination, replicating the third data block to the target server.

6 . The method of claim 1 , wherein replicating the third data block to the target server comprises:

determining an identifier of the third data block;

determining that the identifier of third data block does not match any identifiers of the third set of identifiers; and

in response to determination, transmitting the identifier of the third data block to the target server, wherein the target server makes a second determination, using the identifier of the third data block, that the third data block is not stored on the target server; and

in response to the second determination, replicating the third data block to the target server.

7 . The method of claim 5 , further comprising:

in response to the determination, writing the identifier of the third data block into the third set of identifiers.

8 . The method of claim 7 , wherein during execution of a process of writing the identifier of the third data block into the third set of identifiers, the third set of identifiers is inaccessible by other processes.

9 . An electronic device for replicating data blocks, comprising:

a processor; and

a memory having computer program instructions stored thereon, the processor executing the computer program instructions in the memory to control the electronic device to perform a method, the method comprising:

obtaining a first set of identifiers associated with a first client and a second set of identifiers associated with a second client, the first set of identifiers comprising an identifier of a data block having been replicated to a target server from the first client and the second set of identifiers comprising an identifier of a second data block having been replicated to the target server from the second client;

merging the first set of identifiers and the second set of identifiers into a third set of identifiers to eliminate duplicative identifiers; and

replicating, based on the third set of identifiers and an identifier of a third data block, the third data block to the target server.

10 . The electronic device of claim 9 , wherein obtaining the first set of identifiers associated with the first client comprises:

performing a hash processing on the data block replicated to the target server from the first client to obtain a hash value of the data block; and

determining the identifier of the data block based on the hash value.

11 . The electronic device of claim 9 , wherein merging the first set of identifiers and the second set of identifiers into the third set of identifiers comprises:

sorting hash values corresponding to identifiers of the first set of identifiers by size;

sorting hash values corresponding to identifiers of the second set of identifiers by size; and

merging the sorted hash values using a tree structure.

12 . The electronic device of claim 11 , wherein the tree structure comprises at least one of a loser tree and a winner tree.

13 . The electronic device of claim 9 , wherein replicating the data block to be replicated to the target server comprises:

determining an identifier of the third data block;

determining that the identifier of the third block does not match any identifiers of the third set of identifiers; and

in response to the determination, replicating the third data block to the target server.

14 . The electronic device of claim 9 , wherein replicating the third data block to the target server comprises:

determining an identifier of the third data block;

determining that the identifier of the third block does not match any identifiers of the third identifier set; and

in response to the determination, transmitting the identifier of third block to the target server, wherein the target server makes a second determination, using the identifier of third data block, that the third data block is not stored on the target server; and

in response to the second determination, replicating the third data block to the target server.

15 . The electronic device of claim 13 , the actions further comprise:

in response determination, writing the identifier of the third data block into the third set of identifiers.

16 . The electronic device of claim 14 , wherein during execution of a process of writing the identifier of the third data block into the third set of identifiers, the third set of identifiers is inaccessible by other processes.

17 . A computer program product being tangibly stored on a non-volatile computer-readable medium and comprising machine-executable instructions which, when executed, causing a machine to perform a method, the method comprising:

obtaining a first set of identifiers associated with a first client and a second set of identifiers associated with a second client, the first set of identifiers comprising an identifier of a data block having been replicated to a target server from the first client and the second set of identifiers comprising an identifier of a second data block having been replicated to the target server from the second client;

merging the first set of identifiers and the second set of identifiers into a third set of identifiers to eliminate duplicated duplicative identifiers; and

replicating, based on the third set of identifiers and an identifier of a third data block to be replicated, the third data block to be replicated to the target server.

18 . The computer program product of claim 17 , wherein merging the first set of identifiers and the second set of identifiers into the third set of identifier comprises:

sorting hash values corresponding to identifiers of the first set of identifier by size;

sorting hash values corresponding to identifiers of the second set of identifiers by size; and

merging the sorted hash values using a tree structure.

19 . The computer program product of claim 17 , wherein replicating the third data block to the target server comprises:

determining an identifier of the third data block;

determining that the identifier of the third block does not match any identifiers of the third set of identifiers; and

in response to the determination, replicating the third data block to the target server.

20 . The computer program product of claim 17 , wherein replicating the third data block to the target server comprises:

determining an identifier of the third data block;

determining that the identifier of third data block does not match any identifiers of the third set of identifiers; and

in response to determination, transmitting the identifier of the third data block to the target server, wherein the target server makes a second determination, using the identifier of the third data block, that the third data block is not stored on the target server; and

in response to the second determination, replicating the third data block to the target 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 Aug 31, 2018
From: LIAO, LANJUN; HE, KEXIN; LI, KE; LIU, QIN; CHEN, WEI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046763/0814 →