IP Library Granted Patent US 11,500,585
Granted Patent B2
US 11,500,585 · App. 17/065,104 · Granted Nov 15, 2022

Server and method for storing archival data

Inventor: Shu Li (San Mateo, CA)
Assignee: Alibaba Group Holding Limited
G06F3/0659G06F3/0619G06F3/0689G06F11/1076G06F13/1668
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,500,585
App. No.
17/065,104
Granted
Nov 15, 2022
Kind
B2
Abstract

The present disclosure relates to a method for storing data. The method includes: writing an input data to a first memory and a second memory; writing one or more first data slices in the input data stored in the first memory respectively to one or more first nodes in a storage cluster; encoding the input data stored in the second memory to generate one or more second data slices; and writing the one or more second data slices respectively to one or more second nodes in the storage cluster.

Claims (59)

1. A non-transitory computer-readable storage medium storing a set of instructions that are executable by one or more processors of a device to cause the device to perform a method for storing data, comprising:

writing an input data to a first memory and a second memory, the input data comprising one or more first data slices;

writing the one or more first data slices in the input data stored in the first memory respectively to one or more first nodes in a storage cluster;

encoding the input data stored in the second memory to generate one or more second data slices; and

writing the one or more second data slices respectively to one or more second nodes in the storage cluster.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the set of instructions that are executable by the one or more processors cause the device to encode the input data stored in the second memory by:

generating a codeword associated with the input data based on an erasure code, the codeword comprising the one or more first data slices and the one or more second data slices; and

dropping the one or more first data slices from the codeword.

3. The non-transitory computer-readable storage medium of claim 1 , wherein the set of instructions that are executable by the one or more processors cause the device to perform:

responsive to a total number of one or more written first data slices and one or more written second data slices being greater than a threshold value, reporting a completion of the write operation.

4. The non-transitory computer-readable storage medium of claim 3 , wherein the set of instructions that are executable by the one or more processors cause the device to perform:

responsive to a timeout after the reporting of the completion, reporting a drive failure and repairing the input data based on the one or more written first data slices, the one or more written second data slices, or a combination thereof.

5. The non-transitory computer-readable storage medium of claim 1 , wherein the set of instructions that are executable by the one or more processors cause the device to perform:

removing the input data from the first memory after writing all first data slices and second data slices into the one or more first nodes and the one or more second nodes.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the set of instructions that are executable by the one or more processors cause the device to write the one or more second data slices by:

bypassing the first memory during a transmission of the one or more second data slices from the second memory to the one or more second nodes.

7. The non-transitory computer-readable storage medium of claim 1 , wherein the set of instructions that are executable by the one or more processors cause the device to write the one or more first data slices by:

transmitting, via a peer-to-peer transfer, the input data from a network interface controller to the first memory in a host bus adapter, without storing the input data in a cache cluster.

8. A server comprising:

a host bus adapter comprising a first memory and communicatively coupled to a storage cluster;

a second memory; and

one or more processors communicatively coupled to the host bus adapter and the second memory and configured to execute a set of instructions to cause the server to:

write an input data received by the server to the first memory and the second memory, the input data comprising one or more first data slices;

write the one or more first data slices in the input data stored in the first memory respectively to one or more first nodes in the storage cluster;

encode the input data stored in the second memory to generate one or more second data slices; and

write the one or more second data slices respectively to one or more second nodes in the storage cluster.

9. The server of claim 8 , wherein the one or more processors are further configured to execute the set of instructions to cause the server to encode the input data stored in the second memory by:

generating a codeword associated with the input data based on an erasure code, the codeword comprising the one or more first data slices and the one or more second data slices; and

dropping the one or more first data slices from the codeword.

10. The server of claim 8 , wherein the one or more processors are further configured to execute the set of instructions to cause the server to:

responsive to a total number of one or more written first data slices and one or more written second data slices being greater than a threshold value, report a completion of the write operation.

11. The server of claim 10 , wherein the one or more processors are further configured to execute the set of instructions to cause the server to:

responsive to a timeout after the reporting of the completion, report a drive failure and repair the input data based on the one or more written first data slices, the one or more written second data slices, or a combination thereof.

12. The server of claim 8 , wherein the one or more processors are further configured to execute the set of instructions to cause the server to:

remove the input data from the first memory after writing all first data slices and second data slices into the storage cluster.

13. The server of claim 8 , wherein the one or more processors are further configured to execute the set of instructions to cause the server to write the one or more second data slices by:

bypassing the first memory during a transmission of the one or more second data slices from the second memory to the one or more second nodes.

14. The server of claim 8 , further comprising:

a network interface controller configured to receive the input data; and

a cache cluster configured to store data when reading out data from the storage cluster;

wherein the one or more processors are further configured to execute the set of instructions to cause the server to write the one or more first data slices by transmitting, via a peer-to-peer transfer, the input data from the network interface controller to the first memory without storing the input data in the cache cluster.

15. A method for storing data, comprising:

writing an input data to a first memory and a second memory, the input data comprising one or more first data slices;

writing the one or more first data slices in the input data stored in the first memory respectively to one or more first nodes in a storage cluster;

encoding the input data stored in the second memory to generate one or more second data slices; and

writing the one or more second data slices respectively to one or more second nodes in the storage cluster.

16. The method of claim 15 , wherein the encoding comprising:

generating a codeword associated with the input data based on an erasure code, the codeword comprising the one or more first data slices and the one or more second data slices; and

dropping the one or more first data slices from the codeword.

17. The method of claim 15 , further comprising:

responsive to a total number of one or more written first data slices and one or more written second data slices being greater than a threshold value, reporting a completion of the write operation.

18. The method of claim 17 , further comprising:

responsive to a timeout after the reporting of the completion, reporting a drive failure and repairing the input data based on the one or more written first data slices, the one or more written second data slices, or a combination thereof.

19. The method of claim 15 , further comprising:

removing the input data from the first memory after writing all first data slices and second data slices into the one or more first nodes and the one or more second nodes.

20. The method of claim 15 , wherein the writing the one or more second data slices comprises:

bypassing the first memory during a transmission of the one or more second data slices from the second memory to the one or more second nodes.

21. The method of claim 15 , wherein the writing the one or more first data slices comprises:

transmitting, via a peer-to-peer transfer, the input data from a network interface controller to the first memory in a host bus adapter, without storing the input data in a cache cluster.

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 Nov 5, 2020
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 054290/0681 →
Continuity (1)
Related Publication 20220107755A1 · Apr 7, 2022