IP Library Granted Patent US 11,263,231
Granted Patent B2
US 11,263,231 · App. 15/809,910 · Granted Mar 1, 2022

Data copy method and device

Inventors: Yuanyuan Dong (Hangzhou, CN); Li Xu (Hangzhou, CN); Weibin Yan (Hangzhou, CN); Puyuan Yang (Hangzhou, CN); Kai Li (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F16/27G06F16/2365G06F16/951H04L29/08H04L67/1095H04L67/1097G06F3/067G06F16/182
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,263,231
App. No.
15/809,910
Granted
Mar 1, 2022
Kind
B2
Abstract

A data copy method comprises: acquiring, by a destination server, a data block identifier, version information and hole information; transmitting, by the destination server, the data block identifier, the version information and the hole information to a source terminal server so as to enable the source server to find corresponding data according to the data block identifier, the version information and the hole information; receiving, by the destination server, a response message carrying the data transmitted by the source server and copying the data to a hole corresponding to the data block identifier, the version information and the hole according to the response message.

Claims (67)

1. A method comprising:

obtaining, by a destination server, a data copy request, the data copy request including a data block identification, version information, and hole information, the hole information including a data offset position and a data offset length;

determining a hole to which data is to be copied according to the data block identification, the version information, and the hole information included in the data copy request;

determining that there is another hole corresponding to another data copy request overlapping with the hole at least according to the data offset position and the data offset length of the hole and a data offset position and a data offset length of the another hole;

merging the another hole with the hole into a merged hole;

sending a data block identification, version information, and hole information of the merged hole to a source server;

receiving a response message, sent by the source server, that carries data according to the data block identification, the version information, and the hole information of the merged hole; and

copying the data to the merged hole.

2. The method of claim 1 , further comprising:

requesting the source server to search for the data according to the data block identification, the version information, and the hole information of the merged hole.

3. The method of claim 1 , wherein the data copy request further includes a data copy starting version number.

4. The method of claim 3 , wherein:

the version information includes a data copy ending version number.

5. The method of claim 4 , further comprising:

after obtaining the data block identification, the version information, and the hole information,

determining, by the destination server, that the data copy ending version number of a data block corresponding to the data block identification is more updated than the data copy starting version number of the data block corresponding to the data block identification;

determining that the data copy starting version number of the data block corresponding to the data block identification is same as a current version number of the data block corresponding to the data block identification at the destination server; and

sending the data block identification, the version information, and the hole information to the source server.

6. The method of claim 5 , wherein:

the response message further includes a current version number of the data block corresponding to the data at the source server.

7. The method of claim 6 , further comprising:

determining, by the destination server, that the current version number of the data block at the destination server is at least as latest as the current version number of the data block corresponding to the data at the source server; and

updating the current version number of the data block at the destination server as a latest version number of the data block.

8. The method of claim 1 , further comprises:

deleting, by the destination server, the data block identification, the version information, and the hole information after copying the data to the hole corresponding to the hole information according to the response message.

9. The method of claim 1 , wherein the determining that there is the another hole corresponding to the another data copy request overlapping with the hole at least according to the data offset position and the data offset length of the hole and the data offset position and the data offset length of the another hole comprises:

determining that the data block identification of the another hole is the same as the data lock identification of the hole.

10. The method of claim 1 , wherein the determining that there is the another hole corresponding to the another data copy request overlapping with the hole at least according to the data offset position and the data offset length of the hole and the data offset position and the data offset length of the another hole further comprises:

determining that a data version number corresponding to the version information of the another hole is smaller than a data version number corresponding to the version information of the hole.

11. The method of claim 1 , wherein the version information of the merged hole is a version number corresponding to version information of a latest data copy request with a highest version number among obtained data copy requests.

12. A server comprising:

one or more processors; and

one or more memories stored thereon computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform acts including:

obtaining a data copy request, the data copy request including a data block identification, version information, and hole information, the hole information including a data offset position and a data offset length;

determining a hole to which data is to be copied according to the data block identification, the version information, and the hole information included in the data copy request;

determining that there is another hole corresponding to another data copy request overlapping with the hole at least according to the data offset position and the data offset length of the hole and a data offset position and a data offset length of the another hole;

merging the another hole with the hole into a merged hole;

sending a data block identification, version information, and hole information of the merged hole to a source server;

receiving a response message, sent by the source server, that carries data according to the data block identification, the version information, and the hole information of the merged hole; and

copying the data to the merged hole.

13. The server of claim 12 , wherein:

the data copy request further includes a data copy starting version number; and

the version information includes a data copy ending version number.

14. The server of claim 13 , wherein the acts further comprise:

determining that the data copy ending version number of a data block corresponding to the data block identification is more updated than the data copy starting version number of the data block corresponding to the data block identification;

determining that the data copy starting version number of the data block corresponding to the data block identification is same as a current version number of the data block corresponding to the data block identification at the destination server; and

sending the data block identification, the version information, and the hole information to the source server.

15. The server of claim 12 , wherein:

the response message further includes a current version number of the data block corresponding to the data at the source server; and

the acts further comprise:

determining that the current version number of the data block at a destination server is at least as latest as the current version number of the data block corresponding to the data at the source server; and

updating the current version number of the data block at the destination server as a latest version number of the data block.

16. The server of claim 12 , wherein the determining that there is the another hole corresponding to the another data copy request overlapping with the hole at least according to the data offset position and the data offset length of the hole and the data offset position and the data offset length of the another hole comprises:

determining that the data block identification of the another hole is the same as the data lock identification of the hole; and

determining that a data version number corresponding to the version information of the another hole is smaller than a data version number corresponding to the version information of the hole.

17. The server of claim 12 , wherein the version information of the merged hole is a version number corresponding to version information of a latest data copy request with a highest version number among obtained data copy requests.

18. One or more non-transitory memories stored thereon computer-readable instructions that, when executed by one or more processors, cause the one or more processors to perform acts including:

obtaining a data copy request, the data copy request including a data block identification, version information, and hole information, the hole information including a data offset position and a data offset length;

determining a hole to which data is to be copied according to the data block identification, the version information, and the hole information included in the data copy request;

determining that there is another hole corresponding to another data copy request overlapping with the hole at least according to the data offset position and the data offset length of the hole and a data offset position and a data offset length of the another hole;

merging the another hole with the hole into a merged hole;

sending a data block identification, version information, and hole information of the merged hole to a source server;

receiving a response message, sent by the source server, that carries data according to the data block identification, the version information, and the hole information of the merged hole; and

copying the data to the merged hole.

19. The one or more non-transitory memories of claim 18 , wherein the determining that there is the another hole corresponding to the another data copy request overlapping with the hole at least according to the data offset position and the data offset length of the hole and the data offset position and the data offset length of the another hole comprises:

determining that the data block identification of the another hole is the same as the data lock identification of the hole.

20. The one or more memories non-transitory of claim 18 , wherein the version information of the merged hole is a version number corresponding to version information of a latest data copy request with a highest version number among obtained data copy requests.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075478/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2020
From: DONG, YUANYUAN; XU, LI; YAN, WEIBIN; YANG, PUYUAN; LI, KAI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 053072/0453 →
Priority Claims (1)
CN 201510236871.8 · May 11, 2015 · national
Continuity (2)
Continuation PCTCN2016079552 · Apr 18, 2016
Related Publication 20180089297A1 · Mar 29, 2018