US11157187B2 - Method, device, and computer program product for overwriting data - Google Patents
Method, device, and computer program product for overwriting data Download PDFInfo
- Publication number
- US11157187B2 US11157187B2 US16/885,788 US202016885788A US11157187B2 US 11157187 B2 US11157187 B2 US 11157187B2 US 202016885788 A US202016885788 A US 202016885788A US 11157187 B2 US11157187 B2 US 11157187B2
- Authority
- US
- United States
- Prior art keywords
- segments
- overwriting
- free
- segment
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Definitions
- Embodiments of the present disclosure generally relate to the field of data storage, and in particular, to a method, an electronic device and a computer program product for overwriting data.
- the data may be compressed at a certain compression ratio before being written in a storage area within the storage device.
- a certain compression ratio e.g., Input/Output (I/O) instruction
- I/O Input/Output
- the data are continuous in the storage area and subsequent data may be overwritten into the same storage area to override the original data.
- the physical storage area may be divided, based on a memory management solution, such as the paging technique, into a plurality of segments of a page size.
- the page size is a minimum allocation unit of 4 KB or 8 KB. If the subsequent data have a compression ratio larger than the original data, the subsequent data usually are discontinuous in the same storage area and there are gaps between the subsequent data and the original data.
- Embodiments of the present disclosure provide a method, a device and a computer program product for overwriting data.
- a method for overwriting data includes: comparing, based on a request of rewriting target data into a storage area to cover original data, a first compression ratio of the target data with a second compression ratio of the original data; when it is determined that the first compression ratio is larger than the second compression ratio, compressing the target data at the first compression ratio into a plurality of data fragments; storing the plurality of data fragments into a plurality of rewrite segments in the storage area, the plurality of rewrite segments being previously used for storing corresponding fragments of the original data; and storing at least one padding data fragment into at least one free sector interleaved with the plurality of rewrite segments and/or free sectors in the plurality of rewrite segments.
- a device for storing data includes: at least one processing unit; at least one memory coupled to the at least one processing unit and stored with instructions executed by the at least one processing unit, wherein the instructions, when executed by the at least one processing unit, cause the device to perform acts consisting of: comparing, based on a request of rewriting target data into a storage area to cover original data, a first compression ratio of the target data with a second compression ratio of the original data; in accordance with a determination that the first compression ratio is larger than the second compression ratio, compressing the target data at the first compression ratio into a plurality of data fragments; storing the plurality of data fragments into a plurality of rewrite segments in the storage area, the plurality of rewrite segments being previously used for storing corresponding fragments of the original data; and storing at least one padding data fragment into at least one free sector interleaved with the plurality of rewrite segments and/or free sectors in the plurality of rewrite segments
- a computer program product is provided.
- the computer program product is tangibly stored in a non-transitory computer storage medium, and includes machine-executable instructions that, when executed by a device, cause the device to perform acts of: comparing, based on a request of rewriting target data into a storage area to cover original data, a first compression ratio of the target data with a second compression ratio of the original data; in accordance with a determination that the first compression ratio is larger than the second compression ratio, compressing the target data at the first compression ratio into a plurality of data fragments; storing the plurality of data fragments into a plurality of rewrite segments in the storage area, the plurality of rewrite segments being previously used for storing corresponding fragments of the original data; and storing at least one padding data fragment into at least one free sector interleaved with the plurality of rewrite segments and/or free sectors in the plurality of rewrite segments.
- FIGS. 1A to 1B illustrate schematic diagrams of storage states of an example storage area in a conventional storage device
- FIG. 2 illustrates a schematic diagram of an example storage area where a device and/or a method in accordance with embodiments of the present disclosure can be implemented
- FIGS. 3A to 3C illustrate schematic diagrams of storage states of the example storage area where a device and/or a method in accordance with embodiments of the present disclosure can be implemented;
- FIG. 4 illustrates a flow chart of an example method for overwriting data in accordance with embodiments of the present disclosure
- FIG. 5 illustrates a flow chart of a method for determining storage locations of padding data fragments in accordance with embodiments of the present disclosure
- FIG. 6 illustrates a schematic diagram of an example device that can be used to implement embodiments of the present disclosure.
- the specialized circuitry that performs one or more of the various operations disclosed herein may be formed by one or more processors operating in accordance with specialized instructions persistently stored in memory.
- Such components may be arranged in a variety of ways such as tightly coupled with each other (e.g., where the components electronically communicate over a computer bus), distributed among different locations (e.g., where the components electronically communicate over a computer network), combinations thereof, and so on.
- the term “include” and its variants are to be read as open-ended terms that mean “include, but is not limited to.”
- the term “or” is to be read as “and/or” unless explicitly stated otherwise.
- the term “based on” is to be read as “based at least in part on.”
- the terms “one example embodiment” and “one embodiment” are to be read as “at least one example embodiment.”
- the term “another embodiment” is to be read as “at least one other embodiment.”
- the terms “first”, “second” and so on may refer to the same or different objects unless indicated otherwise. Other explicit and implicit definitions may also be presented below.
- Modern storage systems e.g., the All Flash Array (AFA) storage device
- AFA All Flash Array
- ILC Inline Compression
- the storage area of the storage device may be divided into a plurality of storage segments based on the page size.
- the overwritten data have the same compression ratio (i.e., a ratio of data size before compression to data size after compression) as the original data, the storage space of the storage area can be fully utilized to sequentially write the overwritten data into a backend driver in a continuous manner.
- a storage state of a storage area 100 in the conventional storage device is described below in details with reference to FIGS. 1A and 1B .
- the storage area may be located in any type of storage devices for storing data, I/O instructions, etc., such as the storage area in a Hard Disk (HD) or a Solid-State Disk (SSD). It should be understood that for the purpose of discussion, the storage area 100 has a page size of 8 KB as the minimum allocation unit, and only includes 4 storage segments. However, the storage area 100 may also be divided by different page sizes and include any number of storage segments.
- the storage area 100 in a state 110 initially stores the original data (e.g., data fragments indicated by a diagonal pattern) which, for example are compressed at a compression ratio of 2:1 and each of the data fragments of the original data is 4 KB and stored in 8 sectors.
- the original data e.g., data fragments indicated by a diagonal pattern
- each of the data fragments of the original data is 4 KB and stored in 8 sectors.
- a solution for overwriting data is provided.
- free sectors in the storage segments and/or free segments between adjacent storage segments are padded with padding data such that the overwritten data is stored in the storage areas in a continuous manner which generate larger continuous data, and such a continuous data are friendly to the backend driver, such as RAID, etc.
- the embodiments in accordance with the present disclosure can avoid flushing the write I/O instructions in a discontinuous manner and save additional read overheads incurred by the write request, thereby improving the write performance of the storage device, for example, the Input/Output Operations Per Second (IOPS).
- IOPS Input/Output Operations Per Second
- FIG. 2 illustrates a schematic diagram of an example environment 200 for overwriting data in accordance with the embodiments of the present disclosure.
- the example environment 200 includes a host 210 , a storage manager 220 and a storage device 230 .
- the structure of the example environment 200 is described for the illustrative purpose and not intended to limit the scope of the present disclosure.
- the embodiments of the present disclosure may also be applied to an environment different from the example environment 200 .
- the host 210 may be any of a physical computer, a virtual machine or a server running user applications, for example.
- the host 210 may send an I/O request to the storage manager 220 , for reading data from the storage device 230 and/or writing data into the storage device 230 , etc., for example.
- the storage manager 220 may read data from the storage device 230 and return the data read to the host 210 .
- the storage manager 220 may write data into the storage device 230 .
- the storage device may be any of the currently known or to be developed non-volatile storage medium, such as, disks, Solid-State Disks (SSD) or disk array (RAID) etc.
- the storage manager 220 may be deployed with a compression/decompression engine (not shown). For example, upon receiving a request for writing data into the storage device 230 from the host 210 , the storage manager 220 may compress the data to be stored by using the compression/decompression engine and then store the compressed data into the storage device 230 .
- FIGS. 3A to 3C illustrate schematic diagrams of storage states of an example storage area 300 where the device and/or method in accordance with the embodiments of the present disclosure may be implemented.
- the storage area 300 may be a storage area in the storage device 230 as shown in FIG. 2 . It should be understood that the storage area 300 may also present in any other suitable storage devices and the scope of the present disclosure is not intended to be limited in this regard.
- FIGS. 3A to 3C are described below in details with reference to FIG. 2 .
- the storage area 300 is divided into a plurality of storage segments 301 to 308 , based on an initial sector index and a predetermined page size (e.g., the segment length), wherein each of the storage segments includes M sectors.
- the storage area 300 may be a storage area in any type of storage devices (such as a Hard Disk (HD) or a Solid-State Drive (SSD)) for storing any suitable types of data (e.g., I/O instructions).
- HD Hard Disk
- SSD Solid-State Drive
- I/O instructions any suitable types of data
- the storage area 300 is illustrated as having a page size of 8 KB as its minimum allocation unit and only includes 8 storage segments to facilitate description.
- the above numbers are only illustrative, rather than restrictive and the storage area 300 may adopt different page sizes and include any number of storage segments. The present disclosure is not intended to be limited in this regard.
- the storage area 300 in a state 310 initially store the original data (e.g., data fragments indicated by a diagonal pattern) which, for example are compressed at a compression ratio of 16:13 and each of the data fragments of the original data is stored in 13 sectors.
- the storage segments 301 and 308 are free segments having no data stored therein while in the storage segments 302 , 304 , 305 and 307 , only a part of sectors have data stored therein and the rest sectors are free sectors.
- the storage manager 220 compresses the target data into a plurality of data fragments of 1 KB (e.g., data fragments indicated by a grid pattern) at a compression rate of 8:1 and then overwrites them in the storage area 300 to cover the original data, with each of the data fragments occupying 2 sectors. Because the second compression ratio is higher than the first compression ratio, the data fragments of the target data occupy a smaller storage space in the storage segments, such that gaps are present between the storage segments 302 to 306 .
- 1 KB e.g., data fragments indicated by a grid pattern
- the storage manager 220 may store the padding data fragments (e.g., data fragments indicated by a dot pattern) in the free sectors or the free segments in the storage area 300 .
- the padding data fragments e.g., data fragments indicated by a dot pattern
- FIG. 4 illustrates a flow chart of an example method 400 for overwriting data in accordance with the embodiments of the present disclosure.
- the method 400 may be performed by the storage manager 220 as shown in FIG. 2 , or any other suitable devices. It should be understood that the method 400 may further include additional acts not shown and/or the acts shown may be omitted. The scope of the present disclosure is not intended to be limited in this regard. For the purpose of discussion, the process 400 is described below with reference to FIGS. 2 and 3A-3C .
- the storage manager 220 receives a request for overwriting the target data in the storage area 300 to cover the original data.
- the storage manager 220 may receive the request for overwriting the target data in the storage area to cover the original data from the host 210 , or it may receive the request from any suitable elements.
- the scope of the present disclosure is not intended to be limited in this regard.
- the storage manager 220 compares a first compression ratio of the target data with a second compression ratio of the original data. For example, in the examples of FIGS. 3A to 3C , the storage manager 220 compares the first compression ratio of 8:1 with the second compression ratio of 16:13 and determines that the first compression ratio is larger than the second compression ratio.
- the target data may be stored by using any suitable conventional storage approach, which will not be described in details.
- the storage manager 220 compresses the target data into a plurality of data fragments at the first compression ratio.
- the target data can be compressed into data fragments each is of 2 KB.
- the storage manager 220 stores a plurality of data fragments of the target data in a plurality of overwriting segments of the storage area 300 .
- the overwriting segment is a storage segment which is previously used for storing corresponding fragments of the original data and may be used to overwrite the target data.
- the overwriting segments may be storage segments 302 , 305 and 306 as shown in FIGS. 3A-3C .
- the storage manager 220 stores at least one padding data fragment in at least one free segment interleaved with a plurality of overwriting segments 302 , 305 and 306 and/or the free sectors in the plurality of overwriting segments.
- the storage manager 220 may store the padding data fragments in the free segments 303 and 304 interleaved with the overwriting segments 302 , 305 and 306 .
- the free segment refers to a storage segment in which none of the sectors stores any target data. Additionally, the storage manager 220 may also store the padding data fragments in the free sectors in the overwriting segments 302 , 305 and 306 .
- the free segments 303 and 304 and/or the free sectors of the overwriting segments 302 , 305 and 306 in the storage area 300 are padded with the padding data fragments, such that the originally discontinuous target data now become larger continuous data occupying the storage segments 302 to 306 while the write alignment requirement of the storage device is also satisfied.
- FIG. 5 illustrates a flow chart of a method 500 for determining storage locations of the padding data fragments in accordance with the embodiments of the present disclosure.
- the method 500 may be performed by the storage manager 220 as shown in FIG. 2 or any other suitable devices. It should be understood that the method 500 may further include additional acts not shown and/or the acts shown may be omitted. The scope of the present disclosure is not intended to be limited in this regard. It will be appreciated that the method 500 is an example implementation of the step 450 in the method 400 . For the purpose of discussion, the process 500 is described below with reference to FIGS. 2 and 3A-3C .
- the storage manager determines candidate padding segments 302 to 306 of the storage area 300 .
- the storage manager 220 may generate a first bitmap indicative of writability of a segment for the storage segments 301 - 308 of the storage area 300 .
- the first bitmap includes a plurality of bits corresponding to respective sectors in the storage segments, wherein bit 0 indicates an unwritable sector and bit 1 indicates a sector that stores overwritten data and original data or a free sector.
- their first bitmaps each include 8 bits, and are 11111111.
- the storage manager 220 may determine, based on the first bitmaps of the respective storage segments, the storage segments 301 to 308 except for the unwritable ones as the candidate padding segments.
- the storage segments 301 , 307 and 308 store no target data and thus may not be padded from the perspective of memory loss.
- the storage manager 220 may generate second bitmaps indicative of writability of a sector for the storage segments 301 - 308 of the storage area 300 , which are.
- the second bitmap includes a plurality of bits corresponding to respective sectors in the storage segments, wherein bit 0 indicates a sector that stores the original data, a free sector or an unwritable sector and bit 1 indicates a sector that stores overwritten data.
- bit 0 indicates a sector that stores the original data
- bit 1 indicates a sector that stores overwritten data.
- the second bitmap for the storage segment 301 is 00000000 while the second bitmap for the storage segment 302 is 00000110.
- the first bitmap of a corresponding storage segment is full of bit 1 and its second bitmap is not full of bit 0 , it indicates that the storage segment is an overwriting segment. If the first bitmap of the corresponding storage segment is full of 1 and the second bitmap is full of 0, it indicates that the storage segment is a free segment. For example, in the state 320 as shown in FIG. 3B , the storage segments 302 , 305 and 306 are overwriting segments while the storage segments 301 , 303 , 304 , 307 and 308 are free segments.
- the storage manager 220 may determine, based on the first bitmap and the second bitmap, a starting overwriting segment 302 and an ending overwriting segment 306 located in the overwriting segments 302 , 305 and 306 .
- the storage manager 220 may determine, based on the first bitmaps and the second bitmaps of a plurality of storage segments 301 to 308 in the storage area 300 , the storage segment 302 as the starting overwriting segment and the storage segment 306 as the ending overwriting segment, where the storage segment 302 has a top address index with its first bitmap being full of bit 1 and its second bitmap being not full of bit 0 while the storage segment 306 has a bottom address index with its first bitmap being full of bit 1 and its second bitmap being not full of bit 0 .
- the storage manager 220 may then further determine that the storage segments between the starting overwriting segment 302 and the ending overwriting segment 306 as the candidate storage segments, e.g., the storage segments 302 to 306 .
- the storage manager 220 determines, from the determined candidate padding segments 302 to 306 , the free segments 303 and 304 and the free sectors in the overwriting segments 302 , 305 and 306 , based on locations of sectors storing data fragments of the target data in the overwriting segments 302 , 305 and 306 .
- the storage manager 220 may determine corresponding sectors having a bit value of 1 as the sectors having the data fragments stored therein, based on the second bitmaps of the respective candidate padding segments. Then, the rest sectors, except for those storing the data fragments, in the overwriting segments 302 , 305 and 306 are determined as the free sectors and the storage segments except for the overwriting segments in the candidate padding segments, such as the storage segments 303 and 304 , are determined as the free segments.
- the storage manager 220 stores the padding data fragments in at least one of the free segments 303 and 304 and the free sectors of the overwriting segments 302 , 305 and 306 .
- the storage manager 220 stores the padding data fragments in the free segments 303 and 304 interleaved with the overwriting segments 302 , 305 and 306 and in the free sectors in the overwriting segments 302 , 305 and 306 , so as to form the continuous target data from the storage segments 302 to 306 .
- the target data also satisfy the write alignment requirement of the storage device. It should be understood that the padding data fragments may or may not be identical to the target data, and the scope of the present disclosure is not intended to be limited in this regard.
- the storage manager 220 may further determine a ratio of the number of the free segments to the number of the candidate padding segments. For example, in the state 320 as shown in FIG. 3B , the ratio of the number of the free segments to the number of the candidate padding segments is 2:5. Then, the storage manager 220 compares the ratio of the number of the free segments to the number of the candidate padding segments with a threshold, e.g., 1/2. If the ratio does not exceed the threshold 1/2, it may indicate that the memory loss level will not be affected by padding the free segments and/or free sectors with the padding data fragments.
- a threshold e.g. 1/2
- the storage manager 220 may generate the padding data fragments and store them in at least one of the free segments and the free sectors. In contrast, if the ratio exceeds the predetermined threshold, it may indicate that padding the free segments and/or free sectors with the padding data fragments may undermine the memory loss level. Therefore, the storage manager 220 may not pad at least one of the free segments and the free sectors.
- the storage manager 220 may further determine whether an unwritable segment is present between two adjacent overwriting segments. For example, if a storage segment with its first bitmap including bit 0 presents between any two adjacent overwriting segments, it may be determined that an unwritable segment is present between the two adjacent overwriting segments.
- a solution for overwriting data is provided.
- This solution can store the overwritten data in the storage areas in a continuous manner while satisfy the write alignment requirement of the storage device, thereby saving the additional read overheads incurred by the write request and significantly improving the read/write performance of the storage device.
- FIG. 6 illustrates a schematic block diagram of an example device 600 which may be used for implementing embodiments of the present disclosure.
- the example device 200 shown in FIG. 2 may be implemented by the device 600 .
- the device 600 includes a central processing unit (CPU) 601 , which can execute various suitable acts and processing based on computer program instructions stored in a read-only memory (ROM) 602 or based on computer program instructions loaded into a random-access memory (RAM) 603 from a storage unit 608 .
- the RAM 603 may also store various programs and data required by operations of the device 600 .
- the CPU 601 , ROM 602 and RAM 603 are connected to each other via a bus 604 .
- An input/output (I/O) interface 605 is also connected to the bus 604 .
- I/O input/output
- a plurality of components in the device 600 are connected to the I/O interface 605 , including: an input unit 606 , such as a keyboard, a mouse and the like; an output unit 607 , e.g., various types of displays and loudspeakers etc.; a storage unit 608 , such as a magnetic disk, an optical disk, etc.; and a communication unit 609 , such as a network card, a modem, a wireless communication transceiver and the like.
- the communication unit 609 allows the device 600 to exchange information/data with other devices via the computer network, such as Internet, and/or various telecommunication networks.
- the methods 400 and 500 may be performed by the processing unit 601 .
- the methods 400 and 500 may be implemented as a computer software program that is tangibly embodied on a machine-readable medium, e.g., the storage unit 608 .
- a part of or the entire computer program may be loaded and/or mounted onto the device 600 via the ROM 602 and/or the communication unit 609 .
- the computer program is loaded to the RAM 603 and executed by the CPU 601 , one or more acts of the method 600 as described above can be implemented.
- the present disclosure may be a method, an apparatus, a system and/or a computer program product.
- the computer program product may include a computer-readable storage medium, on which the computer-readable program instructions for performing various aspects of the present disclosure are carried.
- the computer-readable storage medium may be a tangible apparatus that maintains and stores instructions to be used by an instruction executing device.
- the computer-readable storage medium may be, but not limited to, electrical storage device, magnetic storage device, optical storage device, electromagnetic storage device, semiconductor storage device or any suitable combinations of the above.
- the computer-readable storage medium may include: portable computer disk, hard disk, random-access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random-access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical coding device, punch card or in-slot-projection having instructions stored thereon, and any suitable combinations of the above.
- RAM random-access memory
- ROM read-only memory
- EPROM or flash memory erasable programmable read-only memory
- SRAM static random-access memory
- CD-ROM compact disk read-only memory
- DVD digital versatile disk
- memory stick floppy disk
- mechanical coding device punch card or in-slot-projection having instructions stored thereon, and any suitable combinations of the above.
- the computer-readable storage medium as used herein should not be interpreted as transitory signals per se, such as radio waves or other freely propagated electromagnetic waves, electromagnetic waves propagated via a waveguide or other transmission media (e.g., optical pulses via a fiber-optic cable), or electric signals propagated via a wire.
- the computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to various computing/processing devices, or to an external computer or external storage device via a network, such as Internet, a local area network, a wide area network and/or a wireless network.
- the network may include copper transmission cable, optical fiber transmission, wireless transmission, router, firewall, switch, gateway computer and/or edge server.
- a network adapter card or a network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in respective of each computing/processing devices.
- the computer program instructions for performing operations of the present disclosure may be assembly instructions, instructions in instruction set architecture (ISA), machine instructions, machine-related instructions, microcodes, firmware instructions, state setting data, or source codes or target codes written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++ and the like, and traditional procedural programming languages, such as, “C” language or similar programming languages.
- the computer-readable program instructions may be executed entirely on the user's computer, be executed partially on the user's computer, as a stand-alone software package, be executed partially on the user's computer and partially on a remote computer or be executed entirely on a remote computer or server.
- the remote computer may be connected to the user's computer via any type of networks, including a local area network (LAN) and wide area network (WAN), or to the external computer (e.g., connected via Internet using the Internet service provider).
- LAN local area network
- WAN wide area network
- an electronic circuitry such as a programmable logic circuitry, a field programmable gate array (FPGA) or a programmable logic array (PLA), may be customized by using state information of the computer-readable program instructions.
- the electronic circuitry may execute computer-readable program instructions to implement various aspects of the present disclosure.
- the computer-readable program instructions may be provided to a processing unit of a general purpose computer, a special purpose computer or other programmable data processing apparatus to produce a machine, such that the instructions, when executed by the processing unit of the computer or by the other programmable data processing apparatus, produce means (e.g., specialized circuitry) for implementing functions/acts specified in one or more of blocks in the flow charts and/or block diagrams.
- the computer-readable program instructions may also be stored in a computer-readable storage medium and the instructions cause a computer, a programmable data processing apparatus and/or other devices to operate in a particular manner. Therefore, the computer-readable medium having instructions stored thereon includes an article of manufacture that includes instructions for implementing various aspects of the functions/acts specified in one or more of blocks of the flow charts and/or block diagrams.
- the computer-readable program instructions may also be loaded onto the computer, other programmable apparatuses or other device to cause a series of operational steps to be performed on the computer, the other programmable apparatus or the other device to produce a computer-implemented process, such that the instructions executed on the computer, the other programmable apparatus or the other device implement the functions/acts specified in one or more of blocks of the flow charts and/or block diagrams.
- each block in the flow charts or block diagrams may represent a module, snippet, or portion of instructions, which includes one or more executable instructions for performing the specified logic function(s).
- the functions indicated in the block may also occur out of the order indicated in the figures.
- two blocks shown in succession may, in fact, be executed in parallel or the blocks may sometimes be executed in a reverse order depending upon the functionalities involved.
- each block in the block diagrams and/or flow charts and combinations thereof may be implemented by a special purpose hardware-based system that performs the specified functions or actions, or combinations of special purpose hardware and computer instructions.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (20)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911002580.7 | 2019-10-21 | ||
| CN201911002580.7A CN112765047B (en) | 2019-10-21 | 2019-10-21 | Method, apparatus and computer program product for overwriting data |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20210117090A1 US20210117090A1 (en) | 2021-04-22 |
| US11157187B2 true US11157187B2 (en) | 2021-10-26 |
Family
ID=75492293
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/885,788 Active US11157187B2 (en) | 2019-10-21 | 2020-05-28 | Method, device, and computer program product for overwriting data |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11157187B2 (en) |
| CN (1) | CN112765047B (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250077080A1 (en) * | 2023-08-30 | 2025-03-06 | Dell Products L.P. | Padding synchronous write data with background write data based on storage system boundary alignment and size data |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118394277A (en) * | 2024-05-22 | 2024-07-26 | 上能电气股份有限公司 | Data storage method, device and computer readable storage medium |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150052393A1 (en) * | 2013-08-19 | 2015-02-19 | International Business Machines Corporation | Fast data back-up and restore between volatile and flash memory |
| US9317218B1 (en) | 2013-02-08 | 2016-04-19 | Emc Corporation | Memory efficient sanitization of a deduplicated storage system using a perfect hash function |
| US20190205035A1 (en) * | 2016-11-08 | 2019-07-04 | Hitachi, Ltd. | Flash memory module and control method of flash memory module |
| US20190212949A1 (en) * | 2018-01-10 | 2019-07-11 | International Business Machines Corporation | Increasing storage efficiency of a data protection technique |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4228407B2 (en) * | 1998-03-04 | 2009-02-25 | ソニー株式会社 | Information recording apparatus and information recording method |
| CN104881240B (en) * | 2014-02-27 | 2018-04-24 | 群联电子股份有限公司 | Data writing method, memory storage device and memory control circuit unit |
| US10374628B2 (en) * | 2017-04-05 | 2019-08-06 | International Business Machines Corporation | In-place data compression with small working memory |
-
2019
- 2019-10-21 CN CN201911002580.7A patent/CN112765047B/en active Active
-
2020
- 2020-05-28 US US16/885,788 patent/US11157187B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9317218B1 (en) | 2013-02-08 | 2016-04-19 | Emc Corporation | Memory efficient sanitization of a deduplicated storage system using a perfect hash function |
| US20150052393A1 (en) * | 2013-08-19 | 2015-02-19 | International Business Machines Corporation | Fast data back-up and restore between volatile and flash memory |
| US20190205035A1 (en) * | 2016-11-08 | 2019-07-04 | Hitachi, Ltd. | Flash memory module and control method of flash memory module |
| US20190212949A1 (en) * | 2018-01-10 | 2019-07-11 | International Business Machines Corporation | Increasing storage efficiency of a data protection technique |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250077080A1 (en) * | 2023-08-30 | 2025-03-06 | Dell Products L.P. | Padding synchronous write data with background write data based on storage system boundary alignment and size data |
| US12487747B2 (en) * | 2023-08-30 | 2025-12-02 | Dell Products L.P. | Padding synchronous write data with background write data based on storage system boundary alignment and size data |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112765047A (en) | 2021-05-07 |
| CN112765047B (en) | 2024-07-12 |
| US20210117090A1 (en) | 2021-04-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10996858B2 (en) | Method and device for migrating data | |
| US11048629B2 (en) | Method, apparatus and computer program product for storing data | |
| US10761993B2 (en) | Method, device and computer program product for managing storage system | |
| US11593272B2 (en) | Method, apparatus and computer program product for managing data access | |
| US10810127B2 (en) | Solid-state hard disk and data access method for use with solid-state hard disk | |
| CN107526743B (en) | Method and apparatus for compressing file system metadata | |
| US10649905B2 (en) | Method and apparatus for storing data | |
| US10977129B2 (en) | Method and device for managing a hybrid storage disk array | |
| CN113448877B (en) | Method, apparatus and computer program for data storage | |
| US8850148B2 (en) | Data copy management for faster reads | |
| CN104636266A (en) | SMR hard disk and data writing method and device for SMR hard disk | |
| US20160246516A1 (en) | Data Operation Method and Device | |
| WO2017132797A1 (en) | Data arrangement method, storage apparatus, storage controller and storage array | |
| US11157187B2 (en) | Method, device, and computer program product for overwriting data | |
| CN110737402B (en) | Method, apparatus and computer storage medium for managing storage system | |
| CN116257460B (en) | Trim command processing method based on solid state disk and solid state disk | |
| US11287996B2 (en) | Method, device and computer program product for storing data | |
| US11429317B2 (en) | Method, apparatus and computer program product for storing data | |
| CN112764662B (en) | Method, apparatus and computer program product for storage management | |
| US11281575B2 (en) | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks | |
| CN116149540A (en) | Method for Updating Host and Flash Memory Address Correspondence Table, Computer-Readable Storage Medium and Device | |
| US12293102B2 (en) | Method, device, and computer program product for de-duplicating data | |
| US9563363B2 (en) | Flexible storage block for a solid state drive (SSD)-based file system | |
| US11500590B2 (en) | Method, device and computer program product for data writing | |
| US11500746B2 (en) | Method, device and computer program product for managing data storage |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZHANG, LEIHU;GONG, CHEN;REEL/FRAME:053045/0629 Effective date: 20200513 |
|
| AS | Assignment |
Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053531/0108 Effective date: 20200818 |
|
| AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053574/0221 Effective date: 20200817 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053578/0183 Effective date: 20200817 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053573/0535 Effective date: 20200817 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0371 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0371 Effective date: 20211101 |
|
| AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060333/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060333/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060332/0864 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060332/0864 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060333/0106 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060333/0106 Effective date: 20220329 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |