CN115469818B - Disk array writing processing method, device, equipment and medium - Google Patents

Disk array writing processing method, device, equipment and medium Download PDF

Info

Publication number
CN115469818B
CN115469818B CN202211412299.2A CN202211412299A CN115469818B CN 115469818 B CN115469818 B CN 115469818B CN 202211412299 A CN202211412299 A CN 202211412299A CN 115469818 B CN115469818 B CN 115469818B
Authority
CN
China
Prior art keywords
data
position information
target
writing
check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211412299.2A
Other languages
Chinese (zh)
Other versions
CN115469818A (en
Inventor
梁欣玲
邸忠辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211412299.2A priority Critical patent/CN115469818B/en
Publication of CN115469818A publication Critical patent/CN115469818A/en
Application granted granted Critical
Publication of CN115469818B publication Critical patent/CN115469818B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

The application discloses a disk array writing processing method, a device, equipment and a medium, which are applied to the technical field of data storage and comprise the following steps: determining a target stripe to be subjected to data writing in the DRAID5 and writing position information of a target data block to be subjected to data writing in the target stripe based on the IO writing request; respectively recording the writing position information of the target data block in each target strip to corresponding information records; determining the total position information of each target strip in-band check block to be subjected to data updating currently based on the information record; when any target stripe meets the reading condition of the check data, performing data reading from the corresponding check block based on the current full position information to obtain the old check data corresponding to the current full position information; calculating based on the old verification data to obtain new verification data; and writing the new check data into the corresponding check block based on the full amount of position information. The time consumption for processing the check data can be reduced, and the storage performance is improved.

Description

Disk array writing processing method, device, equipment and medium
Technical Field
The present application relates to the field of data storage technologies, and in particular, to a disk array write processing method, apparatus, device, and medium.
Background
In the information age of rapid development of science and technology, performance is becoming one of the main standards for storage evaluation. A raid5 (i.e. a Redundant Array of Independent Disks) is a common disk Array, and the Array consists of stride (stripe) which consists of strip (data block and check block) and is obtained by xoring all data blocks in a strip in order to ensure strip consistency.
At present, when a server initiates an IO (Input/Output) writing process to write data into different data blocks, data in a stripe check block where each data block is located needs to be read based on offset and length, and calculation of new check data and writing of the new check data need to be performed respectively.
Disclosure of Invention
In view of this, an object of the present application is to provide a disk array write processing method, apparatus, device and medium, which can reduce time consumption for processing check data, thereby improving storage performance. The specific scheme is as follows:
in a first aspect, the present application discloses a disk array write processing method, including:
determining target stripes to be subjected to data writing in the DRAID5 and writing position information of target data blocks to be subjected to data writing in each target stripe based on an IO writing request initiated by a server; the writing position information comprises a writing offset and a writing length;
respectively recording the writing position information of the target data block in each target strip to the information record corresponding to the target strip;
determining the total position information of each target strip in-band check block to be subjected to data updating currently based on the information record;
when any target stripe meets a check data reading condition, performing data reading from the corresponding check block based on the current full position information to obtain old check data corresponding to the current full position information;
calculating based on the old verification data to obtain new verification data;
and writing the new check data into the corresponding check block based on the full amount of position information.
Optionally, the determining, based on the information record, total position information of the current data update to be performed on the check block in each target strip includes:
sequentially reading writing position information from the information record, converting the writing position information into a page mask mode to obtain a page mask corresponding to the writing position information every time one piece of writing position information is read, performing OR operation on the page mask and a target page mask to obtain a position information mask corresponding to the writing position information, and marking the position information mask as the full position information of the check block in the target strip to be subjected to data updating currently;
the page mask is in a binary code form with preset digits, each digit corresponds to one page, a target page mask corresponding to the read first writing position information is an initial page mask, and a target page mask corresponding to the non-first writing position information is a position information mask corresponding to the last writing position information.
Optionally, each bit of the initial page mask is 0.
Optionally, the target stripe meets the condition that the read quantity of the read writing position information reaches a preset quantity threshold, or the read quantity of the writing position information does not reach the preset quantity threshold, and the information records that there is no writing position information to be read.
Optionally, the converting the writing position information into a page mask form to obtain a page mask corresponding to the writing position information includes:
and calculating an initial page and a page length corresponding to the writing position information, and converting the initial page and the page length into a page mask form to obtain a page mask corresponding to the writing position information.
Optionally, the recording the writing position information of the target data block in each target stripe to the information record corresponding to the target stripe respectively includes:
and converting the writing position information of each target data block in each target strip into a node, and adding the node to a linked list in a structural body corresponding to the target strip.
Optionally, the sequentially reading and writing the position information from the information record includes: and sequentially reading nodes from the linked list.
Optionally, the sequentially reading and writing the position information from the information record includes:
and sequentially reading the writing position information from the information record by using the scheduling thread.
Optionally, the method further includes:
and reading old data in the target data block based on the writing position information of the target data block, and calculating the old data and new data corresponding to the target data block to obtain a middle check value of the target data block.
Optionally, the calculating based on the old verification data to obtain new verification data includes:
sequentially reading the intermediate check value corresponding to each target data block, and performing XOR operation on the intermediate check value and the first target check data after the intermediate check value of one target data block is read, so as to obtain second target check data, and taking the current second target check data as new check data until the intermediate check values of all the target data blocks corresponding to the old check data are operated;
and the first target verification data corresponding to the first read intermediate verification value is the old verification data, and the first target verification data corresponding to the non-first read intermediate verification value is the second target verification data corresponding to the last read intermediate verification value.
Optionally, the method further includes:
and writing the new data corresponding to each target data block into each target data block based on the writing position information of each target data block.
Optionally, the method further includes:
after the new data is written into the target data block, the new data is recorded into the buffer area.
In a second aspect, the present application discloses a DRAID5 write processing apparatus, including:
the stripe and information determining module is used for determining target stripes to be written with data in the DRAID5 and writing position information of target data blocks to be written with data in each target stripe based on an IO writing request initiated by a server; the writing position information comprises a writing offset and a writing length;
a stripe information recording module, configured to record write location information of the target data block in each target stripe to an information record corresponding to the target stripe;
the position information determining module is used for determining the total position information of the current data updating to be carried out on the check block in each target strip based on the information record;
an old check data reading module, configured to, when any of the target stripes meets a check data reading condition, perform data reading from the corresponding check block based on the current full position information to obtain old check data corresponding to the current full position information;
the new verification data calculation module is used for calculating based on the old verification data to obtain new verification data;
and the new check data writing module is used for writing the new check data into the corresponding check block based on the full position information.
In a third aspect, the present application discloses an electronic device comprising a memory and a processor, wherein:
the memory is used for storing a computer program;
the processor is configured to execute the computer program to implement the disk array write processing method.
In a fourth aspect, the present application discloses a computer-readable storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the aforementioned disk array write processing method.
As can be seen, the target stripes to be subjected to data writing in the DRAID5 and the writing position information of the target data blocks to be subjected to data writing in each target stripe are determined based on the IO writing request initiated by the server; the writing position information comprises writing offset and writing length, the writing position information of the target data block in each target strip is recorded to an information record corresponding to the target strip, the total position information of the current to-be-updated data of the check block in each target strip is determined based on the information record, when any target strip meets the check data reading condition, data reading is performed once from the corresponding check block based on the current total position information to obtain old check data corresponding to the current total position information, calculation is performed based on the old check data to obtain new check data, and finally the new check data is written into the corresponding check block based on the total position information. That is, according to the method and the device, after an IO write request is initiated by a server, each data block to be subjected to data writing in each stripe to be subjected to data writing is recorded to a corresponding information record, the total position information of the current check block to be subjected to data updating in each stripe is determined based on the information record, when the check data reading condition is met, data reading is performed on the check block once according to the current total position information, all old check data to be updated can be read, calculation is performed, the corresponding check block is written once based on the total position information, the check data reading and writing times are reduced, the time consumed for processing the check data can be reduced, and the storage performance is improved.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below, it is obvious that the drawings in the following description are only embodiments of the present application, and for those skilled in the art, other drawings can be obtained according to the provided drawings without creative efforts.
Fig. 1 is a schematic block layout diagram of a stripe in a disk array according to an embodiment of the present disclosure;
fig. 2 is a flowchart of a disk array write processing method disclosed in an embodiment of the present application;
fig. 3 is a schematic structural diagram of a disk array write processing apparatus according to an embodiment of the present application;
fig. 4 is a schematic structure diagram of an electronic device disclosed in an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be described clearly and completely with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only some embodiments of the present application, and not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
The standard of the data block and the check block in the DRAID5 is stripnum (block coding), the block coding of the data block is a constant larger than 1 and smaller than the total number of blocks in a stripe, and the block coding of the check block is 0, as shown in fig. 1, fig. 1 is a block layout schematic diagram of a stripe in a disk array, and includes a disk 0, a disk 1, a disk 2, and a disk 3, where the stripe includes a block 0, i.e., a check block, whose correction coding is 0, and a block 1, a block 2, and a block 3, i.e., 3 data blocks, whose coding is 1, 2, and 3. When a write IO process is initiated to a data block numbered 1 in the disk 1, the intra-block offset and length corresponding to the write IO are counted as stripoffset, count, and the specific algorithm is as follows:
the first step is as follows: in order to ensure the consistency of the stripe, a new check block of the stripe needs to be recalculated, old data in the length of the count at the position of the data block stripoffset of the block number 1 is read, new data to be written in the length of the count at the position of the data block stripoffset of the block number 1 is fetch (namely, obtained from a server), and an intermediate check value is calculated; the second step is that: writing new data into the data block stripoffset position count length of the block number 1 of the magnetic disk 1; the third step: reading old parity data within the length of the stripoffset position count of the parity block in the stripe of the disk 0; the fourth step: carrying out XOR operation on the intermediate check value in the first step and the old check data read in the third step to obtain new check data; the fifth step: and starting to drop the new check data calculated in the fourth step into the counter length of the stripoffset position of the check block. And a sixth step: io ends. It can be understood that when data is to be written into the block codes 1 and 2, the corresponding offset and length of the stripe parity block in which the data is located need to be read respectively, 2 times of reading of the old parity data, 2 times of calculating of the new parity data, and 2 times of writing of the new parity data are all completed only once. The process of completing an IO is very complex, which brings with it the problem that the performance is also affected, and ten thousand of IO per second brings with it a not insignificant time-consuming problem when the storage starts to initiate the write process. Therefore, the disk array write processing scheme is provided, time consumption for processing the check data can be reduced, and storage performance is improved.
Referring to fig. 2, an embodiment of the present application discloses a disk array write processing method, including:
step S11: determining target stripes to be subjected to data writing in the DRAID5 and writing position information of target data blocks to be subjected to data writing in each target stripe based on an IO writing request initiated by a server; the writing position information includes a writing offset and a writing length.
It can be understood that, when a server initiates an IO write request to a storage, each time an IO write request is initiated, the IO is split according to a stripe first, and then split according to a block, so as to obtain a write offset and a write length of each data block.
In a specific implementation manner, old data in the target data block may be read based on the writing position information of the target data block, and the old data and new data corresponding to the target data block are calculated to obtain an intermediate check value of the target data block. Specifically, the old data corresponding to the written position information and the new data are subjected to exclusive or operation to obtain an intermediate check value corresponding to the target data block, and the intermediate check value is recorded.
Further, new data corresponding to each of the target data blocks may be written into each of the target data blocks based on the writing location information of each of the target data blocks. And after writing the new data into the target data block, recording the new data into the cache region, when IO is initiated next time, if the data block is read, firstly judging whether the cache is hit, if so, reading the data from the cache, and not reading the data from the disk.
Step S12: and respectively recording the writing position information of the target data block in each target strip to the information record corresponding to the target strip.
It can be understood that the writing location information of the data block and the writing location information of the corresponding check block in the DRAID5 are the same.
In one embodiment, the information corresponding to each strip is recorded as one structure; and converting the writing position information of each target data block in each target strip into a node, adding the node to a linked list in a structural body corresponding to the target strip, and waiting for thread scheduling.
Step S13: and determining the total position information of the current data updating to be carried out on the check block in each target strip based on the information record.
Sequentially reading writing position information from the information record, converting the writing position information into a page mask mode to obtain a page mask corresponding to the writing position information every time one piece of writing position information is read, performing OR operation on the page mask and a target page mask to obtain a position information mask corresponding to the writing position information, and marking the position information mask as the full position information of the check block in the target strip to be subjected to data updating currently;
the page mask is in a binary code form with preset digits, each digit corresponds to one page, a target page mask corresponding to the read first writing position information is an initial page mask, and a target page mask corresponding to the non-first writing position information is a position information mask corresponding to the last writing position information. Each bit of the initial page mask is 0.
Moreover, converting the writing position information into a page mask form to obtain a page mask corresponding to the writing position information may specifically be: and calculating an initial page and a page length corresponding to the writing position information, and converting the initial page and the page length into a page mask form to obtain a page mask corresponding to the writing position information.
Taking the block size 256kb as an example, the unit corresponding to the write offset and the write length is a sector (sector), the conversion unit is 1kb =2sector and 1page =4kb, and the write offset =32sector and the write length =16sector are taken as examples. 32sector =4page, 1696ctor =2page, and 256kb block is converted into 64 pages, the write offset is the fourth page, and the page length to be written is 2 pages. The corresponding page mask is 0 (58 0 s are omitted here) 11000.
The page mask variable may record an initial page mask, convert the write location information into a page mask each time, or-operate with the page mask variable, and update the calculation result into the page mask variable.
In one embodiment, the scheduling thread is used to sequentially read the write location information from the information record. And, nodes may be read sequentially from the linked list.
Step S14: and when any target stripe meets the reading condition of the check data, performing data reading from the corresponding check block based on the current full position information to obtain the old check data corresponding to the current full position information.
The target stripe meets the condition that the read quantity of the read writing position information reaches a preset quantity threshold value, or the read quantity of the writing position information does not reach the preset quantity threshold value, and the information records that no writing position information to be read exists. For example, when the number of read write position information pieces does not reach 20, the read write position information pieces are not read.
That is, all positions of the current parity chunk where data updating is to be performed can be determined, and all corresponding old parity data can be read at one time.
Step S15: and calculating based on the old verification data to obtain new verification data.
In an embodiment, the intermediate check value corresponding to each target data block may be sequentially read, and after each intermediate check value of one target data block is read, an exclusive or operation is performed on the intermediate check value and the first target check data to obtain second target check data, until the intermediate check values of all the target data blocks corresponding to the old check data are operated, the current second target check data is used as new check data;
and the first target verification data corresponding to the first read intermediate verification value is the old verification data, and the first target verification data corresponding to the non-first read intermediate verification value is the second target verification data corresponding to the last read intermediate verification value.
For example, if the total amount of position information corresponds to 20 pieces of write position information, the xor operation is performed using 10 intermediate check values in sequence.
Step S16: and writing the new check data into the corresponding check block based on the full amount of position information.
The following further explains the disk array write processing scheme provided by the present application, which can be implemented by using a programming language to perform an algorithm, and can implement merging read and write of a check block regardless of whether a target data block is continuous, including the following steps:
the first step is as follows: adding member variables into a cache structure sce corresponding to the check block:
Struct sce{
Queue sce_queue;
Uint64 PAGE_MASK;
}
wherein the queue is of the following type
Struct queue{
Struct queue * pre;
Struct queue * next;
}
The Uint64 PAGE _ MASK is initialized to 0.
Each stripe is provided with a structure body sde, and pointer variables of all block (data block and check block) cache structures sce in the stripe are stored in the structure body. The cache structure functions: when the new data is written to the disk, the new data is moved to a cache area, the cache area is marked by a sce structure, if the io is started next time and the partition is read, whether the cache of the mark is hit is inquired in the sce, and the data can be read without going to the disk if the cache is hit.
Struct sde{
Sce * extension[16]
}. Note: the maximum number of blocks in one band is 16.
The second step is that: when an IO is initiated, the IO is split according to a stripe first, then split according to blocks, and a corresponding ipk (a structure for recording offset and length to be written in a data block) and a check block pipk (a structure for recording offset and length to be written in a check block) in the stripe corresponding to the block are established corresponding to each split block. When the server initiates an IO to the storage, considering the situations of multiple IOs, and the write offset and the write length of the data block are recorded as stripoffset i and count i, the block offset and the write length of the check block corresponding to the data block are stripoffset i and count i, and the stripoffset i and the count i are recorded into pipk i.
The third step: reading old data in the length of the count i at the position of the data block stripoffset i, fetching new data to be written in the length of the count i at the position of the data block stripoffset i, and calculating a middle check value paritybuild i;
the fourth step: writing new data into the length of a data block stripoffset i position count i in a strip corresponding to the disk;
the fifth step: finding a check block pipk i corresponding to a data block in which new data is to be written, converting the pipk i into a node form, adding the node form into a node position in a Queue _ Queue linked list in a sce structural body corresponding to the check block in the side, and taking out a task from the linked list by the waiting thread scheduling.
And a sixth step: if other io exists, the process of the fifth step is continuously executed, if other pipk j and the pipk i of the fifth step correspond to the sce block of the same sd structure body, the pipk j is converted into a node form and added to the next node position of the node in the Queue sce _ Queue linked list, and thread scheduling is still waited.
The seventh step: and the thread scheduling acquires a first node from the Queue _ Queue linked list.
Eighth step: the node is converted to pipk i, and its stripoffset i, count i is recorded. And converting the stripoffset i and the count i into PAGE MASK codes corresponding to the PAGEs, carrying out OR operation on the PAGE MASK codes and the PAGE _ MASK, and updating the calculation results into the PAGE _ MASK. Taking the block size 256kb as an example, the unit of correspondence between strip offset and count is sector, the unit of conversion is 1kb =2sector, and the conversion unit is 1kb =2sector, and the conversion is converted into the form corresponding to page, 1page =4kb, strip offset i =32sector, and count i = 1696 sector as an example. 32sector =4page, 1696ctor =2page, and 256kb block is converted into 64 pages, the written offset is the fourth page, and the page length to be written is 2 pages. The corresponding pagemask is 0 (58 0 s omitted here) 11000.
The ninth step: judging whether the linked list has a next node member, if so, taking out the next node, accumulating the combined number, namely, the costescount + +, limiting the maximum value of the combined number, namely, the costescount max =20, and if the costescount = < the costescount max, executing the eighth step; if no other node exists behind the node (i.e. no other pixel is added to the scale- > queue linked list in the period from the time when the pixel is added to the scale- > queue linked list to the time when the pixel is taken out from the scale- > queue linked list by scheduling, i.e. the next node is taken out from the scale queue linked list and is found to be empty, then the merging is not continuously waited for) or the merging amount reaches the scorescocentmax, the tenth step is executed.
The tenth step: and reading old check data from the disk according to the value corresponding to the PAGEMSK code, and finishing the reading and executing the eleventh step.
The eleventh step: and carrying out XOR operation on the old check data read in the tenth step and the intermediate check value obtained by the third step of calculation corresponding to the pipk to obtain new check data. Go to twelve steps.
The twelfth step: and judging whether other nodes exist behind the node in the sce structure corresponding to the pipk, if not, indicating that no check is merged, and if the new check data calculated in the eleventh step is the final new check data, and turning to the fourteenth step. And if other nodes exist behind the corresponding node and the number of the nodes does not reach 20, the verification combination still exists, the new verification data calculated in the eleventh step is not the final verification data, and the operation goes to thirteen steps.
The thirteenth step: and taking out the next node from the linked list, converting the next node into the corresponding pipk, finding out the corresponding intermediate check value, carrying out XOR operation on the intermediate check value and the new check data obtained in the eleventh step, continuously taking out the next node from the linked list after the XOR operation is finished, continuing the XOR operation until all nodes corresponding to the old check data obtained in the tenth step in the linked list are traversed, and calculating to obtain the final new check data. Go to fourteen steps.
The fourteenth step is that: and starting to drop the calculated final new verification data.
The fifteenth step: io ends.
Therefore, aiming at the problem that the read-write of the check block in the write flow is complex and time-consuming, the read-write times initiated to the disk in IO can be reduced, the IOPS (Input/Output Operations Per Second) of the storage system can be improved, and the storage performance is effectively improved.
As can be seen, in the embodiment of the present application, based on an IO write request initiated by a server, target stripes to be subjected to data writing in a DRAID5 and write position information of target data blocks to be subjected to data writing in each target stripe are determined; the writing position information comprises writing offset and writing length, the writing position information of the target data block in each target strip is recorded to an information record corresponding to the target strip, the total position information of the current to-be-updated data of the check block in each target strip is determined based on the information record, when any target strip meets the check data reading condition, data reading is performed once from the corresponding check block based on the current total position information to obtain old check data corresponding to the current total position information, calculation is performed based on the old check data to obtain new check data, and finally the new check data is written into the corresponding check block based on the total position information. That is, in the embodiment of the present application, after the server initiates the IO write request, each data block to be subjected to data writing in each stripe to be subjected to data writing is recorded to the corresponding information record, and the total position information of the current check block to be subjected to data updating in each stripe is determined based on the information record, when the check data reading condition is satisfied, data reading is performed on the check block once according to the current total position information, all the old check data to be updated can be read, then calculation is performed, and when the corresponding check block is written once based on the total position information, the number of times of reading and writing the check data is reduced, the time consumed for processing the check data can be reduced, and thus the storage performance is improved.
Referring to fig. 3, an embodiment of the present application discloses a DRAID5 write processing apparatus, including:
a stripe and information determining module 11, configured to determine, based on an IO write request initiated by a server, a target stripe to be subjected to data writing in the DRAID5 and write position information of a target data block to be subjected to data writing in each target stripe; the writing position information comprises a writing offset and a writing length;
a stripe information recording module 12, configured to record the writing position information of the target data block in each target stripe to an information record corresponding to the target stripe;
a position information determining module 13, configured to determine, based on the information record, total position information of the current data update to be performed on the check block in each target strip;
an old check data reading module 14, configured to, when any of the target stripes meets a check data reading condition, perform data reading from the corresponding check block based on the current full position information to obtain old check data corresponding to the current full position information;
a new verification data calculation module 15, configured to perform calculation based on the old verification data to obtain new verification data;
and a new parity data writing module 16, configured to write the new parity data into the corresponding parity block based on the full-size location information.
As can be seen, in the embodiment of the present application, based on an IO write request initiated by a server, target stripes to be subjected to data writing in a DRAID5 and write position information of target data blocks to be subjected to data writing in each target stripe are determined; the writing position information comprises writing offset and writing length, the writing position information of the target data block in each target strip is recorded to the information record corresponding to the target strip, the total position information of the check block in each target strip, which is to be subjected to data updating currently, is determined based on the information record, when any target strip meets the check data reading condition, data reading is performed once from the corresponding check block based on the current total position information to obtain old check data corresponding to the current total position information, calculation is performed based on the old check data to obtain new check data, and finally the new check data is written into the corresponding check block based on the total position information. That is, in the embodiment of the present application, after the server initiates the IO write request, each data block to be subjected to data writing in each stripe to be subjected to data writing is recorded to the corresponding information record, and the total position information of the current check block to be subjected to data updating in each stripe is determined based on the information record, when the check data reading condition is satisfied, data reading is performed on the check block once according to the current total position information, all the old check data to be updated can be read, then calculation is performed, and when the corresponding check block is written once based on the total position information, the number of times of reading and writing the check data is reduced, the time consumed for processing the check data can be reduced, and thus the storage performance is improved.
In one embodiment, the location information determining module 13 is specifically configured to read write location information from the information record in sequence, and each time one write location information is read, convert the write location information into a page mask form to obtain a page mask corresponding to the write location information, perform an or operation on the page mask and a target page mask to obtain a location information mask corresponding to the write location information, and mark the location information mask as full location information of a check block in the target stripe, where data is currently to be updated;
the page mask is in a binary code form with preset digits, each digit corresponds to one page, a target page mask corresponding to the read first writing position information is an initial page mask, and a target page mask corresponding to the non-first writing position information is a position information mask corresponding to the last writing position information. Each bit of the initial page mask is 0.
And the target stripe meets the read condition of the check data that the number of the read writing position information reaches a preset number threshold value, or the number of the read writing position information does not reach the preset number threshold value, and the information records that no writing position information to be read exists.
Converting the writing position information into a page mask form to obtain a page mask corresponding to the writing position information, including: and calculating an initial page and a page length corresponding to the writing position information, and converting the initial page and the page length into a page mask form to obtain a page mask corresponding to the writing position information.
In an embodiment, the stripe information recording module 12 is specifically configured to convert the writing position information of each target data block in each target stripe into a node, and add the node to a linked list in a structure corresponding to the target stripe. Further, the location information determining module 13 is specifically configured to sequentially read nodes from the linked list.
In one embodiment, the location information determining module 13 is specifically configured to sequentially read and write the location information from the information record by using a scheduling thread.
Further, the apparatus further includes an intermediate check value calculating module, configured to read old data in the target data block based on the writing position information of the target data block, and calculate the old data and new data corresponding to the target data block to obtain an intermediate check value of the target data block.
Correspondingly, the new verification data calculation module 15 is configured to sequentially read the intermediate verification value corresponding to each target data block, and perform an exclusive or operation on the intermediate verification value and the first target verification data after each intermediate verification value of one target data block is read, to obtain second target verification data, until the intermediate verification values of all the target data blocks corresponding to the old verification data are operated, and use the current second target verification data as new verification data;
and the first target verification data corresponding to the first read intermediate verification value is the old verification data, and the first target verification data corresponding to the non-first read intermediate verification value is the second target verification data corresponding to the last read intermediate verification value.
And, the apparatus further comprises a data block writing module configured to: and writing the new data corresponding to each target data block into each target data block based on the writing position information of each target data block.
In addition, the device also comprises a writing cache module which is used for recording the new data into the cache region after the new data is written into the target data block.
Referring to fig. 4, an embodiment of the present application discloses an electronic device 20, which includes a processor 21 and a memory 22; wherein, the memory 22 is used for saving computer programs; the processor 21 is configured to execute the computer program to implement the following steps:
determining target stripes to be subjected to data writing in the DRAID5 and writing position information of target data blocks to be subjected to data writing in each target stripe based on an IO writing request initiated by a server; the writing position information comprises a writing offset and a writing length; respectively recording the writing position information of the target data block in each target strip to the information record corresponding to the target strip; determining the total position information of each target strip in-band check block to be subjected to data updating currently based on the information record; when any target stripe meets a check data reading condition, performing data reading from the corresponding check block based on the current full position information to obtain old check data corresponding to the current full position information; calculating based on the old verification data to obtain new verification data; and writing the new check data into the corresponding check block based on the full amount of position information.
As can be seen, in the embodiment of the present application, a target stripe to be subjected to data writing in a DRAID5 and writing position information of a target data block to be subjected to data writing in each target stripe are determined based on an IO write request initiated by a server; the writing position information comprises writing offset and writing length, the writing position information of the target data block in each target strip is recorded to the information record corresponding to the target strip, the total position information of the check block in each target strip, which is to be subjected to data updating currently, is determined based on the information record, when any target strip meets the check data reading condition, data reading is performed once from the corresponding check block based on the current total position information to obtain old check data corresponding to the current total position information, calculation is performed based on the old check data to obtain new check data, and finally the new check data is written into the corresponding check block based on the total position information. That is, in the embodiment of the present application, after the server initiates the IO write request, each data block to be subjected to data writing in each stripe to be subjected to data writing is recorded to the corresponding information record, and the total position information of the current check block to be subjected to data updating in each stripe is determined based on the information record, when the check data reading condition is satisfied, data reading is performed on the check block once according to the current total position information, all the old check data to be updated can be read, then calculation is performed, and when the corresponding check block is written once based on the total position information, the number of times of reading and writing the check data is reduced, the time consumed for processing the check data can be reduced, and thus the storage performance is improved.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: sequentially reading writing position information from the information record, converting the writing position information into a page mask mode to obtain a page mask corresponding to the writing position information every time one piece of writing position information is read, performing OR operation on the page mask and a target page mask to obtain a position information mask corresponding to the writing position information, and marking the position information mask as the full position information of the check block in the target strip to be subjected to data updating currently;
the page mask is in a binary code form with preset digits, each digit corresponds to one page, a target page mask corresponding to the read first writing position information is an initial page mask, and a target page mask corresponding to the non-first writing position information is a position information mask corresponding to the last writing position information. Each bit of the initial page mask is 0.
And the target stripe meets the read condition of the check data that the number of the read writing position information reaches a preset number threshold value, or the number of the read writing position information does not reach the preset number threshold value, and the information records that no writing position information to be read exists.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: and calculating an initial page and a page length corresponding to the writing position information, and converting the initial page and the page length into a page mask form to obtain a page mask corresponding to the writing position information.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: and converting the writing position information of each target data block in each target strip into a node, and adding the node to a linked list in a structural body corresponding to the target strip.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: and sequentially reading nodes from the linked list.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: and sequentially reading the writing position information from the information record by using the scheduling thread.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: and reading old data in the target data block based on the writing position information of the target data block, and calculating the old data and new data corresponding to the target data block to obtain a middle check value of the target data block.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: sequentially reading the intermediate check value corresponding to each target data block, and performing XOR operation on the intermediate check value and the first target check data after the intermediate check value of one target data block is read, so as to obtain second target check data, and taking the current second target check data as new check data until the intermediate check values of all the target data blocks corresponding to the old check data are operated;
and the first target verification data corresponding to the first read intermediate verification value is the old verification data, and the first target verification data corresponding to the non-first read intermediate verification value is the second target verification data corresponding to the last read intermediate verification value.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: and writing the new data corresponding to each target data block into each target data block based on the writing position information of each target data block.
In this embodiment, when the processor 21 executes the computer subprogram stored in the memory 22, the following steps may be specifically implemented: after the new data is written into the target data block, the new data is recorded into the buffer area.
The memory 22 is used as a carrier for resource storage, and may be a read-only memory, a random access memory, a magnetic disk or an optical disk, and the storage mode may be a transient storage mode or a permanent storage mode.
In addition, the electronic device 20 further includes a power supply 23, a communication interface 24, an input-output interface 25, and a communication bus 26; the power supply 23 is configured to provide an operating voltage for each hardware device on the electronic device 20; the communication interface 24 can create a data transmission channel between the electronic device 20 and an external device, and a communication protocol followed by the communication interface is any communication protocol applicable to the technical solution of the present application, and is not specifically limited herein; the input/output interface 25 is configured to obtain external input data or output data to the outside, and a specific interface type thereof may be selected according to a specific application requirement, which is not specifically limited herein.
Further, an embodiment of the present application discloses a computer readable storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the following steps:
determining target stripes to be subjected to data writing in the DRAID5 and writing position information of target data blocks to be subjected to data writing in each target stripe based on an IO writing request initiated by a server; the writing position information comprises a writing offset and a writing length; respectively recording the writing position information of the target data block in each target strip to the information record corresponding to the target strip; determining the total position information of each target strip in-band check block to be subjected to data updating currently based on the information record; when any target stripe meets a check data reading condition, performing data reading from the corresponding check block based on the current full position information to obtain old check data corresponding to the current full position information; calculating based on the old verification data to obtain new verification data; and writing the new check data into the corresponding check block based on the full amount of position information.
As can be seen, in the embodiment of the present application, a target stripe to be subjected to data writing in a DRAID5 and writing position information of a target data block to be subjected to data writing in each target stripe are determined based on an IO write request initiated by a server; the writing position information comprises writing offset and writing length, the writing position information of the target data block in each target strip is recorded to the information record corresponding to the target strip, the total position information of the check block in each target strip, which is to be subjected to data updating currently, is determined based on the information record, when any target strip meets the check data reading condition, data reading is performed once from the corresponding check block based on the current total position information to obtain old check data corresponding to the current total position information, calculation is performed based on the old check data to obtain new check data, and finally the new check data is written into the corresponding check block based on the total position information. That is, in the embodiment of the present application, after the server initiates the IO write request, each data block to be subjected to data writing in each stripe to be subjected to data writing is recorded to the corresponding information record, and the total position information of the current check block to be subjected to data updating in each stripe is determined based on the information record, when the check data reading condition is satisfied, data reading is performed on the check block once according to the current total position information, all the old check data to be updated can be read, then calculation is performed, and when the corresponding check block is written once based on the total position information, the number of times of reading and writing the check data is reduced, the time consumed for processing the check data can be reduced, and thus the storage performance is improved.
In this embodiment, when the computer subprogram stored in the computer-readable storage medium is executed by the processor, the following steps may be specifically implemented: sequentially reading writing position information from the information record, converting the writing position information into a page mask mode to obtain a page mask corresponding to the writing position information every time one piece of writing position information is read, performing OR operation on the page mask and a target page mask to obtain a position information mask corresponding to the writing position information, and marking the position information mask as the full position information of the check block in the target strip to be subjected to data updating currently;
the page mask is in a binary code form with preset digits, each digit corresponds to one page, a target page mask corresponding to the read first writing position information is an initial page mask, and a target page mask corresponding to the non-first writing position information is a position information mask corresponding to the last writing position information. Each bit of the initial page mask is 0.
And the target stripe meets the read condition of the check data that the number of the read write position information reaches a preset number threshold value, or the number of the read write position information does not reach the preset number threshold value, and the information records that no write position information to be read exists.
In this embodiment, when the computer subprogram stored in the computer-readable storage medium is executed by the processor, the following steps may be specifically implemented: and calculating an initial page and a page length corresponding to the writing position information, and converting the initial page and the page length into a page mask form to obtain a page mask corresponding to the writing position information.
In this embodiment, when the computer subprogram stored in the computer-readable storage medium is executed by the processor, the following steps may be specifically implemented: and converting the writing position information of each target data block in each target strip into a node, and adding the node to a linked list in a structural body corresponding to the target strip.
In this embodiment, when the processor executes the computer subprogram stored in the computer readable storage medium, the following steps may be specifically implemented: and sequentially reading nodes from the linked list.
In this embodiment, when the computer subprogram stored in the computer-readable storage medium is executed by the processor, the following steps may be specifically implemented: and sequentially reading the writing position information from the information record by using the scheduling thread.
In this embodiment, when the processor executes the computer subprogram stored in the computer readable storage medium, the following steps may be specifically implemented: and reading old data in the target data block based on the writing position information of the target data block, and calculating the old data and new data corresponding to the target data block to obtain a middle check value of the target data block.
In this embodiment, when the computer subprogram stored in the computer-readable storage medium is executed by the processor, the following steps may be specifically implemented: sequentially reading the intermediate check value corresponding to each target data block, and performing XOR operation on the intermediate check value and the first target check data after the intermediate check value of one target data block is read, so as to obtain second target check data, and taking the current second target check data as new check data until the intermediate check values of all the target data blocks corresponding to the old check data are operated;
and the first target verification data corresponding to the first read intermediate verification value is the old verification data, and the first target verification data corresponding to the non-first read intermediate verification value is the second target verification data corresponding to the last read intermediate verification value.
In this embodiment, when the computer subprogram stored in the computer-readable storage medium is executed by the processor, the following steps may be specifically implemented: and writing the new data corresponding to each target data block into each target data block based on the writing position information of each target data block.
In this embodiment, when the computer subprogram stored in the computer-readable storage medium is executed by the processor, the following steps may be specifically implemented: after the new data is written into the target data block, the new data is recorded into the buffer area.
In the present specification, the embodiments are described in a progressive manner, and each embodiment focuses on differences from other embodiments, and the same or similar parts between the embodiments are referred to each other. The device disclosed by the embodiment corresponds to the method disclosed by the embodiment, so that the description is simple, and the relevant points can be referred to the method part for description.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in Random Access Memory (RAM), memory, read Only Memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
The above detailed description is given to a disk array write processing method, device, apparatus, and medium provided by the present application, and a specific example is applied in the present application to explain the principle and the implementation of the present application, and the description of the above embodiment is only used to help understanding the method and the core idea of the present application; meanwhile, for a person skilled in the art, according to the idea of the present application, the specific implementation manner and the application scope may be changed, and in summary, the content of the present specification should not be construed as a limitation to the present application.

Claims (14)

1. A disk array write processing method is characterized by comprising the following steps:
determining target stripes to be subjected to data writing in the DRAID5 and writing position information of target data blocks to be subjected to data writing in each target stripe based on an IO writing request initiated by a server; the writing position information comprises a writing offset and a writing length;
respectively recording the writing position information of the target data block in each target strip to the information record corresponding to the target strip;
determining the total position information of each target strip in-band check block to be subjected to data updating currently based on the information record;
when any target stripe meets a check data reading condition, performing data reading from the corresponding check block based on the current full position information to obtain old check data corresponding to the current full position information;
calculating based on the old verification data to obtain new verification data;
writing the new parity data into the corresponding parity block based on the full amount of location information;
the determining of the total position information of each target strip in-band check block to be subjected to data updating currently based on the information record comprises the following steps:
sequentially reading writing position information from the information record, converting the writing position information into a page mask mode to obtain a page mask corresponding to the writing position information every time one piece of writing position information is read, performing OR operation on the page mask and a target page mask to obtain a position information mask corresponding to the writing position information, and marking the position information mask as the full position information of the check block in the target strip to be subjected to data updating currently;
the page mask is in a binary code form with preset digits, each digit corresponds to one page, a target page mask corresponding to the read first writing position information is an initial page mask, and a target page mask corresponding to the non-first writing position information is a position information mask corresponding to the last writing position information.
2. The disk array write processing method of claim 1, wherein each bit of the initial page mask is 0.
3. The disk array write processing method according to claim 1, wherein the target stripe satisfies a check data read condition that the number of read write position information reaches a preset number threshold, or the number of read write position information does not reach a preset number threshold, and the information record has no write position information to be read.
4. The disk array write processing method according to claim 1, wherein the converting the write location information into a page mask form to obtain a page mask corresponding to the write location information includes:
and calculating an initial page and a page length corresponding to the writing position information, and converting the initial page and the page length into a page mask form to obtain a page mask corresponding to the writing position information.
5. The disk array write processing method according to claim 1, wherein the recording the write location information of the target data block in each target stripe to the information record corresponding to the target stripe respectively comprises:
and converting the writing position information of each target data block in each target strip into a node, and adding the node to a linked list in a structural body corresponding to the target strip.
6. The disk array write processing method according to claim 5, wherein said sequentially reading the write position information from the information recording includes: and sequentially reading nodes from the linked list.
7. The disk array write processing method according to claim 1, wherein said sequentially reading the write position information from the information recording includes:
and sequentially reading the writing position information from the information record by using the scheduling thread.
8. The disk array write processing method according to any one of claims 1 to 7, characterized by further comprising:
and reading old data in the target data block based on the writing position information of the target data block, and calculating the old data and new data corresponding to the target data block to obtain a middle check value of the target data block.
9. The disk array write processing method of claim 8, wherein the performing a calculation based on the old parity data to obtain new parity data comprises:
sequentially reading the intermediate check value corresponding to each target data block, and performing exclusive-or operation on the intermediate check value and the first target check data after the intermediate check value of one target data block is read to obtain second target check data until the intermediate check values of all the target data blocks corresponding to the old check data are operated, and taking the current second target check data as new check data;
and the first target verification data corresponding to the first read intermediate verification value is the old verification data, and the first target verification data corresponding to the non-first read intermediate verification value is the second target verification data corresponding to the last read intermediate verification value.
10. The disk array write processing method of claim 8, further comprising:
and writing the new data corresponding to each target data block into each target data block based on the writing position information of each target data block.
11. The disk array write processing method of claim 10, further comprising:
after the new data is written into the target data block, the new data is recorded into the buffer area.
12. A DRAID5 write processing apparatus, comprising:
the stripe and information determining module is used for determining target stripes to be written with data in the DRAID5 and writing position information of target data blocks to be written with data in each target stripe based on an IO writing request initiated by a server; the writing position information comprises a writing offset and a writing length;
a stripe information recording module, configured to record the writing position information of the target data block in each target stripe to an information record corresponding to the target stripe;
the position information determining module is used for determining the total position information of the current data updating to be carried out on the check block in each target strip based on the information record;
an old check data reading module, configured to, when any of the target stripes meets a check data reading condition, perform data reading from the corresponding check block based on the current full position information to obtain old check data corresponding to the current full position information;
the new verification data calculation module is used for calculating based on the old verification data to obtain new verification data;
a new check data writing module, configured to write the new check data into the corresponding check block based on the full position information;
the position information determining module is specifically configured to read write position information from the information record in sequence, convert the write position information into a page mask form to obtain a page mask corresponding to the write position information each time one write position information is read, perform or operation on the page mask and a target page mask to obtain a position information mask corresponding to the write position information, and mark the position information mask as full position information of a check block in the target stripe, where data is currently to be updated;
the page mask is in a binary code form with preset digits, each digit corresponds to one page, a target page mask corresponding to the read first writing position information is an initial page mask, and a target page mask corresponding to the non-first writing position information is a position information mask corresponding to the last writing position information.
13. An electronic device comprising a memory and a processor, wherein:
the memory is used for storing a computer program;
the processor is configured to execute the computer program to implement the disk array write processing method according to any one of claims 1 to 11.
14. A computer-readable storage medium storing a computer program, wherein the computer program when executed by a processor implements the disk array write processing method according to any one of claims 1 to 11.
CN202211412299.2A 2022-11-11 2022-11-11 Disk array writing processing method, device, equipment and medium Active CN115469818B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211412299.2A CN115469818B (en) 2022-11-11 2022-11-11 Disk array writing processing method, device, equipment and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211412299.2A CN115469818B (en) 2022-11-11 2022-11-11 Disk array writing processing method, device, equipment and medium

Publications (2)

Publication Number Publication Date
CN115469818A CN115469818A (en) 2022-12-13
CN115469818B true CN115469818B (en) 2023-03-24

Family

ID=84338076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211412299.2A Active CN115469818B (en) 2022-11-11 2022-11-11 Disk array writing processing method, device, equipment and medium

Country Status (1)

Country Link
CN (1) CN115469818B (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062506A (en) * 2018-07-16 2018-12-21 山东大学 The full flash memory disk array of RAID-5 and the method for improving array bulk life time
CN110618895A (en) * 2019-09-29 2019-12-27 北京天融信网络安全技术有限公司 Data updating method and device based on erasure codes and storage medium
CN111124738A (en) * 2018-10-31 2020-05-08 伊姆西Ip控股有限责任公司 Data management method, device and computer program product for redundant array of independent disks
CN111949440A (en) * 2019-05-17 2020-11-17 深圳市茁壮网络股份有限公司 Data recovery method and device
CN114442953A (en) * 2022-01-26 2022-05-06 山东云海国创云计算装备产业创新中心有限公司 Data verification method, system, chip and electronic equipment
CN114518846A (en) * 2022-01-10 2022-05-20 阿里巴巴(中国)有限公司 Data processing method and device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763220B (en) * 2008-12-25 2011-06-08 成都市华为赛门铁克科技有限公司 Data updating method, controller and storage system
CN102981927B (en) * 2011-09-06 2015-11-25 阿里巴巴集团控股有限公司 Distributed raid-array storage means and distributed cluster storage system
US9377953B2 (en) * 2014-04-23 2016-06-28 Netapp, Inc. Efficiency sets in a distributed system
CN109725824A (en) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 Method and apparatus for from the disk array write-in data to storage system
CN110874181B (en) * 2018-08-31 2021-12-17 杭州海康威视系统技术有限公司 Data updating method and updating device
CN112286453A (en) * 2020-10-26 2021-01-29 苏州浪潮智能科技有限公司 Disk array data reading and writing method, device and storage medium
CN114217736A (en) * 2021-11-18 2022-03-22 新华三大数据技术有限公司 Data writing method and device for reducing pre-reading and storage medium
CN114610525A (en) * 2022-03-18 2022-06-10 山东云海国创云计算装备产业创新中心有限公司 Data updating method, system and storage medium for disk array

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062506A (en) * 2018-07-16 2018-12-21 山东大学 The full flash memory disk array of RAID-5 and the method for improving array bulk life time
CN111124738A (en) * 2018-10-31 2020-05-08 伊姆西Ip控股有限责任公司 Data management method, device and computer program product for redundant array of independent disks
CN111949440A (en) * 2019-05-17 2020-11-17 深圳市茁壮网络股份有限公司 Data recovery method and device
CN110618895A (en) * 2019-09-29 2019-12-27 北京天融信网络安全技术有限公司 Data updating method and device based on erasure codes and storage medium
CN114518846A (en) * 2022-01-10 2022-05-20 阿里巴巴(中国)有限公司 Data processing method and device
CN114442953A (en) * 2022-01-26 2022-05-06 山东云海国创云计算装备产业创新中心有限公司 Data verification method, system, chip and electronic equipment

Also Published As

Publication number Publication date
CN115469818A (en) 2022-12-13

Similar Documents

Publication Publication Date Title
US8364929B2 (en) Enabling spanning for a storage device
JP5512803B2 (en) Data processing apparatus and method for handling vector instructions
US7725646B2 (en) Method of using a flash memory for a circular buffer
CN111045956B (en) Solid state disk garbage recycling method and device based on multi-core CPU
TW201539187A (en) Flash memory compression
US11048601B2 (en) Disk data reading/writing method and device
US11816015B2 (en) Management of event log information of a memory sub-system
CN111192622B (en) Flash memory controller and coding circuit and decoding circuit therein
CN110888851B (en) Method and device for creating and decompressing compressed file, and electronic and storage device
US11307997B2 (en) Logical to physical data storage mapping
CN112988611A (en) Data writing method of nonvolatile memory, terminal and readable storage medium
CN112463020A (en) Data access method, device and equipment based on Flash
CN115469818B (en) Disk array writing processing method, device, equipment and medium
US9182960B2 (en) Loop distribution detection program and loop distribution detection method
US10564848B2 (en) Information storage device and method for deduplication
CN111143240B (en) Image storage method, system and terminal equipment
US10877671B2 (en) Techniques for prolonging lifespan of storage drives
CN109491620B (en) Storage data rewriting method, device, server and storage medium
KR102165860B1 (en) Method for logging double header of slotted page and database apparautus
CN107943415B (en) Method and system for searching free cluster based on FAT file system
CN112988037A (en) Static wear leveling method, terminal and computer-readable storage medium
CN113424146A (en) Overflow or underflow handling for anchor data values
CN112486854B (en) NAND Flash Nand Flash storage management method and device
Kadayif et al. Instruction compression and encoding for low-power systems
CN115577149B (en) Data processing method, device and equipment and readable storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant