Data processing method, medium, computing device, and program product
By writing data from the processor's external storage unit to the internal storage unit in one go for multiple data processing operations, the problem of repeated data reading and writing is solved, and more efficient data processing is achieved.
Patent Information
- Application Number
- PCT/IB2025/052982
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-05-29
- Filing Date
- 2025-03-21
- Publication Date
- 2025-12-04
AI Technical Summary
In the prior art, repeated reading and writing of data between the processor's external and internal storage units leads to increased data consumption, especially during multiple data processing operations, resulting in a waste of memory bandwidth and processor resources.
By writing the raw data from the processor's external storage unit to the internal storage unit at once, performing multiple data processing operations internally, and then writing the processing results back to the external storage unit, the repetitive data read and write process is reduced.
It effectively reduces repeated reading and writing of data, saves memory bandwidth and processor resources, and improves the efficiency and flexibility of data processing.
Smart Images

Figure IB2025052982_04122025_PF_FP_ABST
Abstract
Description
[0001] Data Processing Method, Medium, Computing Device, and Program Product This disclosure claims priority to Chinese Patent Application No. 202410683011.8, filed on May 29, 2024, entitled "Data Processing Method, Medium, Computing Device, and Program Product," the entire contents of which are incorporated herein by reference. Technical Field This disclosure relates to the field of computer technology, and more particularly to data processing methods, media, computing devices, and program products. Background Art In related technologies, data is typically stored in the external storage unit of a processor. When data needs to be processed by the processor, the data is first written from the processor's external storage unit to the processor's internal storage unit, and then the processor retrieves the data from the internal storage unit and performs data processing. In some cases, multiple data processing operations need to be performed on the same data. Each time a data processing operation is performed, the data is written from the processor's external storage unit to the processor's internal storage unit. Therefore, during the aforementioned multiple data processing operations, the same data will be written multiple times from the processor's external storage unit to the processor's internal storage unit, resulting in repeated data reads and writes. In a first aspect, embodiments of this disclosure provide a data processing method, the method comprising: obtaining raw data from the processor's external storage unit; writing the raw data into the processor's internal storage unit; performing multiple data processing operations on the raw data stored in the internal storage unit to obtain multiple processing results of the raw data; and writing the multiple processing results of the raw data from the internal storage unit to the external storage unit. In a second aspect, embodiments of this disclosure provide a data processing method applied to a cloud server, the cloud server including a cloud disk and a cloud processor, the registers of the cloud disk and the cloud processor being connected via an I / O stack; the method comprising: obtaining raw data from the cloud disk; writing the raw data into the register via the I / O stack; performing multiple data processing operations on the raw data stored in the register to obtain multiple processing results of the raw data; and writing the multiple processing results of the raw data from the register into the cloud disk via the I / O stack. Thirdly, embodiments of this disclosure provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the methods described in any embodiment of this disclosure. Fourthly, embodiments of this disclosure provide a computing device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the program, implements the methods described in any embodiment of this disclosure.Fifthly, embodiments of this disclosure provide a computer program product, including a computer program that, when executed by a processor, implements the methods described in any embodiment of this disclosure. In embodiments of this disclosure, after obtaining raw data from the processor's external storage unit, the raw data is written to the processor's internal storage unit and subjected to multiple data processing steps to obtain multiple processing results of the raw data. Then, the multiple processing results of the raw data are written from the processor's internal storage unit to the processor's external storage unit. The above process only requires performing the operation of writing the raw data from the processor's external storage unit to the processor's internal storage unit once to obtain multiple processing results of the raw data, eliminating the need to write the same raw data from the processor's external storage unit to the processor's internal storage unit multiple times, thus reducing redundant data read / write operations. It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate embodiments consistent with this disclosure and, together with the description, serve to illustrate the technical solutions of this disclosure. Figure 1A is a schematic diagram of the structure of a computing device according to an embodiment of the present disclosure; Figure 1B is a schematic diagram of the structure of a computing device according to another embodiment of the present disclosure; Figure 2 is a schematic diagram of a data read / write process in the related art; Figure 3 is a flowchart of a data processing method according to an embodiment of the present disclosure; Figure 4 is a schematic diagram of erasure coding, CRC check, and data index calculation processes according to an embodiment of the present disclosure; Figure 5 is a flowchart of a data processing method according to another embodiment of the present disclosure. Detailed Description Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of the present disclosure as detailed in the appended claims. The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. The singular forms “a,” “the,” and “the” used in this disclosure and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term "and / or" as used herein refers to and includes any or all possible combinations of one or more of the associated listed items. Additionally, the term "at least one" as used herein means any combination of at least two of any one or more of a plurality. It should be understood that although the terms first, second, third, etc., may be used in this disclosure to describe various information, such information should not be limited to these terms.These terms are used only to distinguish information of the same type from one another. For example, without departing from the scope of this disclosure, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to a determination." To enable those skilled in the art to better understand the technical solutions in the embodiments of this disclosure, and to make the above-mentioned objects, features, and advantages of the embodiments of this disclosure more apparent, the technical solutions in the embodiments of this disclosure will be further described in detail below with reference to the accompanying drawings. Figure 1A shows a schematic diagram of the structure of a computing device 10. The computing device 10 includes a processor 100, a memory 102, and a computer program stored in the memory 102 and executable on the processor. Figure 1B illustrates a hardware structure diagram of a more specific computing device 10 provided in an embodiment of this disclosure. The computing device 10 may include: a processor 100, a memory 102, an input / output interface 104, a communication interface 106, and a bus 108. The processor 100, memory 102, input / output interface 104, communication interface 106, and bus 108 establish communication connections between them within the computing device 10. The processor 100 may be implemented using a general-purpose central processing unit (CPU), microprocessor, application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute computer programs. The processor 100 may include a storage unit 100a, which may include, but is not limited to, registers or caches. Storage unit 100a can be directly integrated into processor 100. Since storage unit 100a is an internal storage unit of processor 100, it can also be referred to as the internal storage unit of processor 100. Processor 100 may also include a graphics card, such as an Nvidia Titan X graphics card or a 1080Ti graphics card. Memory 102 can be RAM, which can be implemented as read-only memory (ROM), random access memory (RAM), static storage device, dynamic storage device, etc. Alternatively, memory 102 can also be a disk, optical disk, or memory card.The memory 102 is an external storage medium of the processor 100. It is not directly integrated into the processor 100, but is connected to the processor 100 through the system bus 108. Therefore, the memory 102 can also be referred to as the external storage unit of the processor 100. The memory 102 can store the operating system and other applications. When the technical solutions provided in the embodiments of this disclosure are implemented through software or firmware, the relevant program code is stored in the memory 102 and is called and executed by the processor 100. The input / output interface 104 is used to connect the input module / output module to realize information input and output. The input module / output module can be configured as a component in the device (not shown in the figure), or it can be externally connected to the device to provide corresponding functions. Among them, the input module may include a keyboard, mouse, touch screen, microphone, various sensors, etc., and the output module may include a display, speaker, vibrator, indicator light, etc. The communication interface 106 is used to connect the communication module (not shown in the figure) to realize communication interaction between the computing device 10 and other devices. The communication module can communicate via wired means (e.g., USB, Ethernet cable, etc.) or wireless means (e.g., mobile network, Wi-Fi, Bluetooth, etc.). The bus 108 includes a pathway for transmitting information between the various components of the computing device 10 (e.g., processor 100, memory 102, input / output interface 104, and communication interface 106). It should be noted that although the computing device 10 described above only shows the processor 100, memory 102, input / output interface 104, communication interface 106, and bus 108, in specific implementations, the computing device 10 may also include other components necessary for normal operation. Furthermore, those skilled in the art will understand that the computing device 10 may only include the components necessary for implementing the embodiments of this disclosure, and not necessarily all the components shown in the figures. Since the internal storage space of the processor 100 is limited, data is typically first stored in the external storage space of the processor 100. When data needs to be processed by the processor 100, the data is first written from the processor 100's external storage unit to the processor 100's internal storage unit. Then, the processor 100 retrieves the data from the internal storage unit and performs data processing. Sometimes, the processor 100 may need to perform multiple data processing operations on the same data. Since each data processing operation is generally considered independent, data is written from the processor 100's external storage unit to the processor 100's internal storage unit after each data processing operation is executed.When multiple data processing operations target the same data, the aforementioned data read / write process can lead to the same data being written multiple times from the external storage unit of the processor 100 to the internal storage unit of the processor 100, resulting in duplicate data read / write. Figure 2 illustrates a schematic diagram of the data read / write process in the relevant technology, using a specific application scenario. In this application scenario, the multiple data processing operations include data encoding, generating checksum data, and generating data pointers. The data is divided into multiple data blocks, denoted as {D1, D2, ..., Dk}, where k is a positive integer greater than 1. These multiple data blocks {D1, D2, ..., Dk} are stored in memory. When processing data blocks {Di, D2, …, Dk}, the data blocks {Di, D2, …, Dk} are first read from memory and written to the internal storage space (such as registers or cache) of processor 100 via memory channels. Data encoding is then performed to obtain one or more encoded blocks, denoted as {Pi, …, PJ}, and these encoded blocks are written to memory. Then, the data blocks {Di, D2, …, Dk} are read from memory again. k Simultaneously, it can read encoded blocks {Pl, …, Pr} from memory, and write data blocks {Dl, D2, …, Dk} and encoded blocks {Pi, …, PJ} into the internal storage space of processor 100 through memory channels to generate check data. This yields check data blocks corresponding to each data block {Di, Di, …, Dk} and each encoded block {Pi, …, PJ}, denoted as {CRC(Di), CRC(D2), …, CRC(Dk)}. k), CRC(Pi), …, CRC(Pr)}. Then, read the data blocks {Di, D2, …, Dk} from memory again, and at the same time, read the encoded blocks {Pl, …, Pr} from memory. Write the data blocks {Di, D2, …, Dk} and the encoded blocks {Pi, …, Pj} into the internal storage space of the processor 100 through the memory channel to generate data pointers, and obtain the data pointers corresponding to each data block {Di, D2, …, Dk} and each encoded block {Pi, …, Pr}, respectively, denoted as {FP(D1), FP(D2), …, FP(Dk), FP(P1), …, FP(Pr)}. As can be seen, in the above process, when performing data encoding, generating verification data, and generating data index operations, data blocks {Di, D2, …, Dk} are read, resulting in repeated data read / write operations, which increases memory bandwidth consumption and processor storage and processing resource consumption. It should be noted that the above application scenarios are not intended to limit this disclosure. The solution of this disclosure can also be applied to other application scenarios. In addition to the data encoding, verification data generation, and data index generation operations in the above application scenarios, the multiple data processing operations in the embodiments of this disclosure can also include other types of data processing operations, such as data encryption, data interleaving, and data desensitization, which will not be listed here. Besides data processing at the data block level, the embodiments of this disclosure can also perform data processing at the level of a single original data item or at the level of a sub-block within a data block. For ease of explanation, the following mainly uses data encoding, verification data generation, and data index generation operations as examples to illustrate the solution of the embodiments of this disclosure. Based on this, the present disclosure provides a data processing scheme that only requires one operation to write the original data from the external storage unit of the processor 100 to the internal storage unit of the processor 100. This allows for multiple data processing operations on the original data and the acquisition of multiple processing results, eliminating the need to repeatedly write the same original data from the external storage unit of the processor 100 to the internal storage unit, thus reducing redundant data reads and writes. The specific implementation of the embodiments of the present disclosure will be illustrated below with reference to the accompanying drawings.Referring to Figure 3, this embodiment of the present disclosure provides a data processing method, the method comprising: Step S12: obtaining raw data from the external storage unit of the processor 100; Step S14: writing the raw data into the internal storage unit of the processor 100; Step S16: performing multiple data processing operations on the raw data stored in the internal storage unit of the processor 100 to obtain multiple processing results of the raw data; Step S18: writing the multiple processing results of the raw data from the internal storage unit of the processor 100 into the external storage unit of the processor 100. In step S12, the external storage unit of the processor 100 may be memory, disk, optical disk, or memory card, etc. For ease of explanation, the following description uses memory as an example of the external storage unit of the processor 100. The memory can store raw data. In some embodiments, the raw data includes multiple data blocks, which are respectively denoted as {Di, D2, …, D}. k} o Furthermore, each data block can include multiple sub-blocks, where the multiple sub-blocks in the i-th data block Di (iWiWk, i is an integer) are denoted as {SH, S}. 12 , …, S iq}, where q is a positive integer greater than 1. In step S14, data can be written to the internal storage unit of the processor 100 at the granularity of the original data. For example, at least one piece of original data can be written to the internal storage unit of the processor 100 at once. Alternatively, data can be written to the internal storage unit of the processor 100 at a smaller granularity. For example, if the original data includes multiple data blocks, and each data block includes multiple sub-blocks, the sub-blocks included in at least one data block can be written to the internal storage unit of the processor 100 at once. By dividing the original data into smaller granularities, the latency of data reading and writing can be reduced, thereby improving the efficiency of data processing and allowing for more flexible data operations. Specifically, at least one data block can be determined from multiple data blocks {Di, D2, …, Dk}, and the current sub-block can be determined from each of the at least one data block. For example, if the number of at least one data block is 1, data block Di can be determined from multiple data blocks {Di, D2, ..., Dk}, then data block D2 can be determined from the same multiple data blocks, and so on. When the determined at least one data block is data block Di, the first sub-block SH in data block Di can be determined as the current sub-block and processed accordingly. After the processing of the first sub-block SH in data block Di is completed, the second sub-block Sn in data block Di is determined as the current sub-block and processed accordingly, and so on. When the determined at least one data block is another type of data block, the method for determining the current sub-block is similar to the above process and will not be repeated here. For example, if the number of at least two data blocks is 2, data blocks Di and D2 can be determined from multiple data blocks {Di, D2, ..., Dk}, and then data blocks D3 and D4 can be determined from the same multiple data blocks {Di, D2, ..., Dk}, and so on. When at least one data block is determined, including data blocks Di and D2, the first sub-block SH in data block Di and the first sub-block S21 in data block D2 can be determined as the current sub-blocks and processed accordingly. After the processing of the first sub-block Su in data block Di and the first sub-block S21 in data block D2 is completed, the second sub-block S12 in data block D1 and the second sub-block S22 in data block D2 can be determined as the current sub-blocks and processed accordingly, and so on. When at least one data block is identified as another data block, such as data block D3 and data block D4, or data block D5 and data block D6, the method for determining the current sub-block is similar to the process described above, and will not be repeated here. It should be understood that the above is merely an illustrative example.In other examples, the number of at least one data block may be greater than two, which will not be listed here. After determining the current sub-blocks included in at least one of the multiple data blocks {Di, D2, …, Dk}, each current sub-block can be written to the internal storage unit of the processor 100. When the number of current sub-blocks is greater than one, multiple current sub-blocks can be written to the internal storage unit of the processor 100 simultaneously through a single write operation, so that multiple current sub-blocks can be processed in parallel in the internal storage unit of the processor 100; alternatively, the current sub-blocks in one data block can be written one at a time, and after the current sub-blocks in the current data block are written and processed, the current sub-blocks in the next data block are written. For example, when the current sub-block includes the first sub-block Su in data block D1 and the first sub-block S21 in data block D2, sub-block Su and sub-block S21 can be written to the internal storage unit of processor 100 simultaneously. Alternatively, sub-block Su can be written to the internal storage unit of processor 100 for processing first, and then sub-block S21 can be written to the internal storage unit of processor 100 for processing after sub-block Su has been processed. In step S16, multiple data processing operations can be performed on the original data to obtain multiple processing results of the original data. In some embodiments, the multiple data processing operations may include data encoding operations, operations to generate check data, and operations to generate data pointers. The multiple processing results of the original data may include the processing results corresponding to the data encoding operations, the processing results corresponding to the check data generation operations, and the processing results corresponding to the data pointer generation operations. In an embodiment where at least one data block is determined from multiple data blocks {Di, D2, …, Dk}, and a current sub-block is determined from each of the at least one data block, multiple current processing results of the original data stored in the internal storage unit of the processor 100 can be incrementally updated based on the current sub-blocks included in each of the at least one data block. Each of the multiple current processing results corresponds to multiple data processing operations, and any one current processing result is obtained by performing the corresponding data processing operation on the preceding sub-block of the current sub-block included in each of the at least one data block. This embodiment obtains multiple processing results of the original data through incremental updates. Thus, each time only one set of current sub-blocks needs to be written to the internal storage unit of the processor 100, and multiple data processing operations are performed on the currently written current sub-blocks. This reduces the occupation of the internal storage unit of the processor 100 during data processing and avoids the situation where the internal storage unit of the processor 100 is insufficient to accommodate the original data when the amount of original data is large, leading to data processing failure.In some embodiments, the multiple data processing operations may include data processing operations for processing sub-blocks within a single data block, and data processing operations for processing sub-blocks across multiple data blocks. For example, when the multiple data processing operations include a data encoding operation, a checksum generation operation, and a data index generation operation, the checksum generation operation and the data index generation operation can both be data processing operations for processing sub-blocks within a single data block, while the data encoding operation can be a data processing operation for processing sub-blocks across multiple data blocks. The multiple current processing results of the original data may include the current processing result corresponding to the data encoding operation, the current processing result corresponding to the checksum generation operation, and the current processing result corresponding to the data index generation operation. The multiple current processing results of the original data can be stored in the internal storage unit of the processor 100. In some embodiments, the internal storage unit of the memory can be divided into multiple storage areas corresponding to the multiple data processing operations, each storage area used to store the current processing result of the corresponding data processing operation. An area can also be divided in the internal storage unit of the processor 100 for storing the current sub-block. In the example where the internal storage unit of processor 100 is a register, each of the aforementioned multiple storage areas may include a set of registers, and the number of registers in each set is greater than or equal to 10. Any current processing result of the original data can be obtained by performing corresponding data processing operations on the preceding sub-blocks of the current sub-blocks included in the aforementioned at least one data block. For example, by performing a data encoding operation on the preceding sub-blocks of the current sub-blocks included in the aforementioned at least one data block, the current processing result corresponding to the data encoding operation of the original data can be obtained; by performing a checksum generation operation on the preceding sub-blocks of the current sub-blocks included in the aforementioned at least one data block, the current processing result corresponding to the checksum generation operation of the original data can be obtained. Here, the preceding sub-blocks of the current sub-block in any data block include all sub-blocks in that data block that precede the current sub-block.For example, when the current sub-block includes the second sub-block S12 in data block D1, the preceding sub-block of the current sub-block S12 is the first sub-block Sn in data block Di; when the current sub-block includes the third sub-block SB in data block Di, the preceding sub-block of the current sub-block S13 includes the first sub-block Su and the second sub-block S12 in data block Di; when the current sub-block includes the second sub-block S12 in data block D1 and the second sub-block S22 in data block D2, the preceding sub-block of the current sub-block S12 includes the first sub-block S11 in data block D1, and the preceding sub-block of the current sub-block S22 includes the first sub-block S21 in data block D2; when the current sub-block includes the third sub-block S13 in data block D1 and the third sub-block S23 in data block D2, the preceding sub-block of the current sub-block S13 includes the first sub-block S1 in data block D1. S11 and the second sub-block S12 in data block D1, the preceding sub-blocks of the current sub-block S23 include the first sub-block S21 and the second sub-block S22 in data block D2. Based on the current sub-blocks included in at least one data block, multiple current processing results of the original data are incrementally updated. This can be done by performing operations (such as arithmetic or logical operations) on the current processing result with the current processing result of the current sub-blocks included in at least one data block, or the processing results of the current sub-blocks included in at least one data block, to obtain the incrementally updated current processing result. Alternatively, it can be done by appending the current sub-blocks included in at least one data block, or the processing results of the current sub-blocks included in at least one data block, to the current processing result. For example, if the current processing result includes M1 bits and the current sub-blocks included in at least one data block include M2 bits, appending the current sub-blocks included in at least one data block to the current processing result yields M1 + M2 bits of data, which is the incrementally updated current processing result. The following examples illustrate two incremental update methods: computational processing and data appending. In an embodiment using computational processing for incremental updates, the current sub-block may include a single sub-block within a single data block. The aforementioned multiple data processing operations may include a first data processing operation, which is used to process the sub-block within the single data block.Assuming the current sub-block is the j-th sub-block of the i-th data block {Di, D2, …, Dk}, a first data processing operation can be performed on the j-th sub-block of the i-th data block and the first current processing result after the (j-1)-th incremental update of the i-th data block stored in the internal storage unit of the processor 100, to obtain the first current processing result after the j-th incremental update of the i-th data block, and then stored in the internal storage unit of the processor 100. Here, j is a positive integer greater than or equal to 2, and i is a positive integer. For example, when j=2, the current sub-block is the 2-th sub-block of the i-th data block. A first data processing operation can be performed on the 2-th data block of the i-th data block and the first current processing result after the 1-th incremental update of the i-th data block to obtain the first current processing result after the 2-th incremental update of the i-th data block. Similarly, when j=3, the current sub-block is the 3rd sub-block in the i-th data block. First data processing can be performed on the 3rd data block in the i-th data block and the first current processing result after the second incremental update of the i-th data block to obtain the first current processing result after the third incremental update of the i-th data block. And so on. Specifically, when j=1, the current sub-block is the 1st sub-block in the i-th data block. First data processing can be performed on the 1st sub-block in the i-th data block and a null value or a specified initial value (e.g., all 0s or all 1s) to obtain the first current processing result after the first incremental update of the i-th data block. This embodiment uses sub-blocks as the granularity. Each time data processing is performed, a single sub-block in a single data block is read from the external storage unit of the processor 100 as the current sub-block, and multiple current processing results of the original data are incrementally updated based on the current sub-block until the complete processing result of the data block containing the current sub-block is obtained. The above process only requires one write operation from the external storage unit of the processor 100 to the internal storage unit of the processor 100 for each sub-block in a single data block to obtain the processing results corresponding to multiple data processing operations, reducing redundant data read and write. Furthermore, if the j-th sub-block is the last sub-block in the i-th data block, after obtaining the first current processing result after the j-th incremental update of the i-th data block, the first current processing result after the j-th incremental update of the i-th data block can be output. At the same time, the current sub-block can be determined from the next data block (i.e., the (i+1)-th data block) of the i-th data block among multiple data blocks {Di, D2, …, Dk}, and the first current processing result of the (i+1)-th data block can be updated.For details on the specific update method, please refer to the incremental update method for the first current processing result of the i-th data block in the aforementioned embodiments, which will not be repeated here. In a specific application scenario, the first data processing operation is the operation of obtaining the data finger print (FP). The first current processing result after the j-th incremental update of the i-th data block is the data finger print after the j-th incremental update of the i-th data block. The operation of obtaining the data finger print can be implemented by XOR processing or other processing methods. The specific process of updating the first current processing result of the i-th data block is as follows: First, obtain the first sub-block in the i-th data block, and XOR the first sub-block in the i-th data block with a set of null values to obtain the data finger print after the first incremental update of the i-th data block. Then, obtain the second sub-block in the i-th data block, and XOR the second sub-block in the i-th data block with the data finger print after the first incremental update of the i-th data block to update the data finger print after the second incremental update of the i-th data block. Then, the third sub-block in the i-th data block is obtained, and the third sub-block in the i-th data block is XORed with the data index after the second incremental update of the i-th data block to obtain the data index after the third incremental update of the i-th data block. This process is repeated. By performing the operation of obtaining the data index, the security and integrity of the data can be improved, reducing the risk of the original data being maliciously tampered with or forged. In another specific application scenario, the first data processing operation is Cyclic Redundancy Check (CRC). CRC uses a hash function to generate a short, fixed-length checksum for the original data, mainly used to detect or verify errors that may occur after data transmission or storage. It is understood that this is merely an illustrative example and is not intended to limit this disclosure. In other examples, the first data processing operation can also be other operations capable of generating checksum data. The first current processing result after the j-th incremental update of the i-th data block is the checksum data after the j-th incremental update of the i-th data block. The specific process for updating the first current processing result of the i-th data block is as follows: First, obtain the first sub-block in the i-th data block, and perform cyclic redundancy check on the first sub-block to obtain the check data after the first incremental update of the i-th data block. Then, obtain the second sub-block in the i-th data block, and perform XOR operation between the second sub-block and the check data after the first incremental update of the i-th data block to update the check data after the second incremental update of the i-th data block.Then, the third sub-block in the i-th data block is obtained, and the third sub-block in the i-th data block is XORed with the check data after the second incremental update of the i-th data block to obtain the check data after the third incremental update of the i-th data block. This process is repeated. By performing cyclic redundancy check on the data, it is possible to detect whether errors or corruption have occurred during data transmission or storage, thereby ensuring data integrity. The above embodiment illustrates the case where the current sub-block includes a single sub-block within a single data block in an embodiment using an arithmetic processing method for incremental updates. In other embodiments using an arithmetic processing method for incremental updates, the current sub-block may also include single sub-blocks comprised of multiple data blocks. For example, at least one data block may include each of multiple data blocks {Di, Di, …, Dk}. First, the first sub-block in data block Di can be determined as the current sub-block. Data processing is performed on the first sub-block in data block Di to obtain the current processing result after the first incremental update. Then, the first sub-block in data block D2 can be determined as the current sub-block. Data processing is performed on the first sub-block in data block D2 and the current processing result after the first incremental update to obtain the current processing result after the second incremental update. Then, the first sub-block in data block D3 can be determined as the current sub-block. Data processing is performed on the first sub-block in data block D3 and the current processing result after the second incremental update to obtain the current processing result after the third incremental update. And so on. In an embodiment employing an append-only approach for incremental updates, the current sub-block may include a single sub-block from at least two data blocks. The aforementioned multiple data processing operations may include a second data processing operation for processing the sub-blocks from the at least two data blocks. Assuming that the at least two data blocks comprise multiple data blocks {Di, D2, …, Dk} containing data blocks {Di, D1, …, Dv} (vWk, v is a positive integer greater than 1), the current sub-block may include the j-th sub-block from each of the data blocks {Di, D2, …, Dv}.A second data processing operation can be performed on the j-th sub-blocks included in the data block {Di, D2, …, Dv} to obtain the j-th second current processing result of the data block {Di, D2, …, Dv}. This j-th second current processing result of the data block {Di, D2, …, Dv} is appended to the first j-1 second current processing results of the data block {Di, D2, …, Dv} stored in the internal storage unit of the processor 100, thus obtaining the first j second current processing results of the data block {Di, Di, …, Dv}. The first j second current processing results of the data block {Di, Di, …, Dv} are then stored in the internal storage unit of the processor 100. Here, j is a positive integer greater than or equal to 2, and i is a positive integer. For example, when j=2, the current sub-block includes the second sub-block of each of the data blocks {Di, D2, …, Dv}, i.e., sub-blocks {S12, S22, …, Sv2}. A second data processing operation can be performed on sub-blocks {S12, S22, …, Sv2} to obtain the second second current processing result of data blocks {D1, D2, …, Dv}. The second second current processing result of data blocks {D1, D2, …, Dv} is appended to the first second current processing result of data blocks {Di, D2, …, Dv} to obtain the first two second current processing results of data blocks {Di, D2, …, Dv}. Similarly, when j=3, the current sub-block includes the third sub-block of each of the data blocks {Di, D2, …, Dv}, i.e., sub-blocks {S13, S23, …, Sv3}. The second data processing operation can be performed on the sub-blocks {S13, S23, …, Sv3} to obtain the third second current processing result of the data blocks {Di, D2, …, Dv}. The third second current processing result of the data blocks {Di, Di, …, Dv} is appended to the first two second current processing results of the data blocks {Di, Di, …, Dv} to obtain the first three second current processing results of the data blocks {Di, D2, …, Dv}. Specifically, when j=l, the current sub-block includes the first sub-block of each data block {Di, Di, …, Dv}, i.e., sub-block {Su, S21, …, Svl}. The second data processing operation can be performed on sub-block {Su, S21, …, Svl} to obtain the first second current processing result of data block {Di, D2, …, Dv}.This embodiment of the disclosure operates at the sub-block level. During each data processing iteration, at least one sub-block from each of multiple data blocks is read from the external storage unit of the processor 100 as the current sub-block. Multiple current processing results of the original data are then incrementally updated based on the current sub-block until the complete processing results of each current sub-block's data block are obtained. This process only requires one write operation from the external storage unit of the processor 100 to the internal storage unit of the processor 100 for each sub-block in the multiple data blocks to obtain the processing results corresponding to each of the multiple data processing operations, reducing redundant data reads and writes. Furthermore, if the j-th sub-block included in data block {Di, Di, …, Dv} is the last sub-block included in data block {Di, Di, …, Dv}, after obtaining the j-th second current processing result of data block {Di, D2, …, Dv}, the j-th second current processing result of data block {Di, Di, …, Dv} can be output. At the same time, the next batch of data blocks in multiple data blocks {Dl, D2, …, Dk}, namely data blocks {Dv+l, DV+2, …, D2V}, can also be obtained, and the second current processing results of each sub-block in data block {Dv+l, DV+2, …, D2v} can be appended. For details on the appending method, please refer to the appending method for the second current processing result of each sub-block in the data block {Di, D2, …, Dk} in the foregoing embodiments, which will not be repeated here. In a specific application scenario, the second data processing operation is an encoding operation, and the second current processing result of the above-mentioned at least two data blocks is an encoded block obtained by encoding the current sub-blocks included in the above-mentioned two data blocks respectively. In some embodiments, the above encoding operation is erasure coding (EC) encoding. Erasure coding is a fault-tolerant encoding technique. Its basic principle is to divide the stored original data into k data blocks, and generate r EC encoded blocks from multiple data blocks through a certain encoding method, and reconstruct the original data from any k parts of the k+r parts of data. In this way, even if some data is lost, the system can still recover the original data. It should be understood that this is only an illustrative example and is not intended to limit this disclosure. In other examples, other encoding operations that can achieve fault-tolerant encoding techniques or encoding operations that can achieve other purposes can also be used. Encoding allows for the recovery of lost or corrupted data, thereby improving data integrity and reliability. The above embodiments illustrate an example of incremental updates using a data appending method, where the current sub-block comprises individual sub-blocks from multiple data blocks.In other embodiments employing incremental updates via data appending, the current sub-block may also include a single sub-block within a single data block. For example, the first sub-block in data block Di can be designated as the current sub-block, and data processing can be performed on it to obtain the current processing result. Then, the second sub-block in data block Di can be designated as the current sub-block, and data processing can be performed on it to obtain the current processing result, which is then appended to the current processing result of the first sub-block. This process continues until the current processing result of data block Di is obtained. In the above embodiments, the size of each sub-block can be determined based on the size of the processor 100's internal storage space. For example, if the processor 100's internal storage space is a register, assuming the size of a single register is B bytes, the size of each sub-block can be less than or equal to B bytes. In some examples, individual sub-blocks can be further divided to obtain smaller-granularity data processing units, and data from at least one sub-block with updated granularity can be processed each time. In step S18, after obtaining multiple processing results of the original data, the multiple processing results of the original data can be written from the internal storage unit of the processor 100 to the external storage unit of the processor 100. When the original data includes multiple data blocks, and each data block includes multiple sub-blocks, it can be determined whether the current sub-block included in at least one data block is the last sub-block included in each of the at least one data block. For example, when at least one data block is a single data block (assuming it is the i-th data block Di in data blocks {Di, D2, …, Dk}), it can be determined whether the current sub-block is the last sub-block Siq of data block Di. For example, when at least one data block includes at least two data blocks (assuming it includes data blocks {D1, D2, ..., Dv}), it can be determined whether the current sub-block is the last sub-block included by each of the data blocks {D1, D2, ..., Dv}, i.e., sub-block {S1q, S2q, ..., Svq}. If the determination result is negative, the next sub-block of the current sub-block included by each of the at least one data block can be updated to the current sub-block included by each of the at least one data block, and the process returns to step S12 to continue processing the next sub-block included by each of the at least one data block. If the determination result is positive, it means that all sub-blocks in the data block containing the current sub-block have been processed. Therefore, the multiple processing results after incremental updates of the original data can be written from the internal storage unit of the processor 100 to the external storage unit of the processor 100.In the above process, only when the current sub-block is the last sub-block in the corresponding data block is it necessary to write the multiple processing results of the incrementally updated original data from the internal storage unit of the processor 100 to the external storage unit of the processor 100. In other cases, it is not necessary to write the multiple processing results of the incrementally updated original data from the internal storage unit of the processor 100 to the external storage unit of the processor 100. Therefore, the operation of writing data from the internal storage unit of the processor 100 to the external storage unit of the processor 100 is effectively reduced, thus reducing the resource consumption generated by data read and write. Any one of the incrementally updated processing results written to the external storage unit of the processor 100 can be the final result of the corresponding data processing operation or an intermediate result of the data processing operation. If the incrementally updated processing result written to the external storage unit of the processor 100 is an intermediate result of the corresponding data processing operation, the intermediate result can be written to the internal storage unit of the processor 100 for further processing to obtain the final result of the corresponding data processing operation. In other words, the raw data obtained in step S12 can be data that has not been processed by any one of the multiple data processing operations, or it can be an intermediate result obtained after being processed by at least one of the multiple data processing operations. In some embodiments, multiple data blocks {Di, D2, …, Dk} can be divided into at least two groups, each group including at least one data block. The number of data blocks in different groups can be the same or different. The multiple data blocks in step S12 can be data blocks in the same group. For the target data processing operation in the multiple data processing operations, after the target data processing operation has been completed for each data block in the current group based on step S14, the intermediate processing result of the current group corresponding to the target processing operation can be obtained, and the intermediate processing result of the current group corresponding to the target processing operation can be written to the external storage unit of the processor 100 for storage. Then, step S14 is executed on the data blocks in the next group to obtain the intermediate processing result of the next group corresponding to the target processing operation, and the intermediate processing result of the next group corresponding to the target processing operation can be written to the external storage unit of the processor 100 for storage. After writing at least one group of intermediate processing results corresponding to the target processing operation to the external storage unit of the processor 100, at least one group of intermediate processing results corresponding to the target processing operation can be further written to the internal storage unit of the processor 100 for further processing. The data processing operation used for further processing can be the same as or different from the target processing operation.For example, when multiple data processing operations include data encoding, the data block of one group can be encoded first to obtain the encoded result of that group and write it to the external storage space of the processor 100. Then, the data block of the next group is encoded to obtain the encoded result of the next group and write it to the external storage space of the processor 100. The encoded results of the two groups are then read from the external storage space of the processor 100 and encoded again to obtain a secondary encoding result. As another example, when multiple data processing operations include data encoding and checksum generation, the data block of one group can be encoded and checksum generated first to obtain the encoded result and checksum of that group, and written to the external storage space of the processor 100 respectively. Then, the data block of the next group is encoded and checksum generated to obtain the encoded result and checksum of the next group and written to the external storage space of the processor 100. The encoding results of the two groups of data blocks are then read from the external storage space of the processor 100, and the data encoding and verification data generation operations are performed again to obtain the secondary encoding result and the verification data of the secondary encoding result. When the internal storage unit capacity of the processor 100 is small, by grouping multiple data blocks, only the current sub-block of the data block within the group needs to be written to the internal storage unit of the processor 100 each time, without having to write all the data blocks included in the original data to the internal storage unit of the processor 100. This reduces the capacity requirement of the internal storage unit of the processor 100, enabling the data processing method of this embodiment to be implemented even when the internal storage unit of the processor 100 is small, thus improving the applicability of the data processing method of this embodiment. The specific method of performing multiple data processing operations in this embodiment is illustrated below with reference to Figure 4. In this embodiment, the external storage space of the processor 100 is memory, and the internal storage space of the processor 100 is registers. The multiple data processing operations include erasure coding, cyclic redundancy check, and generation of data pointers. In some embodiments, the erasure coding process is as follows: k data blocks {D1, D2, …, Dk} are split from the original data and matched with the corresponding r*k dimension coding matrix. Cyclic redundancy check (CRC) can be performed on each data block {Di, D2, …, Dk} and each EC-coded block {Pi, …, P}. r} Calculate the check data according to the Cyclic Redundancy Check (CRC) algorithm, denoted as {CRC(Di), CRC(D2), …, CRC(D... k The operation of generating data pointers can be to generate data pointers for each data block {D1, D2, ..., Dk} and each EC coded block {Pl, ..., Pr}, denoted as {FP(Di), FP(D2), ..., FP(Dk)}. k ), FP(Pi), ■■■, FP(P r ) o The calculation process for the data index includes, but is not limited to: splitting the same data block (or EC-coded block) into q sub-blocks, each of equal size; performing an XOR operation on each sub-block within the same data block (or EC-coded block) to obtain the data index of that data block (or EC-coded block). The data indexes of each data block and each EC-coded block also satisfy the matrix relationship described above: Example ~~~ The data processing flow is as follows:
[0002] (1) Divide the original data into k data blocks of equal size, each data block being M bytes in size.
[0003] (2) Divide each data block into M / B sub-blocks of size B bytes. The value of B can be set according to the size of the register (e.g., 128 bits / 256 bits / 512 bits).
[0004] (3) Traverse all M / B sub-blocks, assuming that the j-th sub-block is currently being processed.
[0005] (4) Traverse the i-th data block among the k data blocks, assuming that the i-th data block is currently being processed.
[0006] (5) Read the j-th sub-block from the i-th data block and store it in register ... . Store the erasure coding result, the cyclic redundancy check data, and the initial value of the data pointer register is Oo.
[0007] (6) Take the j-th column of the encoding matrix and multiply it by the value in registers 1, 2, ..., 3 to obtain r values, namely gij * S[j, 2j * S[i, ..., 9T,j * Stj]. XOR each value with the register storing the corresponding EC encoded block, i.e., XOR gzj * Sij, to obtain the increment result of the j-th sub-block of each EC encoded block, and append it to the register storing the erasure coding result. (After the j-th sub-blocks {Sij, S2j, ..., Skj} in k data blocks have been traversed, the j-th sub-block of each EC encoded block is obtained. After the q sub-blocks included in each of the k data blocks have been traversed, each EC encoded block is obtained.)
[0008] (7) Using the algorithm corresponding to Cyclic Redundancy Check (CRC), the value in register ... is processed. The processing result is then further processed with the value in the register storing CRC check data to obtain the incremental check data for the i-th data block, and updated in the register storing CRC check data. (After all M / B sub-blocks in the i-th data block have been traversed, the register storing CRC check data contains the check data for the i-th data block.)
[0009] (8) Following the algorithm for generating data pointers, process the values in registers 1 and 2, and further process the results with the values in the register storing the data pointers to obtain the incremental data pointers for the i-th data block. Then update the register storing the data pointers. (After all M / B sub-blocks in the i-th data block have been traversed, the register storing the data pointers contains the data pointers for the i-th data block.)
[0010] (9) Return to step (4) until all q sub-blocks included in each of the k data blocks have been traversed. (10) After step (9) is completed, the j-th sub-block of each EC-encoded block is stored. Next, according to the incremental calculation method in steps (7) and (8), the incremental check data and incremental data index of each EC-encoded block are calculated and stored in the register. Then, the memory stored in the EC-encoded block is released, and the occupied register is handed over to the next sub-block for processing. At this time, the j-th sub-block of each EC-encoded block is stored. After all M / B sub-blocks have been traversed, the check data and data index corresponding to the EC-encoded block are stored.
[0011] (11) Return to step (3) until all M / B sub-blocks have been processed.
[0012] (12) After step (9) is completed, the check data and data pointer of each data block / EC code block are stored in the register. At this time, the check data and data pointer of each data block / EC code block are the size of the register, and can be further calculated and processed to output the corresponding value according to the required check data and data pointer size. In this embodiment, each data block is iteratively calculated at a granularity of B bytes (i.e., a sub-block). Each time the calculation is performed, the memory is read once, the sub-block is stored in the register, and the subsequent calculation is performed between the registers through instructions to complete the three data processing operations of erasure coding, cyclic redundancy check and data pointer generation, thereby reducing the low memory bandwidth consumption. Embodiment 2 In the above embodiment 1, the intermediate calculation results of the three data processing operations of erasure coding, cyclic redundancy check and data pointer generation will occupy a large number of registers. However, the number of registers of the processor 100 is limited. Therefore, it may not be possible to store all the data in the register at one time. For this scenario, the present disclosure adopts the following data processing method:
[0013] (1) Divide the k data blocks into m groups. The number of data blocks in each group is determined according to the number of registers. It is necessary to ensure that incremental data can be stored in registers when performing erasure coding, cyclic redundancy check and data pointer generation on each group of data blocks.
[0014] (2) Iterate through m sets of data.
[0015] (3) When processing the u-th group of data according to the steps in Example 1: Step (5) is changed to "read the j-th sub-block in the i-th data block and store it in the register. Read the j-th sub-block in each EC-coded block from memory to the register. The initial value of the register storing the erasure coding result, the cyclic redundancy check data and the data pointer is 0. In Step (6), after the j-th sub-block in all data blocks has been traversed, the incremental result of the j-th sub-block in the EC-coded block calculated from the data blocks in the first u groups is stored from the register into memory. When all m groups have been processed, the j-th sub-block in the EC-coded block is stored. In Step (7) and Step (8), if the sub-block targeted by the cyclic redundancy check and the generated data pointer is a sub-block in the EC-coded block, the operation of calculating the check data and the data pointer is only executed when processing the m-th group; it is not executed when processing the first m-1 groups. In Step (12), After obtaining the checksum and data pointer of the data block in group u, the checksum and data pointer of the data block in group u can be written into memory, the register is released, and then the data block of the next group is processed. It is understood that although the above embodiments describe multiple data processing operations including erasure coding, cyclic redundancy check, and data pointer generation, in practical applications, multiple data processing operations may include only any two of these operations, or any one of the above operations with other types of operations, and all can achieve the technical effects of reducing repeated data read / write, reducing memory bandwidth consumption, and reducing processor resource consumption. The solution of this disclosure embodiment implements multiple data processing operations through a single memory read operation, and can perform data migration and calculation entirely between registers, achieving extremely low memory bandwidth consumption processing, reducing instruction overhead in the data processing process, and significantly reducing data processing time, thus improving end-to-end performance. The data processing solution of this disclosure embodiment can be applied to Elastic Block Store (EBS) application scenarios, in which the processor can be a cloud processor, and the processor's external storage unit can be an EBS. The cloud disk provided by the service can have its internal storage unit, which can be a register.As shown in Figure 5, this disclosure also provides a data processing method applied to a cloud server. The cloud server includes a cloud disk and a cloud processor, and the registers of the cloud disk and the cloud processor are connected via an I / O stack. The method includes: Step S22: Obtaining raw data from the cloud disk; Step S24: Writing the raw data to a register via an I / O stack; Step S26: Performing multiple data processing operations on the raw data stored in the register to obtain multiple processing results of the raw data; Step S28: Writing the multiple processing results of the raw data from the register to the cloud disk via an I / O stack. Specific implementation details of this disclosure are detailed in the foregoing embodiments and will not be repeated here. This disclosure also provides a computer program product, including a computer program that, when executed by a processor, implements the method described in any of the embodiments of this disclosure. This disclosure further provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the method described in any of the foregoing embodiments. The computer-readable medium includes permanent and non-permanent, removable and non-removable media, and information storage can be implemented by any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transfer medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient media, such as modulated data signals and carrier waves. From the above description of embodiments, those skilled in the art will clearly understand that the embodiments of this disclosure can be implemented using software plus the necessary general-purpose hardware platform. Based on this understanding, the technical solutions of the embodiments of this disclosure, or the parts that contribute to the prior art, can be embodied in the form of a software product. The computer software product can be stored in a storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computing device (which may be a personal computer, server, or network device, etc.) to execute the methods described in various embodiments or some parts of the embodiments of this disclosure.The systems, devices, modules, or units described in the above embodiments can be implemented by computer devices or entities, or by products with certain functions. A typical implementation device is a computer, which can be a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email sending and receiving device, game console, tablet computer, wearable device, or any combination of these devices. The various embodiments in this disclosure are described in a progressive manner; similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, for device embodiments, since they are basically similar to method embodiments, the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. The device embodiments described above are merely illustrative. The modules described as separate components may or may not be physically separate. When implementing the embodiments of this disclosure, the functions of each module can be implemented in one or more software and / or hardware. Alternatively, some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort. The above description is merely a specific implementation of the embodiments of this disclosure. It should be noted that those skilled in the art can make several improvements and modifications without departing from the principles of the embodiments of this disclosure, and these improvements and modifications should also be considered within the protection scope of the embodiments of this disclosure.
Claims
Claims 1. A data processing method, the method comprising: Obtain raw data from the processor's external storage unit; write the raw data into the processor's internal storage unit; Multiple data processing operations are performed on the original data stored in the internal storage unit to obtain multiple processing results of the original data; the multiple processing results of the original data are written from the internal storage unit to the external storage unit.
2. The method according to claim 1, wherein the original data comprises multiple data blocks, and each of the multiple data blocks comprises multiple sub-blocks; the step of writing the original data into the processor's internal storage unit comprises: Write the current sub-blocks included in at least one of the plurality of data blocks into the processor's internal storage unit; The step of performing multiple data processing operations on the original data stored in the internal storage unit to obtain multiple processing results of the original data includes: incrementally updating multiple current processing results of the original data stored in the internal storage unit based on the current sub-blocks included in the at least one data block; The multiple current processing results correspond to multiple data processing operations, and any one current processing result is obtained by performing the corresponding data processing operation on the preceding sub-block of the current sub-block included in the at least one data block.
3. The method according to claim 2, further comprising: If the current sub-block included in each of the at least one data block is not the last sub-block included in each of the at least one data block, update the next sub-block included in the current sub-block included in each of the at least one data block to the current sub-block included in each of the at least one data block, and return to the step of writing the current sub-block included in each of the plurality of data blocks into the processor's internal memory unit.
4. The method according to claim 2 or 3, wherein writing the multiple processing results of the original data from the internal storage unit to the external storage unit comprises: If the current sub-block included in the at least one data block is the last sub-block included in the at least one data block, then the multiple current processing results after incremental update of the original data are written from the internal storage unit to the external storage unit.
5. The method according to any one of claims 2-4, wherein the at least one data block comprises a single data block, and the current sub-block comprises a single sub-block within the single data block; the plurality of data processing operations include a first data processing operation, the first data processing operation being used to process a sub-block within the single data block; The incremental update of multiple current processing results of the original data stored in the internal storage unit based on the current sub-blocks included in the at least one data block includes: Take the j-th sub-block of the i-th data block as the current sub-block, perform the first data processing operation on the j-th sub-block of the i-th data block and the first current processing result after the (j-1)-th incremental update of the i-th data block stored in the internal storage unit, obtain the first current processing result after the j-th incremental update of the i-th data block, and store the first current processing result after the j-th incremental update of the i-th data block in the internal storage unit; The first current processing result of the i-th data block after its first incremental update, stored in the internal storage unit, is obtained by performing the first data processing operation on the first sub-block of the i-th data block and a null value or a specified initial value. Here, i and j are both positive integers, and j is greater than 10.
6. The method according to claim 5, wherein the first data processing operation is an operation to obtain data index level, and the first current processing result after the j-th incremental update of the i-th data block is the data index level after the j-th incremental update of the i-th data block.
7. The method according to claim 5, wherein the first data processing operation is cyclic redundancy check, and the first current processing result after the j-th incremental update of the i-th data block is the check data after the j-th incremental update of the i-th data block.
8. The method according to any one of claims 2-4, wherein the at least one data block comprises at least two data blocks, and the current sub-block comprises a single sub-block included in each of the plurality of data blocks; the plurality of data processing operations include a second data processing operation, the second data processing operation being used to process the sub-blocks in the at least two data blocks; The incremental update of multiple current processing results of the original data stored in the internal storage unit based on the current sub-blocks included in the at least one data block includes: Taking the j-th sub-block included in each of the at least two data blocks as the current sub-block, the second data processing operation is performed on the j-th sub-block included in each of the at least two data blocks to obtain the j-th second current processing result of the at least two data blocks; the j-th second current processing result of the at least two data blocks is appended to the internal storage unit. From the first j-1 second current processing results of the at least two data blocks, the first j second current processing results of the at least two data blocks are obtained, and the first j second current processing results of the at least two data blocks are stored in the internal storage unit; The first second current processing result of the at least two data blocks stored in the internal storage unit is obtained by performing the second data processing operation on the first sub-blocks included in each of the at least two data blocks.
9. The method according to claim 8, wherein the second data processing operation is an encoding operation, and the second current processing result of the at least two data blocks is an encoded block obtained by encoding the current sub-blocks included in the two data blocks respectively.
10. The method according to claim 9, wherein the plurality of data blocks are divided into at least two groups, and the at least two data blocks are data blocks in the same group; the method further comprises: If the j-th sub-block included in each of the at least two data blocks is the last sub-block of the at least two data blocks of the current group in the at least two groups, update the next group of the current group in the at least two groups to the current group, and return to the step of obtaining the original data from the processor's external storage unit.
11. The method according to any one of claims 1-10, wherein the original data is data that has not been processed by any one of the plurality of data processing operations; or the original data is the current processing result obtained by processing by at least one of the plurality of data processing operations.
12. A data processing method applied to a cloud server, the cloud server including a cloud disk and a cloud processor, wherein the registers of the cloud disk and the cloud processor are connected via an I / O stack; the method includes: Obtain the raw data from the cloud drive; The original data is written to the register using the stack; Multiple data processing operations are performed on the original data stored in the register to obtain multiple processing results of the original data; the multiple processing results of the original data are written from the register to the cloud disk through the I0 stack.
13. A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method of any one of claims 1 to 12.
14. A computing device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the program, implements the method of any one of claims 1 to 12.
15. A computer program product comprising a computer program that, when executed by a processor, implements the method of any one of claims 1 to 12.
Citation Information
Patent Citations
Register-friendly efficient XOR erasure code coding method
CN115934409A
Data storage method, system and device, equipment and medium
CN115982733A
Data coding method and device
CN117675097A