Degradation reading method and device based on erasure code storage system

By introducing sub-bands with auxiliary repair capabilities in the erasure code storage system, the lost data sub-blocks are independently repaired, which solves the problem of repairing the entire data block when downgrading the read operation in the prior art, and optimizes the repair overhead and performance.

CN119415025AActive Publication Date: 2025-02-11TSINGHUA UNIVERSITY

Patent Information

Application Number
CN202411404036.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-09
Publication Date
2025-02-11
Estimated Expiration
2044-10-09

AI Technical Summary

Technical Problem

When performing downgrade reading operations, the existing MSR code repair technology needs to repair the entire data block, resulting in a significant increase in the amount of data read, affecting the performance of downgrade reading.

Method used

By introducing sub-bands with auxiliary repair capabilities in the erasure code storage system, when data blocks are lost, the auxiliary repair data sub-blocks and verification sub-blocks in the sub-band are independently repaired, avoiding the entire system Repair of data blocks.

Benefits of technology

Optimize the repair overhead, improve the repair performance of downgraded reading, reduce the amount of data read, and improve the performance of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119415025A_ABST
    Figure CN119415025A_ABST
Patent Text Reader

Abstract

The invention provides a degradation reading method and device based on an erasure code storage system, and the method comprises the steps: receiving a data reading request, and checking whether target data corresponding to the data reading request comprises a lost data sub-block or not; under the condition of determining that target data corresponding to the data request comprises a lost data sub-block, determining a healthy data sub-block required by degradation reading and a target sub-strip corresponding to the lost data sub-block; the target sub-strip comprises an auxiliary repair data sub-block and a verification sub-block corresponding to the lost data sub-block; determining storage positions respectively corresponding to the health data sub-block, the auxiliary repair data sub-block and the verification sub-block; and reading the healthy data sub-block, the auxiliary repair data sub-block and the verification sub-block based on the storage position, performing data repair of the lost data sub-block according to the auxiliary repair data sub-block and the verification sub-block, and obtaining target data based on the healthy data sub-block and the successfully repaired lost data sub-block under the condition 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 invention relates to the technical field of data storage, and in particular to a degraded reading method and device based on an erasure code storage system. Background Art

[0002] Erasure coding is an important method used to improve data reliability in distributed storage systems. It generates additional check blocks so that the original data can be restored even if some data blocks are lost. The core idea of ​​erasure coding is to split the data into multiple blocks and calculate a certain number of check blocks. These check blocks and data blocks together form a stripe. When data loss occurs, as long as there are enough blocks (including data blocks and check blocks), the lost data can be reconstructed.

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

[0004] Existing MSR code repair technologies usually use the entire data block as the basic operation unit, but the size of the data requested in actual use is not that large. When a part of the data block is unavailable due to a storage node failure or other reasons and a degraded read operation needs to be performed, the entire data block needs to be repaired, which leads to a significant increase in the amount of data to be read, thus affecting the performance of the degraded read. Summary of the invention

[0005] The present invention provides a downgraded reading method and device based on an erasure code storage system, which is used to solve the defect in the prior art that the entire data block needs to be repaired when performing a downgraded reading operation, thereby causing a significant increase in the amount of data read, thereby affecting the performance of the downgraded reading.

[0006] The present invention provides a degraded reading method based on an erasure code storage system, wherein the erasure code storage system comprises a plurality of stripes, each stripe comprises a plurality of data blocks and check blocks, each data block comprises a plurality of data sub-blocks, and each check block comprises a plurality of check sub-blocks; wherein each of the stripes further comprises at least one sub-stripe, and the sub-stripe comprises a plurality of data sub-blocks and check sub-blocks respectively located in different data blocks; when any data sub-block in the sub-stripe is a lost data sub-block, other data sub-blocks in the sub-stripe are used as auxiliary repair data sub-blocks of the lost data sub-block; The method comprises: receiving a read data request, and checking whether target data corresponding to the read data request includes a lost data sub-block; In the case where 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 reading 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 check sub-block corresponding to the lost data sub-block; Respectively determine the storage location corresponding to the healthy data sub-block, and the storage locations corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; The healthy data sub-block, the auxiliary repair data sub-block and the check sub-block are read based on the storage location, data repair of the lost data sub-block is performed according to the auxiliary repair data sub-block and the check sub-block, and when the lost data sub-block is successfully repaired, the target data is obtained based on the healthy data sub-block and the successfully repaired lost data sub-block.

[0007] According to the degraded reading method based on the erasure code storage system provided by the present invention, receiving a read data request and checking whether the target data corresponding to the read data request includes a lost data sub-block specifically includes: receiving a read data request, wherein the read data request includes a physical address of target data; According to the physical address, the status of each data sub-block corresponding to the target data is searched in the preset metadata, and according to the status of each data sub-block corresponding to the target data, it is determined whether the target data includes a lost data sub-block; wherein the metadata includes the status of each data sub-block of the storage system, and the status is a healthy status or a lost status.

