A degradation reading method and device based on an erasure code storage system

By introducing a sub-strip auxiliary repair mechanism into the erasure coding storage system, lost data sub-blocks are repaired independently, which solves the performance problem caused by repairing the entire data block in the prior art and improves the repair performance of degraded reads.

CN119415025BActive Publication Date: 2026-04-07TSINGHUA UNIVERSITY
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-09
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

The existing MSR code requires repairing the entire data block when performing a downgrade read operation, which significantly increases the amount of data read and affects the performance of downgrade reads.

Method used

By introducing sub-strips with auxiliary repair capabilities, the lost data sub-blocks can be repaired independently through auxiliary repair data sub-blocks and verification sub-blocks in the sub-strips, thus avoiding the need to repair the entire data block.

Benefits of technology

The repair overhead has been optimized, the repair performance of degraded reads has been improved, and the resource consumption and time during the data repair process have been reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119415025B_ABST
    Figure CN119415025B_ABST
Patent Text Reader

Abstract

The application provides a degraded reading method and device based on an erasure code storage system, and the method comprises the following steps: receiving a reading data request, checking whether the target data corresponding to the reading data request comprises a lost data sub-block; in the case that it is determined that the target data corresponding to the data request comprises a lost data sub-block, determining the target sub-stripe corresponding to the healthy data sub-block and the lost data sub-block required for degraded reading; the target sub-stripe comprises an auxiliary repair data sub-block and a check sub-block corresponding to the lost data sub-block; determining the storage positions corresponding to the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block respectively; reading the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage positions, repairing the data of the lost data sub-block according to the auxiliary repair data sub-block and the check sub-block, and obtaining the target data based on the healthy data sub-block and the successfully repaired lost data sub-block in the case that the lost data sub-block is successfully repaired.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of data storage, and in particular to a degraded read method and device based on an erasure code storage system. BACKGROUND

[0002] Erasure code technology is an important method for improving data reliability in distributed storage systems. It generates additional check blocks so that the original data can be recovered even if some data blocks are lost. The core idea of erasure code is to divide data into multiple blocks and calculate a certain number of check blocks. These check blocks, together with the data blocks, form a stripe. When data loss occurs, as long as a sufficient number of blocks (including data blocks and check blocks) are guaranteed, the lost data can be reconstructed.

[0003] MSR (Minimum storage regeneration) code is a special erasure code that can achieve data protection with the smallest storage overhead while meeting certain fault tolerance capabilities. The advantage of MSR code is that it can achieve the smallest repair bandwidth among all erasure codes that meet the minimum storage overhead.

[0004] Existing MSR code repair techniques usually take the entire data block as the basic operation unit, but in real use, the size of the requested data is not so large. When some data blocks are unavailable due to storage node failure or other reasons and degraded read operation needs to be performed, the entire data block needs to be repaired, which results in a significant increase in the amount of data read and affects the performance of degraded read. SUMMARY

[0005] The present application provides a degraded read method and device based on an erasure code storage system to solve the defect that the entire data block needs to be repaired when performing degraded read operation in the prior art, which results in a significant increase in the amount of data read and affects the performance of degraded read.

[0006] The present application provides a degraded read method based on an erasure code storage system. The erasure code-based storage system includes multiple stripes, each stripe including multiple data blocks and check blocks, each data block including multiple data sub-blocks, and each check block including multiple check sub-blocks. Each stripe further includes at least one sub-stripe, which includes multiple data sub-blocks and check sub-blocks located in different data blocks, respectively. In the case that any data sub-block in the sub-stripe is a lost data sub-block, the other data sub-blocks in the sub-stripe are used as auxiliary repair data sub-blocks for the lost data sub-block.

[0007] The method includes:

[0008] Receive a read data request and check whether the target data corresponding to the read data request includes a lost data sub-block;

[0009] If it is determined that the target data corresponding to the data request includes a lost data sub-block, then the healthy data sub-block required for the downgrade read and the target sub-strip corresponding to the lost data sub-block are determined; the target sub-strip includes the auxiliary repair data sub-block and the verification sub-block corresponding to the lost data sub-block;

[0010] Determine the storage locations corresponding to the health data sub-blocks, the auxiliary repair data sub-blocks and the verification sub-blocks in the target sub-strips, respectively.

[0011] The health data sub-block, the auxiliary repair data sub-block, and the verification sub-block are read based on the storage location. The data of the lost data sub-block is repaired according to the auxiliary repair data sub-block and the verification sub-block. If the lost data sub-block is successfully repaired, the target data is obtained based on the health data sub-block and the successfully repaired lost data sub-block.

[0012] According to the degradation read method based on erasure coding storage system provided by the present invention, a read data request is received, and the target data corresponding to the read data request is checked to see if it includes a lost data sub-block, specifically including:

[0013] Receive a read data request, wherein the read data request contains the physical address of the target data;

[0014] The status of each data sub-block corresponding to the target data is searched in the preset metadata according to the physical address, and it is determined whether the target data includes lost data sub-blocks according to the status of each data sub-block corresponding to the target data; wherein, the metadata includes the status of each data sub-block of the storage system, and the status is either healthy or lost.

[0015] According to the degradation read method based on erasure coding storage system provided by the present invention, determining the target sub-strip corresponding to the lost data sub-block specifically includes:

[0016] Analyze the number of missing data sub-blocks included in each sub-strip;

[0017] Determine if a sub-strip exists that contains multiple missing data sub-blocks;

[0018] If there is a sub-strip containing multiple lost data sub-blocks, the sub-strip is taken as the target sub-strip, and for the remaining lost data sub-blocks, the sub-strip containing the remaining lost data sub-blocks and having the smallest repair bandwidth is selected as the target sub-strip.

[0019] If there is no sub-strip containing multiple lost data sub-blocks, for each lost data sub-block, select the sub-strip containing the lost data sub-block and having the smallest repair bandwidth as the target sub-strip.

[0020] According to the degradation read method based on an erasure coding storage system provided by the present invention, the storage system includes a mapping table of logical addresses and physical addresses. When it is determined that the target data corresponding to the data request includes a lost data sub-block, the method determines the healthy data sub-block required for degradation read and the target sub-strip corresponding to the lost data sub-block. Specifically, this includes: when it is determined that the target data corresponding to the data request includes a lost data sub-block, converting the physical address of the target data to a logical address based on the mapping table; and determining the healthy data sub-block required for degradation read and the target sub-strip corresponding to the lost data block based on the logical address.

