A data processing method and device, electronic equipment and storage medium

CN115421975BActive Publication Date: 2026-08-07ALIBABA (CHINA) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ALIBABA (CHINA) CO LTD
Filing Date
2022-09-01
Publication Date
2026-08-07

AI Technical Summary

Technical Problem

[0003]但现有的CRS在利用剩余的数据块对数据对应的k个数据块进行还原的过程中,往往存在数据恢复的复杂度高的问题

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115421975B_ABST
    Figure CN115421975B_ABST
Patent Text Reader

Abstract

The application provides a data processing method and device, electronic equipment and storage medium, and relates to the field of data processing. The method comprises the following steps: storing k data blocks and m data blocks corresponding to target data into corresponding storage spaces; the m data blocks are obtained by encoding the k data blocks by using a target Reed-Solomon code; the target Reed-Solomon code comprises a Reed-Solomon code based on a Cauchy matrix; k and m are positive integers; determining a Vandermonde matrix corresponding to a check matrix in the encoding process and a matrix transformation relationship between the check matrix and the Vandermonde matrix; obtaining the k data blocks by using r data blocks in the k+m data blocks, the matrix transformation relationship and the Vandermonde matrix, so as to restore the target data; r is a positive integer greater than or equal to k. The scheme can reduce the workload of obtaining the k data blocks used for restoring the target data, and reduces the complexity of restoring the target data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing, and more particularly to a data processing method, apparatus, electronic device, and storage medium. Background Technology

[0002] As an erasure coding technique capable of data recovery, CRS (Cauthy Reed-Solomon Codes) has been increasingly applied in storage systems to ensure data reliability and security. The technical principle of CRS is as follows: after dividing the data into k data blocks, each k data block is checked and encoded to generate m data blocks. These k+m data blocks are then stored separately. If no more than m data blocks are lost or corrupted, the remaining data blocks can be used to reconstruct the corresponding k data blocks, thus achieving data recovery.

[0003] However, existing CRS systems often suffer from high data recovery complexity when using the remaining data blocks to restore the corresponding k data blocks. Summary of the Invention

[0004] This application provides a data processing method, apparatus, electronic device, and storage medium to reduce the complexity of data recovery.

[0005] In a first aspect, embodiments of this application provide a data processing method, including:

[0006] Store the k data blocks and m data blocks corresponding to the target data into the corresponding storage space; wherein, the m data blocks are obtained by encoding the k data blocks using the target Liso code, the target Liso code includes the Liso code based on the Cauchy matrix, and k and m are positive integers;

[0007] Determine the Vandermonde matrix corresponding to the parity check matrix in the encoding process, and the matrix transformation relationship between the parity check matrix and the Vandermonde matrix;

[0008] Using r data blocks out of k+m data blocks, matrix transformation relationships, and the Vandermonde matrix, k data blocks are obtained to recover the target data; where r is a positive integer ≥ k.

[0009] Secondly, embodiments of this application provide a data processing apparatus, including:

[0010] The data block storage module is used to store k data blocks and m data blocks corresponding to the target data into the corresponding storage space; wherein, the m data blocks are obtained by encoding the k data blocks using the target Liso code, the target Liso code includes the Liso code based on the Cauchy matrix, and k and m are positive integers;

[0011] The parity check matrix processing module is used to determine the Vandermonde matrix corresponding to the parity check matrix in the encoding process, as well as the matrix transformation relationship between the parity check matrix and the Vandermonde matrix.

[0012] The data block acquisition module is used to obtain k data blocks from r data blocks out of k+m data blocks, matrix transformation relationships, and the Vandermonde matrix, in order to recover the target data; where r is a positive integer ≥ k.

[0013] Thirdly, embodiments of this application provide an electronic device, including a memory, a processor, and a computer program stored in the memory, wherein the processor implements the method provided in any embodiment of this application when executing the computer program.

[0014] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the method provided in any embodiment of this application.

[0015] Compared with the prior art, this application has the following advantages:

[0016] The technical solution of this application, after storing k data blocks and m data blocks corresponding to the target data into the corresponding storage space, can utilize r data blocks from the k+m data blocks, the VanderMonte matrix corresponding to the parity check matrix, and the matrix transformation relationship between the parity check matrix and the VanderMonte matrix to obtain k data blocks, thereby realizing the recovery of the target data. Due to the existence of the VanderMonte matrix, compared with the process of obtaining k data blocks using r data blocks and the parity check matrix, the process of obtaining k data blocks using r data blocks, matrix transformation relationship, and VanderMonte matrix reduces the amount of multiplication calculations, thereby reducing the workload of obtaining k data blocks for recovering the target data and reducing the complexity of target data recovery.

[0017] The above overview is for illustrative purposes only and is not intended to be limiting in any way. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features of this application will become readily apparent from the accompanying drawings and the following detailed description. Attached Figure Description

[0018] In the accompanying drawings, unless otherwise specified, the same reference numerals throughout the various drawings denote the same or similar parts or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings depict only some embodiments disclosed in this application and should not be construed as limiting the scope of this application.

[0019] Figure 1This is a schematic diagram illustrating an application scenario of a data processing method provided in the embodiments of this application;

[0020] Figure 2 This is a flowchart of a data processing method provided in an embodiment of this application;

[0021] Figure 3 This is a schematic diagram of a verification matrix provided in an embodiment of this application;

[0022] Figure 4 This is a schematic diagram of a Cauchy matrix provided in an embodiment of this application;

[0023] Figure 5 This is a schematic diagram of an identity matrix provided in an embodiment of this application;

[0024] Figure 6 This is a schematic diagram of a Vandermonde matrix provided in an embodiment of this application;

[0025] Figure 7 This is a schematic diagram of a vector element provided in an embodiment of this application;

[0026] Figure 8 This is a flowchart of a data block determination method provided in the embodiments of this application;

[0027] Figure 9 This is a schematic diagram of a formula for determining a data block matrix provided in an embodiment of this application;

[0028] Figure 10 A schematic diagram of a transformed data block vector provided in an embodiment of this application;

[0029] Figure 11 This is a schematic diagram illustrating a calculation formula for a residual data block matrix provided in an embodiment of this application;

