Data processing method and device and storage medium

By using the first generation matrix encoding and XOR operation to recover the faulty data block, the problem of large computing resource overhead in the prior art is solved, and efficient and reliable data storage is achieved.

CN119109469APending Publication Date: 2024-12-10ZTE CORP
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202310672401.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-07
Publication Date
2024-12-10

AI Technical Summary

Technical Problem

When the prior art ensures the reliability of data storage, the computing resource overhead is high, especially the compilation and decoding technology of erasure coding is complex and the computing resource consumption is large, making it difficult to meet the needs of massive data storage.

Method used

The source data block is encoded using the first generation matrix, and n first coded data blocks are generated, and processed at the second processing node according to the type and number of coded data blocks of the fault, and restore the fault data blocks through XOR operation to reduce the encoding. Computational volume and computing resource overhead.

Benefits of technology

On the basis of not reducing storage reliability, the encoding operation volume and computing resource overhead are reduced, and the efficiency and reliability of data storage are improved. Especially in the event of a single storage node failure, data is quickly recovered through simple XOR operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119109469A_ABST
    Figure CN119109469A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data processing method and device and a storage medium. The method and the device relate to the technical field of communication and are used for ensuring data storage reliability and reducing computing resource overhead. The method comprises the following steps: acquiring k source data blocks, wherein k is a positive integer; the k source data blocks are coded according to the first generation matrix, n first coded data blocks are obtained, the value range of elements in the first generation matrix is [0, q-1], and q is a prime number or prime number power.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a data processing method, device and storage medium. Background Art

[0002] With the rapid development of information technology, the amount of data that needs to be stored has exploded. How to safely, reliably and efficiently store and obtain the data that needs to be stored is a problem that needs to be considered. In data storage systems, redundancy is usually increased to ensure the reliability and persistence of data. Currently, the commonly used technologies are: multi-copy technology and erasure coding technology. However, the storage space utilization rate of multi-copy technology is low, which will increase the storage cost exponentially for the future massive data storage. Compared with multi-copy technology, erasure coding technology can achieve higher data reliability with less redundancy, but the encoding and decoding of erasure coding is more complex, involving multiplication operations in finite fields, and requires more computing resource overhead. Therefore, how to ensure the reliability of data storage and reduce computing resource overhead is a technical problem that needs to be solved urgently. Summary of the invention

[0003] The present application provides a data processing method, device and storage medium for ensuring the reliability of data storage and reducing computing resource overhead.

[0004] In order to achieve the above purpose, this application adopts the following technical solutions:

[0005] In a first aspect, a data processing method is provided, the method being applied to a first processing node, the method comprising:

[0006] Get k source data blocks, where k is a positive integer;

[0007] The k source data blocks are encoded according to a first generation matrix to obtain n first encoded data blocks, wherein the value range of elements in the first generation matrix is ​​[0, q-1], and q is a prime number or a prime power.

[0008] In a second aspect, a data processing method is provided, the method being applied to a second processing node, the method comprising:

[0009] Obtaining the type and number of faulty first coded data blocks, and obtaining k non-faulty first coded data blocks generated by the first processing node; wherein the k non-faulty first coded data blocks are a subset of n first coded data blocks obtained by the first processing node encoding k source data blocks according to a first generation matrix; the first generation matrix includes a unit matrix and a second generation matrix, the size of the unit matrix is ​​k×k, the size of the second generation matrix is ​​r×k, and n=r+k, where r is a positive integer;

[0010] According to the type and number of faulty first coded data blocks, k non-faulty first coded data blocks are processed to obtain data of the faulty first coded data blocks; wherein the type of the faulty first coded data blocks includes a source data block or a second coded data block, the second coded data block is a data block obtained by encoding k source data blocks according to a second generation matrix, the number of faulty first coded data blocks is an integer greater than or equal to 0 and less than or equal to n, and the data of the faulty first coded data blocks includes the faulty source data block and the faulty second coded data block.

[0011] According to a third aspect, a communication device is provided, the device comprising:

[0012] An acquisition unit, used for acquiring k source data blocks, where k is a positive integer;

[0013] A processing unit is used to encode the k source data blocks according to a first generation matrix to obtain n first encoded data blocks, wherein the value range of elements in the first generation matrix is ​​[0, q-1], and q is a prime number or a prime power.

[0014] In a fourth aspect, a communication device is provided, the device comprising:

[0015] an acquisition unit, configured to acquire the type and quantity of the faulty first coded data blocks, and to acquire k non-faulty first coded data blocks generated by the first processing node; wherein the k non-faulty first coded data blocks are a subset of n first coded data blocks obtained by the first processing node encoding the k source data blocks according to the first generation matrix; the first generation matrix includes a unit matrix and a second generation matrix, the size of the unit matrix is ​​k×k, the size of the second generation matrix is ​​r×k, and n=r+k, where r is a positive integer;

[0016] A processing unit is used to process k non-faulty first coded data blocks according to the type and number of faulty first coded data blocks to obtain data of the faulty first coded data blocks; wherein the type of the faulty first coded data block includes a source data block or a second coded data block, the second coded data block is a data block obtained by encoding k source data blocks according to a second generation matrix, the number of faulty first coded data blocks is an integer greater than or equal to 0 and less than or equal to n, and the data of the faulty first coded data block includes the faulty source data block and the faulty second coded data block.

[0017] In a fifth aspect, a communication device is provided, comprising: a processor and a memory; the memory stores instructions executable by the processor; when the processor is configured to execute the instructions, the communication device implements the method provided in any one of the first aspect or the second aspect above.

[0018] In a sixth aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores computer instructions, and when the computer instructions are executed on a computer, the computer executes the method provided in either the first aspect or the second aspect.

[0019] In a seventh aspect, a computer program product comprising computer instructions is provided. When the computer instructions are executed on a computer, the computer executes the method provided in any one of the first aspect or the second aspect.

[0020] In the embodiment of the present application, since the n first coded data blocks are obtained by the first processing node encoding the k source data blocks according to the first generation matrix, the coding operation amount can be reduced without reducing the storage reliability, thereby ensuring the reliability of data storage and reducing the computing resource overhead. In the process of data recovery at the second node, since most of the failures of the storage nodes in the storage system are single storage node failures, the first coded data block of the single storage node fails. Based on this, according to the type and number of the failed first coded data blocks, the k non-faulty first coded data blocks are processed to finally obtain the data of the failed first coded data blocks. Since the target behavior in the second generation matrix is ​​all 1, the k non-faulty first coded data blocks are the subset of the n first coded data blocks obtained by the first processing node encoding the k source data blocks according to the first generation matrix. When the k non-faulty first coded data blocks include the third coded data block, when a single source data block fails, the faulty source data block can be obtained by XOR operation, further reducing the operation amount, thereby ensuring the reliability of data storage and reducing the computing resource overhead. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] The accompanying drawings are used to provide a further understanding of the technical solution of the present invention and constitute a part of the specification. Together with the embodiments of the present application, they are used to explain the technical solution of the present invention and do not constitute a limitation on the technical solution of the present invention.

[0022] Figure 1 A schematic diagram of the structure of a communication system provided in an embodiment of the present application;

[0023] Figure 2 A schematic diagram of the composition of a storage node set provided in an embodiment of the present application;

[0024] Figure 3 A flowchart of a data processing method provided in an embodiment of the present application;

[0025] Figure 4 A schematic diagram of the composition of a first generation matrix provided in an embodiment of the present application;

[0026] Figure 5A flowchart of another data processing method provided in an embodiment of the present application;

[0027] Figure 6 A flowchart of another data processing method provided in an embodiment of the present application;

[0028] Figure 7 A schematic diagram of the composition of a communication device provided in an embodiment of the present application;

[0029] Figure 8 A schematic diagram of another communication device provided in an embodiment of the present application;

[0030] Fig. 9 A schematic diagram of the structure of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0031] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

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

[0033] In the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.

[0034] In data storage systems, the reliability and persistence of data are usually ensured by increasing redundancy. Currently, the commonly used technologies are: multi-copy technology and erasure coding technology. Multi-copy technology refers to copying the same data n times, and then distributing and storing the n copies of data in different nodes according to a certain strategy. The nodes include but are not limited to disks, solid-state drives, servers and other devices with storage functions. These nodes are independent. When at most n-1 nodes fail and the data stored therein fails, the same data as in the failed nodes can still be obtained from the nodes that have not failed, thereby providing data protection. The advantage of using multi-copy technology is that it does not require complex calculations, the operation is simple, and the data reading and writing speed is fast because there is no complex multiplication operation. However, the storage space utilization rate of multi-copy technology is low, which will increase the storage cost exponentially for the future massive data storage. Therefore, multi-copy technology is usually used in hot data.

[0035] Erasure coding is a forward error correction technology, which is mainly used to avoid data packet loss in network transmission. In storage systems, erasure coding is usually used to improve storage reliability. Compared with multi-copy technology, erasure coding can achieve higher data reliability with less redundancy, but the encoding and decoding of erasure coding is more complicated, involving multiplication operations in finite fields, so it requires more computing resources. It is generally used for warm data or cold data in storage systems. The most widely used in storage systems is Reed-Solomon (RS) erasure code, which is a system encoding. The check data is usually obtained by finite field operations between the Vandermonde Matrix or Cauchy Matrix and the source data, which are respectively referred to as Cauchy RS and Vandermonde RS. However, under finite fields, such as GF(256), Vandermonde RS has the problem of decoding failure under certain redundancy ratios, while Cauchy RS does not have the problem of decoding failure, but when the finite field is large, the decoding complexity is high. Therefore, how to ensure the reliability of data storage and reduce computing resource overhead is a technical problem that needs to be solved urgently.

[0036] Based on this, an embodiment of the present application provides a data processing method, device and storage medium. After obtaining k source data blocks, the first processing node encodes the k source data blocks through a first generation matrix to obtain n first encoded data blocks. Since the first generation matrix has a specific structure, encoding the k source data blocks through the first generation matrix can reduce the encoding operation amount without reducing the storage reliability, thereby ensuring the reliability of data storage and reducing computing resource overhead.

[0037] The scheme of the embodiment of the present application is introduced below with reference to the accompanying drawings.

[0038] Figure 1 This is a schematic diagram of the structure of a communication system provided in an embodiment of the present application. Figure 1 As shown, the communication system 100 includes a first transmission node 110 , a network 120 , a first processing node 130 , a storage node set 140 , a second processing node 150 , a network 160 and a second transmission node 170 .

[0039] In some embodiments, the first transmission node 110 and the second transmission node 170 may be the same device or different devices. The first transmission node 110 and the second transmission node 170 may include but are not limited to: a server, a base station (BS), a mobile phone (Phone), a personal computer (PC), a laptop computer (laptop), a tablet computer (TC), an access point (AP), or other devices with the function of transmitting data and storing data.

[0040] In some embodiments, the relative position, quantity, etc. of the first transmission node 110 and the second transmission node 170 may be different in specific application scenarios. For example, with respect to relative position: the first transmission node 110 can send data through the network, and the second transmission node 170 can receive data through the network; at the same time, the second transmission node 170 can send data through the network, and the first transmission node 110 can receive data through the network; and the first transmission node 110 and the second transmission node 170 can be in the same geographical spatial position or in different geographical spatial positions. With respect to quantity: the number of the first transmission node 110 and the second transmission node 170 may include one or more, and the first transmission node 110 and the second transmission node 170 are connected via a network.

[0041] In some embodiments, network 120 and network 160 may include, but are not limited to, wired network, wireless network, cellular network, local area network, Internet, wide area network, World Wide Web or other networks for transmitting data.

[0042] In some embodiments, the first processing node 130 and the second processing node 150 can be the same processing node of the same device at different times. The first processing node 130 and the second processing node 150 can access and transfer data through a network, and process the data according to configuration items. In one example, the configuration items include, but are not limited to: the location of the access storage node, the location transferred to the storage node, the number of redundant data blocks generated by encoding the data block, the number of source data blocks, the size of the source data blocks, the number of storage nodes, the number and location of failed storage nodes, data recovery strategies, or other parameters for data processing.

[0043] In one example, data processing includes but is not limited to: encoding data blocks, allocating data blocks to storage nodes, accessing data blocks from data nodes, recovering failed data blocks, or other processing operations for reading, writing, deleting, and modifying data blocks.

[0044] In some embodiments, the execution subject of the data processing method in this embodiment may be but is not limited to: Figure 1 The first processing node 120 and the second processing node 160 in the illustrated embodiment, or those skilled in the art may choose to set corresponding execution entities according to actual application scenarios, and the embodiments of the present application do not limit them, but they should not be understood as limitations on the embodiments of the present application.

[0045] In one embodiment, the storage node set 140 includes at least n storage nodes 141, for example Figure 1 Storage nodes DN0 to storage nodes DNn-1 are shown. Each storage node 141 may include, but is not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, or other optical disk storage, magnetic cassettes, tapes, magnetic disk storage, hard disks, solid-state disks or other storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer.

[0046] Figure 2 A schematic diagram of the composition of a storage node set provided in an embodiment of the present application is shown in FIG. Figure 2As shown, the storage node set 140 includes n storage nodes 141, and one storage node 141 includes p chunk data blocks 142, where p is an integer greater than 0. Each chunk data block 142 includes w page data blocks 143, where w is an integer greater than 0. 144 represents a stripe, each stripe contains at most n page data blocks 143, and each page data block 143 is distributed in different storage nodes.

[0047] In some embodiments, the size of each Chunk data block 142 is T megabits (million bits per second, MB), where T is an integer greater than 0, and T includes at least one of the following: 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096.

[0048] In some embodiments, the size of each Page data block 143 is V kilobytes (KB), where V is an integer greater than 0, and V includes at least one of the following: 4, 8, 16, 32, 64, 128.

[0049] In some embodiments, the first k data blocks Page0 to Page1 of each stripe 144 are k-1 Store the source data block, followed by r data blocks Page k ~Page n-1 Store the check data block, where r=nk.

[0050] It should be understood that Figure 1 is an exemplary structural diagram, Figure 1 The number of devices included in the communication system shown is not limited. Figure 1 In addition to the equipment shown, Figure 1 The communication system shown may also include other devices, which is not limited to this.

[0051] like Figure 3 As shown, the embodiment of the present application provides a data processing method, which is applied to a first processing node, and the first processing node can be the above Figure 1 The first processing node 130 shown in FIG. 1 comprises the following steps:

[0052] S101. Obtain k source data blocks.

[0053] Wherein, k is a positive integer.

[0054] In some embodiments, for each source data block a among the k source data blocks i , a source data block a i Includes one or more Chunk data blocks and a source data block a iThe size of is T MB, 0≤i≤k-1, T is an integer greater than 0, and T includes at least one of the following: 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096.

[0055] As one possible example, T includes: 4, 8, 16, 32, and 64.

[0056] In some embodiments, each source data block a i Contains one or more Page data blocks, a source data block a i The size of is V KB, where V is an integer greater than 0, and the value of V includes at least one of the following: 4, 8, 16, 32, 64, 128.

[0057] As one possible example, V includes: 4, 8, 16, and 32.

[0058] It can be understood that the source data block can be selected and set according to the specific application scenario, which is not limited in the embodiments of the present application; the method of obtaining the source data block is a method well known to those skilled in the art, such as obtaining it from a file, etc., which will not be elaborated here.

[0059] S102. Encode k source data blocks according to a first generation matrix to obtain n first encoded data blocks.

[0060] The elements in the first generator matrix range from [0, q-1], where q is a prime number or a prime power.

[0061] In some embodiments, the first generation matrix G includes an identity matrix I and a second generation matrix G2, the size of the identity matrix I is k×k, the size of the second generation matrix G2 is r×k, and n=r+k, r is a positive integer. k is the number of source data blocks, the n first coded data blocks include k source data blocks and r second coded data blocks, and the r second coded data blocks are data blocks obtained by encoding the k source data blocks according to the second generation matrix.

[0062] In some embodiments, the second encoded data block may also be referred to as a check data block.

[0063] For example, Figure 4 FIG. 1 is a schematic diagram of a composition of a first generation matrix provided in an embodiment of the present application. Figure 4 , the first generation matrix 1200 is composed of the identity matrix 1201 and the second generation matrix 1202, g i,j is an element value under the Galois Field GF(q), and 0≤i≤r-1, 0≤j≤k-1, and the size q of the Galois Field is a prime number or a prime power. For example, q includes but is not limited to 2, 4, 8, 16, 32, 64, 128, 256, 512.

[0064] In some embodiments, for any k rows in the first generator matrix, any k rows are linearly independent under the Galois Field GF(q). In other words, a submatrix of size k×k formed by any k rows of the first generator matrix is ​​reversible under the Galois Field GF(q).

[0065] It should be understood that any k rows in the first generating matrix are linearly independent under the Galois field GF(q), that is, the submatrix formed by any k rows in the first generating matrix is ​​reversible, in order to ensure maximum distance separability (maximun distance separable, MDS), that is, to ensure that when any r of the n first coded data blocks fail, k source data blocks can be successfully decoded, thereby ensuring the reliability of data storage.

[0066] In some embodiments, there is a target row in the second generation matrix, and the values ​​of the elements in the target row are all 1. That is, there is a row in which the values ​​of the elements are all 1 in the second generation matrix.

[0067] In some embodiments, the check data block obtained by encoding k source coded data blocks according to the target row may be referred to as a third coded data block.

[0068] It should be understood that since approximately 95% of failures in a storage system are caused by failures (or errors) of a single storage node, the existence of rows in the second generation matrix whose element values ​​are all 1 is intended to enable rapid recovery of data lost due to a single storage node failure through an XOR operation (which is faster than multiplication). Since the amount of computation is lower than that of multiplication, the computing resource overhead is reduced.

[0069] In some embodiments, for any r columns in a merged matrix consisting of the second generator matrix and the unit matrix of size r×r, any r columns are linearly independent under the Galois Field GF(q).

[0070] As an example, a unit matrix (size r×r) is added to the right side of the second generation matrix (size r×k) to form a merge matrix of size r×n.

[0071] In some embodiments, the merge matrix may also be referred to as a check matrix.

[0072] It should be understood that the generator matrix and the check matrix can be understood as descriptions of the same coding method from different angles. The characteristics of the coding method can be described by the generator matrix or the check matrix. The generator matrix is ​​often used for encoding in storing erasure codes.

[0073] As a possible example, the value of the element with row number i and column number j in the second generation matrix is ​​determined according to the following parameters: k, i, j; wherein i and j are both non-negative integers, and 0≤i≤r-1, 0≤j≤k-1.

[0074] As another possible example, the value of the element with row number i and column number j in the second generation matrix is ​​determined according to the following formula:

