US 12,032,849 B2
Distributed storage system and computer program product
Mingchang Wei, Shenzhen (CN); Rong Rao, Shenzhen (CN); and Chi Song, Shenzhen (CN)
Assigned to HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD., Guizhou (CN)
Filed by Huawei Cloud Computing Technologies Co., Ltd., Guizhou (CN)
Filed on Jun. 21, 2021, as Appl. No. 17/352,951.
Application 17/352,951 is a continuation of application No. PCT/CN2018/122935, filed on Dec. 22, 2018.
Prior Publication US 2021/0311654 A1, Oct. 7, 2021
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/0652 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0653 (2013.01); G06F 3/0659 (2013.01); G06F 3/067 (2013.01); G06F 3/0689 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A distributed storage system, comprising:
M storage nodes comprising L data storage nodes, wherein both L and M are positive integers, and wherein L is less than M; and
a client coupled to the M storage nodes and configured to:
receive, from a host, a write request comprising first data of the host and a first host access address of the first data;
generate second data of M strips for the first data in response to the write request and according to an erasure coding (EC) algorithm, wherein the M strips constitute a stripe, and wherein the M strips comprise: L data strips and (M-L) check strips, wherein the L data strips comprise third data of a first data strip of the L data strips, and wherein the third data based on dividing the first data, and wherein the (M-L) check strips store check data of the first data; and
send the second data to the M storage nodes,
wherein a first data storage node of the M storage nodes is configured to:
receive, from the client, the third data;
establish a first mapping between a second host access address of the third data and a first identifier of the first data strip;
write the third data into a hard disk of the first data storage node;
receive, from the hard disk, a first write success response; and
send, in response to receiving the first write success response, a second write success response to the client,
wherein the client is further configured to:
transmit, in response to receiving the second write success response, a write completion response to the host;
receive, from the host, a first read request comprising the second host access address; and
send, to the first data storage node, a first request for reading the third data, and
wherein the first data storage node is further configured to:
detect, in response to the first request, that a status of the first mapping is a write completion state; and
send, to a stripe server, a check request comprising a third identifier.