[0021] According to the degradation read method based on an erasure coding storage system provided by the present invention, the storage system includes a mapping table of logical addresses and physical addresses; determining the storage location corresponding to the healthy data sub-block, and the storage locations corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip, specifically includes: determining the logical address corresponding to the healthy data sub-block, and the logical addresses corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip; and determining the physical addresses corresponding to the healthy data sub-block, the auxiliary repair data sub-block, and the verification sub-block based on the mapping table.

[0022] According to the degradation read method based on erasure coding storage system provided by the present invention, the mapping table is generated by the following method: taking a set of multiple data sub-blocks or parity sub-blocks as a basic data placement unit in a stripe; forming a balanced data placement unit from the basic data placement units located in multiple different stripes, such that each data block appears once in multiple stripes; forming an optimal data placement unit from the multiple balanced data placement units, such that no additional auxiliary repair data needs to be read from the data block during repair; sorting based on the balanced data placement unit and the optimal data placement unit to obtain the logical addresses corresponding to all data sub-blocks and parity sub-blocks of the storage system, and obtaining the mapping table based on the logical addresses and physical addresses corresponding to all data sub-blocks and parity sub-blocks.

[0023] The present invention also provides a degradation read device based on an erasure coding storage system. The erasure coding storage system includes multiple stripes, each stripe including multiple data blocks and a check block, each data block including multiple data sub-blocks, and each check block including multiple check sub-blocks. Each stripe further includes at least one sub-strip, which includes multiple data sub-blocks and check sub-blocks located in different data blocks. If any data sub-block in a sub-strip is a lost data sub-block, the other data sub-blocks in the sub-strip are used as auxiliary repair data sub-blocks for the lost data sub-block.

[0024] The device includes:

[0025] A read data request receiving module is used to receive read data requests and check whether the target data corresponding to the read data request includes a lost data sub-block.

[0026] The target sub-strip determination module is used to determine the healthy data sub-block required for degraded reading and the target sub-strip corresponding to the lost data sub-block when it is determined that the target data corresponding to the data request includes a lost data sub-block; the target sub-strip includes an auxiliary repair data sub-block and a verification sub-block corresponding to the lost data sub-block;

[0027] The storage location determination module is used to determine the storage location corresponding to the health data sub-block, the storage location corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip, respectively.

[0028] The lost data repair module is used to read the healthy data sub-block, the auxiliary repair data sub-block, and the verification sub-block based on the storage location, repair the lost data sub-block according to the auxiliary repair data sub-block and the verification sub-block, and obtain the target data based on the healthy data sub-block and the successfully repaired lost data sub-block if the lost data sub-block is successfully repaired.

[0029] The present invention also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the degradation read method based on the erasure coding storage system as described above.

[0030] The present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the degradation read method based on an erasure coding storage system as described above.

[0031] The present invention also provides a computer program product, including a computer program that, when executed by a processor, implements the degradation read method based on an erasure coding storage system as described above.

[0032] The degradation read method and apparatus based on erasure coding storage system provided by this invention introduces sub-stripes with auxiliary repair capabilities. In the event of lost data sub-blocks, the lost data sub-blocks can be repaired independently through the auxiliary repair data sub-blocks and verification sub-blocks in the sub-strips. Finally, the target data is obtained based on the healthy data sub-blocks and the successfully repaired lost data sub-blocks, thus eliminating the need for data repair operations based on the entire data block, optimizing repair overhead, and improving the repair performance of degradation reads. Attached Figure Description

[0033] To more clearly illustrate the technical solutions in this invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0034] Figure 1 This is a schematic diagram of an erasure coding-based storage system provided in an embodiment of the present invention.

[0035] Figure 2 This is one of the flowcharts illustrating the degraded read method based on an erasure coding storage system provided in this embodiment of the invention.

[0036] Figure 3 This is the second flowchart of the degraded read method based on erasure coding storage system provided in the embodiments of the present invention.

[0037] Figure 4 This is a schematic diagram of a sub-strip provided in an embodiment of the present invention.

[0038] Figure 5 This is a schematic diagram of the read request processing flow provided in an embodiment of the present invention.

[0039] Figure 6 This is a schematic diagram of the downgrade read processing flow provided in an embodiment of the present invention.

[0040] Figure 7 This is a schematic diagram of the structure of the degradation read device based on the erasure coding storage system provided in an embodiment of the present invention.

[0041] Figure 8 This is a schematic diagram of the structure of the electronic device provided in an embodiment of the present invention. Detailed Implementation

[0042] To make the objectives, technical solutions, and advantages of this invention clearer, the technical solutions of this invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of this invention. All other embodiments obtained by those skilled in the art based on the embodiments of this invention without creative effort are within the scope of protection of this invention.

[0043] First, the terminology used in the embodiments of this invention will be explained illustratively.

[0044] Degraded Read: A degraded read is a data read operation in a distributed storage system that occurs when some data blocks are unavailable due to storage node failures or other reasons, but the system still needs to provide data access services. In this situation, the system utilizes the properties of erasure coding to reconstruct the lost data blocks using the remaining healthy data blocks and checksum blocks, thereby satisfying the read request.

[0045] Stripe: In distributed storage and erasure coding technology, striping is a data organization method that divides data into multiple parts and distributes these parts across multiple storage units (such as hard drives, solid-state drives, or storage nodes). This distributed storage method can improve data reliability, availability, and access efficiency.

[0046] Sub-stripe: A subset of a stripe, containing a portion of the data blocks and check blocks within the stripe.

[0047] Data Block: A data block is the basic unit after data is segmented; it is the logical unit for data storage and processing within a stripe. In erasure coding technology, a data block consists of multiple data sub-blocks and may include parity sub-blocks.

[0048] Data Chunk: The smallest unit of data segmentation; it is the basic element that makes up a data block.

[0049] The following is combined with Figures 1-6 This invention describes a degraded read method based on an erasure coding storage system according to an embodiment of the present invention.

[0050] The erasure coding-based storage system described in this embodiment of the invention is as follows: Figure 1 As shown. Figure 1 A schematic diagram of one of the stripes is shown.