[0030] Figure 12 This is a schematic diagram of a matrix provided in an embodiment of this application;

[0031] Figure 13 This is a structural block diagram of a data processing apparatus according to an embodiment of this application;

[0032] Figure 14 This is a block diagram of an electronic device used to implement embodiments of this application. Detailed Implementation

[0033] Many specific details are set forth in the following description to provide a full understanding of this application. However, this application can be implemented in many other forms than those described herein, and those skilled in the art can make similar extensions without departing from the spirit of this application; therefore, this application is not limited to the specific embodiments disclosed below.

[0034] To more clearly illustrate the data processing method provided in the embodiments of this application, we first introduce the application scenarios of the data processing method provided in the embodiments of this application. The data processing method provided in the embodiments of this application can be applied to scenarios where target data is partially lost, and the target data is recovered. The following details... Figure 1 This paper will introduce the application scenarios of the data processing method provided in the embodiments of this application. Figure 1 This is a schematic diagram illustrating an application scenario of a data processing method provided in the embodiments of this application.

[0035] First, the target data is divided into k data blocks, which are represented by D(0), D(1)...D(k-1) respectively. For example, the target data block can be divided into 6 data blocks, which can be represented by D(0), D(1), D(2), D(3), D(4) and D(5) respectively.

[0036] Secondly, k data blocks are encoded using Lisso codes based on Cauchy matrices to obtain m data blocks. These m data blocks are m redundant data blocks generated from the encoding of the k data blocks, and are represented by P(0), P(1)...P(m-1) respectively. For example, the six data blocks can be encoded using Lisso codes based on Cauchy matrices to obtain three data blocks, which can be represented by P(0), P(1), and P(2) respectively.

[0037] Having obtained k+m data blocks, these k+m data blocks can be stored in their respective storage spaces. Specifically, storing these k+m data blocks in their respective storage spaces means storing them in different storage spaces. For example, the generated 9 data blocks (including D(0), D(1), D(2), D(3), D(4), D(5), P(0), P(1), and P(2)) can be stored in 9 different data servers within the same distributed storage system. These 9 different data servers are: Data Server 201, Data Server 202, Data Server 203, Data Server 204, Data Server 205, Data Server 206, Data Server 207, Data Server 208, and Data Server 209.

[0038] Furthermore, when target data stored in different storage spaces as data blocks is lost, the undisturbed data blocks out of the k+m data blocks are obtained, and these undisturbed data blocks are identified as r (r is a positive integer ≥ k) data blocks. These r data blocks are then used to reconstruct the k data blocks. Specifically, if n (n is a positive integer ≤ m) data blocks are lost from the k+m data blocks, and these n data blocks include at least one of the k data blocks, the undisturbed data blocks out of the k+m data blocks are obtained, and these undisturbed data blocks are identified as r (r is a positive integer ≥ k) data blocks. These r data blocks are then used to reconstruct the k data blocks.

[0039] For example, if data blocks D(0), D(1), D(2), D(3), D(4), D(5), P(0), P(1), and P(2) are lost, data blocks D(1), D(2), D(3), D(4), D(5), P(0), and P(1) are identified as the remaining data blocks. These seven data blocks are then retrieved from the storage spaces corresponding to each of the data blocks D(1), D(2), D(3), D(4), D(5), P(0), and P(1), and the seven remaining data blocks are used to reconstruct the data blocks D(0), D(1), D(2), D(3), D(4), and D(5).

[0040] Finally, after determining the Vandermonde matrix corresponding to the parity check matrix in the encoding process, and the matrix transformation relationship between the parity check matrix and the Vandermonde matrix, k data blocks are obtained using r data blocks, the matrix transformation relationship, and the Vandermonde matrix, and the target data is recovered using the k data blocks.

[0041] It should be noted that in practical applications, the target data can be directly recovered using r data blocks, matrix transformation relationships, and the Vandermonde matrix.

[0042] Specifically, encoding k data blocks using Lisso code based on the Cauchy matrix requires pre-constructing a parity-check matrix (PCM) to generate redundant data blocks. This PCM consists of a Cauchy matrix and an identity matrix. Simultaneously, a Vandermonde matrix corresponding to the PCM is constructed. After constructing the Vandermonde matrix, the matrix transformation relationship between the PCM and the PCM needs to be determined. At this point, the PCM is represented using the Vandermonde matrix and the matrix transformation relationship.

[0043] Since the parity check matrix can be represented by the Vandermonde matrix and matrix transformation relationships, the process of restoring k data blocks using the parity check matrix and r data blocks can be replaced by the process of restoring k data blocks using r data blocks, matrix transformation relationships, and the Vandermonde matrix.

[0044] For example, using D(1), D(2), D(3), D(4), D(5), P(0) and P(1), matrix transformation relationships, and the Vandermonde matrix, data blocks D(0), D(1), D(2), D(3), D(4), and D(5) can be reconstructed. After reconstructing data blocks D(0), D(1), D(2), D(3), D(4), and D(5), data can be constructed from data blocks D(0), D(1), D(2), D(3), D(4), and D(5) to recover the target data.

[0045] The data processing method provided in this application embodiment can be applied to scenarios where target data is partially damaged, and the target data needs to be recovered. The following specific examples illustrate the application scenarios of the data processing method provided in this application embodiment.

[0046] First, the target data is divided into k data blocks, which are represented by D(0), D(1)...D(k-1) respectively. For example, the target data block can be divided into 4 data blocks, which can be represented by D(0), D(1), D(2) and D(3) respectively.

[0047] Second, k data blocks are encoded using Lisso codes based on Cauchy matrices to obtain m data blocks. These m data blocks are m redundant data blocks generated from the encoding of the k data blocks, and are represented by P(0), P(1), ..., P(m-1) respectively. For example, four data blocks can be encoded using Lisso codes based on Cauchy matrices to obtain two data blocks, which can be represented by P(0) and P(1) respectively.

[0048] After obtaining k+m data blocks, these k+m data blocks can be stored in their respective storage spaces. Specifically, storing these k+m data blocks in their respective storage spaces means storing them in different storage spaces. For example, the generated 6 data blocks (including D(0), D(1), D(2), D(3), P(0), and P(1)) can be stored in 6 different disks within the same storage system.

