A device (210, 1200) comprising: a processing unit; and a memory coupled to the processing unit and storing instructions for execution by the processing unit, the instructions, when executed by the processing unit, causing the device (210, 1200) to perform acts comprising: receiving a write request to a redundant storage system wherein the redundant storage system comprises n storage nodes; determining a dataset that is to be written into the redundant storage system by the write request wherein the determining a dataset that is to be written into the redundant storage system comprises determining a first number of data blocks that are to be written into the redundant storage system; logging a portion of the dataset into the redundant storage system for data recovery in case that a fault occurs in the redundant storage system wherein the logging a portion of the dataset into the redundant storage system comprises: determining a second number less than the first number based on a reliability level of the redundant storage system; and logging data associated with the second number of data blocks from the first number of data blocks into the redundant storage system; writing the first number of data blocks into the redundant storage system; and in response to a fault occurring in the storage nodes during the write process, recovering data in the failure storage nodes based on the log portion of the dataset and the dataset in the non-failure storage nodes. a processing unit; and a memory coupled to the processing unit and storing instructions for execution by the processing unit, the instructions, when executed by the processing unit, causing the device (210, 1200) to perform acts comprising: receiving a write request to a redundant storage system wherein the redundant storage system comprises n storage nodes; determining a dataset that is to be written into the redundant storage system by the write request wherein the determining a dataset that is to be written into the redundant storage system comprises determining a first number of data blocks that are to be written into the redundant storage system; logging a portion of the dataset into the redundant storage system for data recovery in case that a fault occurs in the redundant storage system wherein the logging a portion of the dataset into the redundant storage system comprises: determining a second number less than the first number based on a reliability level of the redundant storage system; and logging data associated with the second number of data blocks from the first number of data blocks into the redundant storage system; writing the first number of data blocks into the redundant storage system; and in response to a fault occurring in the storage nodes during the write process, recovering data in the failure storage nodes based on the log portion of the dataset and the dataset in the non-failure storage nodes. receiving a write request to a redundant storage system wherein the redundant storage system comprises n storage nodes; determining a dataset that is to be written into the redundant storage system by the write request wherein the determining a dataset that is to be written into the redundant storage system comprises determining a first number of data blocks that are to be written into the redundant storage system; logging a portion of the dataset into the redundant storage system for data recovery in case that a fault occurs in the redundant storage system wherein the logging a portion of the dataset into the redundant storage system comprises: determining a second number less than the first number based on a reliability level of the redundant storage system; and logging data associated with the second number of data blocks from the first number of data blocks into the redundant storage system; determining a second number less than the first number based on a reliability level of the redundant storage system; and logging data associated with the second number of data blocks from the first number of data blocks into the redundant storage system; writing the first number of data blocks into the redundant storage system; and in response to a fault occurring in the storage nodes during the write process, recovering data in the failure storage nodes based on the log portion of the dataset and the dataset in the non-failure storage nodes.