[0051] This stripe consists of four data blocks D1 to D4 and two parity blocks P1 to P2. Each data block contains eight data sub-blocks, for a total of 32 data sub-blocks. Each parity block contains eight parity sub-blocks, for a total of 16 data sub-blocks.

[0052] Taking the existing technology with data blocks as the smallest repair unit as an example, if data block D3 is now damaged, and consequently all eight data sub-blocks of data block D3 are lost (e.g., the eight sub-blocks of data block D3), then repair is required based on other data blocks D1, D2, and D4, as well as check blocks P1~P2. This undoubtedly leads to a significant increase in the amount of data read, thus affecting the performance of degraded reads.

[0053] In the solution provided in this embodiment, in order to optimize repair overhead and improve the repair performance of degraded reads, it is necessary to find a set of sub-blocks that does not include lost sub-blocks (i.e., the 8 data sub-blocks of data block D3), can recover the required data (i.e., the first sub-block of each node from data block D1 to data block D4), and has as few sub-blocks as possible in this set. Therefore, the solution in this embodiment adds the concept of sub-stripes.

[0054] like Figure 1 The highlighted data sub-blocks in the data block form a sub-strip. A sub-strip includes multiple data sub-blocks and checksum sub-blocks located in different data blocks. If any data sub-block in a sub-strip is missing, the other data sub-blocks in the sub-strip are used as auxiliary repair data sub-blocks for the missing data sub-block. Therefore, a sub-strip has independent repair capabilities. For example, if two highlighted data sub-blocks in data block D3 are lost, the remaining highlighted data sub-blocks in this sub-strip can be used to repair these two lost data sub-blocks.

[0055] Specifically, each data sub-block within a sub-strip can belong to one sub-strip or to multiple different sub-strips. For example... Figure 1 In the data block D1, the 6th data sub-block belongs to the 1st and 5th sub-strips respectively.

[0056] The following is combined with Figure 2 The flowchart of the degradation read method based on an erasure coding storage system provided in the embodiments of the present invention will be illustrated. Figure 2 As shown, the method includes the following steps:

[0057] 201. Receive a read data request and check whether the target data corresponding to the read data request includes a lost data sub-block.

[0058] In this embodiment, the executing entity can be an erasure coding-based storage system. This storage system is a distributed storage system, which disperses data across multiple physical locations or multiple storage nodes.

[0059] Specifically, the storage system receives read data requests from users or applications through the storage service interface. This read data request typically contains an identifier or physical address of the target data. The request is parsed to determine the logical unit (such as a file, object, or dataset) to which the requested data belongs.

[0060] For storage systems, the target data for a read request can be determined by querying the storage metadata. This metadata records the physical location of the data, the status of the data sub-blocks (healthy or lost), and erasure coding parameters associated with the data.

[0061] For the requested target data, the system checks the status of each relevant data sub-block. The status of the data sub-block includes healthy state or missing state. If all relevant data sub-blocks are in a healthy state, the system can directly perform the data read operation. If any data sub-block is found to be missing, the system will mark the request as requiring a degraded read operation.

[0062] Suppose a user requests to read a file named "example.dat", which is divided into multiple data blocks distributed across different storage nodes. The storage system receives a read request for "example.dat"; parses the read request to determine the data block identifier corresponding to the file "example.dat"; queries metadata to find the storage location and status information of the data block; checks and finds that the third sub-block in data block D1 is marked as missing; due to the existence of a missing data sub-block, the system marks the request as requiring further degraded read processing.

[0063] 202. If it is determined that the target data corresponding to the data request includes a lost data sub-block, determine the healthy data sub-block required for the downgrade read and the target sub-strip corresponding to the lost data sub-block; the target sub-strip includes the auxiliary repair data sub-block and the verification sub-block corresponding to the lost data sub-block.

[0064] It should be explained that the healthy data sub-blocks required for the downgraded read mentioned here refer to a portion of the target data of the read request; while the target sub-strips corresponding to the lost data sub-blocks include the auxiliary repair data sub-blocks and check sub-blocks corresponding to the lost data sub-blocks. Although these auxiliary repair data sub-blocks are also healthy data sub-blocks, they are used together with the check sub-blocks to reconstruct the lost data sub-blocks.

[0065] The health data sub-blocks in the target sub-strip can also be the health data sub-blocks required for degraded reading. In this use case, the requested target data can be reused.

[0066] Furthermore, each auxiliary repair data sub-block can belong to a different sub-strip, so correspondingly, auxiliary repair data sub-blocks of the same sub-strip can be reused when repairing different lost data sub-blocks.

[0067] For the target sub-strip corresponding to the lost data sub-block, the system selects healthy data sub-blocks from the same target sub-strip as auxiliary repair data sub-blocks. These sub-blocks will be used together with the check sub-blocks to repair the lost data sub-blocks.

[0068] For example, a user requests to read a specific portion of a file named "example.dat", which is distributed in an erasure coding storage system, and it is known that some data sub-blocks have been lost.

[0069] The system receives a read request for a specific portion of "example.dat" and determines the logical address of the data sub-block involved. The system checks the status of these data sub-blocks and finds that data sub-blocks D3-S1 and D5-S2 are missing. The system identifies sub-stripes S1 and S2, which contain the missing data sub-blocks D3-S1 and D5-S2, respectively. The system selects healthy data sub-blocks from sub-stripes S1 and S2 as auxiliary repair data sub-blocks. The system records the locations of all necessary auxiliary repair data sub-blocks and checksum sub-blocks, as well as the locations of all healthy data sub-blocks.

[0070] Step 202 allows the identification of the healthy data sub-blocks and target sub-stripes required for degraded reads within the storage system, and prepares for effective data repair to ensure that users can access the complete data they need even in cases of incomplete data.

[0071] 203. Determine the storage locations corresponding to the health data sub-blocks, the auxiliary repair data sub-blocks and the verification sub-blocks in the target sub-strips, respectively.

[0072] Specifically, the system identifies the lost data sub-blocks and determines the sub-stripes to which they belong. Then, using a mapping table in the storage system, the system translates the logical addresses of the healthy data sub-blocks and parity sub-blocks within the sub-strip into physical addresses. The system records the physical storage locations of all healthy data sub-blocks and parity sub-blocks within the sub-strip; these sub-blocks will be used to reconstruct the lost data sub-blocks. The system generates a data read request, including the physical addresses of all required healthy data sub-blocks and parity sub-blocks within the sub-strip.