[0049] Third, when target data stored in different storage spaces as data blocks becomes corrupted, the uncorrupted data blocks out of k+m data blocks are obtained, and these uncorrupted data blocks are identified as r (r is a positive integer ≥ k) data blocks, which are then used to reconstruct k data blocks. Specifically, when n (n is a positive integer ≤ m) data blocks out of k+m data blocks are corrupted, and these n data blocks include at least one of the k data blocks, the uncorrupted data blocks out of k+m data blocks are obtained, and these uncorrupted data blocks are identified as r (r is a positive integer ≥ k) data blocks, which are then used to reconstruct k data blocks.

[0050] For example, if data blocks D(3) and P(0) in data blocks D(0), D(1), D(2), D(3), P(0) and P(1) are corrupted, data blocks D(0), D(1), D(2) and P(1) are identified as the remaining data blocks, and these four data blocks are obtained from the storage space corresponding to each of data blocks D(0), D(1), D(2) and P(1), and these four remaining data blocks are used to restore data blocks D(0), D(1), D(2) and D(3).

[0051] Fourth, after determining the Vandermonde matrix corresponding to the parity check matrix in the encoding process, and the matrix transformation relationship between the parity check matrix and the Vandermonde matrix, k data blocks are obtained using r data blocks, the matrix transformation relationship, and the Vandermonde matrix, and the target data is recovered using the k data blocks.

[0052] Specifically, encoding k data blocks using Lisso coding based on the Cauchy matrix requires pre-constructing a parity check (PCM) matrix to generate redundant data blocks. This PCM matrix consists of a Cauchy matrix and an identity matrix. When target data recovery is required, a Vandermonde matrix corresponding to the PCM matrix is ​​constructed for the correction matrix. After constructing the Vandermonde matrix, the matrix transformation relationship between the PCM matrix and the PCM matrix needs to be determined. At this point, the PCM matrix is ​​represented using the Vandermonde matrix and the matrix transformation relationship.

[0053] Since the parity check matrix can be represented by the Vandermonde matrix and matrix transformation relationships, the process of restoring k data blocks using the parity check matrix and r data blocks can be replaced by the process of restoring k data blocks using r data blocks, matrix transformation relationships, and the Vandermonde matrix.

[0054] For example, data blocks D(0), D(1), D(2), and P(1), matrix transformation relationships, and the Vandermonde matrix can be used to reconstruct data blocks D(0), D(1), D(2), and D(3). After reconstructing data blocks D(0), D(1), D(2), and D(3), data can be constructed from data blocks D(0), D(1), D(2), and D(3) to recover the target data.

[0055] The data processing method provided in this application embodiment, after storing k data blocks and m data blocks corresponding to the target data into the corresponding storage space, can use r data blocks from the k+m data blocks, the VanderMonte matrix corresponding to the parity check matrix, and the matrix transformation relationship between the parity check matrix and the VanderMonte matrix to obtain k data blocks, thereby realizing the recovery of the target data. Due to the existence of the VanderMonte matrix, compared with the process of obtaining k data blocks using r data blocks and the parity check matrix, the process of obtaining k data blocks using r data blocks, matrix transformation relationship, and VanderMonte matrix reduces the amount of multiplication calculations, thereby reducing the workload of obtaining k data blocks for recovering the target data, and thus reducing the complexity of target data recovery when some data of the target data is lost or damaged.

[0056] It should be noted that the above-described application scenarios of the data processing method provided in the embodiments of this application are for the purpose of facilitating understanding of the data processing method provided in the embodiments of this application, and are not intended to limit the data processing method provided in the embodiments of this application. The data processing method provided in the embodiments of this application can also perform recovery work on target data in other scenarios. Specifically, the application scenarios of the data processing method provided in the embodiments of this application are not specifically limited.

[0057] Furthermore, the executing entity of the data processing method provided in this application embodiment can be a server or cloud server, a data management device in a storage system, or a data server in a distributed storage system. Of course, other computing devices can also be set as the executing entity of the data processing method provided in this application embodiment, depending on the specific application scenario. In other words, this application embodiment does not specifically limit the executing entity of the data processing method provided in this application embodiment.

[0058] This application provides a data processing method, specifically as follows: Figure 2 As shown, Figure 2 This is a flowchart of a data processing method provided in an embodiment of this application. The data processing method shown in the figure includes the following steps:

[0059] Step S201: Store the k data blocks and m data blocks corresponding to the target data into the corresponding storage space; wherein, the m data blocks are obtained by encoding the k data blocks using the target Liso code, the target Liso code includes the Liso code based on the Cauchy matrix, and k and m are positive integers.

[0060] The target data includes, but is not limited to, image data, video data, text data, and audio data. In practical applications, the storage space can be implemented as a disk, a storage node, or a data server in a distributed storage system. That is, the specific implementation method of the storage space is not limited in this application embodiment.

[0061] The phrase "storing the k+m data blocks into their respective storage spaces" generally means storing the k+m data blocks into different storage spaces.

[0062] In this embodiment of the application, before storing the k data blocks and m data blocks corresponding to the target data, it is necessary to first generate the k data blocks and m data blocks. k and m are generally positive integers ≥ 2. Specifically, k is generally a positive integer > 2.

[0063] Specifically, the process of generating k data blocks is as follows: First, determine the length of the target data. Then, divide the target data into k equal blocks of length l according to the data length. For example, when the target data length is k*l, it can be directly divided into k equal blocks of length 1. Alternatively, if the target data length is less than k*l, the target data can be padded to form data of length k*l to be divided, and then the k*l data to be divided into k equal blocks of length 1.

[0064] In this embodiment of the application, the specific implementation method of encoding k data blocks using the target code to obtain m data blocks includes the following steps:

[0065] First, in the Galois domain GF(p 1 The specific process for constructing a parity-check matrix that encodes k data blocks is as follows:

[0066] First, construct the element set X = {α0, α1, ..., α2}. k-1} and Y = {β1, β2, ..., β} m-1}. Wherein, α i (i = 0, 2, ..., k-1) is the p-ary representation of the integer i, where p is typically 2; β i (i = 0, 2, ..., m-1) is a positive integer p 1-1 +i in base p; α i and β i It is GF(p)1 The elements that are independent of each other.