[0008] According to the degraded reading method based on the erasure code storage system provided by the present invention, determining the target sub-stripe corresponding to the lost data sub-block specifically 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, the sub-strip is used as the target sub-strip, and for the remaining lost data sub-blocks, a 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, a sub-strip containing the lost data sub-block and having the smallest repair bandwidth is selected as the target sub-strip.

[0009] According to the degraded read method based on the erasure code 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 healthy data sub-block required for the degraded read and the target sub-stripe corresponding to the lost data sub-block are determined, specifically including: when it is determined that the target data corresponding to the data request includes a lost data sub-block, based on the mapping table, converting the physical address of the target data into a logical address; based on the logical address, determining the healthy data sub-block required for the degraded read and the target sub-stripe corresponding to the lost data sub-block.

[0010] According to the degraded read method based on the erasure code storage system provided by the present invention, the storage system includes a mapping table of logical addresses and physical addresses; the storage positions corresponding to the healthy data sub-blocks and the storage positions corresponding to the auxiliary repair data sub-blocks and the check sub-blocks in the target sub-stripe are determined respectively, specifically including: determining the logical addresses corresponding to the healthy data sub-blocks and the logical addresses corresponding to the auxiliary repair data sub-blocks and the check sub-blocks in the target sub-stripe respectively; based on the mapping table, determining the physical addresses corresponding to the healthy data sub-blocks, the auxiliary repair data sub-blocks and the check sub-blocks.

[0011] According to the degraded reading method based on the erasure code 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 check sub-blocks as a basic data placement unit in a stripe; forming the basic data placement units located in multiple different stripes into a balanced data placement unit, so that each data block appears once in multiple stripes; forming 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 repair; sorting based on the balanced data placement unit and the optimal data placement unit to obtain the logical addresses corresponding to all the data sub-blocks and check sub-blocks of the storage system, and obtaining the mapping table based on the logical addresses and physical addresses corresponding to all the data sub-blocks and check sub-blocks.

[0012] The present invention also provides a degraded reading device based on an erasure code storage system, wherein the erasure code storage system comprises a plurality of stripes, each stripe comprises a plurality of data blocks and check blocks, each data block comprises a plurality of data sub-blocks, and each check block comprises a plurality of check sub-blocks; wherein each of the stripes further comprises at least one sub-stripe, and the sub-stripe comprises a plurality of data sub-blocks and check sub-blocks respectively located in different data blocks; when any data sub-block in the sub-stripe is a lost data sub-block, other data sub-blocks in the sub-stripe are used as auxiliary repair data sub-blocks of the lost data sub-block; The device comprises: A read data request receiving module, used for receiving a read data request and checking whether the target data corresponding to the read data request includes a lost data sub-block; a target sub-stripe determination module, configured to determine, when it is determined that the target data corresponding to the data request includes a lost data sub-block, a healthy data sub-block required for degraded reading and a target sub-stripe corresponding to the lost data sub-block; the target sub-stripe includes an auxiliary repair data sub-block and a check sub-block corresponding to the lost data sub-block; A storage location determination module, used to respectively determine the storage location corresponding to the healthy data sub-block, and the storage locations corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; A lost data repair module is used to read the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage location, perform data repair on the lost data sub-block according to the auxiliary repair data sub-block and the check sub-block, and obtain the target data based on the healthy data sub-block and the successfully repaired lost data sub-block when the lost data sub-block is successfully repaired.

[0013] The present invention also provides an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, a degraded reading method based on an erasure code storage system as described above is implemented.

[0014] 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 any of the above-described degraded reading methods based on an erasure code storage system.

[0015] The present invention also provides a computer program product, comprising a computer program, wherein when the computer program is executed by a processor, the degraded reading method based on the erasure code storage system as described above is implemented.

[0016] The degraded read method and device based on the erasure code storage system provided by the present invention, by introducing a sub-strip with auxiliary repair capability, in the event of a lost data sub-block, the lost data sub-block can be independently repaired through the auxiliary repair data sub-block and the check sub-block in the sub-strip, and finally the target data is obtained based on the healthy data sub-block and the successfully repaired lost data sub-block, thereby eliminating the need to perform data repair operations based on the entire data block, optimizing the repair overhead, and improving the repair performance of the degraded read. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] In order to more clearly illustrate the technical solutions in the present invention or the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0018] Figure 1 It is a schematic diagram of an erasure code based storage system provided by an embodiment of the present invention.

[0019] Figure 2 This is one of the flow charts of the degraded reading method based on the erasure code storage system provided by an embodiment of the present invention.

[0020] Figure 3 This is the second flow chart of the degraded reading method based on the erasure code storage system provided by an embodiment of the present invention.

[0021] Figure 4 is a schematic diagram of a sub-strip provided by an embodiment of the present invention.

[0022] Figure 5 It is a schematic diagram of the processing flow of a read request provided by an embodiment of the present invention.

[0023] Figure 6 It is a schematic diagram of the processing flow of degraded reading provided by an embodiment of the present invention.

[0024] Figure 7 It is a structural schematic diagram of a degraded reading device based on an erasure code storage system provided by an embodiment of the present invention.

[0025] Figure 8 It is a schematic diagram of the structure of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0026] In order to make the purpose, technical solution and advantages of the present invention clearer, the technical solution of the present invention will be clearly and completely described below in conjunction with the drawings of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0027] First, the terms used in the embodiments of the present invention are schematically explained.