[0073] In step 203, by accurately determining the storage location of the data sub-blocks, the data location time is reduced, thereby accelerating the data repair process. Furthermore, by obtaining the storage locations corresponding to the auxiliary repair data sub-blocks and checksum sub-blocks in the target sub-strip, which are then used to repair lost data blocks, the utilization rate of storage resources is improved, and the waste of storage space is reduced.

[0074] Consider a distributed storage system based on erasure coding for storing large files. The system is configured such that each stripe contains 12 data blocks and 4 parity blocks, distributed across 12 different storage nodes. Each stripe is further subdivided into 3 sub-stripes, each containing 4 data sub-blocks and a corresponding parity sub-block.

[0075] A user requests to download a large file, the data of which is stored in the aforementioned system. During the request, the system detects that some data sub-blocks in the third sub-strip are missing. The system uses a mapping table to translate the logical addresses of the healthy data sub-blocks and checksum sub-blocks in the third sub-strip into physical addresses. The system records the physical storage locations of all healthy data sub-blocks and checksum sub-blocks in the third sub-strip and generates and sends a read request to the node storing the healthy data sub-blocks and checksum sub-blocks to request the transfer of these healthy data sub-blocks and checksum sub-blocks to repair the missing data sub-blocks.

[0076] 204. Read the health data sub-block, the auxiliary repair data sub-block, and the verification sub-block based on the storage location; repair the data of the lost data sub-block according to the auxiliary repair data sub-block and the verification sub-block; and if the lost data sub-block is successfully repaired, obtain the target data based on the health data sub-block and the successfully repaired lost data sub-block.

[0077] For erasure coding storage systems, data recovery of lost data blocks is a complex process involving encoding and decoding algorithms. For example, the system determines which healthy data blocks and checksum blocks will participate in the recovery process. In MSR (Minimum Storage Regeneration) codes, this typically involves selecting the minimum number of data blocks to maximize storage efficiency.

[0078] The system reads the healthy and checksum sub-blocks that need to participate in the repair process from the storage device, and then uses the erasure coding decoding algorithm to begin reconstructing the lost data sub-blocks. This process typically involves solving a system of linear equations. For example, in Reed-Solomon coding, this involves polynomial interpolation.

[0079] Once a data sub-block is repaired, the system uses a checksum sub-block to verify whether the newly generated data sub-block is correct. If it is correct, the system writes the repaired data sub-block back to the storage system to replace the lost data sub-block, thus completing the repair of the lost data sub-block.

[0080] The method of this invention introduces sub-strips with auxiliary repair capabilities. In the event of lost data sub-blocks, the lost data sub-blocks can be repaired independently using the auxiliary repair data sub-blocks and verification sub-blocks in the sub-strips. Finally, the target data is obtained based on the healthy data sub-blocks and the successfully repaired lost data sub-blocks, thus eliminating the need for data repair operations based on the entire data block, optimizing repair overhead, and improving the repair performance of degraded reads.

[0081] Specifically, step 201 includes: receiving a read data request, wherein the read data request contains the physical address of the target data; searching for the status of each data sub-block corresponding to the target data in the preset metadata according to the physical address, and determining whether the target data includes a lost data sub-block according to the status of each data sub-block corresponding to the target data; wherein the metadata includes the status of each data sub-block of the storage system, wherein the status is a healthy status or a lost status.

[0082] Through step 201, the system can quickly respond to data read requests and rapidly determine data integrity. Furthermore, by promptly identifying lost data sub-blocks, the system can initiate the data repair process as early as possible, reducing the time when data is unavailable.

[0083] Specifically, step 202 includes: if it is determined that the target data corresponding to the data request includes a lost data sub-block, converting the physical address of the target data into a logical address based on a mapping table; and determining the healthy data sub-block required for the downgrade read and the target sub-strip corresponding to the lost data sub-block based on the logical address.

[0084] In this embodiment, the conversion of physical addresses to logical addresses is implemented based on a mapping table. In erasure coding-based storage systems, the address mapping table is a crucial data structure that records the correspondence between logical identifiers of data and their locations in physical storage.

[0085] In this embodiment, the distribution of logical addresses corresponding to sub-blocks is regarded as logical space, and the continuously laid-out data sub-blocks are regarded as physical space. A mapping table is established between physical space and logical space so that the mapping between logical and physical space does not affect the performance of general read.

[0086] Among them, see Figure 3 The mapping table between logical addresses and physical addresses in the storage system is generated using the following method:

[0087] 301. A set of multiple data sub-blocks or check sub-blocks is used as a basic data placement unit in a stripe.

[0088] The system combines multiple data sub-blocks and parity sub-blocks within a stripe into a Basic Data Placement Unit (BTU). This unit is the basic building block of the stripe, facilitating subsequent management and operation. For example, assuming a stripe contains 6 data sub-blocks (D1-D6) and 2 parity blocks (P1 and P2), the system considers these 8 sub-blocks as a Basic Data Placement Unit.

[0089] 302. The basic data placement units located in multiple different stripes are combined into a balanced data placement unit, such that each data block appears once in multiple stripes.

[0090] The system combines multiple basic data placement units into a balanced data placement unit, ensuring that each data block appears once in multiple stripes.

[0091] For example, suppose there are two stripes, strip A containing (D1, D2, P1) and strip B containing (D3, D4, P2). The system combines these basic data placement units into balanced data placement units to ensure uniform distribution of data.

[0092] 303. Multiple balanced data placement units are combined into an optimal data placement unit so that additional auxiliary repair data does not need to be read from the data block during repair.

[0093] The system combines multiple balanced data placement units into an optimal data placement unit, so that no additional auxiliary repair data needs to be read from the data block during data repair.

[0094] For example, an optimal data placement unit may contain multiple balanced data placement units to ensure that all necessary repair information can be found within the same unit when repairing lost data.

[0095] 304. Based on the balanced data placement unit and the optimal data placement unit, sort them to obtain the logical addresses corresponding to all data sub-blocks and check sub-blocks of the storage system, and based on the logical addresses and physical addresses corresponding to all data sub-blocks and check sub-blocks, obtain the mapping table.

[0096] The system sorts the balanced data placement units and the optimal data placement units to generate the logical addresses of all data sub-blocks and parity sub-blocks in the storage system.