[0067] Second, using the set of elements X = {α0, α1, ..., α2} k-1} and Y = {β1, β2, ..., β} m-1 The elements in} construct the parity check matrix H m×(m+k) The verification format is as follows: Figure 3 As shown, Figure 3 This is a schematic diagram of a parity check matrix provided in an embodiment of this application. Parity check matrix H m×(m+k) Zhongyouru Figure 4 The Cauchy matrix shown and as Figure 5 The identity matrix shown is formed. Among them, Figure 4 This is a schematic diagram of a Cauchy matrix provided in an embodiment of this application. Figure 5 This is a schematic diagram of an identity matrix provided in an embodiment of this application.

[0068] Then, m data blocks are obtained by following these steps:

[0069] First, assume that the vectors corresponding to the first data block for the m data blocks generated by encoding are {X0, X1, ..., X...} m-1}. Where the vector elements X0, X1…X m-1 These are used to represent data blocks in m data blocks.

[0070] Second, for k data blocks, construct the second data block vector corresponding to the k data blocks: {D0, D1...D...} k-1}. Where the vector elements D0, D1...D k-1 These are used to represent data blocks in k data blocks respectively.

[0071] Third, using the first and second data block vectors, generate corresponding data block vectors V for k+m data blocks: V = {D0, D1, ..., D2} k-1 X0, X1...X m-1}

[0072] Fourth, utilize the first equation relationship pre-defined for the data block vector and the parity check matrix: Solve for X0, X1…X m-1 Specifically, in the second data block vector and Given that all are known, we can utilize Solving for X0, we get: X0 = P0, X1 = P1...X m-1 =P m-1 Therefore, the first data block vector can be obtained as: {P0, P1…P} m-1}

[0073] In this embodiment of the application, another specific implementation of encoding k data blocks using the target Lisso code to obtain m data blocks may include: using a Lisso code encoding algorithm based on the Cauchy matrix to encode the k data blocks to generate m data blocks. The so-called Lisso code encoding algorithm based on the Cauchy matrix is ​​a pre-trained encoding algorithm used to encode the k data blocks using the target Lisso code to obtain m data blocks.

[0074] It should be noted that, in the embodiments of this application, there is no specific limitation on another specific implementation method of encoding k data blocks using the target code to obtain m data blocks.

[0075] Please refer to again Figure 2 After storing the k data blocks and m data blocks corresponding to the target data into the corresponding storage space, step S202 can be further executed.

[0076] Step S202: Determine the Vandermonde matrix corresponding to the parity check matrix in the encoding process, and the matrix transformation relationship between the parity check matrix and the Vandermonde matrix.

[0077] In this embodiment, the specific implementation of determining the Vandermonde matrix and matrix transformation relationships can be as follows: First, while constructing the calibration matrix, a Vandermonde matrix corresponding to the calibration matrix is ​​also constructed. Then, after constructing the Vandermonde matrix, the matrix transformation relationship between the calibration matrix and the Vandermonde matrix is ​​further determined for both. At this point, the calibration matrix can be represented using the Vandermonde matrix and the matrix transformation relationship. Finally, when target data recovery is required, the pre-constructed Vandermonde matrix and the pre-determined matrix transformation relationship are obtained.

[0078] In this embodiment of the application, the specific implementation of determining the Vandermonde matrix and the matrix transformation relationship can also be as follows: First, obtain the Vandermonde matrix for the parity check matrix. Then, determine the matrix transformation relationship based on the parity check matrix and the Vandermonde matrix. Specifically, when target data recovery is required, construct the Vandermonde matrix for the parity check matrix, and determine the matrix transformation relationship between the constructed Vandermonde matrix and the parity check matrix.

[0079] In one possible implementation, the constructed parity-check matrix H m×(m+k) like Figure 3 As shown, the steps to construct the Vandermonde matrix for the parity check matrix are as follows: First, use the element set X = {α0, α1...α...} k-1} and Y = {β1, β2...β m The elements in} construct a vector F: F = {α0, α1, ..., α2} k-1,β1,β2...β m Then, using this vector F, we can further construct, as shown below. Figure 6 The Vandermonde matrix E shown m×(m+k) , Figure 6 This is a schematic diagram of a Vandermonde matrix provided in an embodiment of this application.

[0080] In the verification matrix H m×(m+k) and the Vandermonde matrix E m×(m+k) Given that all parameters are known, the parity check matrix H can be determined. m×(m+k) and the Vandermonde matrix E m×(m+k) The matrix transformation relationship between the parity check matrix and the VanderMont matrix is ​​discussed. Generally, the matrix transformation relationship includes the transformation vector between the parity check matrix and the VanderMont matrix. Of course, the matrix transformation relationship can also take other forms besides the transformation vector, such as matrices or element-wise lists. The following section uses the transformation vector between the parity check matrix and the VanderMont matrix as an example to explain in detail the process of obtaining k data blocks from r data blocks out of k+m data blocks, the matrix transformation relationship, and the VanderMont matrix.

[0081] When the matrix transformation relationship is a transformation vector, the transformation vector can be determined as follows: First, assume the transformation vector is C. Then, the formula H can be used. m×(m+k) =E m×(m+k) The transformation vector C is calculated using *C, where the i-th vector element c in the transformation vector C is... i Can be used Figure 7 The formula shown yields, Figure 7 This is a schematic diagram of a vector element provided in an embodiment of this application. Figure 7 In the case f∈F, c i ∈C, t represents the vector element currently being traversed during the traversal of vector F.

[0082] Please refer to again Figure 2 The data processing method provided in this embodiment can execute step S203 after determining the Vandermonde matrix and the matrix transformation relationship between the verification matrix and the Vandermonde matrix.

[0083] Step S203: Using r data blocks out of k+m data blocks, matrix transformation relationships, and the Vandermonde matrix, k data blocks are obtained to recover the target data; where r is a positive integer ≥ k.

[0084] Since r is a positive integer ≥ k, we know that k data blocks can be obtained by using any k or more data blocks from k+m data blocks, matrix transformation relationships, and the Vandermonde matrix, which can be used to recover the target data.

[0085] In one possible implementation, before obtaining the k data blocks using the r data blocks out of the k+m data blocks, matrix transformation relationships, and the Vandermonde matrix, it is necessary to first determine the r data blocks. The specific process is as follows: Figure 8 As shown. Figure 8 This is a flowchart of a data block determination method provided in the embodiments of this application. Figure 8 The method shown may include the following steps:

[0086] Step S801: When there are n unusable data blocks among the k+m data blocks, obtain the usable data blocks among the k+m data blocks; wherein, the n unusable data blocks include at least one data block among the k data blocks, and n is a positive integer not exceeding m.

[0087] Unusable data blocks include, but are not limited to, lost and corrupted data blocks, and at least one of the k data blocks must be included among the n unusable data blocks. For example, if the target data block is divided into 6 data blocks (including data blocks D(0), D(1), D(2), D(3), D(4), and D(5)), and the 6 data blocks are encoded into 3 data blocks (including data blocks P(0), P(1), and P(2)) based on the Cauchy matrix Lisso code, if data blocks D(0) and P(0) are corrupted or lost, then it can be determined that the n unusable data blocks include data blocks D(0) and P(0).

[0088] After identifying n unusable data blocks, we can further identify the usable data blocks among the k+m data blocks based on these n unusable data blocks. For example, if data blocks D(0) and P(0) are damaged or lost, then the usable data blocks among D(0), D(1), D(2), D(3), D(4), D(5), P(0), P(1), and P(2) are: D(1), D(2), D(3), D(4), D(5), P(1), and P(2).

[0089] Step S802: Determine the available data blocks as r data blocks.

[0090] Specifically, if data blocks D(0) and P(0) in D(0), D(1), D(2), D(3), D(4), D(5), P(0), P(1), and P(2) are damaged or lost, then data blocks D(1), D(2), D(3), D(4), D(5), P(1), and P(2) can be identified as usable data blocks, thus identifying r data blocks as: D(1), D(2), D(3), D(4), D(5), P(1), and P(2).

[0091] Ensuring that at least one of the k unavailable data blocks is included among the n unavailable data blocks guarantees that, in the event of loss or corruption of the target data, r data blocks out of the k+m data blocks, matrix transformation relationships, and the Vandermonde matrix will be used to obtain k data blocks for target data recovery. This reduces the frequency of target data recovery and saves resource costs.

[0092] In this embodiment, the specific implementation of obtaining k data blocks using r data blocks, matrix transformation relationships, and the VanderMont matrix is ​​generally as follows: First, generate corresponding data block vectors for k+m data blocks; the vector elements in the data block vectors represent the data blocks among the k+m data blocks. Second, using the first equality relationship preset during the encoding process for the data block vectors and the check matrix, determine the corresponding second equality relationship between the data block vectors, matrix transformation relationships, and the VanderMont matrix. Third, based on the second equality relationship, determine the data block matrix corresponding to the remaining data blocks (excluding the r data blocks) among the k+m data blocks to obtain the remaining data blocks; the columns in the data block matrix represent the data blocks among the remaining data blocks. Finally, using the r data blocks and the remaining data blocks, obtain k data blocks.

[0093] Since the parity check matrix can be represented by the Vandermonde matrix and matrix transformation relationships, the process of restoring k data blocks using the parity check matrix and r data blocks can be replaced by the process of restoring k data blocks using r data blocks, matrix transformation relationships, and the Vandermonde matrix.

[0094] Furthermore, due to the existence of the Vandermonde matrix, compared to the process of obtaining k data blocks using r data blocks and a parity check matrix, the amount of multiplication calculations or other computations is reduced, thereby reducing the workload of obtaining k data blocks for recovering the target data and lowering the complexity of target data recovery.

[0095] For example, the data block “D(0), D(1), D(2), D(3), D(4), D(5), P(0), P(1) and P(1)” can be restored using “D(0), D(1), D(2), D(3), D(4), D(5), P(0), P(1) and P(2)”, matrix transformation relationships and Vandermonde matrix.

[0096] In one possible implementation, determining the corresponding second equality relationship between the data block vector, the matrix transformation relationship, and the VanderMont matrix can include the following steps: First, using the data block vector and the matrix transformation relationship, the transformed data block vector is obtained. Then, based on the first equality relationship, the equality relationship between the transformed data block vector and the VanderMont matrix is ​​determined. Finally, the equality relationship between the transformed data block vector and the VanderMont matrix is ​​defined as the second equality relationship. The following explanation of step S203 will continue to use the matrix transformation relationship as the transformation vector.

[0097] When the matrix transformation relationship is a transformation vector, the process of obtaining the transformed data block vector using the data block vector and the matrix transformation relationship is as follows: First, construct the first data block vector corresponding to m data blocks: {P0, P1...P...} m-1}, and construct the second data block vector corresponding to k data blocks: {D0, D1...D k-1 Then, using the first data block vector and the second data block vector, a corresponding data block vector V is generated for k+m data blocks: V = {D0, D1...D...} k-1 P0, P1...P m-1 Finally, the data block vector V is compared with the transformation vector C (C = {c0, c1, ..., c2}). k-1 c k c k+1 ...c k+m-1 Multiplying these two groups yields the transformed data block vector.

[0098] When the matrix transformation relationship is a transformation vector, the process of determining the equality relationship between the transformed data block vector and the Vandermonde matrix based on the first equality relationship can be as follows: First, obtain the first equality relationship. Then, from the first equality relation, the Vandermonde matrix, the parity check matrix, and the transformation vector, we obtain the equality relation between the Vandermonde matrix, the transformation vector, and the data block vector: E m×(m+k) *C*V T =0. Finally, based on the equations between the Vandermonde matrix, the transformation vector, and the data block vector, the equation between the transformed data block vector and the Vandermonde matrix is ​​obtained:

[0099] The equation relationship between the transformed data block vector and the Vandermonde matrix is ​​determined. When the relationship is determined to be the second equality, the remaining data block can be obtained using the following process:

[0100] First, determine the remaining data blocks (excluding r data blocks) in the transformed data block vector from the k+m data blocks. The corresponding vector elements in the data. Then, the remaining data blocks are transformed into the data block vector. The corresponding vector elements are set to zero to obtain the third data block vector V1, V1 = {c0D0, 0...c...} k-1 D k-1 ,0,c k+1 P1...,0}. Finally, using as... Figure 9 The formula shown is used to calculate the data block matrix Lost corresponding to the remaining data block, and then to obtain the remaining data block. Figure 9 This is a schematic diagram of a formula for determining a data block matrix provided in an embodiment of this application. Figure 9 S m×m The column in H represents r data blocks. m×(m+k) The corresponding column in the data block matrix Los: Lost = {B l(0) B l(1) …B l(m-1)}, B l(0) B l(1) …B l(m-1) The tables are used for the remaining data blocks, where r = k.