[0075] g i,j =(k+j) / (k+i+j);

[0076] Among them, g i,j represents the value of the element with row number i and column number j in the second generator matrix, where i and j are both non-negative integers, and 0≤i≤r-1, 0≤j≤k-1, / represents a division operation under the Galois field GF(q), and + represents a bitwise exclusive OR operation under the Galois field GF(q).

[0077] As an example, the second generation matrix G2 may be as shown in the following formula:

[0078]

[0079] Exemplarily, taking the Galois field size q=256, the source data block k=4, and the number of second coded data blocks r=2 as an example, the second generation matrix G2 can be shown as follows:

[0080]

[0081] In some embodiments, any two rows or two columns in the second generation matrix can be exchanged, that is, the second generation matrix can be obtained by exchanging any two rows or two columns in the second generation matrix.

[0082] As a possible example, according to formula g i,j =(k+j) / (k+i+j) The second generation matrix is ​​obtained by exchanging any two rows or columns of the matrix obtained. i,j Represents the value of the element with row number i and column number j in the matrix, i and j are both non-negative integers, and 0≤i≤r-1, 0≤j≤k-1, / represents the division operation under the Galois field GF(q), and + represents the bitwise exclusive OR operation under the Galois field GF(q).

[0083] For example, the Galois field size q=256, the source data block k=4, the number of second coded data blocks r=2, and the exchange according to formula g i,j =(k+j) / (k+i+j) as an example. The second generation matrix G2 can be shown as follows:

[0084]

[0085] As another possible example, the value of the element with row number i and column number j in the second generation matrix is ​​determined according to the following formula:

[0086] g i,j =((k+j)*(k+i)) / ((k+i+j)*k);

[0087] Among them, g i,j represents the value of the element with row number i and column number j in the second generator matrix, / represents a division operation under the Galois field GF(q), + represents a bitwise exclusive OR operation under the Galois field, and * represents a multiplication operation under the Galois field GF(q).

[0088] As an example, the second generation matrix G2 may be as shown in the following formula:

[0089]

[0090] Exemplarily, taking the Galois field size q=256, the source data block k=4, and the number of second coded data blocks r=2 as an example, the second generation matrix G2 can be shown as follows:

[0091]

[0092] As a possible example, according to formula g i,j =((k+j)*(k+i)) / ((k+i+j)*k) The second generation matrix is ​​obtained by exchanging any two rows or columns of the matrix obtained. i,j Represents the value of the element with row number i and column number j in the matrix, i and j are both non-negative integers, and 0≤i≤r-1, 0≤j≤k-1, / represents the division operation under the Galois field GF(q), and + represents the bitwise exclusive OR operation under the Galois field GF(q).

[0093] For example, the Galois field size q=256, the source data block k=4, the number of second coded data blocks r=2, and the exchange according to formula g i,j =((k+j)*(k+i)) / ((k+i+j)*k) as an example. The second generation matrix G2 can be shown as follows:

[0094]

[0095] In some embodiments, the k source data blocks are encoded according to the second generation matrix to obtain n first encoded data blocks, which are determined according to the following formula:

[0096] d = [a; G2*a];

[0097] Wherein, d represents n first coded data blocks, G2 represents the first generator matrix, * represents the matrix multiplication operation under the Galois field GF(q), and a represents k source data blocks a=[a0,a1,…,a k-1 ] T d=[d0,d1,…,d n-1 ] T =[a0,a1,…,a k-1 ,h0,h1,…,h r-1 ] T ,h j represents the jth second coded data block among r second coded data blocks, j is a non-negative integer less than r, and T represents transposition.

[0098] In some embodiments, the n first coded data blocks are determined according to the following formula:

[0099] d = G*a;

[0100] Wherein, d represents n first coded data blocks, G represents the first generator matrix, * represents the matrix multiplication operation under the Galois field GF(q), a represents k source data blocks, and a=[a0,a1,…,a k-1 ] T Since the first k rows of the first generation matrix are a unit matrix, the first k first coded data blocks of the n first coded data blocks have the same value as the k source data blocks, d = [d0, d1, ..., d n-1 ] T =[a0,a1,…,a k-1 ,h0,h1,…,h r-1 ] T . Where T represents transpose, [d k ,d k+1 ,…,d n-1 ]=[h0,h1,…,h r-1 ],h j represents the jth second coded data block among the r second coded data blocks, where j is a non-negative integer less than r. For example, taking the Galois field size q=256, the source data blocks k=4, the number of second coded data blocks r=2, and each source data block containing 2 bytes as an example, the k source data blocks can be shown as follows:

[0101]

[0102] In some embodiments, in g i,j =(k+j) / (k+i+j), the n first coded data blocks can be determined according to the following relationship:

[0103]

[0104] In some embodiments, in g i,j =((k+j)*(k+i)) / ((k+i+j)*k), the n first coded data blocks can be determined according to the following relationship:

[0105]

[0106] based on Figure 3 The illustrated embodiment brings at least the following beneficial effects: after obtaining k source data blocks, the k source data blocks are encoded based on the first generation matrix. Since any k rows in the first generation matrix are linearly independent under the Galois field GF(q), it is ensured that when any r of the n first coded data blocks fail, k source data blocks can be successfully decoded, so that the storage reliability is not reduced. In addition, there is a target row in the second generation matrix. In this way, the failed source data block can be restored through a simple XOR operation, which reduces the amount of calculation, that is, reduces the computing resource overhead, thereby ensuring the reliability of data storage and reducing the computing resource overhead.

[0107] In some embodiments, Figure 5 As shown, after step S102, the method further includes the following steps:

[0108] S103. Distribute the n first coded data blocks to n different storage nodes.

[0109] In some embodiments, after obtaining n first coded data blocks, the n first coded data blocks may be distributed to n different storage nodes to distribute and store the n first coded data blocks. The n different storage nodes may be the above Figure 1 The storage node set 140 shown in FIG. 1 includes n storage nodes 141 .

[0110] In some embodiments, the n first encoded data blocks may be distributed to n different storage nodes according to at least one of the following: a continuous allocation method, an implicit link allocation method, an explicit link allocation method, and an index allocation method.

[0111] The continuous allocation method means that each first coded data block occupies a group of continuous data blocks on the storage node. The continuous allocation method supports sequential access and direct access, and has a fast speed when reading / writing data blocks.

[0112] The implicit link allocation method means that except for the last data block, each data block has a pointer to the next data block. The implicit chain allocation has high storage space utilization and is convenient for data block expansion.

[0113] The explicit link allocation method means that the pointers of each data block used to link the file are explicitly stored in a table. Each storage node establishes a data block allocation table to record the relationship between data blocks. The storage space utilization rate of explicit link allocation is high and supports random access.

[0114] The index allocation method means that an index table is established for each data block. The index table records the mapping relationship between logical blocks and physical blocks. The index allocation method allows data blocks to be discretely allocated in different storage areas of storage nodes.

[0115] It should be noted that those skilled in the art can choose to set a corresponding allocation method according to the actual application scenario, and the embodiments of the present application are not limited thereto.

[0116] It should be understood that when n first coded data blocks are distributed to n different storage nodes, when a certain storage node fails, only one of the first coded data blocks will fail. If n first coded data blocks are distributed to m different storage nodes, m is less than n, that is, more than one first coded data block is stored in a certain storage node, then when the storage node fails, more than one first coded data block may fail, reducing the reliability of the stored data. Therefore, distributing n first coded data blocks to n different storage nodes can ensure the reliability of data storage.

[0117] In some embodiments, Figure 6 As shown, the embodiment of the present application provides a data processing method, which is applied to a second processing node, and the second processing node can be the above Figure 1 The second processing node 150 shown in FIG. 1 comprises the following steps:

[0118] S201. Obtain the type and quantity of faulty first coded data blocks, and obtain k non-faulty first coded data blocks generated by a first processing node.

[0119] Among them, the k non-faulty first coded data blocks are a subset of n first coded data blocks obtained by encoding the k source data blocks by the first processing node according to the first generation matrix. The first generation matrix includes a unit matrix and a second generation matrix, the size of the unit matrix is ​​k×k, the size of the second generation matrix is ​​r×k, and n=r+k, r and k are both positive integers. For the relevant description of the first generation matrix, refer to the corresponding description in the above step S102, which will not be repeated here.

[0120] In some embodiments, the second processing node may obtain k non-faulty first encoded data blocks generated by the first processing node from the storage node through the network.

[0121] In some embodiments, the type of the faulty first coded data block includes a source data block or a second coded data block, the second coded data block is a data block obtained by encoding k source data blocks according to a second generation matrix, and the number of faulty first coded data blocks is an integer greater than or equal to 0 and less than or equal to n.

[0122] S202. Process k non-faulty first coded data blocks according to the types and number of faulty first coded data blocks to obtain data of the faulty first coded data blocks.

[0123] The data of the faulty first coded data block includes the faulty source data block and the faulty second coded data block.

[0124] It should be noted that in some cases, only the faulty source data block is what the second processing node wants to obtain, and therefore, the obtained faulty first coded data block may also only include the faulty source data block.

[0125] As a possible example, when the number of failed first coded data blocks is greater than r, data representing the first coded data blocks is lost and data recovery cannot be completed.

[0126] As another possible example, when the number of failed first coded data blocks is equal to 0, data representing the first coded data blocks is not lost, and data recovery is not required.

[0127] As another possible example, in the case where the faulty first coded data block only includes at most r second coded data blocks, that is, in the case where the faulty first coded data block only includes at most r second coded data blocks and 0 source data blocks, k non-faulty first coded data blocks are processed according to the types and number of the faulty first coded data blocks to obtain the data of the faulty first coded data block, which can be implemented as follows: according to the k source data blocks, the second generation matrix and the index identifier of the faulty second coded data block, the faulty second coded data block is obtained.

[0128] The index identifier of the faulty second coded data block is used to uniquely indicate a faulty second coded data block, for example, it may be the position of the faulty second coded data block in the n first coded data blocks.

[0129] In some embodiments, for each of the n first coded data blocks, each first coded data block has an index identifier. For example, the index identifier of the i-th first coded data block among the n first coded data blocks is i. For another example, the index identifier of the i-th first coded data block among the n first coded data blocks is i-1.

[0130] It should be understood that each first coded data block has an index identifier, so that the receiving end can know exactly where each first coded data block is located during encoding, so as to facilitate correct decoding.

[0131] As an example, assuming that the index of a faulty second coded data block is index0, 0≤index0≤r-1, then the second coded data block h corresponding to the faulty second coded data block is index0 It can be obtained according to the following formula:

[0132] h index0 =[g index0,0 ,g index0,1 ,…,g index0,k-1 ]*[a0,a1,…,a k-1 ] T ;

[0133] Where T represents the transpose of the matrix, * represents the multiplication operation under the Galois field GF(q), g represents the value of the element under the Galois field GF(q), and a i Represents the i-th source data block among k source data blocks.

[0134] As another possible example, in the case where the faulty first coded data block includes 1 source data block and at most r-1 second coded data blocks, and the faulty first coded data block does not include the third coded data block, processing k non-faulty first coded data blocks according to the type and number of the faulty first coded data blocks to obtain data of the faulty first coded data block may include the following steps:

[0135] A1. Obtain 1 source data block according to k-1 source data blocks and the third coded data block.

[0136] The third coded data block is a data block obtained by encoding k source data blocks according to the target row in the second generation matrix, and the values ​​of the elements in the target row are all 1.

[0137] As an example, one source data block may be obtained according to an XOR operation of k-1 source data blocks and the third coded data block.

[0138] It should be understood that by performing an XOR operation on the k-1 source data blocks and the third coded data block, one source data block is obtained, which can reduce the amount of multiplication operations and thus reduce the consumption of computing resources.

[0139] A2. Obtain at most r-1 faulty second coded data blocks according to the k source data blocks, the second generation matrix and the index identifiers of the faulty second coded data blocks.

[0140] As an example, assuming that the index identifier of a faulty second coded data block is index1, 0≤index1≤r-1, then the second coded data block h corresponding to the faulty second coded data block is index1 It can be obtained according to the following formula:

[0141] h index1 =[g index1,0 ,g index1,1 ,…,g index1,k-1 ]*[a0,a1,…,a k-1 ] T ;

[0142] Where T represents the transpose of the matrix, * represents the multiplication operation under the Galois field GF(q), g represents the value of the element under the Galois field GF(q), and a i Represents the i-th source data block among k source data blocks.