[0097] The system then associates these logical addresses with physical addresses, generating a mapping table that records the physical address corresponding to each logical address. For example, logical address L1 corresponds to physical address P1, logical address L2 corresponds to physical address P2, and so on.

[0098] As seen in steps 301-304, the system in this embodiment includes three data placement units with different granularities. The basic data placement unit prioritizes high-overhead nodes in the sub-strips, and its granularity is consistent with the scalar code. The balanced data placement unit includes the basic data placement unit containing the number of check blocks, ensuring that each data block appears exactly once. The optimal data placement unit contains several balanced data placement units, so that additional auxiliary repair data does not need to be read from the data blocks during repair.

[0099] The placement sequence generation algorithm proposed in this embodiment reorders all basic data placement units. When writing data, the data is written sequentially according to the basic data placement unit sequence.

[0100] Additionally, step 202, which involves determining the target sub-stripes corresponding to the healthy data sub-blocks and lost data sub-blocks required for the downgrade read based on the logical address, specifically includes: the system querying metadata to obtain the status information of all data sub-blocks corresponding to the logical address, including their health and loss status. Based on the status information, the system identifies which data sub-blocks are lost. These lost data sub-blocks will need to be repaired. The system identifies the sub-stripes containing the lost data sub-blocks. A sub-strip is a part of a stripe and contains data sub-blocks and checksum sub-blocks from different data blocks. The system analyzes all data sub-blocks contained in the target sub-strip to determine which are healthy and which are lost. If the healthy data sub-blocks in the target sub-strip are sufficient to repair all lost data sub-blocks, the system will only use these healthy data sub-blocks and checksum sub-blocks for repair.

[0101] Then, the system records detailed information about all health data sub-blocks and verification sub-blocks involved in the repair process in the target sub-strip, including their logical and physical addresses.

[0102] Specifically, step 203 includes: determining the logical address corresponding to the health data sub-block, the logical address corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip respectively; and determining the physical address corresponding to the health data sub-block, the auxiliary repair data sub-block and the verification sub-block respectively based on the mapping table.

[0103] Then, the system generates a data read request, which contains the physical addresses of all the health data sub-blocks and verification sub-blocks that need to be read, thereby enabling the reading of health data sub-blocks, auxiliary repair data sub-blocks, and verification sub-blocks based on storage location.

[0104] Specifically, step 202, determining the target sub-strip corresponding to the lost data sub-block, includes: analyzing the number of lost data sub-blocks included in each sub-strip; determining whether there is a sub-strip containing multiple lost data sub-blocks; if there is a sub-strip containing multiple lost data sub-blocks, taking that sub-strip as the target sub-strip, and for the remaining lost data sub-blocks, selecting the sub-strip containing the remaining lost data sub-blocks and having the smallest repair bandwidth as the target sub-strip; if there is no sub-strip containing multiple lost data sub-blocks, for each lost data sub-block, selecting the sub-strip containing the lost data sub-blocks and having the smallest repair bandwidth as the target sub-strip.

[0105] By determining the target sub-strip in step 202 and accurately selecting it, the system can more effectively locate and repair lost data sub-blocks. Furthermore, by selecting the sub-strip with the smallest repair bandwidth, the system reduces resource consumption during the data repair process.

[0106] For example, a user requests to download the file "HolidayPhotos.zip". The system detects missing data blocks across multiple sub-strips spanned by the file. During the implementation process, the system analyzes each sub-strip and finds that sub-strip S3 is missing 3 data blocks, while other sub-strips are missing only 1 or 2 data blocks. The system marks sub-strip S3 as the primary target sub-strip and plans to repair it using healthy data blocks and checksum blocks from S3. For the missing data blocks in other sub-strips, the system evaluates and selects sub-strips S1 and S2, which have the minimum repair bandwidth, as secondary target sub-strips. The system records detailed information on all healthy data blocks and checksum blocks participating in the repair process in S3, S1, and S2. The system generates data read requests to retrieve these blocks from the storage nodes.

[0107] Of course, it should be noted that in erasure coding systems, each sub-strip is designed with a certain degree of fault tolerance, meaning it can withstand the loss of a certain number of data sub-blocks and still recover the lost data. However, this fault tolerance is limited and is usually determined by the parameters of the erasure code, such as the number of parity sub-blocks used for encoding.

[0108] If the number of lost data blocks in a sub-strip exceeds the fault tolerance limit of the erasure coding scheme, then using only the healthy data blocks and parity blocks from that sub-strip may not be enough to recover all the lost data. In this case, the system needs to check if there are healthy data blocks in other sub-strips containing the lost data blocks. If so, the healthy data blocks from those other sub-strips are used as auxiliary repair data to help repair the lost data blocks.

[0109] To further understand the solution of this embodiment, please refer to... Figure 1 and Figure 4,in Figure 4 A schematic diagram of a sub-strip is shown. The missing data sub-block is D3, the healthy data sub-blocks are D1, D2, and D4, and the checksum blocks are P1 and P2. The healthy data sub-blocks are used as auxiliary repair data sub-blocks, and the missing data sub-block D3 is repaired using these auxiliary repair data sub-blocks and the checksum blocks.

[0110] Specifically, see Figure 5 The reading request processing flow of this embodiment of the invention includes:

[0111] 501. Receive read data request.

[0112] The read data request includes the physical address of the target data.

[0113] 502. Check if there is any data loss. If so, proceed to step 504. If not, proceed to step 503.

[0114] Specifically, check whether the target data corresponding to the read data request includes the lost data sub-block.

[0115] 503. Read the required health data sub-blocks from the backend storage.

[0116] Specifically, the corresponding health data sub-block is read from the backend storage based on the physical address of the target data.

[0117] 504. Translate the physical address into a logical address.

[0118] Specifically, the physical address of the target data is converted into a logical address based on the mapping table.

[0119] 505. Determine the target sub-strips corresponding to the healthy data sub-blocks and lost data sub-blocks required for the downgrade read.

[0120] Among them, the target sub-strip lost data sub-blocks correspond to the auxiliary repair data sub-blocks and the verification sub-blocks.

[0121] Specifically, for the process of downgrading reads, see the following section. Figure 6 The detailed steps are shown below.

[0122] 506. Determine the logical address corresponding to the health data sub-block, the logical address corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip, and convert the logical address to the physical address.