[0028] Degraded Read: Degraded Read is a data reading operation in a distributed storage system. It occurs when some data blocks are unavailable due to storage node failure or other reasons, but the system still needs to provide data access services. In this case, the system will use the characteristics of Erasure Coding to reconstruct the lost data blocks through the remaining healthy data blocks and check blocks to meet the read request.

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

[0030] Sub-Stripe: A subset of a stripe, which contains a portion of the data blocks and check blocks in the stripe.

[0031] Data Block: A data block is the basic unit after data segmentation. It is the logical unit for data storage and processing in a stripe. In erasure coding technology, a data block consists of multiple data sub-blocks and may include a check sub-block.

[0032] Data Chunk: It is the smallest unit of data segmentation and the basic element that constitutes a data block.

[0033] Combine the following Figure 1-Figure 6 A degraded reading method based on an erasure code storage system according to an embodiment of the present invention is described.

[0034] The storage system based on erasure coding described in the embodiment of the present invention is as follows Figure 1 shown. Figure 1 A schematic diagram of one of the strips is shown.

[0035] The stripe includes 4 data blocks D1-D4 and 2 check blocks P1-P2. Each data block contains 8 data sub-blocks, totaling 32 data sub-blocks. Each check block contains 8 check sub-blocks, totaling 16 data sub-blocks.

[0036] Taking the data block as the minimum repair unit in the prior art solution as an example, if data block D3 is damaged, and then the 8 data sub-blocks of data block D3 are lost (such as the 8 sub-blocks of data block D3), then it is necessary to repair based on other data blocks D1, D2 and D4 and check blocks P1~P2. This will undoubtedly lead to a significant increase in the amount of data to be read, thereby affecting the performance of degraded read.

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

[0038] like Figure 1 The yellow-marked data sub-blocks in the data block D3 form a sub-stripe. A sub-stripe includes multiple data sub-blocks and check sub-blocks respectively located in different data blocks; when 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. It can be seen that the sub-stripe has an independent repair capability. For example, after the two yellow-marked data sub-blocks of data block D3 are lost, the remaining yellow-marked data sub-blocks in this sub-stripe can be used to repair the two lost data sub-blocks.

[0039] Specifically, each data sub-block in a sub-strip may belong to one sub-strip or to multiple different sub-strips. Figure 1 In FIG. 5 , the sixth data sub-block of the data block D1 belongs to the first and fifth sub-strips respectively.

[0040] Combine the following Figure 2 , the process of the degraded reading method based on the erasure code storage system provided by the embodiment of the present invention is schematically described. Figure 2 As shown, the method comprises the following steps: 201. Receive a data read request, and check whether target data corresponding to the data read request includes a lost data sub-block.

[0041] In this embodiment, the execution subject may be a storage system based on erasure coding. The storage system is a distributed storage system, which stores data in multiple physical locations or multiple storage nodes in a dispersed manner.

[0042] Specifically, the storage system receives a read data request from a user or application through a storage service interface. This read data request usually 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 data set) to which the requested data belongs.

[0043] For the storage system, it can determine whether the target data corresponding to the read data request includes the lost data sub-block by querying the storage metadata. Among them, these metadata record the physical location of the data, the status of the data sub-block (healthy or lost), and the erasure code parameters related to the data.

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

[0045] Assume that a user requests to read a file named "example.dat", which is divided into multiple data blocks and distributed on different storage nodes. The storage system receives the read data request for "example.dat"; parses the read data request and determines the data block identifier corresponding to the file "example.dat"; queries the 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 lost; due to the existence of lost data sub-blocks, the system marks the request as requiring further degraded read processing.

[0046] 202. When it is determined that the target data corresponding to the data request includes a lost data sub-block, determine a healthy data sub-block required for degraded reading and a target sub-stripe corresponding to the lost data sub-block; the target sub-stripe includes an auxiliary repair data sub-block and a check sub-block corresponding to the lost data sub-block.

[0047] It needs to be explained that the healthy data sub-blocks required for the degraded read mentioned here refer to a part of the target data of the read request; and the target sub-strip corresponding to the lost data sub-block includes the auxiliary repair data sub-blocks and the check sub-blocks corresponding to the lost data sub-blocks. Although these auxiliary repair data sub-blocks also belong to healthy data sub-blocks, they are used to reconstruct the lost data sub-blocks together with the check sub-blocks.

[0048] Among them, the healthy data sub-blocks in the target sub-strip may also be the healthy data sub-blocks required for degraded reading. In this usage scenario, the requested target data can be reused.

[0049] Furthermore, each auxiliary repair data sub-block may belong to a different sub-strip, and accordingly, the auxiliary repair data sub-blocks of the same sub-strip may be reused when repairing different lost data sub-blocks.

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

[0051] For example, a user requests to read a specific portion of a file named "example.dat" that is distributed over an erasure coded storage system, and some sub-blocks of the data are known to be lost.

