A storage process of a stripe in a distributed storage system comprising a plurality of storage nodes each comprising a storage controller; whereby the stripe includes intra-node portions (402a,..., 402e), and whereby data chunks (D1,..., D6) and parity chunks (R1,..., R9, P1,..., P6, Q1,..., Q6) form the stripe; the process comprising: storing a first data chunk belonging to the stripe on a first one of the storage devices (204a, 204b) of a first storage node comprised in the distributed storage system, whereby the stripe is being stored across a plurality of storage nodes (112a,..., 112e) comprised in the distributed storage system in a redundant manner using erasure coding; determining whether all of a plurality of data chunks (D1,..., D6) of a first intra-node portion of the stripe have been stored on the first storage node; based on a determination that all of the data chunks of the first intra-node portion of the stripe have been stored on the first storage node, storing a first intra-node parity chunk (R1,..., R5) at a second one of the storage devices of the first storage node, wherein the first intra-node parity chunk is determined from at least one of the data chunks of the first intra-node portion of the stripe and provides data redundancy for data chunks within the first storage node; and based on a determination that at least one of the data chunks of the first intra-node portion of the stripe has not been stored on the first storage node, delaying storage of a first intra-node parity chunk of the stripe on the first storage node until determining that all of the data chunks of the first intra-node portion of the stripe have been stored at the first storage node; and storing an inter-node parity chunk (P1,...P6) on a first one of storage devices of a second storage node, wherein the inter-node parity chunk is determined from at least the first data chunk, and wherein the inter-node parity chunk belongs to a second intra-node portion of the stripe being stored on the second storage node and provides data redundancy for data chunks outside of the second storage node. whereby the stripe includes intra-node portions (402a,..., 402e), and whereby data chunks (D1,..., D6) and parity chunks (R1,..., R9, P1,..., P6, Q1,..., Q6) form the stripe; the process comprising: storing a first data chunk belonging to the stripe on a first one of the storage devices (204a, 204b) of a first storage node comprised in the distributed storage system, whereby the stripe is being stored across a plurality of storage nodes (112a,..., 112e) comprised in the distributed storage system in a redundant manner using erasure coding; determining whether all of a plurality of data chunks (D1,..., D6) of a first intra-node portion of the stripe have been stored on the first storage node; based on a determination that all of the data chunks of the first intra-node portion of the stripe have been stored on the first storage node, storing a first intra-node parity chunk (R1,..., R5) at a second one of the storage devices of the first storage node, wherein the first intra-node parity chunk is determined from at least one of the data chunks of the first intra-node portion of the stripe and provides data redundancy for data chunks within the first storage node; and based on a determination that at least one of the data chunks of the first intra-node portion of the stripe has not been stored on the first storage node, delaying storage of a first intra-node parity chunk of the stripe on the first storage node until determining that all of the data chunks of the first intra-node portion of the stripe have been stored at the first storage node; and storing a first data chunk belonging to the stripe on a first one of the storage devices (204a, 204b) of a first storage node comprised in the distributed storage system, whereby the stripe is being stored across a plurality of storage nodes (112a,..., 112e) comprised in the distributed storage system in a redundant manner using erasure coding; determining whether all of a plurality of data chunks (D1,..., D6) of a first intra-node portion of the stripe have been stored on the first storage node; based on a determination that all of the data chunks of the first intra-node portion of the stripe have been stored on the first storage node, storing a first intra-node parity chunk (R1,..., R5) at a second one of the storage devices of the first storage node, wherein the first intra-node parity chunk is determined from at least one of the data chunks of the first intra-node portion of the stripe and provides data redundancy for data chunks within the first storage node; and based on a determination that at least one of the data chunks of the first intra-node portion of the stripe has not been stored on the first storage node, delaying storage of a first intra-node parity chunk of the stripe on the first storage node until determining that all of the data chunks of the first intra-node portion of the stripe have been stored at the first storage node; and storing an inter-node parity chunk (P1,...P6) on a first one of storage devices of a second storage node, wherein the inter-node parity chunk is determined from at least the first data chunk, and wherein the inter-node parity chunk belongs to a second intra-node portion of the stripe being stored on the second storage node and provides data redundancy for data chunks outside of the second storage node.