[0123] The logical addresses corresponding to the health data sub-block, the auxiliary repair data sub-block, and the verification sub-block in the target sub-strip are determined respectively; based on the mapping table, the physical addresses corresponding to the health data sub-block, the auxiliary repair data sub-block, and the verification sub-block are determined respectively.

[0124] 507. Read health data sub-blocks, auxiliary repair data sub-blocks, and verification sub-blocks based on storage location.

[0125] 508. Perform data repair on lost data sub-blocks based on health data sub-blocks, auxiliary repair data sub-blocks, and verification sub-blocks.

[0126] 509. Return target data.

[0127] Furthermore, the downgrade read process in this embodiment of the invention is as follows: Figure 6 As shown, it includes:

[0128] 601. Determine the status of each data sub-block corresponding to the target data.

[0129] 602. Identify healthy data sub-blocks and lost data sub-blocks.

[0130] 603. Analyze the number of missing data sub-blocks included in each sub-strip.

[0131] 604. Determine if there is a sub-strip containing multiple lost data sub-blocks. If yes, proceed to step 605; otherwise, proceed to step 606.

[0132] 605. Select the sub-strip as the target sub-strip, record the required auxiliary repair data, and continue to step 604.

[0133] 606. Determine if there are any unprocessed repair data sub-blocks. If yes, proceed to step 607; otherwise, proceed to step 608.

[0134] 607. For each lost data sub-block, select the sub-strip containing the lost data sub-block and the one with the smallest repair bandwidth as the target sub-strip, and continue to step 606.

[0135] 608. Determine the storage locations of the auxiliary repair data sub-block and the verification sub-block in the health data sub-block and the target sub-strip, respectively.

[0136] 609. Read the health data sub-block, assist in repairing the data sub-block, and verify the data sub-block.

[0137] In summary, the technical effects achieved by the embodiments of the present invention include:

[0138] 1) Propose a sub-strip with independent repair capability: When a node fails, the affected data in the sub-strip can be repaired independently through the sub-strip health data.

[0139] 2) Further optimize repair overhead through two data reuse mechanisms:

[0140] a) Sub-strip reuse: Auxiliary repair data sub-blocks of the same sub-strip can be reused when repairing different lost data sub-blocks;

[0141] b) Request data reuse: The auxiliary repair data sub-blocks required to repair lost data are exactly the healthy data sub-blocks required for degraded reads.

[0142] 3) For a sub-strip containing multiple lost sub-blocks, sub-strip reuse is preferred to repair the lost sub-blocks using the corresponding sub-strips; for sub-blocks that cannot be repaired by sub-strip reuse, a sub-strip with a lower repair bandwidth is selected for repair.

[0143] 4) This embodiment proposes three data placement units with different granularities:

[0144] a) Basic data placement unit: Prioritize high-overhead nodes of sub-strips, and ensure that the unit granularity is consistent with the check code;

[0145] b) Balanced data placement unit: A basic data placement unit containing the number of parity blocks, ensuring that each data block appears exactly once;

[0146] c) Optimal data placement unit: contains several balanced data placement units, so that no additional auxiliary repair data needs to be read from the data block during repair.

[0147] 5) Treat the distribution of basic data placement units as logical space, treat the continuously laid-out sub-blocks as physical space, and establish a mapping table between physical space and logical space so that the mapping between logical and physical space does not affect the performance of general reads.

[0148] The following describes the degradation read device based on the erasure coding storage system provided by the present invention. The degradation read device based on the erasure coding storage system described below and the degradation read method based on the erasure coding storage system described above can be referred to in correspondence.

[0149] This invention discloses a degradation read device based on an erasure coding storage system. The erasure coding storage system includes multiple stripes, each stripe including multiple data blocks and a check block, each data block including multiple data sub-blocks, and each check block including multiple check sub-blocks. Each stripe further includes at least one sub-strip, which includes multiple data sub-blocks and check blocks located in different data blocks. If any data sub-block in a sub-strip is a lost data sub-block, the other data sub-blocks in the sub-strip are used as auxiliary repair data sub-blocks for the lost data sub-block.

[0150] See Figure 7 The device includes:

[0151] The read data request receiving module 701 is used to receive a read data request and check whether the target data corresponding to the read data request includes a lost data sub-block.

[0152] The target sub-strip determination module 702 is used to determine the healthy data sub-block required for degraded reading and the target sub-strip corresponding to the lost data sub-block when it is determined that the target data corresponding to the data request includes a lost data sub-block; the target sub-strip includes an auxiliary repair data sub-block and a verification sub-block corresponding to the lost data sub-block;

[0153] The storage location determination module 703 is used to determine the storage location corresponding to the health data sub-block, the storage location corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip, respectively.

[0154] The lost data repair module 704 is used to read the healthy data sub-block, the auxiliary repair data sub-block, and the verification sub-block based on the storage location, repair the lost data sub-block according to the auxiliary repair data sub-block and the verification sub-block, and obtain the target data based on the healthy data sub-block and the successfully repaired lost data sub-block if the lost data sub-block is successfully repaired.

[0155] Optionally, the read data request receiving module 701 is specifically used for: receiving a read data request, the read data request containing the physical address of the target data; searching for the status of each data sub-block corresponding to the target data in the preset metadata according to the physical address, and determining whether the target data includes a lost data sub-block according to the status of each data sub-block corresponding to the target data; wherein, the metadata includes the status of each data sub-block of the storage system, the status being either a healthy status or a lost status.

[0156] Optionally, the target sub-strip determination module 702 is specifically used for:

[0157] Analyze the number of missing data sub-blocks included in each sub-strip;

[0158] Determine if a sub-strip exists that contains multiple missing data sub-blocks;

[0159] If there is a sub-strip containing multiple lost data sub-blocks, the sub-strip is taken as the target sub-strip, and for the remaining lost data sub-blocks, the sub-strip containing the remaining lost data sub-blocks and having the smallest repair bandwidth is selected as the target sub-strip.

[0160] If there is no sub-strip containing multiple lost data sub-blocks, for each lost data sub-block, select the sub-strip containing the lost data sub-block and having the smallest repair bandwidth as the target sub-strip.

[0161] Optionally, the storage system includes a mapping table of logical addresses and physical addresses; the target sub-strip determination module 702 is specifically used for: when it is determined that the target data corresponding to the data request includes a lost data sub-block, converting the physical address of the target data into a logical address based on the mapping table; and determining the healthy data sub-block required for the downgrade read and the target sub-strip corresponding to the lost data sub-block based on the logical address.