[0101] In using such Figure 9 In the process of calculating the Lost data block matrix corresponding to the remaining data blocks using the formula shown, E m×(m+k) The operations of *V1 can be implemented using shifting and XOR operations based on the values ​​of vector F. After obtaining E... m×(m+k) *After V1, in conjunction with Multiplication involves performing m*(m-1) multiplications and XOR operations. Specifically, if m = 3, then E m×(m+k) *V1 shows that it can be achieved by no more than 3*(k+2) left shifts and XOR operations.

[0102] The data processing method provided in this embodiment, due to the presence of the VanderMont matrix, reduces the computational complexity of obtaining k data blocks using r data blocks, matrix transformation relationships, and the VanderMont matrix. This is achieved by reducing the computational complexity from m*k multiplications and m*(k-1) XOR operations to m*(k+2) left shifts and m*3 multiplications and m*2 XOR operations, or even less, compared to obtaining k data blocks using r data blocks and a parity check matrix. Furthermore, the computational complexity of left shifts is significantly lower than that of multiplications. Therefore, the workload of obtaining k data blocks for recovering the target data is reduced, thus lowering the complexity of target data recovery.

[0103] In one possible implementation, determining the corresponding second equality relationship between the data block vector, the matrix transformation relationship, and the VanderMont matrix can also include the following steps: First, using the VanderMont matrix and the matrix transformation relationship, obtain the transformed VanderMont matrix. Then, based on the first equality relationship, determine the equality relationship between the transformed VanderMont matrix and the data block vector. Finally, define the equality relationship between the transformed VanderMont matrix and the data block vector as the second equality relationship. The following will also use the matrix transformation relationship as the transformation vector to explain step S203 in detail.