[0052] The system receives a request to read data for a specific portion of "example.dat" and determines the logical address of the data subblock involved in the request. The system checks the status of these data subblocks and finds that data subblocks D3-S1 and D5-S2 are missing. The system identifies substripes S1 and S2, which contain the missing data subblocks D3-S1 and D5-S2, respectively. The system selects healthy data subblocks in substripes S1 and S2 as auxiliary repair data subblocks. The system records the locations of all necessary auxiliary repair data subblocks and check subblocks, as well as the locations of all healthy data subblocks.

[0053] Through step 202, healthy data sub-blocks and target sub-strips required for degraded reading can be determined in the storage system, and effective data repair is prepared to ensure that users can access required complete data even when the data is incomplete.

[0054] 203. Determine the storage location corresponding to the healthy data sub-block, and the storage locations corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip, respectively.

[0055] Specifically, the system determines the lost data sub-blocks and identifies the sub-strips to which these lost sub-blocks belong. The system then uses a mapping table in the storage system to convert the logical addresses of the healthy data sub-blocks and check sub-blocks in the sub-strip into physical addresses. The system records the physical storage locations of all healthy data sub-blocks and check sub-blocks in the sub-strip, which 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 check sub-blocks in the sub-strip.

[0056] In step 203, by accurately determining the storage location of the data sub-block, the data positioning time is reduced, thereby speeding up the data repair process. In addition, by obtaining the storage locations corresponding to the auxiliary repair data sub-blocks and the check sub-blocks in the target sub-strip, the auxiliary repair data sub-blocks and the check sub-blocks in the target sub-strip are used to repair the lost data blocks, thereby improving the utilization of storage resources and reducing the waste of storage space.

[0057] Assume 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 check blocks, distributed on 12 different storage nodes. Each stripe is further subdivided into 3 sub-stripes, each of which contains 4 data sub-blocks and corresponding check sub-blocks.

[0058] A user requests to download a large file whose data is stored in the above system. During the request, the system detects that some data sub-blocks in the third sub-stripe are lost. The system uses a mapping table to convert the logical addresses of the healthy data sub-blocks and check sub-blocks in the third sub-stripe into physical addresses. The system records the physical storage locations of all healthy data sub-blocks and check sub-blocks in the third sub-stripe, and generates and sends a read request to the node storing the healthy data sub-blocks and check sub-blocks to request the transmission of these healthy data sub-blocks and check sub-blocks for repairing the lost data sub-blocks.

[0059] 204. Read the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage location, perform data repair on the lost data sub-block according to the auxiliary repair data sub-block and the check sub-block, and when the lost data sub-block is successfully repaired, obtain the target data based on the healthy data sub-block and the successfully repaired lost data sub-block.

[0060] For erasure code storage systems, data repair of lost data sub-blocks is a complex process involving encoding and decoding algorithms. For example, the system determines which healthy data sub-blocks and check sub-blocks will participate in the repair process. In MSR (minimum storage regeneration) codes, this usually involves selecting the minimum number of data sub-blocks to maximize storage efficiency.

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

[0062] Once a data sub-block is repaired, the system uses the check sub-block to verify whether the newly generated data sub-block is correct. If 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.

[0063] The method of the embodiment of the present invention introduces a sub-strip with auxiliary repair capability. In the event of a lost data sub-block, the lost data sub-block can be independently repaired through the auxiliary repair data sub-block and the check sub-block in the sub-strip, and finally the target data is obtained based on the healthy data sub-block and the successfully repaired lost data sub-block, thereby eliminating the need to perform data repair operations based on the entire data block, optimizing the repair overhead, and improving the repair performance of degraded reads.

[0064] Specifically, step 201 includes: receiving a read data request, wherein the read data request includes a physical address of target data; searching for the status of each data sub-block corresponding to the target data in 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, and the status is a healthy status or a lost status.

[0065] Through step 201, the system can quickly respond to the data read request and quickly determine the integrity of the data. In addition, by timely identifying the lost data sub-blocks, the system can start the data repair process as early as possible to reduce the time of data unavailability.

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

[0067] In this embodiment, the conversion of physical addresses into logical addresses is implemented based on a mapping table. In a storage system based on erasure codes, the address mapping table is a key data structure that records the correspondence between the logical identifiers of data and their locations in physical storage.

[0068] 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, and a mapping table is established between the physical space and the logical space, so that the mapping of logical and physical space does not affect the general read performance.

[0069] Among them, see Figure 3 , the mapping table between logical addresses and physical addresses in the storage system is generated by the following method: 301. Use a set of multiple data sub-blocks or check sub-blocks as a basic data placement unit in a stripe.

[0070] The system combines multiple data sub-blocks and check sub-blocks in a stripe into a basic data placement unit (Basic Data Placement Unit). This unit is the basic building block of the stripe, which facilitates subsequent management and operation. For example, if a stripe contains 6 data sub-blocks (D1-D6) and 2 check blocks (P1 and P2), the system regards these 8 sub-blocks as a basic data placement unit.

[0071] 302. The basic data placement units located in a plurality of different stripes are combined into a balanced data placement unit, so that each data block appears once in the plurality of stripes.