[0143] As another possible example, when the failed first coded data block includes at most r source data blocks, or the failed first coded data block includes 1 source data block and at most r-1 first coded data blocks that do not include the third coded data block, processing k non-faulty first coded data blocks according to the type and number of the failed first coded data blocks to obtain data of the failed first coded data block may include the following steps:

[0144] B1. Determine v fault source data blocks according to Gaussian elimination method or at least one of the following parameters.

[0145] The parameters include: a second generation matrix, kv source data blocks, v second coded data blocks and index identifiers of k non-faulty first coded data blocks; v is used to represent the number of faulty source data blocks, and v is a positive integer.

[0146] In some embodiments, Gaussian elimination is an algorithm in linear algebra that can be used to solve a system of linear equations, find the rank of a matrix, and find the inverse matrix of an invertible square matrix.

[0147] B2. Determine rv faulty second coded data blocks according to v faulty source data blocks, kv non-faulty source data blocks, the second generation matrix, and the index identifiers of the faulty second coded data blocks.

[0148] Exemplarily, assuming that the index of the failed second coded data block is index2, 0≤index2≤r-1, the index2th data block among at most rv failed second coded data blocks h index2 Determined according to the following formula:

[0149]

[0150] Among them, h index2 According to the second generation matrix and the index identifier index2 of the second coded data block of the fault, T represents transposition. As an example, It is the submatrix consisting of the index2-th row of the second generation matrix G2.

[0151] It can be seen from the above embodiment that when the number of failed storage nodes does not exceed r, that is, when the number of failed first coded data blocks does not exceed r, the second processing node reads k first coded data blocks to obtain (recover) the data in the failed storage node. Since any k rows in the first generation matrix are linearly independent, data recovery can be completed by reading any k first coded data blocks without reading more than k first coded data blocks, which can reduce the amount of calculation, thereby ensuring the reliability of data storage and reducing computing resource overhead.

[0152] The above mainly introduces the solution provided by the present application from the perspective of interaction between each node. It is understandable that each node, such as a first processing node or a second processing node, includes a hardware structure and / or software module corresponding to each function in order to realize the above functions. It should be easily appreciated by those skilled in the art that, in combination with the algorithm steps of each example described in the embodiments disclosed herein, the present invention can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present invention.

[0153] Figure 7 FIG. 1 is a schematic diagram showing the composition of a communication device provided in an embodiment of the present application. Figure 7 As shown, the communication device 30 includes an acquisition unit 301 and a processing unit 302. As a possible example, the communication device 30 also includes a sending unit 303.

[0154] The communication device 30 may be the first processing node or a chip in the first processing node. When the communication device 30 is used to implement the function of the first processing node in the above embodiment, each unit is specifically used to implement the following functions.

[0155] The acquisition unit 301 is used to acquire k source data blocks, where k is a positive integer.

[0156] The processing unit 302 is used to encode k source data blocks according to a first generation matrix to obtain n first encoded data blocks; wherein the value range of elements in the first generation matrix is ​​[0, q-1], and q is a prime number or a prime power.

[0157] In some embodiments, the first generating matrix includes a unit matrix and a second generating matrix, the size of the unit matrix is ​​k×k, the size of the second generating matrix is ​​r×k, and n=r+k, r is a positive integer; the n first coded data blocks include k source data blocks and r second coded data blocks, and the r second coded data blocks are data blocks obtained by encoding the k source data blocks according to the second generating matrix.

[0158] In some embodiments, for any k rows in the first generator matrix, any k rows are linearly independent under the Galois Field GF(q); wherein q is a prime number or a prime power.

[0159] In some embodiments, for any r columns in a merged matrix consisting of a second generator matrix and a unit matrix of size r×r, any r columns are linearly independent under the Galois Field GF(q); wherein the size of the merged matrix is ​​r×n, and q is a prime number or a prime power.

[0160] In some embodiments, there is a target row in the second generation matrix, and the values ​​of the elements in the target row are all 1.

[0161] In some embodiments, the value of the element with row number i and column number j in the second generation matrix is ​​determined according to the following parameters: k, i, j; wherein i and j are both non-negative integers, and 0≤i≤r-1, 0≤j≤k-1.

[0162] In some embodiments, the value of the element with row number i and column number j in the second generation matrix is ​​determined according to the following formula:

[0163] g i,j =(k+j) / (k+i+j);

[0164] Among them, g i,j represents the value of the element with row number i and column number j in the second generator matrix, where i and j are both non-negative integers, and 0≤i≤r-1, 0≤j≤k-1, / represents a division operation under the Galois field GF(q), + represents a bitwise exclusive OR operation under the Galois field GF(q), and q is a prime number or a prime power.

[0165] In some embodiments, the value of the element with row number i and column number j in the second generation matrix is ​​determined according to the following formula:

[0166] g i,j =((k+j)*(k+i)) / ((k+i+j)*k);

[0167] Among them, g i,j represents the value of the element with row number i and column number j in the second generator matrix, / represents the division operation under the Galois field GF(q), + represents the bitwise exclusive OR operation under the Galois field, * represents the multiplication operation under the Galois field GF(q), and q is a prime number or a prime power.

[0168] In some embodiments, any two rows or two columns in the second generator matrix may be swapped.

[0169] In some embodiments, the n first coded data blocks are determined according to the following formula:

[0170] d = G*a;

[0171] Wherein, d represents n first coded data blocks, G represents a first generating matrix, * represents a matrix multiplication operation under the Galois field GF(q), and a represents k source data blocks.

[0172] In some embodiments, the sending unit 303 is used to distribute the n first encoded data blocks to n different storage nodes according to at least one of the following: continuous allocation method, implicit link allocation method, explicit link allocation method, and index allocation method.

[0173] Figure 8 FIG. 1 is a schematic diagram showing the composition of another communication device provided in an embodiment of the present application. Figure 8 As shown, the communication device 40 includes an acquisition unit 401 and a processing unit 402 .

[0174] The communication device 40 may be the second processing node or a chip in the second processing node. When the communication device 40 is used to implement the function of the second processing node in the above embodiment, each unit is specifically used to implement the following functions.

[0175] The acquisition unit 401 is used to acquire the type and number of the faulty first coded data blocks, and acquire k non-faulty first coded data blocks generated by the first processing node; wherein the k non-faulty first coded data blocks are a subset of n first coded data blocks obtained by the first processing node encoding the k source data blocks according to the first generation matrix; the first generation matrix includes an identity matrix and a second generation matrix, the size of the identity matrix is ​​k×k, the size of the second generation matrix is ​​r×k, and n=r+k, where r and k are both positive integers;