[0104] When the matrix transformation relationship is a transformation vector, the process of obtaining the transformed Vandermonde matrix using the Vandermonde matrix and the matrix transformation relationship is as follows: First, construct the vectors to the first data block corresponding to m data blocks: {P0, P1...P...} m-1}, and construct the second data block vector corresponding to k data blocks: {D0, D1...D k-1 Then, using the first data block vector and the second data block vector, a corresponding data block vector V is generated for k+m data blocks: V = {D0, D1…D...} k-1 P0, P1…P m-1 Finally, the Vandermonde matrix E... m×(m+k) With the transformation vector C (C = {c0, c1, ..., c2}) k-1 c k c k+1 …c k+m-1 Multiplying the two pairs yields the transformed data block vector E′. m×(m+k) , specifically Figure 10 As shown, Figure 10 This is a schematic diagram of a transformed data block vector provided in an embodiment of this application.

[0105] When the matrix transformation relationship is a transformation vector, based on the first equality relation, the equality relationship between the transformed Vandermonde matrix and the data block vector can be determined as follows: First, obtain the first equality relation. Then, from the first equality relation, the Vandermonde matrix, the parity check matrix, and the transformation vector, we obtain the equality relation between the Vandermonde matrix, the transformation vector, and the data block vector: E m×(m+k) *C*V T =0. Finally, based on the equations between the Vandermonde matrix, the transformation vector, and the data block vector, the equation between the transformed Vandermonde matrix and the data block vector is obtained: E′ m×(m+k) *V=0.

[0106] The equation E′ between the transformed data block vector and the Vandermonde matrix is ​​determined. m×(m+k) When *V=0 is determined as the second equality relation, the following can be used: Figure 11The formula shown is used to obtain the remaining data block. Figure 11 This is a schematic diagram illustrating a calculation formula for a residual data block matrix provided in an embodiment of this application. Figure 11 In the middle, E′ m×(m+k) ′ is by E′ m×(m+k) Remove S m×m The matrix is ​​constructed using the remaining columns; V2 is a vector constructed for r data blocks, where each vector element in V2 represents one of the r data blocks, r = k; S m×m The form is as follows Figure 12 As shown, Figure 12 This is a schematic diagram of a matrix provided in an embodiment of this application.

[0107] In using such Figure 11 In the process of calculating the Lost data block matrix corresponding to the remaining data blocks using the formula shown, the first step is to execute... Due to E′ m×(m+k) Each column is constructed by continuously concatenating the same element. Therefore, when processing one data block out of r data blocks, there are m multiplication calculations. Although it is still m multiplication calculations, a large number of multiplication calculations can be reused. Thus, in the process of obtaining k data blocks using r data blocks, matrix transformation relationships, and the Vandermonde matrix, the amount of multiplication calculation is reduced. This reduces the workload of obtaining k data blocks for recovering the target data and lowers the complexity of target data recovery.

[0108] The data processing method provided in this embodiment, due to the presence of the VanderMont matrix, reduces the computational load of multiplications compared to obtaining k data blocks using r data blocks and a parity check matrix. This is because the number of multiplications and XOR operations remains the same, but the VanderMont matrix contains a large number of reusable multiplications. Therefore, obtaining k data blocks from r data blocks reduces the workload of obtaining the k data blocks needed to recover the target data, thus lowering the complexity of the target data recovery process.

[0109] The data processing method provided in this application, after storing k data blocks and m data blocks corresponding to the target data into their respective storage spaces, can utilize r data blocks from the k+m data blocks, the VanderMonte matrix corresponding to the parity check matrix, and the matrix transformation relationship between the parity check matrix and the VanderMonte matrix to obtain k data blocks, thereby achieving the recovery of the target data. Due to the existence of the VanderMonte matrix, compared to the process of obtaining k data blocks using r data blocks and the parity check matrix, the process of obtaining k data blocks using r data blocks, the matrix transformation relationship, and the VanderMonte matrix reduces the amount of multiplication or computation, thus reducing the workload of obtaining the k data blocks used to recover the target data and lowering the complexity of target data recovery.

[0110] Corresponding to the application scenarios and methods provided in the embodiments of this application, the embodiments of this application also provide a data processing apparatus, which, as follows: Figure 13 As shown. Figure 13 This is a structural block diagram of a data processing apparatus according to an embodiment of the present application. The data processing apparatus may include:

[0111] The data block storage module 1301 is used to store k data blocks and m data blocks corresponding to the target data into the corresponding storage space; wherein, the m data blocks are obtained by encoding the k data blocks using the target Liso code, the target Liso code includes the Liso code based on the Cauchy matrix, and k and m are positive integers;

[0112] The check matrix processing module 1302 is used to determine the Vandermonde matrix corresponding to the check matrix in the encoding process, as well as the matrix transformation relationship between the check matrix and the Vandermonde matrix.

[0113] The data block acquisition module 1303 is used to obtain k data blocks from r data blocks out of k+m data blocks, matrix transformation relationships and Vandermonde matrix, for the purpose of recovering the target data; where r is a positive integer ≥ k.

[0114] In one possible implementation, the device further includes:

[0115] The available data block acquisition module 1303 is used to acquire the available data blocks among the k+m data blocks when there are n unavailable data blocks among the k+m data blocks; wherein, the n unavailable data blocks include at least one data block among the k data blocks, and n is a positive integer not exceeding m;

[0116] The data block determination module is used to determine the available data blocks into r data blocks.

[0117] In one possible implementation, the data block acquisition module 1303 includes:

[0118] The data block vector generation submodule is used to generate corresponding data block vectors for k+m data blocks; the vector elements in the data block vector are used to represent the data blocks in the k+m data blocks.

[0119] The equality relationship determination submodule is used to determine the corresponding second equality relationship between the data block vector, matrix transformation relationship and Vandermonde matrix by using the first equality relationship preset for the data block vector and the parity check matrix during the encoding process;

[0120] The Remaining Data Block Matrix Determination Submodule is used to determine the data block matrix corresponding to the remaining data blocks (excluding r data blocks) among the k+m data blocks based on the second equality relationship, so as to obtain the remaining data blocks; the columns in the data block matrix are used to represent the data blocks in the remaining data blocks;

[0121] The first submodule for determining data blocks is used to obtain k data blocks using r data blocks and the remaining data blocks.

[0122] In one possible implementation, the equality relationship determines the submodule, including:

[0123] The transformation vector acquisition submodule is used to obtain the transformed data block vector by utilizing the relationship between the data block vector and the matrix transformation;

[0124] The first equality relationship determination submodule is used to determine the equality relationship between the transformed data block vector and the Vandermonde matrix based on the first equality relationship;

[0125] The second equality relation determination submodule is used to determine the equality relation between the transformed data block vector and the Vandermonde matrix as the second equality relation.

[0126] In one possible implementation, the equality relationship determines the submodule, including:

[0127] The Vandermonde matrix transformation submodule is used to obtain the transformed Vandermonde matrix by utilizing the relationship between the Vandermonde matrix and matrix transformations.

[0128] The third equation relation determination submodule is used to determine the equation relation between the transformed Vandermonde matrix and the data block vector based on the first equation relation;

[0129] The fourth equation relation determination submodule is used to determine the equation relation between the transformed Vandermonde matrix and the data block vector as the second equation relation.

[0130] In one possible implementation, the matrix transformation relationship includes the transformation vector between the parity matrix and the Vandermonde matrix.

[0131] In one possible implementation, the verification matrix processing module 1302 includes:

[0132] The Vandermonde matrix acquisition submodule is used to obtain the Vandermonde matrix from the parity check matrix.

[0133] The matrix transformation relationship determination submodule is used to determine the matrix transformation relationship based on the parity check matrix and the Vandermonde matrix.

[0134] Figure 14 This is a block diagram of an electronic device used to implement embodiments of this application. Figure 14 As shown, the electronic device includes a memory 1410 and a processor 1420. The memory 1410 stores a computer program that can run on the processor 1420. When the processor 1420 executes the computer program, it implements the method described in the above embodiments. The number of memories 1410 and processors 1420 can be one or more.

[0135] The electronic device also includes:

[0136] The communication interface 1430 is used to communicate with external devices and perform data exchange and transmission.

[0137] If the memory 1410, processor 1420, and communication interface 1430 are implemented independently, they can be interconnected via a bus to communicate with each other. This bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. This bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 14 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0138] Optionally, in a specific implementation, if the memory 1410, processor 1420 and communication interface 1430 are integrated on a single chip, the memory 1410, processor 1420 and communication interface 1430 can communicate with each other through an internal interface.

[0139] This application provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the method provided in this application.

[0140] This application also provides a chip, which includes a processor for calling and executing instructions stored in a memory, causing a communication device on which the chip is installed to perform the method provided in this application.

[0141] This application also provides a chip, including: an input interface, an output interface, a processor, and a memory. The input interface, output interface, processor, and memory are connected through an internal connection path. The processor is used to execute code in the memory. When the code is executed, the processor is used to execute the method provided in the application embodiment.

[0142] It should be understood that the aforementioned processor can be a Central Processing Unit (CPU), or other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting Advanced Reduced Instruction Set Machines (ARM) architecture.

[0143] Further, optionally, the aforementioned memory may include read-only memory and random access memory, and may also include non-volatile random access memory. The memory may be volatile or non-volatile, or may include both. Non-volatile memory may include read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory may include random access memory (RAM), which serves as an external cache. Many forms of RAM are available by way of example, but not limitation. Examples include Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DR RAM).

[0144] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the flow or function according to this application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another.

[0145] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of this application. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification, as well as the features of those different embodiments or examples.