[0072] The system combines multiple basic data placement units into a balanced data placement unit to ensure that each data block appears once in multiple stripes.

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

[0074] 303. 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.

[0075] The system combines multiple balanced data placement units into an optimal data placement unit (Optimal Data Placement Unit), so that there is no need to read additional auxiliary repair data from the data block during data repair.

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

[0077] 304. Sorting is performed based on the balanced data placement unit and the optimal data placement unit to obtain 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, the mapping table is obtained.

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

[0079] Then, the system associates these logical addresses with physical addresses and generates a mapping table to record 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.

[0080] It can be seen from steps 301-304 that the system of this embodiment includes three data placement units of different granularities. Among them, the basic data placement unit gives priority to the high-overhead nodes of the sub-strip, and the unit granularity is consistent with the scalar code; the balanced data placement unit includes the basic data placement unit of the number of check blocks, so that each data block appears exactly once; the optimal data placement unit: includes several balanced data placement units, so that there is no need to read additional auxiliary repair data from the data block during repair.

[0081] By using the placement sequence generation algorithm proposed in this embodiment, all basic data placement units are reordered. When writing data, the data can be written in sequence according to the basic data placement unit sequence.

[0082] In addition, in step 202, the step of determining the target sub-strip corresponding to the healthy data sub-blocks and lost data sub-blocks required for degraded reading based on the logical address specifically includes: the system queries the metadata to obtain the status information of all data sub-blocks corresponding to the logical address, including the health status and the 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-strip containing the lost data sub-blocks. A sub-strip is a part of a stripe, containing data sub-blocks and check 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 check sub-blocks for repair.

[0083] Then, the system records detailed information of all healthy data sub-blocks and check sub-blocks in the target sub-strip that participate in the repair process, including their logical addresses and physical addresses.

[0084] Specifically, step 203 includes: respectively determining the logical addresses corresponding to the healthy data sub-blocks, and the logical addresses corresponding to the auxiliary repair data sub-blocks and the check sub-blocks in the target sub-strip; based on the mapping table, determining the physical addresses corresponding to the healthy data sub-blocks, the auxiliary repair data sub-blocks and the check sub-blocks.

[0085] Then, the system generates a data read request including the physical addresses of all healthy data sub-blocks and check sub-blocks that need to be read, thereby enabling the reading of healthy data sub-blocks, auxiliary repair data sub-blocks and check sub-blocks based on storage locations.

[0086] Among them, determining the target sub-strip corresponding to the lost data sub-block in step 202 specifically includes: analyzing the number of lost data sub-blocks included in each sub-strip; judging 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 the 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-block and having the smallest repair bandwidth as the target sub-strip.

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

[0088] For example, a user requests to download the file "HolidayPhotos.zip", and the system detects that there are lost data sub-blocks in multiple sub-strips that the file spans. When implementing the steps, the system analyzes each sub-strip and finds that 3 data sub-blocks are lost in sub-strip S3, while other sub-strips only lose 1 or 2 data sub-blocks. The system marks sub-strip S3 as the primary target sub-strip and plans to use the healthy data sub-blocks and check sub-blocks in S3 for repair. For the lost data sub-blocks in other sub-strips, the system evaluates and selects sub-strips S1 and S2 with the smallest repair bandwidth as secondary target sub-strips. The system records detailed information on all healthy data sub-blocks and check sub-blocks in S3, S1, and S2 that participate in the repair process. The system generates a data read request to obtain these sub-blocks from the storage node.

[0089] Of course, it should be noted that in an erasure code system, each sub-stripe is designed to have a certain degree of fault tolerance, which means that they can withstand the loss of a certain number of data sub-blocks and still be able to 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.

[0090] If the number of lost data sub-blocks in a sub-stripe exceeds the fault tolerance limit of the erasure coding scheme, then using only the healthy data sub-blocks and check sub-blocks in the sub-stripe may not be able to recover all the lost data. In this case, the system needs to check whether there are healthy data sub-blocks in other sub-stripes of the lost data block. If so, use the healthy data sub-blocks in other sub-stripes as auxiliary repair data to help repair the lost data sub-blocks.

[0091] To further understand the solution of this embodiment, see Figure 1 and Figure 4 ,in Figure 4 A schematic diagram of a sub-strip is shown. The lost data sub-block is D3, the healthy data sub-blocks are D1, D2 and D4, and the check blocks are P1 and P2. The healthy data sub-block is used as an auxiliary repair data sub-block, and the lost data sub-block D3 is repaired by the auxiliary repair data sub-block and the check sub-block.

[0092] Specifically, see Figure 5 , the processing flow of the read request in the embodiment of the present invention includes: 501. Receive a read data request.

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

[0094] 502. Check whether there is any data loss. If so, execute step 504. If not, execute step 503.

[0095] Specifically, it is checked whether the target data corresponding to the data read request includes a lost data sub-block.

[0096] 503. Read the required health data sub-block from the backend storage.

[0097] Specifically, the corresponding health data sub-block is read from the backend storage according to the physical address of the target data.

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

[0099] Specifically, according to the mapping table, the physical address of the target data is converted into a logical address.

[0100] 505. Determine target sub-stripes corresponding to healthy data sub-blocks and lost data sub-blocks required for degraded reading.