[0176] The processing unit 402 is used to process k non-faulty first coded data blocks according to the type and number of faulty first coded data blocks to obtain data of the faulty first coded data blocks; wherein the type of the faulty first coded data block includes a source data block or a second coded data block, the second coded data block is a data block obtained by encoding k source data blocks according to a second generation matrix, the number of faulty first coded data blocks is an integer greater than or equal to 0 and less than or equal to n, and the data of the faulty first coded data block includes the faulty source data block and the faulty second coded data block.

[0177] In some embodiments, when the faulty first coded data block includes only at most r second coded data blocks, the processing unit 402 is specifically configured to obtain the faulty second coded data block according to k source data blocks, the second generation matrix and the index identifier of the faulty second coded data block.

[0178] In some embodiments, when the faulty first coded data block includes 1 source data block and at most r-1 second coded data blocks, and the faulty first coded data block does not include the third coded data block, the processing unit 402 is specifically used to: obtain 1 source data block according to k-1 source data blocks and the third coded data block; wherein the third coded data block is a data block obtained by encoding k source data blocks according to the target row in the second generation matrix, and the values ​​of the elements in the target row are all 1; obtain at most r-1 faulty second coded data blocks according to the k source data blocks, the second generation matrix and the index identifier of the faulty second coded data block.

[0179] In some embodiments, when the faulty first coded data block includes at most r source data blocks, or the faulty first coded data block includes 1 source data block and at most r-1 first coded data blocks that do not include the third coded data block, the processing unit 402 is specifically used to: determine v faulty source data blocks according to Gaussian elimination or at least one of the following parameters; the parameters include: a second generation matrix, kv source data blocks, v second coded data blocks, and index identifiers of k non-faulty first coded data blocks; v is used to represent the number of faulty source data blocks, v is a positive integer, and the third coded data block is a data block obtained by encoding k source data blocks according to a target row in the second generation matrix, and the values ​​of the elements in the target row are all 1; determine rv faulty second coded data blocks according to the v faulty source data blocks, kv non-faulty source data blocks, the second generation matrix, and the index identifiers of the faulty second coded data blocks.

[0180] It should be noted that Figure 7 and Figure 8 The units in the system may also be referred to as modules, for example, the sending unit may be referred to as a sending module. Figure 7 and Figure 8 In the illustrated embodiment, the names of the various units may not be the names shown in the figure. For example, the sending unit may also be called a communication unit, and the acquiring unit may also be called a communication unit.

[0181] Figure 7 and Figure 8 If each unit in the embodiment is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art or all or 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.) or a processor (processor) to perform all or part of the steps of the methods of each embodiment of the present application. The storage medium for storing computer software products includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program codes.

[0182] When the communication device 30 or the communication device 40 implements the functions of the integrated modules in the form of hardware, the present application provides a schematic diagram of the structure of the communication device. Fig. 9 As shown, the communication device 50 includes: a processor 502 , a communication interface 503 , and a bus 504 . Optionally, the communication device 50 may further include a memory 501 .

[0183] The processor 502 may be a processor that implements or executes various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of the present application. The processor 502 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array, or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of the present application. The processor 502 may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.

[0184] The communication interface 503 is used to connect with other devices via a communication network, such as Ethernet, wireless access network, wireless local area network (WLAN), etc.

[0185] The memory 501 may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program codes in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto.

[0186] As a possible implementation, the memory 501 may exist independently of the processor 502, and the memory 501 may be connected to the processor 502 via a bus 504 for storing instructions or program codes. When the processor 502 calls and executes the instructions or program codes stored in the memory 501, the data processing method provided in the embodiment of the present application can be implemented.

[0187] In another possible implementation, the memory 501 may also be integrated with the processor 502 .

[0188] The bus 504 may be an extended industry standard architecture (EISA) bus, etc. The bus 504 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig. 9 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0189] Through the description of the above implementation methods, technical personnel in the relevant field can clearly understand that for the convenience and conciseness of the description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the base station or terminal is divided into different functional modules to complete all or part of the functions described above.

[0190] The embodiment of the present application also provides a computer-readable storage medium. All or part of the processes in the above method embodiments can be completed by computer instructions to instruct the relevant hardware, and the program can be stored in the above computer-readable storage medium. When the program is executed, it may include the processes of the above method embodiments. The computer-readable storage medium can be the memory or memory of any of the above embodiments. The above computer-readable storage medium can also be an external storage device of the above base station or terminal, such as a plug-in hard disk, a smart memory card (smart media card, SMC), a secure digital (secure digital, SD) card, a flash card (flash card), etc. equipped on the above base station or terminal. Further, the above computer-readable storage medium can also include both the internal storage unit of the above base station or terminal and an external storage device. The above computer-readable storage medium is used to store the above computer program and other programs and data required by the above base station or terminal. The above computer-readable storage medium can also be used to temporarily store data that has been output or is to be output.

[0191] An embodiment of the present application also provides a computer program product, which includes a computer program. When the computer program product is run on a computer, the computer is enabled to execute any one of the data processing methods provided in the above embodiments.

[0192] Although the present application is described herein in conjunction with various embodiments, in the process of implementing the claimed application, those skilled in the art may understand and implement other changes to the disclosed embodiments by viewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "one" or "an" does not exclude multiple situations. A single processor or other unit can implement several functions listed in the claims. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.

[0193] Although the present application has been described in conjunction with specific features and embodiments thereof, it is obvious that various modifications and combinations may be made thereto without departing from the spirit and scope of the present application. Accordingly, this specification and the drawings are merely exemplary illustrations of the present application as defined by the appended claims, and are deemed to have covered any and all modifications, variations, combinations or equivalents within the scope of the present application. Obviously, those skilled in the art may make various modifications and variations to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.

[0194] The above are only specific implementations of the present application, but the protection scope of the present application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the present application should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A data processing method, It is characterized in that Applied to a first processing node, the method comprises: Get k source data blocks, where k is a positive integer; The k source data blocks are encoded according to a first generation matrix to obtain n first encoded data blocks; wherein the value range of the elements in the first generation matrix is ​​[0, q-1], and q is a prime number or a prime power.