[0146] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this application, "a plurality of" means two or more, unless otherwise explicitly specified.

[0147] Any process or method description in the flowchart or otherwise herein can be understood as representing a module, segment, or portion of code comprising one or more executable instructions for implementing a particular logical function or process. Furthermore, the scope of the preferred embodiments of this application includes additional implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the functionality involved.

[0148] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus or device (such as a computer-based system, a processor-included system or other system that can fetch and execute instructions from, an instruction execution system, apparatus or device).

[0149] It should be understood that various parts of this application can be implemented using hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in memory and executed by a suitable instruction execution system. All or part of the steps of the methods in the above embodiments can be implemented by a program instructing related hardware, the program being stored in a computer-readable storage medium, which, when executed, includes one or a combination of the steps of the method embodiments.

[0150] Furthermore, the functional units in the various embodiments of this application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. This storage medium can be a read-only memory, a disk, or an optical disk, etc.

[0151] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various variations or substitutions within the technical scope disclosed in this application, and these should all be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A data processing method, characterized in that, include: The target data is divided into k data blocks, and the k data blocks are encoded using the Lisso code based on the Cauchy matrix to generate m redundant data blocks. The k data blocks and the m redundant data blocks are stored in their respective independent storage spaces, where k and m are positive integers. Obtain a first set of elements and a second set of elements, wherein the elements in the first set of elements and the second set of elements are independent of each other in the Galois field; Based on the first set of elements and the second set of elements, a check matrix is ​​constructed for generating the m redundant data blocks during the encoding process. The check matrix is ​​composed of a Cauchy matrix and an identity matrix. Construct the Vandermonde matrix corresponding to the verification matrix based on the first set of elements and the second set of elements; Determine the matrix transformation relationship between the verification matrix and the Vandermonde matrix; When there are unusable data blocks among the k data blocks, the k data blocks are recovered based on the k data blocks and the r currently available data blocks among the m redundant data blocks, the matrix transformation relationship, and the Vandermonde matrix, so as to recover the target data; where r is a positive integer ≥ k.

2. The data processing method according to claim 1, characterized in that, Before recovering the k data blocks based on the currently available r data blocks among the k data blocks and the m redundant data blocks, the matrix transformation relationship, and the Vandermonde matrix, the method further includes: When there are n unusable data blocks among the k data blocks and the m redundant data blocks, the usable data blocks among the k data blocks and the m redundant data blocks are obtained; wherein, the n unusable data blocks include at least one data block among the k data blocks, and n is a positive integer not exceeding m; The available data blocks are determined as the r data blocks.

3. The data processing method according to claim 1 or 2, characterized in that, The step of recovering the k data blocks based on the k data blocks and the r currently available data blocks from the m redundant data blocks, the matrix transformation relationship, and the Vandermonde matrix includes: Generate corresponding data block vectors for k+m data blocks; the vector elements in the data block vectors are used to represent the data blocks in the k+m data blocks, wherein the k+m data blocks include the k data blocks and the m redundant data blocks; Using a first equality relationship preset during the encoding process for the data block vector and the parity matrix, a second equality relationship is determined between the data block vector, the matrix transformation relationship, and the Vandermonde matrix. Based on the second equation, determine the data block matrix corresponding to the remaining data blocks excluding the r data blocks among the k+m data blocks, to obtain the remaining data blocks; the columns in the data block matrix are used to represent the data blocks in the remaining data blocks; The k data blocks are obtained using the r data blocks and the remaining data blocks.

4. The data processing method according to claim 3, characterized in that, The step of determining the corresponding second equality relationship between the data block vector, the matrix transformation relationship, and the Vandermonde matrix by utilizing a first equality relationship preset during the encoding process for the data block vector and the parity check matrix includes: The transformed data block vector is obtained by using the relationship between the data block vector and the matrix transformation. Based on the first equality relationship, the equality relationship between the transformed data block vector and the Vandermonde matrix is ​​determined; The equation relationship between the transformed data block vector and the Vandermonde matrix is ​​determined as the second equation relationship.

5. The data processing method according to claim 3, characterized in that, The step of determining the corresponding second equality relationship between the data block vector, the matrix transformation relationship, and the Vandermonde matrix by utilizing a first equality relationship preset during the encoding process for the data block vector and the parity check matrix includes: Using the Vandermonde matrix and the matrix transformation relationship, the transformed Vandermonde matrix is ​​obtained; Based on the first equality relationship, the equality relationship between the transformed Vandermonde matrix and the data block vector is determined; The equation relationship between the transformed Vandermonde matrix and the data block vector is determined as the second equation relationship.

6. The data processing method according to claim 3, characterized in that, The matrix transformation relationship includes the transformation vector between the parity matrix and the Vandermonde matrix.

7. A data processing apparatus, characterized in that, include: The data block storage module is used to divide the target data into k data blocks, encode the k data blocks using the Lisso code based on the Cauchy matrix, generate m redundant data blocks, and store the k data blocks and the m redundant data blocks into corresponding independent storage spaces, where k and m are positive integers. The parity check matrix processing module is used to obtain a first set of elements and a second set of elements, wherein the elements in the first set of elements and the second set of elements are independent in the Galois field; based on the first set of elements and the second set of elements, it constructs a parity check matrix used to generate the m redundant data blocks during the encoding process, wherein the parity check matrix is ​​composed of a Cauchy matrix and an identity matrix; it constructs a Vandermonde matrix corresponding to the parity check matrix based on the first set of elements and the second set of elements; and it determines the matrix transformation relationship between the parity check matrix and the Vandermonde matrix. The data block acquisition module is used to recover the k data blocks when there are unusable data blocks among the k data blocks, based on the currently available r data blocks among the k data blocks and the m redundant data blocks, the matrix transformation relationship, and the Vandermonde matrix, so as to recover the target data; where r is a positive integer ≥ k.

8. An electronic device comprising a memory, a processor, and a computer program stored in the memory, wherein the processor, when executing the computer program, implements the method of any one of claims 1-6.

9. A computer-readable storage medium storing a computer program that, when executed by a processor, implements the method of any one of claims 1-6.