[0101] Among them, the target sub-strip loses the auxiliary repair data sub-block and the check sub-block corresponding to the data sub-block.

[0102] For details about the downgrade read process, see the following Figure 6 Detailed steps shown.

[0103] 506. Determine the logical address corresponding to the healthy data sub-block, the logical addresses corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip, and convert the logical addresses into physical addresses.

[0104] Determine respectively the logical address corresponding to the healthy data sub-block, and the logical addresses corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; based on the mapping table, determine respectively the physical addresses corresponding to the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block.

[0105] 507. Read the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage location.

[0106] 508. Perform data repair of the lost data sub-block according to the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block.

[0107] 509. Return target data.

[0108] In addition, the process of degraded reading in the embodiment of the present invention is as follows Figure 6 As shown, including: 601. Determine the status of each data sub-block corresponding to the target data.

[0109] 602. Determine healthy data sub-blocks and lost data sub-blocks.

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

[0111] 604. Determine whether there is a sub-strip containing multiple lost data sub-blocks. If so, execute step 605; if not, execute step 606.

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

[0113] 606. Determine whether there is any unprocessed repair data sub-block. If so, execute step 607; if not, execute step 608.

[0114] 607 . For each lost data sub-block, select a sub-strip that contains the lost data sub-block and has the smallest repair bandwidth as a target sub-strip, and continue to execute step 606 .

[0115] 608. Determine storage locations corresponding to the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block in the target sub-strip.

[0116] 609. Read the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block.

[0117] In summary, the technical effects achieved by the embodiments of the present invention include: 1) Propose a sub-strip with independent repair capabilities: when a node fails, the affected data in the sub-strip can be independently repaired through the healthy data of the sub-strip.

[0118] 2) Further optimize the repair overhead through two data reuse mechanisms: a) Sub-strip multiplexing: The auxiliary repair data sub-blocks of the same sub-strip can be reused when repairing different lost data sub-blocks; b) Request data reuse: The auxiliary repair data sub-block required to repair the lost data is exactly the healthy data sub-block required for degraded reading.

[0119] 3) For a sub-strip containing multiple lost sub-blocks, sub-strip multiplexing is preferred, and the lost sub-blocks are repaired using the corresponding sub-strips; for sub-blocks that cannot be repaired through sub-strip multiplexing, a sub-strip with a lower repair bandwidth is selected for repair.

[0120] 4) This embodiment proposes three data placement units of different granularities: a) Basic data placement unit: Prioritize high-cost nodes of sub-strips, and the unit granularity is consistent with the check code; b) Balanced data placement unit: a basic data placement unit containing the number of check blocks, so that each data block appears exactly once; c) Optimal data placement unit: includes several balanced data placement units, so that no additional auxiliary repair data needs to be read from the data block during repair.

[0121] 5) The distribution of basic data placement units is regarded as logical space, and the continuously laid out sub-blocks are regarded as physical space. A mapping table is established between the physical space and the logical space so that the mapping of the logical and physical space does not affect the general read performance.

[0122] The degraded reading device based on the erasure code storage system provided by the present invention is described below. The degraded reading device based on the erasure code storage system described below and the degraded reading method based on the erasure code storage system described above can correspond to each other.

[0123] The embodiment of the present invention discloses a degraded reading device based on an erasure code storage system, wherein the erasure code storage system comprises a plurality of stripes, each stripe comprises a plurality of data blocks and check blocks, each data block comprises a plurality of data sub-blocks, and each check block comprises a plurality of check sub-blocks; wherein each of the stripes further comprises at least one sub-stripe, and the sub-stripe comprises a plurality of data sub-blocks and check sub-blocks respectively located in different data blocks; when any data sub-block in the sub-stripe is a lost data sub-block, other data sub-blocks in the sub-stripe are used as auxiliary repair data sub-blocks of the lost data sub-block; See also Figure 7 , the device comprises: A 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; The target sub-stripe determination module 702 is used to determine the healthy data sub-blocks required for degraded reading and the target sub-stripe corresponding to the lost data sub-blocks when it is determined that the target data corresponding to the data request includes the lost data sub-blocks; the target sub-stripe includes the auxiliary repair data sub-blocks and the check sub-blocks corresponding to the lost data sub-blocks; A storage location determination module 703 is used to respectively determine the storage location corresponding to the healthy data sub-block, and the storage locations corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; The lost data repair module 704 is used to read the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage location, perform data repair on the lost data sub-block according to the auxiliary repair data sub-block and the check sub-block, and when the lost data sub-block is successfully repaired, obtain the target data based on the healthy data sub-block and the successfully repaired lost data sub-block.

[0124] Optionally, the read data request receiving module 701 is specifically used to: receive a read data request, the read data request including a physical address of target data; search for the status of each data sub-block corresponding to the target data in preset metadata according to the physical address, and determine 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 a healthy status or a lost status.

[0125] Optionally, the target sub-strip determination module 702 is specifically configured to: 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, the sub-strip is used as the target sub-strip, and for the remaining lost data sub-blocks, a 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, a sub-strip containing the lost data sub-block and having the smallest repair bandwidth is selected as the target sub-strip.