[0162] Optionally, the storage location determination module 703 is specifically used to: determine the logical address corresponding to the health data sub-block, the logical addresses corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip, respectively; and determine the physical addresses corresponding to the health data sub-block, the auxiliary repair data sub-block and the verification sub-block based on the mapping table.

[0163] Optionally, the apparatus further includes a mapping table generation module, used for:

[0164] A collection of multiple data sub-blocks or check sub-blocks is used as a basic data placement unit in a stripe;

[0165] The basic data placement units located in multiple different stripes are combined into a balanced data placement unit, such that each data block appears once in multiple stripes;

[0166] Multiple balanced data placement units are combined into an optimal data placement unit, so that no additional auxiliary repair data needs to be read from the data block during repair;

[0167] Based on the balanced data placement unit and the optimal data placement unit, the logical addresses corresponding to all data sub-blocks and check sub-blocks of the storage system are obtained, and based on the logical addresses and physical addresses corresponding to all data sub-blocks and check sub-blocks, the mapping table is obtained.

[0168] The degradation read device based on erasure coding storage system provided in this invention introduces sub-stripes with auxiliary repair capabilities. In the event of lost data sub-blocks, the lost data sub-blocks can be repaired independently through the auxiliary repair data sub-blocks and verification sub-blocks in the sub-strips. Finally, the target data is obtained based on the healthy data sub-blocks and the successfully repaired lost data sub-blocks, thus eliminating the need for data repair operations based on the entire data block, optimizing repair overhead, and improving the repair performance of degradation reads.

[0169] Figure 8 An example is a schematic diagram of the physical structure of an electronic device, such as... Figure 8As shown, the electronic device may include: a processor 810, a communications interface 820, a memory 830, and a communications bus 840, wherein the processor 810, the communications interface 820, and the memory 830 communicate with each other through the communications bus 840. The processor 810 can invoke logic instructions in the memory 830 to execute a degraded read method based on an erasure coding storage system. This method includes: receiving a read data request; checking whether the target data corresponding to the read data request includes a lost data sub-block; if the target data corresponding to the data request includes a lost data sub-block, determining a healthy data sub-block required for the degraded read and a target sub-strip corresponding to the lost data sub-block; the target sub-strip includes an auxiliary repair data sub-block and a verification sub-block corresponding to the lost data sub-block; determining the storage location corresponding to the healthy data sub-block and the storage locations corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip; reading the healthy data sub-block, the auxiliary repair data sub-block, and the verification sub-block based on the storage locations; performing data repair on the lost data sub-block based on the auxiliary repair data sub-block and the verification sub-block; and, if the lost data sub-block is successfully repaired, obtaining the target data based on the healthy data sub-block and the successfully repaired lost data sub-block.

[0170] Furthermore, the logical instructions in the aforementioned memory 830 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0171] On the other hand, the present invention also provides a computer program product, which includes a computer program that can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer can execute the degradation read method based on the erasure coding storage system provided by the above methods. The method includes: receiving a read data request; checking whether the target data corresponding to the read data request includes a lost data sub-block; if it is determined that the target data corresponding to the data request includes a lost data sub-block, determining a healthy data sub-block required for degradation read and a target sub-strip corresponding to the lost data sub-block; the target sub-strip includes an auxiliary repair data sub-block and a verification sub-block corresponding to the lost data sub-block; determining the storage location corresponding to the healthy data sub-block and the storage locations corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip, respectively; reading the healthy data sub-block, the auxiliary repair data sub-block, and the verification sub-block based on the storage locations; performing data repair on the lost data sub-block according to the auxiliary repair data sub-block and the verification sub-block; and obtaining the target data based on the healthy data sub-block and the successfully repaired lost data sub-block if the lost data sub-block is successfully repaired.

[0172] In another aspect, the present invention also provides a non-transitory computer-readable storage medium storing a computer program thereon. When executed by a processor, the computer program implements a degraded read method based on an erasure coding storage system provided by the above methods. The method includes: receiving a read data request; checking whether the target data corresponding to the read data request includes a lost data sub-block; if it is determined that the target data corresponding to the data request includes a lost data sub-block, determining a healthy data sub-block required for degraded read and a target sub-strip corresponding to the lost data sub-block; the target sub-strip includes an auxiliary repair data sub-block and a verification sub-block corresponding to the lost data sub-block; determining the storage location corresponding to the healthy data sub-block and the storage locations corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip, respectively; reading the healthy data sub-block, the auxiliary repair data sub-block, and the verification sub-block based on the storage locations; performing data repair on the lost data sub-block according to the auxiliary repair data sub-block and the verification sub-block; and, if the lost data sub-block is successfully repaired, obtaining the target data based on the healthy data sub-block and the successfully repaired lost data sub-block.

[0173] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.

[0174] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.

[0175] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A degraded read method based on an erasure coding storage system, characterized in that, The erasure coding-based storage system includes multiple stripes, each stripe including multiple data blocks and parity blocks, each data block including multiple data sub-blocks, and each parity block including multiple parity sub-blocks; wherein, each stripe also includes at least one sub-strip, the sub-strip including multiple data sub-blocks and parity blocks located in different data blocks; if any data sub-block in the sub-strip is a lost data sub-block, the other data sub-blocks in the sub-strip are used as auxiliary repair data sub-blocks for the lost data sub-block; The method includes: Receive a read data request and check whether the target data corresponding to the read data request includes a lost data sub-block; If it is determined that the target data corresponding to the data request includes a lost data sub-block, then the healthy data sub-block required for the downgrade read and the target sub-strip corresponding to the lost data sub-block are determined; the target sub-strip includes the auxiliary repair data sub-block and the verification sub-block corresponding to the lost data sub-block; Determine the storage locations corresponding to the health data sub-blocks, the auxiliary repair data sub-blocks and the verification sub-blocks in the target sub-strips, respectively. Based on the storage location, the health data sub-block, the auxiliary repair data sub-block, and the verification sub-block are read. The data of the lost data sub-block is repaired according to the auxiliary repair data sub-block and the verification sub-block. If the lost data sub-block is successfully repaired, the target data is obtained based on the health data sub-block and the successfully repaired lost data sub-block. Determining the target sub-strip corresponding to the lost data sub-block specifically includes: Analyze the number of missing data sub-blocks included in each sub-strip; Determine if a sub-strip exists that contains multiple missing data sub-blocks; If there is a sub-strip containing multiple lost data sub-blocks, the sub-strip is taken as the target sub-strip, and for the remaining lost data sub-blocks, the sub-strip containing the remaining lost data sub-blocks and having the smallest repair bandwidth is selected as the target sub-strip. If there is no sub-strip containing multiple lost data sub-blocks, for each lost data sub-block, select the sub-strip containing the lost data sub-block and having the smallest repair bandwidth as the target sub-strip; Further optimize repair overhead through two data reuse mechanisms: Sub-strip reuse: Auxiliary repair data sub-blocks of the same sub-strip are reused when repairing different lost data sub-blocks; Request data reuse: The auxiliary repair data sub-blocks required to repair lost data are the healthy data sub-blocks required for degraded reads.