2. The method according to claim 1, It is characterized in that The first generator matrix includes a unit matrix and a second generator matrix, the unit matrix has a size of k×k, the second generator matrix has a size of r×k, and n=r+k, where r is a positive integer; The n first coded data blocks include k source data blocks and r second coded data blocks, and the r second coded data blocks are data blocks obtained by encoding the k source data blocks according to the second generation matrix.

3. The method according to claim 1, It is characterized in that For any k rows in the first generator matrix, the k rows are linearly independent under the Galois Field GF(q); wherein q is a prime number or a prime power.

4. The method according to claim 2, It is characterized in that For any r columns in the merged matrix consisting of the second generator matrix and the unit matrix of size r×r, the any r columns are linearly independent under the Galois Field GF(q); The size of the merge matrix is ​​r×n, and q is a prime number or a prime power.

5. The method according to claim 2, It is characterized in that There is a target row in the second generation matrix, and the values ​​of the elements in the target row are all 1.

6. The method according to claim 2, It is characterized in that The value of the element with row number i and column number j in the second generation matrix is ​​determined according to the following parameters: k, i, j; wherein i and j are both non-negative integers, and 0≤i≤r-1, 0≤j≤k-1.

7. The method according to claim 6, It is characterized in that The value of the element with row number i and column number j in the second generator matrix is ​​determined according to the following formula: g i,j =(k+j) / (k+i+j); Among them, g i,j represents the value of the element with row number i and column number j in the second generator matrix, where i and j are both non-negative integers, and 0≤i≤r-1, 0≤j≤k-1, / represents a division operation under the Galois field GF(q), + represents a bitwise exclusive OR operation under the Galois field GF(q), and q is a prime number or a prime power.

8. The method according to claim 6, It is characterized in that The value of the element with row number i and column number j in the second generation matrix is ​​determined according to the following formula: g i,j =((k+j)*(k+i)) / ((k+i+j)*k); Among them, g i,j represents the value of the element with row number i and column number j in the second generator matrix, / represents the division operation under the Galois field GF(q), + represents the bitwise exclusive OR operation under the Galois field, * represents the multiplication operation under the Galois field GF(q), and q is a prime number or a prime power.

9. The method according to claim 7 or 8, It is characterized in that Any two rows or two columns in the second generator matrix can be exchanged.

10. The method according to claim 1, It is characterized in that The n first coded data blocks are determined according to the following formula: d = G*a; Wherein, d represents the n first coded data blocks, G represents the first generating matrix, * represents the matrix multiplication operation under the Galois field GF(q), and a represents the k source data blocks.

11. The method according to any one of claims 1 to 10, It is characterized in that The method further comprises: Distributing the n first coded data blocks to n different storage nodes according to at least one of the following: Continuous allocation method, Implicit link assignment method, Display link allocation method, Index allocation method.

12. A data processing method, It is characterized in that Applied to the second processing node, the method comprises: Obtaining the type and number of faulty first coded data blocks, and obtaining k non-faulty first coded data blocks generated by the first processing node; wherein the k non-faulty first coded data blocks are a subset of n first coded data blocks obtained by the first processing node encoding k source data blocks according to a first generation matrix; the first generation matrix includes a unit matrix and a second generation matrix, the size of the unit matrix is ​​k×k, the size of the second generation matrix is ​​r×k, and n=r+k, where r and k are both positive integers; According to the type and number of the faulty first coded data blocks, the k non-faulty first coded data blocks are processed to obtain data of the faulty first coded data blocks; wherein the type of the faulty first coded data blocks includes a source data block or a second coded data block, the second coded data block is a data block obtained by encoding the k source data blocks according to the second generating matrix, the number of the faulty first coded data blocks is an integer greater than or equal to 0 and less than or equal to n, and the data of the faulty first coded data blocks includes the faulty source data block and the faulty second coded data block.

13. The method according to claim 12, It is characterized in that When the faulty first coded data block includes only at most r second coded data blocks, the k non-faulty first coded data blocks are processed according to the type and quantity of the faulty first coded data blocks to obtain data of the faulty first coded data blocks, including: The faulty second coded data block is obtained according to the k source data blocks, the second generation matrix and the index identifier of the faulty second coded data block.

14. The method according to claim 12, It is characterized in that When the faulty first coded data block includes 1 source data block and at most r-1 second coded data blocks, and the faulty first coded data block does not include a third coded data block, the k non-faulty first coded data blocks are processed according to the type and quantity of the faulty first coded data blocks to obtain data of the faulty first coded data block, including: According to k-1 source data blocks and the third coded data block, the one source data block is obtained; wherein the third coded data block is a data block obtained by encoding the k source data blocks according to a target row in the second generation matrix, and the values ​​of the elements in the target row are all 1; According to the k source data blocks, the second generation matrix and the index identifiers of the faulty second coded data blocks, at most r-1 faulty second coded data blocks are obtained.

15. The method according to claim 12, It is characterized in that When the faulty first coded data block includes at most r source data blocks, or the faulty first coded data block includes 1 source data block and at most r-1 first coded data blocks that do not include the third coded data block, the k non-faulty first coded data blocks are processed according to the type and number of the faulty first coded data blocks to obtain data of the faulty first coded data block, including: Determine v faulty source data blocks according to Gaussian elimination method or at least one of the following parameters; the parameters include: the second generation matrix, kv source data blocks, v second coded data blocks and index identifiers of k non-faulty first coded data blocks; v is used to represent the number of the faulty source data blocks, v is a positive integer, the third coded data block is a data block obtained by encoding the k source data blocks according to the target row in the second generation matrix, and the values ​​of the elements in the target row are all 1; According to the v faulty source data blocks, kv non-faulty source data blocks, the second generation matrix and the index identifiers of the faulty second coded data blocks, rv faulty second coded data blocks are determined.

16. A communication device, It is characterized in that include: Processor and memory; The memory stores instructions executable by the processor; When the processor is configured to execute the instructions, the communication device implements the method according to any one of claims 1 to 15.

17. A computer-readable storage medium, It is characterized in that The computer-readable storage medium comprises computer instructions, which, when executed on a computer, cause the computer to perform the method according to any one of claims 1 to 15.

Citation Information

Cited By

  • Data processing method, apparatus and storage medium

    EP4708704A1

  • Data processing method, apparatus and storage medium

    WO2024250722A1