[0126] Optionally, the storage system includes a mapping table of logical addresses and physical addresses; the target sub-stripe determination module 702 is specifically used to: when it is determined that the target data corresponding to the data request includes a lost data sub-block, based on the mapping table, convert the physical address of the target data into a logical address; based on the logical address, determine the healthy data sub-block required for degraded reading and the target sub-stripe corresponding to the lost data sub-block.

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

[0128] Optionally, the device further comprises a mapping table generating module, configured to: A set 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 a plurality of different stripes are combined into a balanced data placement unit, so that each data block appears once in the plurality of stripes; Multiple balanced data placement units are combined into an optimal data placement unit, so that no additional auxiliary repair data need to be read from the data block during repair; Based on the sorting of the balanced data placement unit and the optimal data placement unit, the logical addresses corresponding to all the 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 the data sub-blocks and check sub-blocks, the mapping table is obtained.

[0129] The degraded read device based on the erasure code storage system provided by the embodiment of the present invention introduces a sub-strip with auxiliary repair capability. In the event of a lost data sub-block, the lost data sub-block can be independently repaired by the auxiliary repair data sub-block and the check sub-block in the sub-strip, and finally the target data is obtained based on the healthy data sub-block and the successfully repaired lost data sub-block, thereby eliminating the need to perform data repair operations based on the entire data block, optimizing the repair overhead, and improving the repair performance of the degraded read.

[0130] Figure 8 An example of a physical structure diagram of an electronic device is shown in FIG. Figure 8 As shown, the electronic device may include: a processor (processor) 810, a communication interface (Communications Interface) 820, a memory (memory) 830 and a communication bus 840, wherein the processor 810, the communication interface 820, and the memory 830 communicate with each other through the communication bus 840. The processor 810 can call the logic instructions in the memory 830 to execute a degraded read method based on an erasure code storage system, the method comprising: receiving a read data request, and checking whether the target data corresponding to the read data request includes a lost data sub-block; in the case where it is determined that the target data corresponding to the data request includes a lost data sub-block, determining the healthy data sub-block required for the degraded read and the target sub-strip corresponding to the lost data sub-block; the target sub-strip includes an auxiliary repair data sub-block and a check sub-block corresponding to the lost data sub-block; respectively determining the storage position corresponding to the healthy data sub-block and the storage position corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; reading the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage position, performing data repair of the lost data sub-block according to the auxiliary repair data sub-block and the check sub-block, and in the case where the lost data sub-block is repaired successfully, obtaining the target data based on the healthy data sub-block and the successfully repaired lost data sub-block.

[0131] In addition, the logic instructions in the above-mentioned memory 830 can be implemented in the form of a software functional unit and can be stored in a computer-readable storage medium when it is sold or used as an independent product. Based on this understanding, the technical solution of the present invention is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program codes.

[0132] On the other hand, the present invention also provides a computer program product, which includes a computer program, which 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 degraded read method based on the erasure code storage system provided by the above methods, the method including: receiving a read data request, checking whether the target data corresponding to the read data request includes a lost data sub-block; when 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 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 check sub-block corresponding to the lost data sub-block; respectively determining a storage position corresponding to the healthy data sub-block and a storage position corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; reading the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage position, performing data repair 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 when the lost data sub-block is successfully repaired.

[0133] On the other hand, the present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, is implemented to execute the degraded read method based on the erasure code storage system provided by the above-mentioned methods, the method comprising: receiving a read data request, and checking whether the target data corresponding to the read data request includes a lost data sub-block; in the case where 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 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 check sub-block corresponding to the lost data sub-block; respectively determining a storage position corresponding to the healthy data sub-block, and a storage position corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; reading the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage position, performing data repair of the lost data sub-block according to the auxiliary repair data sub-block and the check sub-block, and in the case where the lost data sub-block is repaired successfully, obtaining the target data based on the healthy data sub-block and the successfully repaired lost data sub-block.

[0134] The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without paying creative labor.

[0135] Through the description of the above implementation methods, those skilled in the art can clearly understand that each implementation method can be implemented by means of software plus a necessary general hardware platform, and of course, can also be implemented by hardware. Based on this understanding, the above technical solution is essentially or the part that contributes to the prior art can be embodied in the form of a software product, and the computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, a disk, an optical disk, etc., including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.

[0136] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A degraded reading method and device based on an erasure code storage system, characterized in that: The erasure code-based storage system includes a plurality of stripes, each stripe includes a plurality of data blocks and check blocks, each data block includes a plurality of data sub-blocks, and each check block includes a plurality of check sub-blocks; wherein each of the stripes further includes at least one sub-stripe, and the sub-stripe includes a plurality of data sub-blocks and check sub-blocks respectively located in different data blocks; when any data sub-block in the sub-stripe is a lost data sub-block, other data sub-blocks in the sub-stripe are used as auxiliary repair data sub-blocks of the lost data sub-block; The method comprises: receiving a read data request, and checking whether target data corresponding to the read data request includes a lost data sub-block; In the case where 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 reading 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 check sub-block corresponding to the lost data sub-block; Respectively determine the storage location corresponding to the healthy data sub-block, and the storage locations corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; The healthy data sub-block, the auxiliary repair data sub-block and the check sub-block are read based on the storage location, data repair of the lost data sub-block is performed according to the auxiliary repair data sub-block and the check sub-block, and when the lost data sub-block is successfully repaired, the target data is obtained based on the healthy data sub-block and the successfully repaired lost data sub-block.