2. The degradation read method based on an erasure coding storage system according to claim 1, characterized in that, Receive a read data request and check whether the target data corresponding to the read data request includes a lost data sub-block, specifically including: Receive a read data request, wherein the read data request contains the physical address of the target data; The status of each data sub-block corresponding to the target data is searched in the preset metadata according to the physical address, and it is determined whether the target data includes lost data sub-blocks according to the status of each data sub-block corresponding to the target data; wherein, the metadata includes the status of each data sub-block of the storage system, and the status is either healthy or lost.

3. The degradation read method based on an erasure coding storage system according to claim 1, characterized in that, The storage system includes a mapping table between logical addresses and physical addresses; If it is determined that the target data corresponding to the data request includes a lost data sub-block, the healthy data sub-block required for the degraded read and the target sub-strip corresponding to the lost data block are determined, specifically including: If it is determined that the target data corresponding to the data request includes a lost data sub-block, the physical address of the target data is converted into a logical address based on the mapping table; Based on the logical address, determine the healthy data sub-blocks required for the downgrade read and the target sub-strips corresponding to the lost data sub-blocks.

4. The degradation read method based on an erasure coding storage system according to claim 1, characterized in that, The storage system includes a mapping table between logical addresses and physical addresses; Determining the storage locations corresponding to the health data sub-blocks, the auxiliary repair data sub-blocks, and the verification sub-blocks in the target sub-strips, specifically includes: Determine the logical addresses corresponding to the health data sub-blocks, the auxiliary repair data sub-blocks and the verification sub-blocks in the target sub-strips, respectively; Based on the mapping table, the physical addresses corresponding to the health data sub-block, the auxiliary repair data sub-block, and the verification sub-block are determined respectively.

5. The degradation read method based on an erasure coding storage system according to claim 3, characterized in that, The mapping table is generated using the following method: A collection of multiple data sub-blocks or check sub-blocks is used as a basic data placement unit in a stripe; The basic data placement units located in multiple different stripes are combined into a balanced data placement unit, such that each data block appears once in multiple stripes; Multiple balanced data placement units are combined into an optimal data placement unit, so that no additional auxiliary repair data needs to be read from the data block during repair; Based on the balanced data placement unit and the optimal data placement unit, the logical addresses corresponding to all data sub-blocks and check sub-blocks of the storage system are obtained, and based on the logical addresses and physical addresses corresponding to all data sub-blocks and check sub-blocks, the mapping table is obtained.

6. A degradation read device based on an erasure coding storage system, characterized in that, The erasure coding-based storage system includes multiple stripes, each stripe including multiple data blocks and parity blocks, each data block including multiple data sub-blocks, and each parity block including multiple parity sub-blocks; wherein, each stripe also includes at least one sub-strip, the sub-strip including multiple data sub-blocks and parity blocks located in different data blocks; if any data sub-block in the sub-strip is a lost data sub-block, the other data sub-blocks in the sub-strip are used as auxiliary repair data sub-blocks for the lost data sub-block; The device includes: A read data request receiving module is used to receive read data requests and check whether the target data corresponding to the read data request includes a lost data sub-block. The target sub-strip determination module is used to determine the healthy data sub-block required for degraded reading and the target sub-strip corresponding to the lost data sub-block when it is determined that the target data corresponding to the data request includes a lost data sub-block; the target sub-strip includes an auxiliary repair data sub-block and a verification sub-block corresponding to the lost data sub-block; The storage location determination module is used to determine the storage location corresponding to the health data sub-block, the storage location corresponding to the auxiliary repair data sub-block and the verification sub-block in the target sub-strip, respectively. The lost data repair module is used to read the healthy data sub-block, the auxiliary repair data sub-block and the verification sub-block based on the storage location, repair the data of the lost data sub-block according to the auxiliary repair data sub-block and the verification sub-block, and obtain the target data based on the healthy data sub-block and the successfully repaired lost data sub-block if the lost data sub-block is successfully repaired. Determining the target sub-strip corresponding to the lost data sub-block specifically includes: Analyze the number of missing data sub-blocks included in each sub-strip; Determine if a sub-strip exists that contains multiple missing data sub-blocks; If there is a sub-strip containing multiple lost data sub-blocks, the sub-strip is taken as the target sub-strip, and for the remaining lost data sub-blocks, the sub-strip containing the remaining lost data sub-blocks and having the smallest repair bandwidth is selected as the target sub-strip. If there is no sub-strip containing multiple lost data sub-blocks, for each lost data sub-block, select the sub-strip containing the lost data sub-block and having the smallest repair bandwidth as the target sub-strip; Further optimize repair overhead through two data reuse mechanisms: Sub-strip reuse: Auxiliary repair data sub-blocks of the same sub-strip are reused when repairing different lost data sub-blocks; Request data reuse: The auxiliary repair data sub-blocks required to repair lost data are the healthy data sub-blocks required for degraded reads.

7. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the degradation read method based on the erasure coding storage system as described in any one of claims 1 to 5.

8. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the degradation read method based on the erasure coding storage system as described in any one of claims 1 to 5.

9. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the degradation read method based on the erasure coding storage system as described in any one of claims 1 to 5.

Citation Information

Patent Citations

  • Distributed erasure code storage system data restoration method based on simulated annealing

    CN110212923A

  • Method and system for improving reliability of distributed solid-state disk key value caching system

    CN110442535A

  • Erasure code encoding and decoding method and device, electronic equipment and storage medium

    CN118467234A