IP Library Granted Patent US 11,775,194
Granted Patent B2
US 11,775,194 · App. 17/358,682 · Granted Oct 3, 2023

Data storage method and apparatus in distributed storage system, and computer program product

Inventors: Mingchang Wei (Shenzhen, CN); Daohui Wang (Shenzhen, CN); Chi Song (Shenzhen, CN); Rong Rao (Shenzhen, CN)
Assignee: HUAWEI CLOUD COMPUTING TECHNOLGOIES CO., LTD.
G06F3/0644G06F3/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,775,194
App. No.
17/358,682
Granted
Oct 3, 2023
Kind
B2
Abstract

A data storage method implemented by a storage node in a distributed storage system includes receiving first data of a first strip in a first stripe, wherein the first stripe comprises a first plurality of strips, receiving second data of a second strip in a second stripe, wherein the second strip comprises a second plurality of strips, wherein a first logical address of the first data is the same as a second logical address of the second data, and generating a record indicating that the first data reaches the storage node before the second data.

Claims (46)

1. A data storage method implemented by a first storage node in a distributed storage system, comprising:

receiving first data of a first strip in a first stripe, wherein the first stripe comprises a first plurality of strips;

receiving a second data of a second strip in a second stripe, wherein the second stripe comprises a second plurality of strips, wherein a first logical address of the first data is the same as a second logical address of the second data;

generating a record indicating that the first data reached the first storage node before the second data;

backing up the record to one or more second storage nodes; and

when the first storage node becomes faulty, obtaining the record from one of the second storage nodes in which the record is backed up, and determining, based on the record and based on first restored data of the first strip in the first stripe and second restored data of the second strip in the second stripe, that the second data of the second strip in the second stripe is the latest data.

2. The data storage method of claim 1 , wherein the record indicates, based on a first identifier of the first strip and a second identifier of the second strip, that the first data reached the first storage node before the second data.

3. The data storage method of claim 1 , wherein the first data and the second data are from a first client.

4. The data storage method of claim 1 , wherein the first data is from a first client, and wherein the second data is from a second client.

5. The data storage method of claim 1 , further comprising receiving an allocation of the first strip and the second strip from a stripe metadata server.

6. The data storage method of claim 1 , further comprising:

receiving a read request from a client, wherein the read request comprises a third logical address that is the same logical address as the first logical address and the second logical address;

querying the record based on the same logical address to determine that the second data was received after the first data; and

returning the second data to the client.

7. The data storage method of claim 1 , wherein determining that the second data is the latest data comprises determining that the second data is a later version than the first data.

8. A first storage node in a distributed storage system, comprising:

a memory configured to store computer-executable instructions; and

one or more processors coupled to the memory and configured to execute the instructions to cause the first storage node to:

receive first data of a first strip in a first stripe, wherein the first stripe comprises a first plurality of strips;

receive a second data of a second strip in a second stripe, wherein the second stripe comprises a second plurality of strips, wherein a first logical address of the first data is the same as a second logical address of the second data;

generate a record indicating that the first data reached the first storage node before the second data;

back up the record to one or more second storage nodes; and

when the first storage node becomes faulty, obtain the record from one of the second storage nodes in which the record is backed up, and determining, based on the record and based on first restored data of the first strip in the first stripe and second restored data of the second strip in the second stripe, that the second data of the second strip in the second stripe is the latest data.

9. The first storage node of claim 8 , wherein the record indicates, based on a first identifier of the first strip and a second identifier of the second strip, that the first data reached the first storage node before the second data.

10. The first storage node of claim 8 , wherein the first data and the second data are from a first client.

11. The first storage node of claim 8 , wherein the first data is from a first client, and wherein the second data is from a second client.

12. The first storage node of claim 8 , wherein the one or more processors are further configured to execute the instructions to cause the first storage node to receive an allocation of the first strip and the second strip from a stripe metadata server.

13. The first storage node of claim 8 , wherein the one or more processors are further configured to execute the instructions to cause the first storage node to:

receive a read request from a client, wherein the read request comprises the same logical address as the first logical address and the second logical address;

query the record based on the same logical address to determine that the second data was received after the first data; and

return the second data to the client.

14. The first storage node of claim 8 , wherein the one or more processors are further configured to execute the instructions to cause the first storage node to determine that the second data is a later version than the first data.

15. A computer program product comprising computer-executable instructions stored on a non-transitory computer-readable medium that, when executed by one or more processors, cause a first storage node in a distributed storage system to be configured to:

receive first data of a first strip in a first stripe, wherein the first stripe comprises a first plurality of strips;

receive a second data of a second strip in a second stripe, wherein the second stripe comprises a second plurality of strips, wherein a first logical address of the first data is the same as a second logical address of the second data;

generate a record indicating that the first data reached the first storage node before the second data;

back up the record to one or more second storage nodes; and

when the first storage node becomes faulty, obtain the record from one of the second storage nodes in which the record is backed up, and determining, based on the record and based on first restored data of the first strip in the first stripe and second restored data of the second strip in the second stripe, that the second data of the second strip in the second stripe is the latest data.

16. The computer program product of claim 15 , wherein the record indicates, based on a first identifier of the first strip and a second identifier of the second strip, that the first data reached the first storage node before the second data.

17. The computer program product of claim 15 , wherein the instructions further cause the first storage node to be configured to:

receive a read request from a client, wherein the read request comprises the same logical address as the first logical address and the second logical address;

query the record based on the same logical address to determine that the second data was received after the first data; and

return the second data to the client.

18. The computer program product of claim 15 , wherein the first data and the second data are from a first client.

19. The computer program product of claim 15 , wherein the first data is from a first client, and wherein the second data is from a second client.

20. The computer program product of claim 15 , wherein the instructions further cause the first storage node to determine that the second data is a later version than the first data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2023
From: WEI, MINGCHANG; WANG, DAOHUI; SONG, CHI; RAO, RONG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 064553/0462 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2022
From: HUAWEI TECHNOLOGIES CO., LTD.
To: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD.
Reel/Frame 059267/0088 →