2. The degraded reading method based on the erasure code storage system according to claim 1, characterized in that: Receiving a read data request and checking whether target data corresponding to the read data request includes a lost data sub-block, specifically comprising: receiving a read data request, wherein the read data request includes a physical address of target data; According to the physical address, the status of each data sub-block corresponding to the target data is searched in the preset metadata, and according to the status of each data sub-block corresponding to the target data, it is determined whether the target data includes a lost data sub-block; wherein the metadata includes the status of each data sub-block of the storage system, and the status is a healthy status or a lost status.

3. The degraded reading method based on the erasure code storage system according to claim 1, characterized in that: Determining a target sub-strip corresponding to the lost data sub-block specifically 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, the sub-strip is used as the target sub-strip, and for the remaining lost data sub-blocks, a 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, a sub-strip containing the lost data sub-block and having the smallest repair bandwidth is selected as the target sub-strip.

4. The degraded reading method based on the erasure code storage system according to claim 1, characterized in that: The storage system includes a mapping table of logical addresses and physical addresses; In the case where it is determined that the target data corresponding to the data request includes the lost data sub-block, determining the healthy data sub-block required for the degraded read and the target sub-strip corresponding to the lost data sub-block specifically includes: In a case where it is determined that the target data corresponding to the data request includes a lost data sub-block, converting a physical address of the target data into a logical address based on the mapping table; Based on the logical address, a healthy data sub-block required for degraded reading and a target sub-stripe corresponding to the lost data sub-block are determined.

5. The degraded reading method based on the erasure code storage system according to claim 1, characterized in that: 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 check sub-block in the target sub-strip, respectively, specifically includes: Respectively determine the logical address corresponding to the healthy data sub-block, and the logical addresses corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; Based on the mapping table, the physical addresses corresponding to the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block are determined respectively.

6. The degraded reading method based on the erasure code storage system according to claim 4, characterized in that: The mapping table is generated by the following method: A set 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 a plurality of different stripes are combined into a balanced data placement unit, so that each data block appears once in the plurality of stripes; Multiple balanced data placement units are combined into an optimal data placement unit, so that no additional auxiliary repair data need to be read from the data block during repair; Based on the sorting of the balanced data placement unit and the optimal data placement unit, the logical addresses corresponding to all the 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 the data sub-blocks and check sub-blocks, the mapping table is obtained.

7. A degraded reading device based on an erasure code storage system, characterized in that: The erasure code-based storage system includes a plurality of stripes, each stripe includes a plurality of data blocks and check blocks, each data block includes a plurality of data sub-blocks, and each check block includes a plurality of check sub-blocks; wherein each of the stripes further includes at least one sub-stripe, and the sub-stripe includes a plurality of data sub-blocks and check sub-blocks respectively located in different data blocks; when any data sub-block in the sub-stripe is a lost data sub-block, other data sub-blocks in the sub-stripe are used as auxiliary repair data sub-blocks of the lost data sub-block; The device comprises: A read data request receiving module, used for receiving a read data request and checking whether the target data corresponding to the read data request includes a lost data sub-block; a target sub-stripe determination module, configured to determine, when it is determined that the target data corresponding to the data request includes a lost data sub-block, a healthy data sub-block required for degraded reading and a target sub-stripe corresponding to the lost data sub-block; the target sub-stripe includes an auxiliary repair data sub-block and a check sub-block corresponding to the lost data sub-block; A storage location determination module, used to respectively determine the storage location corresponding to the healthy data sub-block, and the storage locations corresponding to the auxiliary repair data sub-block and the check sub-block in the target sub-strip; A lost data repair module is used to read the healthy data sub-block, the auxiliary repair data sub-block and the check sub-block based on the storage location, perform data repair on the lost data sub-block according to the auxiliary repair data sub-block and the check sub-block, and obtain the target data based on the healthy data sub-block and the successfully repaired lost data sub-block when the lost data sub-block is successfully repaired.

8. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the degraded reading method based on the erasure code storage system as described in any one of claims 1 to 6 is implemented.

9. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the degraded reading method based on the erasure code storage system as claimed in any one of claims 1 to 6 is implemented.

10. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the degraded reading method based on the erasure code storage system as claimed in any one of claims 1 to 6 is implemented.

Citation Information

Patent Citations

  • Data synchronization repairing method of distributed storage system and storage medium

    CN110178122A

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

    CN110212923A

  • Method and device for improving reliability of storage system based on local repair coding

    CN110231999A

  • 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

Cited By

  • Degradation reading method, device and equipment based on erasure code, readable storage medium and program product

    CN121300707A

  • Degraded read method and apparatus based on erasure code, device, readable storage medium and program product

    CN121300707B