WO2015070557A1 - 一种回收垃圾数据的方法及存储设备 - Google Patents
一种回收垃圾数据的方法及存储设备 Download PDFInfo
- Publication number
- WO2015070557A1 WO2015070557A1 PCT/CN2014/074797 CN2014074797W WO2015070557A1 WO 2015070557 A1 WO2015070557 A1 WO 2015070557A1 CN 2014074797 W CN2014074797 W CN 2014074797W WO 2015070557 A1 WO2015070557 A1 WO 2015070557A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- amount
- segment
- predicted value
- garbage
- Prior art date
Links
- 238000004064 recycling Methods 0.000 title claims abstract description 31
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000013507 mapping Methods 0.000 claims description 29
- 230000001174 ascending effect Effects 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 8
- 238000011084 recovery Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000003321 amplification Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
- G06F2212/702—Conservative garbage collection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Definitions
- the present invention relates to the field of computers, and in particular, to a method and a storage device for recycling garbage data. Background technique
- a general storage device After a general storage device writes data, it finds the corresponding address according to the logical block address (LBA) and then writes the data into it. If the addresses between multiple input and output commands (Input Output, 10) are connected, the order is 10, otherwise it is random 10.
- LBA logical block address
- HDD hard disk drive
- the head When a hard disk drive (HDD) in a storage device reads a data, the head must first move to the track where the data is located. The head moves in the radial direction and moves to the top of the track where the target sector is located. This time is called The seek time is about 10 milliseconds on average. After the target track is found, the rotation of the disk is made so that the target sector is turned to the bottom of the head. This time is called the rotation delay time, and a 7200 (rev/min) hard disk requires approximately one time per rotation. At 8.33 milliseconds, the average rotation delay time is approximately 4.17 milliseconds. Read or write data to the target sector for approximately a few milliseconds. For sequence 10, 10 does not require re-seeking and waiting, so sequence 10 performance is higher; for random 10, each 10 needs to re-seek and wait, seek and wait time is higher than data read or write time Very much, so the random 10 performance is very poor.
- Redundant Array of Independent Disks (RAID) protection in storage devices.
- RAID5 and RAID6 have write penalties, which seriously affects performance.
- Write 10 in the corresponding order, write punishment ⁇ very small .
- the 8-disk RAID5 consists of 7 data disks (D) and one parity disk (P). If a small 10 is randomly written, then in the best case, the old parity data must be read into the memory; then the new data is used. After re-checking with the old parity data to generate new parity data, it is written to the disk together.
- Each host 10 triggers at least 3 disk 10 operations, write amplification is 3 times, and overall system performance is degraded by 2/3.
- the checksum is generated to generate new check data, and then 7 10s are placed together with a new check data. 8 disk operations are triggered every 7 hosts 10, write amplification 8/7
- the performance degradation is very small.
- the redirection is written as a full-order write, which can solve the problem of poor HDD write performance and solve the problem of RAID write penalty. Therefore, in the case of processing write 10, the redirection write function is introduced.
- Divide the physical space of the storage device into effective data space and redundant space.
- a valid data space stores data that has already been written.
- a layer of mapping is established between the logical address of the write 10 and the physical address of the valid data space. When the logical address comes up with a random write of 10, the original physical location of the write valid data space is not overwritten, but a segment is allocated from the redundant space.
- Space write multiple random writes to the sequential redundant space, and then use the mapping table to record the logical address to the new physical address mapping.
- the old valid data physical space that has been written becomes garbage. This can convert random writes into full strip sequential writes, improving storage device write performance.
- the physical space of the storage device is divided into multiple segments according to a certain size. In the lower part of the RAID scenario, the entire strip is used. In the solid state storage disk (SSD), the lower segment refers to the erasable. Block, the lower part of other scenes refers to a continuous space.
- SSD solid state storage disk
- the proportion of garbage in the segment When the system is running for a period of time, garbage may be generated in each segment. The ratio of the number of garbage to the number of blocks in the segment is called the proportion of garbage in the segment.
- garbage it is common to first find the segment with a high proportion of garbage, and move the remaining valid data in the segment to the redundant space. After the valid data is moved, the segment can be recycled and the segment becomes redundant. Space, used for redistribution.
- a block is composed of a minimum write unit page, where, in an SSD, a block is a segment for data recovery.
- a block Before writing data in the SSD, you need to erase it first.
- the unit of erasing is block. Therefore, the SSD also uses redirection to write internally. There is also garbage collection.
- the operation process is exactly the same as the redirection write mentioned above. One more erase operation before.
- garbage collection based on redirected write storage generally uses the proportion of garbage as the recovery condition.
- the garbage collection process needs to move the valid data.
- the move needs to read the valid data, and then write the valid data to the new address.
- This process generates read 10 and write 10, which are part of the redirect write function. Therefore, it needs to be moved during the transfer process.
- a new 10 is generated, and the new 10 will occupy the storage device 10 resources and bandwidth.
- 10 resources and bandwidth are limited, and the proportion of garbage in the segment is lower.
- the larger the amount of valid data that needs to be moved in a segment the more resources and bandwidth that occupy the storage device. The greater the impact on the performance of the storage device.
- each segment is immediately recovered after the proportion of garbage reaches a predetermined value, and the garbage data is inefficient. Summary of the invention
- the present invention provides a method of recycling garbage data, aiming to solve the problem of how to improve the efficiency of garbage collection.
- a method of recycling garbage data comprising:
- the first data is garbage data or valid data
- the amount of change of the first data is an increase amount of the garbage data or a decrease amount of the valid data
- a value of the increase amount of the garbage data is the same as a value of a decrease amount of the effective data
- the valid data refers to data stored in a physical address in a segment that has a mapping relationship with a logical address
- the garbage data is Refers to the data stored in the physical address in the segment that does not have a mapping relationship with the logical address.
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- the data amount of the first data of the current time in each segment of the storage device and the amount of change of the first data in a preset time before the current time are respectively included, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- Determining, according to the predicted value of the first data of each segment, a segment that needs to recover garbage data including: determining, according to a predicted value of the garbage data, a segment that needs to recycle the garbage data.
- the data amount of the first data of the current time in each segment of the storage device and the amount of change of the first data in a preset time before the current time are respectively included, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- Determining, according to the predicted value of the first data of each segment, a segment that needs to recover garbage data including: determining a segment that needs to recycle garbage data according to a predicted value of the valid data from small to large.
- the data amount of the first data of the current time in each segment of the storage device is separately recorded and The amount of change of the first data in a preset time before the current time, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- Determining, according to the predicted value of the first data of each segment, a segment that needs to recover garbage data including: determining, according to a predicted value of the garbage data, a segment that needs to recycle the garbage data.
- the data amount of the first data of the current time in each segment of the storage device is separately recorded and The amount of change of the first data in a preset time before the current time, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- the second aspect is a storage device for recycling garbage data, where the device includes:
- a recording unit configured to separately record a data amount of the first data of the current time in each segment and a change amount of the first data within a preset time before the current time;
- the first data is garbage data or The valid data
- the amount of change of the first data is an increase amount of the garbage data or a decrease amount of the valid data
- the value of the increase amount of the garbage data is the same as the value of the decrease amount of the valid data ;
- a calculating unit configured to calculate a pre-J value of the first data according to the data amount of the first data and the amount of change of the first data in each segment;
- a determining unit configured to determine, according to the predicted value of the first data in each segment, a segment that needs to collect garbage data
- the valid data refers to data stored in a physical address in a segment that has a mapping relationship with a logical address
- the garbage data refers to data stored in a physical address in a segment that does not have a mapping relationship with a logical address.
- the calculating unit is specifically configured to:
- the recording unit is specifically configured to: Recording, respectively, the data amount of the garbage data of the current time in each segment and the increase amount of the garbage data in the time set in advance before the current time; the calculating unit is specifically configured to:
- the determining unit is specifically configured to:
- the recording unit is specifically configured to:
- the calculating unit is specifically configured to:
- the determining unit is specifically configured to:
- the recording unit is specifically configured to:
- the calculating unit is specifically configured to: Calculating a predicted value of the data amount of the garbage data of the current time according to the data amount of the garbage data of the current time in the segment and the first weight;
- the determining unit is specifically configured to:
- the recording unit is specifically configured to:
- the calculating unit is specifically configured to:
- the determining unit is specifically configured to:
- An embodiment of the present invention provides a method and a storage device for recovering garbage data, respectively recording the data amount of the first data of the current time in each segment of the storage device and the first data in a time set in advance before the current time.
- the amount of change; the first data is garbage data or valid data, the amount of change of the first data is an increase amount of the garbage data or a decrease amount of the valid data, a value of the increase amount of the garbage data and the effective amount
- the values of the amount of reduction of the data are the same; the predicted value of the first data is calculated according to the amount of data of the first data in each segment and the amount of change of the first data; The predicted value of a data determines the segment that needs to recycle the garbage data, and the priority is to recycle the garbage.
- the segment with a low rate of garbage generation provides the efficiency of recycling garbage data.
- FIG. 1 is a flowchart of a method for recycling garbage data according to an embodiment of the present invention
- FIG. 2 is a schematic diagram of a method for recycling garbage data according to Embodiment 1 of the present invention.
- FIG. 3 is a schematic diagram of a method for recycling garbage data according to Embodiment 2 of the present invention.
- FIG. 4 is a structural diagram of an apparatus for recycling garbage data according to an embodiment of the present invention.
- FIG. 5 is a structural diagram of a storage device according to an embodiment of the present invention. detailed description
- FIG. 1 is a flowchart of a method for recycling garbage data according to an embodiment of the present invention. As shown in FIG. 1, the method includes the following steps:
- Step 101 Record a data amount of the first data of the current time in each segment of the storage device and a change amount of the first data in a preset time before the current time; the first data is garbage data or The effective data, the amount of change of the first data is an increase amount of the garbage data or a decrease amount of the valid data, and a value of the increase amount of the garbage data is the same as a value of a decrease amount of the effective data.
- the valid data refers to data stored in a physical address in a segment that has a mapping relationship with a logical address
- the garbage data refers to data stored in a physical address in a segment that does not have a mapping relationship with a logical address.
- the storage device generally divides the physical space into multiple segments according to a certain size, and the storage device is
- the segment refers to the entire stripe.
- the segment refers to a block that can be erased.
- the segment refers to a continuous space.
- a storage device that uses redirected writes there are two data addresses, a logical address and a physical address.
- a storage device that uses a redirected write receives a write of 10, it carries a logical address.
- a new physical address is allocated from the physical space of the storage device, the data is written to the new physical address, and a mapping of the logical address to the new physical address is established in the mapping table. .
- Step 102 Calculate a predicted value of the first data according to the data amount of the first data and the change amount of the first data in each segment;
- the calculating according to the data amount of the first data and the amount of change of the first data in each segment, the predicted value of the first data, including:
- the predicted value of the first data is calculated based on the predicted value of the data amount of the first data and the predicted value of the amount of change of the first data.
- the first data of the current time in each segment is garbage data
- the first weight is 1/2
- the change amount of the first data in each segment is the change amount of the garbage data
- the second weight is 1/ 3.
- the first weight is 1/2
- the amount of change of the first data is the amount of change of the valid data
- the second weight is 1/3
- Step 103 Determine, according to the predicted value of the first data in each segment, a segment that needs to collect garbage data.
- the data amount of the first data of the current time in each segment of the storage device and the amount of change of the first data in a preset time before the current time are respectively included, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- Determining, according to the predicted value of the first data of each segment, a segment that needs to recover garbage data including: determining, according to a predicted value of the garbage data, a segment that needs to recycle the garbage data.
- FIG. 2 is a schematic diagram of a method for recycling garbage data according to Embodiment 1 of the present invention.
- the total storage capacity of segment 0 is 100 MB at time 1
- the effective data is 80 MB
- the garbage data is 20 MB
- the capacity is 100MB
- the effective data is 60MB
- the garbage data is 40MB
- the total storage capacity of segment 2 is 100MB at time 1
- the effective data is 40MB
- the garbage data is 60MB
- the total storage capacity of segment 0 at time 2 is 100MB.
- the valid data is 40MB
- the garbage data is 60MB
- the total storage capacity of segment 1 is 100MB at time 2
- the effective data is 40MB
- the garbage data is 60MB
- the total storage capacity of segment 2 at time 2 is 100MB
- the valid data is 40MB.
- the garbage data is 60MB.
- the predicted value of each piece of garbage data is calculated according to the increase amount of the garbage data at each time point 1 to time 2.
- the amount of garbage data increase for segment 0 from time 1 to time 2 is 40 MB
- the predicted value of garbage data for segment 0 is 20 MB by multiplying 40 MB by weight 1/2
- the amount of garbage data increase for segment 1 at time 1 to time 2 is 20MB
- multiplying 20MB by weight 1/2 to obtain the predicted value of garbage data of segment 0 is 10MB
- the amount of garbage data increase of segment 2 from time 1 to time 2 is 0, and the predicted value of garbage data of segment 2 is 0.
- the principle of the segment that needs to recycle the garbage data is determined in order of priority, and the garbage data in the segment 2 is preferentially recovered, the garbage data in the segment 1 is recovered, and the garbage data in the segment 0 is finally recovered.
- the data amount of the first data of the current time in each segment of the storage device and the amount of change of the first data in a preset time before the current time are respectively included, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- FIG. 3 is a schematic diagram of a method for collecting garbage data according to Embodiment 2 of the present invention. As shown in Figure 3, assume that the storage device has three segments to be reclaimed. The total storage capacity of segment 0 at time 1 is 100 MB, the valid data is 80 MB, the garbage data is 20 MB, and the total storage capacity for segment 1 at time 1 is 100 MB.
- the valid data is 60MB, the garbage data is 40MB, the total storage capacity of segment 2 is 100MB at time 1, the effective data is 40MB, the garbage data is 60MB; the total storage capacity of segment 0 at time 2 is 100MB, the valid data is 40MB, the storage data is 60MB, the total storage capacity of segment 1 is 100MB at time 2, the effective data is 40MB, the garbage data is 60MB, the total storage capacity of segment 2 at time 2 is 100MB, the effective data is 40MB, garbage data It is 60MB.
- the predicted value of each valid data is calculated according to the reduction of the effective data of each time from time 1 to time 2.
- the effective data reduction amount of segment 0 from time 1 to time 2 is 40 MB
- multiplying 40 MB by weight 1/2 to obtain the predicted value of the valid data of segment 0 is 20 MB
- the effective data reduction of segment 1 at time 1 to time 2 For 20MB, multiply 20MB by weight 1/2 to get the predicted value of the valid data of segment 0 is 10MB
- the reduction of valid data of segment 2 from time 1 to time 2 is 0, and the predicted value of valid data of segment 2 is 0. .
- the segment that needs to recycle the garbage data is determined in the order of small to large, the garbage data in the segment 2 is preferentially recovered, the garbage data in the segment 1 is recovered, and the garbage in the segment 0 is finally recovered. Data.
- the data amount of the first data of the current time in each segment of the storage device and the amount of change of the first data in a preset time before the current time are respectively included, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- Determining, according to the predicted value of the first data of each segment, a segment that needs to recover garbage data including: determining, according to a predicted value of the garbage data, a segment that needs to recycle the garbage data.
- the data amount of the first data of the current time in each segment of the storage device and the amount of change of the first data in a preset time before the current time are respectively included, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- Determining, according to the predicted value of the first data of each segment, a segment that needs to recover garbage data including: The segments that need to be recycled garbage data are determined in descending order of the predicted values of the valid data.
- An embodiment of the present invention provides a method for recovering garbage data, which respectively records a data amount of first data of a current time in each segment of the storage device and a change amount of the first data in a time set in advance before the current time.
- the first data is garbage data or valid data
- the amount of change of the first data is an increase amount of the garbage data or a decrease amount of the valid data, a value of the increase amount of the garbage data and a decrease of the effective data
- the values of the quantities are the same; the predicted value of the first data is calculated according to the data amount of the first data in each segment and the amount of change of the first data; according to the first data in each segment
- the predicted value determines the segment that needs to recycle the garbage data, and preferentially recycles the segment with more garbage and lower garbage generation rate, thereby improving the efficiency of recycling the garbage data.
- FIG. 4 is a structural diagram of a storage device for recycling garbage data according to an embodiment of the present invention.
- the storage device includes:
- the first data is garbage data or valid data
- the amount of change of the first data is an increase amount of the garbage data or a decrease amount of the effective data
- a value of the increase amount of the garbage data is the same as a value of a decrease amount of the effective data
- the valid data refers to data stored in a physical address in a segment that has a mapping relationship with a logical address
- the garbage data refers to data stored in a physical address in a segment that does not have a mapping relationship with a logical address.
- mapping table between logical addresses and physical addresses for recording the mapping between logical addresses and physical addresses.
- a storage device that uses a redirected write receives a write of 10, it carries a logical address.
- data is first written to a logical address, a new physical address is allocated from the physical space of the storage device, the data is written to the new physical address, and a mapping of the logical address to the new physical address is established in the mapping table. .
- the calculating unit 402 is configured to calculate a pre-J value of the first data according to the data amount of the first data and the change amount of the first data in each segment;
- the calculating unit 402 is specifically configured to:
- the first data of the current time in each segment is garbage data
- the first weight is 1/2
- the change amount of the first data in each segment is the change amount of the garbage data
- the second weight is 1/ 3.
- the first weight is 1/2
- the amount of change of the first data is the amount of change of the valid data
- the second weight is 1/3
- the determining unit 403 is configured to determine, according to the predicted value of the first data in each segment, a segment that needs to collect garbage data.
- the recording unit 401 is specifically configured to:
- the calculating unit 402 is specifically configured to:
- the determining unit 403 is specifically configured to:
- the segments that need to recycle garbage data are determined in descending order of the predicted values of the garbage data.
- the recording unit 401 is specifically configured to:
- the calculating unit 402 is specifically configured to:
- the determining unit 403 is specifically configured to:
- the segments that need to be recycled garbage data are determined in descending order of the predicted values of the valid data.
- the recording unit 401 is specifically configured to:
- the calculating unit 402 is specifically configured to: Calculating a predicted value of the data amount of the garbage data of the current time according to the data amount of the garbage data of the current time in the segment and the first weight;
- the determining unit 403 is specifically configured to:
- the segments that need to recycle garbage data are determined in descending order of the predicted values of the garbage data.
- the recording unit 401 is specifically configured to:
- the calculating unit 402 is specifically configured to:
- the determining unit 403 is specifically configured to:
- the segments that need to be recycled garbage data are determined in descending order of the predicted values of the valid data.
- the embodiment of the present invention provides a storage device for recovering garbage data, where the storage device records the data amount of the first data of the current time in each segment of the storage device and the time set in advance before the current time.
- FIG. 5 is a structural diagram of a device of a storage device according to an embodiment of the present invention.
- the storage device 500 includes:
- a processor 501 A processor 501, a communications interface 502, a memory 503, and a bus 504.
- the processor 501, the communication interface 502, and the memory 503 complete communication with each other via the bus 504.
- the processor 501 is configured to execute a program.
- the program can include program code, the program code including computer operating instructions.
- the processor 501 may be a central processing unit (CPU), or an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present invention.
- the memory 503 is used to store a program.
- the memory 503 may be a volatile memory such as a random-access memory (RAM) or a non-volatile memory such as a read-only memory. ROM), flash memory, hard disk drive (HDD) or solid-state drive (SSD).
- the processor 501 performs the following methods according to the program instructions stored in the memory 503:
- the first data is garbage data or valid data
- the amount of change of the first data is an increase amount of the garbage data or a decrease amount of the valid data
- a value of the increase amount of the garbage data is the same as a value of a decrease amount of the effective data
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- the data amount of the first data of the current time in each segment of the storage device and the amount of change of the first data in a preset time before the current time are respectively included, including:
- Calculating the predicted value of the first data according to the data amount of the first data and the amount of change of the first data in each segment including:
- Determining, according to the predicted value of the first data of each segment, a segment that needs to recover garbage data including: determining, according to a predicted value of the garbage data, a segment that needs to recycle the garbage data.
- the data amount of the first data of the current time in each segment of the storage device and the amount of change of the first data in a preset time before the current time are respectively included, including:
- the amount of data according to the first data in each segment and the amount of change in the first data Calculating the predicted value of the first data, including:
- Determining, according to the predicted value of the first data of each segment, a segment that needs to recover garbage data including: determining a segment that needs to recycle garbage data according to a predicted value of the valid data from small to large.
- the embodiment of the present invention provides a storage device for recovering garbage data, which records the data amount of the first data of the current time in each segment of the storage device and the change of the first data in a preset time before the current time.
- the first data is garbage data or valid data
- the amount of change of the first data is an increase amount of the garbage data or a decrease amount of the valid data, a value of the increase amount of the garbage data and the effective data
- the values of the reduction amount are the same;
- the predicted value of the first data is calculated according to the data amount of the first data and the change amount of the first data in each segment; according to the first data in each segment
- the predicted value determines the segment that needs to recycle the garbage data, and preferentially recycles the segment with more garbage and lower garbage generation rate, thereby improving the efficiency of recycling the garbage data.
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)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例提供一种回收垃圾数据的方法和存储设备,分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述第一数据的变化量;根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值;根据每个段内所述第一数据的预测值确定需要回收垃圾数据的段,优先回收垃圾较多且垃圾产生速率较低的段,从而提高回收垃圾数据的效率。
Description
一种回收垃圾数据的方法及存储设备
技术领域
本发明涉及计算机领域, 尤其涉及到一种回收垃圾数据的方法及存储设 备。 背景技术
一般的存储设备写入数据后, 会根据逻辑块地址(Logical Block Address, LBA )找到对应的地址, 然后把数据写进去。 如果多个输入输出命令(Input Output, 10 )之间地址相连, 则为顺序 10, 否则为随机 10。
存储设备中的硬盘驱动器(Hard Disk Drive, HDD )要读取一个数据时, 磁头必须先移动到数据所在磁道,磁头沿径向移动, 移到目标扇区所在磁道的 上方, 这段时间称为寻道时间, 平均约为 10毫秒。 找到目标磁道后通过盘片 的旋转, 使得要目标扇区转到磁头的下方, 这段时间称为旋转延迟时间, 一个 7200 (转 /每分钟) 的硬盘, 每旋转一周所需时间为约为 8.33毫秒, 则平均旋 转延迟时间为约为 4.17毫秒。 向目标扇区读取或写入数据, 时间约为零点几 个毫秒。 对于顺序 10, 10之间不需要重新寻道和等待, 因此顺序 10性能比 较高; 对于随机 10, 每个 10需要重新寻道和等待, 寻道和等待时间比数据读 取或写入时间高非常多, 因此随机 10性能非常差。
存储设备中的一般釆用冗余磁盘阵列 (Redundant Array of Independent Disks, RAID )保护, 对于随机写 10, RAID5和 RAID6都有写惩 ¾, 严重影 响性能; 对应顺序写 10, 写惩 ^非常小。 以 8盘 RAID5为例说明写惩 ¾对写 性能的影响。 8盘 RAID5由 7个数据盘 (D)和一个校验盘 (P)组成, 如果随机写 一个小 10, 则最好情况下, 必须把旧的校验数据读到内存中; 然后用新数据 和旧的校验数据一起重新校验产生新校验数据后, 再一起写入磁盘中。每个主 机 10至少触发 3次磁盘 10操作, 写放大 3倍, 整个系统性能下降 2/3。 顺序 写时, 在收到 7个主机 10后, 一起校验产生新的校验数据, 然后 7个 10连同 一个新的校验数据一起下盘。 每 7个主机 10触发 8次磁盘操作, 写放大 8/7
倍性能下降非常少。
重定向写为完全顺序写, 既可以解决 HDD随机写性能差问题, 又可以解 决 RAID写惩 ¾问题, 因此, 在处理写 10的情况下, 引入重定向写功能。 把 存储设备的物理空间划分为有效数据空间和冗余空间。有效数据空间存储已经 写入的数据。在写 10的逻辑地址与有效数据空间物理地址之间建立一层映射, 当逻辑地址上来了随机的写 10后, 不覆盖写有效数据空间原始物理位置, 而 是从冗余空间中分配出一段空间,把多个随机写 10顺序写入连续的冗余空间, 然后用映射表记录逻辑地址到新物理地址映射,被写过的旧的有效数据物理空 间变成垃圾。 这样可以把随机写转换成满条带顺序写, 提高存储设备写性能。
重定向写会在旧的物理空间产生垃圾, 当冗余空间低于一定程度后, 必须 启动垃圾回收, 否则冗余空间用完后, 新写入 10会由于分配不到冗余空间而 无法处理。 为了方便垃圾回收, 一般把存储设备物理空间按一定大小先划分为 多个段, 在 RAID场景下段是指整个条带, 在固态存储硬盘( Solid State Disk, SSD )场景下段是指可以擦除的块, 其他场景下段是指一段连续的空间。 当系 统运行一段时间后,每个段内都有可能产生垃圾, 垃圾数与段内块数的比值称 为段内垃圾比例。 垃圾回收时, 一般先找到垃圾比例较高的段, 把该段内剩余 有效数据搬移到冗余空间中, 将该段有效数据搬移后, 就可以将该段回收, 把 该段变成冗余空间, 用于重新分配。
在 SSD中, 由最小写入单位页组成组成块, 其中, SSD中, 块为进行数 据回收的段。在 SSD中写入数据之前需要先擦除,擦除的单位为块, 因此 SSD 内部也釆用重定向写, 也存在垃圾回收,操作过程跟前面提到的重定向写完全 一样, 只是在回收前多了一步擦除操作。
通常的,基于重定向写的存储设备的垃圾回收, 一般釆用垃圾比例作为回 收条件, 当冗余空间不足后,按垃圾比例高低优先级对垃圾比例较高的段进行 回收。 垃圾回收过程需要搬移有效数据, 搬移需要把有效数据读出来, 再把有 效数据写入新的地址, 这一过程产生读 10和写 10, 属于重定向写功能的一部 分, 因此, 搬移过程中需要产生新的 10, 新的 10会占用存储设备 10资源和 带宽。 在一般的存储设备中, 10资源和带宽是有限的, 段内的垃圾比例越低,
段内需要搬移的有效数据量越大,占用存储设备的 10资源和带宽能力就越多, 最终对存储设备性能的影响就越大。现有技术中,基本上每个段在垃圾比例达 到预定值后就立马回收, 回收垃圾数据效率低。 发明内容
本发明提供了一种回收垃圾数据的方法,旨在解决如何提高垃圾回收效率 的问题。
第一方面, 一种回收垃圾数据的方法, 所述方法包括:
分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前 时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾数据 或者有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者所述有效 数据的减少量,所述垃圾数据的增加量的数值和所述有效数据的减少量的数值 相同;
根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算 所述第一数据的预测值;
根据每个段内所述第一数据的预测值确定需要回收垃圾数据的段; 其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储 的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储 的数据。
结合第一方面, 在第一方面的第一种可能的实现方式中,
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据 的数据量的预测值;
根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据 的变化量的预测值;
根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值 计算所述第一数据的预测值。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现 方式中,
所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述 当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。 结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现 方式中,
所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述 当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述有效 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。 结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现 方式中,所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所 述当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述有效 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。 结合第一方面的第一种可能的实现方式,在第一方面的第五种可能的实现 方式中,所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所 述当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述垃圾 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。 第二方面, 一种回收垃圾数据的存储设备, 所述设备包括:
记录单元,用于分别记录每个段内当前时间的第一数据的数据量和在所述 当前时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾 数据或者所述有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者 所述有效数据的减少量,所述垃圾数据的增加量的数值和所述有效数据的减少 量的数值相同;
计算单元,用于根据所述每个段内所述第一数据的数据量和所述第一数据 的变化量计算所述第一数据的预 'J值;
确定单元,用于根据每个段内所述第一数据的预测值确定需要回收垃圾数 据的段;
其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储 的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储 的数据。
结合第二方面, 在第二方面的第一种可能的实现方式中, 所述计算单元, 具体用于:
根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据 的数据量的预测值;
根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据 的变化量的预测值;
根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值 计算所述第一数据的预测值结合第二方面的第一种可能的实现方式,在第二方 面的第二种可能的实现方式中, 所述记录单元, 具体用于:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量; 所述计算单元, 具体用于:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述确定单元, 具体用于:
按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。 结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现 方式中, 所述记录单元, 具体用于:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述计算单元, 具体用于:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述有效 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述确定单元, 具体用于:
按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。 结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现 方式中, 所述记录单元, 具体用于:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述计算单元, 具体用于:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述有效 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述确定单元, 具体用于:
按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。 结合第二方面的第一种可能的实现方式,在第二方面的第五种可能的实现 方式中, 所述记录单元, 具体用于:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述计算单元, 具体用于:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述垃圾 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述确定单元, 具体用于:
按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。 本发明实施例提供一种回收垃圾数据的方法和存储设备,分别记录存储设 备每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的 时间内所述第一数据的变化量; 第一数据是垃圾数据或者有效数据, 第一数据 的变化量是所述垃圾数据的增加量或者所述有效数据的减少量,所述垃圾数据 的增加量的数值和所述有效数据的减少量的数值相同;根据所述每个段内所述 第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值;根据 每个段内所述第一数据的预测值确定需要回收垃圾数据的段,优先回收垃圾较
多且垃圾产生速率较低的段, 从而提供回收垃圾数据的效率。 附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例提供的一种回收垃圾数据的方法流程图;
图 2是本发明实施例一提供的一种回收垃圾数据的方法示意图;
图 3是本发明实施例二提供的一种回收垃圾数据的方法示意图;
图 4是本发明实施例提供的一种回收垃圾数据的设备结构图;
图 5是本发明实施例提供的一种存储设备的结构图。 具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的 实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动 前提下所获得的所有其他实施例, 都属于本发明保护的范围。
参考图 1, 图 1是本发明实施例提供的一种回收垃圾数据的方法流程图。 如图 1所示, 所述方法包括以下步骤:
步骤 101, 分别记录存储设备每个段内当前时间的第一数据的数据量和在 所述当前时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是 垃圾数据或者有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者 所述有效数据的减少量,所述垃圾数据的增加量的数值和有效数据的减少量的 数值相同。
其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储 的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储 的数据。
存储设备中一般把物理空间按一定大小先划分为多个段, 在存储设备为
RAID场景下所述段是指整个条带,在存储设备为 SSD场景下所述段是指可以 擦除的块, 其他场景下所述段是指一段连续的空间。
具体的, 在使用重定向写的存储设备中数据地址有两个, 分别是逻辑地址 和物理地址。逻辑地址到物理地址之间有一个映射表, 用于记录逻辑地址与物 理地址的映射。 使用重定向写的存储设备接收到写 10后, 会携带逻辑地址。 向逻辑地址第一次写入数据时,会从存储设备的物理空间分配一个新的物理地 址,把数据写入新的物理地址中, 并在映射表中建立逻辑地址到新的物理地址 的映射。 当向相同逻辑地址第二次写入数据时,会从物理空间分配另一个新的 物理地址,把数据写入新的物理地址中, 并在映射表中建立逻辑地址与新的物 理地址的映射。 所述另一新的物理地址中存储的数据为有效数据,原物理地址 的数据变成垃圾数据。回收段时,垃圾数据不需要搬移,只需要搬移有效数据。
步骤 102, 根据所述每个段内所述第一数据的数据量和所述第一数据的变 化量计算所述第一数据的预测值;
可选地,所述根据所述每个段内所述第一数据的数据量和所述第一数据的 变化量计算所述第一数据的预测值, 包括:
根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据 的数据量的预测值;
根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据 的变化量的预测值;
根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值 计算第一数据的预测值。
其中, 假设每个段内当前时间的第一数据为垃圾数据, 第一权重为 1/2, 所述每个段内第一数据的变化量为垃圾数据的变化量, 第二权重为 1/3。 根据 垃圾数据越多越优先回收的原则, 垃圾数据量乘以第一权重之积越大,表示段 内垃圾数据越多, 有效数据越少, 回收时搬移有效数据的量就会越小, 因此, 越优先回收; 垃圾数据的变化量乘以第二权重之积越大,表示段内垃圾数据增 加量越大, 推迟回收使其进一步产生更多的垃圾, 因此, 越晚回收。 综合考虑
这两个因素, 在表达式上可以为:
垃圾数据量 X第一权重 -垃圾数据的变化量 X第二权重。
假设每段内当前时间的第一数据为有效数据, 第一权重为 1/2, 第一数据 的变化量为有效数据的变化量, 第二权重为 1/3, 则根据有效数据越少越优先 回收的原则, 有效数据量乘以第一权重之积越小, 表示有效数据越少, 回收时 搬移有效数据的量就会越小, 因此, 越优先回收; 有效数据的变化量乘以第二 权重之积越小,表示垃圾数据增加量越小,则提早回收。综合考虑这两个因素, 在表达式上可以为:
有效数据量 X第一权重 -有效数据的变化量 X第二权重。
步骤 103, 根据每个段内所述第一数据的预测值确定需要回收垃圾数据的 段。
可选地,所述分别记录存储设备每个段内当前时间的第一数据的数据量和 在所述当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。
具体的, 图 2是本发明实施例一提供的一种回收垃圾数据的方法示意图。 如图 2所示,假设存储设备有三个段需要回收,段 0在时刻 1时总的存储容量 是 100MB, 有效数据是 80MB, 垃圾数据是 20MB, 段 1在时刻 1时总的存储
容量是 100MB, 有效数据是 60MB, 垃圾数据是 40MB, 段 2在时刻 1时总的 存储容量是 100MB, 有效数据是 40MB, 垃圾数据是 60MB; 段 0在时刻 2时 总的存储容量是 100MB, 有效数据是 40MB, 垃圾数据是 60MB, 段 1在时刻 2时总的存储容量是 100MB, 有效数据是 40MB, 垃圾数据是 60MB, 段 2在 时刻 2时总的存储容量是 100MB, 有效数据是 40MB, 垃圾数据是 60MB。
假设预先设置的第一权重为 1, 第二权重为 1/2, 则根据每个段时刻 1到 时刻 2的垃圾数据的增加量, 计算每个段垃圾数据的预测值。 段 0在时刻 1 到时刻 2的垃圾数据增加量为 40MB, 将 40MB乘以权重 1/2得到段 0的垃圾 数据的预测值为 20MB, 段 1在时刻 1到时刻 2的垃圾数据增加量为 20MB, 将 20MB乘以权重 1/2得到段 0的垃圾数据的预测值为 10MB, 段 2在时刻 1 到时刻 2的垃圾数据增加量为 0, 段 2的垃圾数据的预测值为 0。
根据上述的数据,段 0垃圾数据的预测值可通过垃圾数据量 X第一权重 - 垃圾数据的变化量 X第二权重计算得到, 即 60MB 1 - 40MB 1/2=40ΜΒ; 段 1 垃圾数据的预测值可通过垃圾数据量 X第一权重 -垃圾数据的变化 量 X第二权重计算得到, 即 60MB 1 - 20ΜΒ 1/2=50ΜΒ;
段 2垃圾数据的预测值可通过垃圾数据量 X第一权重 -垃圾数据的变化 量 X第二权重计算得到, 即 60MB 1 - ΟΜΒ 1=60ΜΒ。
按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段的原 则, 优先回收段 2内的垃圾数据, 其次回收段 1内的垃圾数据, 最后回收段 0 内的垃圾数据。
可选地,所述分别记录存储设备每个段内当前时间的第一数据的数据量和 在所述当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述有效 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。 具体的, 图 3是本发明实施例二提供的一种回收垃圾数据的方法示意图。 如图 3所示,假设存储设备有三个段需要回收,段 0在时刻 1时总的存储容量 是 100MB, 有效数据是 80MB, 垃圾数据是 20MB, 段 1在时刻 1时总的存储 容量是 100MB, 有效数据是 60MB, 垃圾数据是 40MB, 段 2在时刻 1时总的 存储容量是 100MB, 有效数据是 40MB, 垃圾数据是 60MB; 段 0在时刻 2时 总的存储容量是 100MB, 有效数据是 40MB, 存储数据是 60MB, 段 1在时刻 2时总的存储容量是 100MB, 有效数据是 40MB, 垃圾数据是 60MB, 段 2在 时刻 2时总的存储容量是 100MB, 有效数据是 40MB, 垃圾数据是 60MB。
假设第一权重为 1, 第二权重为 1/2, 则根据每段时刻 1到时刻 2的有效 数据的减少量, 计算每段有效数据的预测值。段 0在时刻 1到时刻 2的有效数 据减少量为 40MB, 将 40MB乘以权重 1/2得到段 0的有效数据的预测值为 20MB, 段 1在时刻 1到时刻 2的有效数据的减少量为 20MB, 将 20MB乘以 权重 1/2得到段 0的有效数据的预测值为 10MB, 段 2在时刻 1到时刻 2的有 效数据的减少量为 0, 段 2的有效数据的预测值为 0。
根据上述的数据, 段 0有效数据的预测值可通过有效数据量 X第一权重 + 有效数据的变化量 X第二权重计算得到, 即 40MB 1+40MB 1/2=60MB; 段 1有效数据的预测值可通过有效数据量 X第一权重 +有效数据的变化量 第二权重计算得到, 即 40MB 1+20MB 1/2=50MB;
段 2有效数据的预测值可通过有效数据量 X第一权重 +有效数据的变化量 第二权重计算得到, 即 40MB 1+0MB 1=40MB。
按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段,优先 回收段 2内的垃圾数据, 其次回收段 1内的垃圾数据, 最后回收段 0内的垃圾
数据。
可选地,所述分别记录存储设备每个段内当前时间的第一数据的数据量和 在所述当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述有效 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。 可选地,所述分别记录存储设备每个段内当前时间的第一数据的数据量和 在所述当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述垃圾 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括:
按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。
本发明实施例提供一种回收垃圾数据的方法,分别记录存储设备每个段内 当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内所述 第一数据的变化量; 第一数据是垃圾数据或者有效数据, 第一数据的变化量是 所述垃圾数据的增加量或者所述有效数据的减少量,所述垃圾数据的增加量的 数值和所述有效数据的减少量的数值相同;根据所述每个段内所述第一数据的 数据量和所述第一数据的变化量计算所述第一数据的预测值;根据每个段内所 述第一数据的预测值确定需要回收垃圾数据的段,优先回收垃圾较多且垃圾产 生速率较低的段, 从而提高回收垃圾数据的效率。
参考图 4, 图 4是本发明实施例提供的一种回收垃圾数据的存储设备的结 构图。 所述存储设备包括:
记录单元 401, 用于
分别记录每个段内当前时间的第一数据的数据量和在所述当前时间之前 预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾数据或者有效 数据,所述第一数据的变化量是所述垃圾数据的增加量或者所述有效数据的减 少量, 所述垃圾数据的增加量的数值和有效数据的减少量的数值相同;
其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储 的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储 的数据。
具体的, 在使用重定向写的存储设备中数据地址有两个, 分别是逻辑地址 和物理地址。逻辑地址到物理地址之间有一个映射表, 用于记录逻辑地址与物 理地址的映射。 使用重定向写的存储设备接收到写 10后, 会携带逻辑地址。 向逻辑地址第一次写入数据时,会从存储设备的物理空间分配一个新的物理地 址,把数据写入新的物理地址中, 并在映射表中建立逻辑地址到新的物理地址 的映射。 当向相同逻辑地址第二次写入数据时,会从物理空间分配另一个新的 物理地址,把数据写入新的物理地址中, 并在映射表中建立逻辑地址与新的物 理地址的映射。 所述另一新的物理地址中存储的数据为有效数据,原物理地址 的数据变成垃圾数据。回收段时,垃圾数据不需要搬移,只需要搬移有效数据。
计算单元 402, 用于根据所述每个段内所述第一数据的数据量和所述第一 数据的变化量计算所述第一数据的预 'J值;
可选地, 所述计算单元 402, 具体用于:
根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据 的数据量的预测值;
根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据 的变化量的预测值;
根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值 计算所述第一数据的预测值。
其中, 假设每个段内当前时间的第一数据为垃圾数据, 第一权重为 1/2, 所述每个段内第一数据的变化量为垃圾数据的变化量, 第二权重为 1/3。 根据 垃圾数据越多越优先回收的原则, 垃圾数据量乘以第一权重之积越大,表示段 内垃圾数据越多, 有效数据越少, 回收时搬移有效数据的量就会越小, 因此, 越优先回收; 垃圾数据的变化量乘以第二权重之积越大,表示段内垃圾数据增 加量越大, 推迟回收使其进一步产生更多的垃圾, 因此, 越晚回收。 综合考虑 这两个因素, 在表达式上可以为:
垃圾数据量 X第一权重 -垃圾数据的变化量 X第二权重。
假设每段内当前时间的第一数据为有效数据, 第一权重为 1/2, 第一数据 的变化量为有效数据的变化量, 第二权重为 1/3, 则根据有效数据越少越优先 回收的原则, 有效数据量乘以第一权重之积越小, 表示有效数据越少, 回收时 搬移有效数据的量就会越小, 因此, 越优先回收; 有效数据的变化量乘以第二 权重之积越小,表示垃圾数据增加量越小,则提早回收。综合考虑这两个因素, 在表达式上可以为:
有效数据量 X第一权重 -有效数据的变化量 X第二权重。
确定单元 403, 用于根据每个段内所述第一数据的预测值确定需要回收垃 圾数据的段。
可选地, 所述记录单元 401, 具体用于:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间
之前预先设置的时间内垃圾数据的增加量;
所述计算单元 402, 具体用于:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述确定单元 403, 具体用于:
按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。 本发明存储设备实施例的一种具体实施方式可以参见上述图 2的描述。 可选地, 所述记录单元 401, 具体用于:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述计算单元 402, 具体用于:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述有效 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述确定单元 403, 具体用于:
按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。 本发明存储设备实施例的一种具体实施方式可以参见上述图 3的描述。 可选地, 所述记录单元 401, 具体用于:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述计算单元 402, 具体用于:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述有效 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述确定单元 403, 具体用于:
按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。 可选地, 所述记录单元 401, 具体用于:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述计算单元 402, 具体用于:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述垃圾 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述确定单元 403, 具体用于:
按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。本发 明实施例提供一种回收垃圾数据的存储设备,所述存储设备分别记录存储设备 每个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时 间内所述第一数据的变化量; 第一数据是垃圾数据或者有效数据, 第一数据的 变化量是所述垃圾数据的增加量或者所述有效数据的减少量,所述垃圾数据的 增加量的数值和所述有效数据的减少量的数值相同;根据所述每个段内所述第 一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值;根据每 个段内所述第一数据的预测值确定需要回收垃圾数据的段,优先回收垃圾较多 且垃圾产生速率较低的段, 从而提高回收垃圾数据的效率。
图 5是本发明实施例提供的一种存储设备的装置结构图。 参考图 5, 图 5 是本发明实施例提供的一种存储设备 500, 本发明具体实施例并不对所述存储 设备的具体实现做限定。 所述存储设备 500包括:
处理器 (processor)501, 通信接口 (Communications Interface) 502 , 存储器 (memory)503 , 总线 504。
处理器 501, 通信接口 502,存储器 503通过总线 504完成相互间的通信。 通信接口 502, 用于与其他设备进行通信;
处理器 501, 用于执行程序。
具体地, 程序可以包括程序代码, 所述程序代码包括计算机操作指令。 处理器 501可能是一个中央处理器( central processing unit, CPU ) , 或 者是特定集成电路 ASIC ( Application Specific Integrated Circuit ), 或者是被配 置成实施本发明实施例的一个或多个集成电路。
存储器 503, 用于存储程序。 存储器 503 可以是易失性存储器(volatile memory ) , 例如随机存取存储器 ( random-access memory, RAM ) , 或者非 易失性存储器 ( non-volatile memory ) , 例如只读存储器 ( read-only memory, ROM ) , 快闪存储器 ( flash memory ) , 硬盘( hard disk drive, HDD )或固 态硬盘(solid-state drive, SSD ) 。 处理器 501根据存储器 503存储的程序指 令, 执行以下方法:
分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前 时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾数据 或者有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者所述有效 数据的减少量,所述垃圾数据的增加量的数值和所述有效数据的减少量的数值 相同;
根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算 所述第一数据的预测值;
根据每个段内所述第一数据的预测值确定需要回收垃圾数据的段; 其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储 的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储
的数据。
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据 的数据量的预测值;
根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据 的变化量的预测值;
根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值 计算所述第一数据的预测值。
所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述 当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。 所述分别记录存储设备每个段内当前时间的第一数据的数据量和在所述 当前时间之前预先设置的时间内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量
计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述有效 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。 本发明实施例提供的回收垃圾数据的存储设备,具体可以参考上述方法实 施例和存储设备实施例的描述, 在此不再赘述。
本发明实施例提供一种回收垃圾数据的存储设备,分别记录存储设备每个 段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间内 所述第一数据的变化量; 第一数据是垃圾数据或者有效数据, 第一数据的变化 量是所述垃圾数据的增加量或者所述有效数据的减少量,所述垃圾数据的增加 量的数值和所述有效数据的减少量的数值相同;根据所述每个段内所述第一数 据的数据量和所述第一数据的变化量计算所述第一数据的预测值;根据每个段 内所述第一数据的预测值确定需要回收垃圾数据的段,优先回收垃圾较多且垃 圾产生速率较低的段, 从而提高回收垃圾数据的效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易 想到的变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应该以权利要求的保护范围为准。
Claims
1、 一种回收垃圾数据的方法, 其特征在于, 所述方法包括:
分别记录存储设备每个段内当前时间的第一数据的数据量和在所述当前 时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾数据 或者有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者所述有效 数据的减少量,所述垃圾数据的增加量的数值和所述有效数据的减少量的数值 相同;
根据所述每个段内所述第一数据的数据量和所述第一数据的变化量计算 所述第一数据的预测值;
根据每个段内所述第一数据的预测值确定需要回收垃圾数据的段; 其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储 的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储 的数据。
2、 根据权利要求 1所述的方法, 其特征在于, 所述根据所述每个段内所 述第一数据的数据量和所述第一数据的变化量计算所述第一数据的预测值,包 括:
根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据 的数据量的预测值;
根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据 的变化量的预测值;
根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值 计算所述第一数据的预测值。
3、 根据权利要求 2所述的方法, 其特征在于, 所述分别记录存储设备每 个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间 内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。
4、 根据权利要求 2所述的方法, 其特征在于, 所述分别记录存储设备每 个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间 内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述有效 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。
5、 根据权利要求 2所述的方法, 其特征在于, 所述分别记录存储设备每 个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间 内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述有效 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。
6、 根据权利要求 2所述的方法, 其特征在于, 所述分别记录存储设备每 个段内当前时间的第一数据的数据量和在所述当前时间之前预先设置的时间 内所述第一数据的变化量, 包括:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述根据所述每个段内所述第一数据的数据量和所述第一数据的变化量 计算所述第一数据的预测值, 包括:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述垃圾 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述根据所述每段第一数据的预测值确定需要回收垃圾数据的段, 包括: 按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。
7、 一种回收垃圾数据的存储设备, 其特征在于, 所述存储设备包括: 记录单元,用于分别记录每个段内当前时间的第一数据的数据量和在所述 当前时间之前预先设置的时间内所述第一数据的变化量;所述第一数据是垃圾
数据或者所述有效数据,所述第一数据的变化量是所述垃圾数据的增加量或者 所述有效数据的减少量,所述垃圾数据的增加量的数值和所述有效数据的减少 量的数值相同;
计算单元,用于根据所述每个段内所述第一数据的数据量和所述第一数据 的变化量计算所述第一数据的预 'J值; 确定单元,用于根据每个段内所述第一数据的预测值确定需要回收垃圾数 据的段;
其中,所述有效数据是指段内与逻辑地址存在映射关系的物理地址中存储 的数据;所述垃圾数据是指段内与逻辑地址不存在映射关系的物理地址中存储 的数据。
8、 根据权利要求 7所述的存储设备, 其特征在于, 所述计算单元, 具体 用于:
根据所述每个段内所述第一数据的数据量和第一权重计算所述第一数据 的数据量的预测值;
根据所述每个段内所述第一数据的变化量和第二权重计算所述第一数据 的变化量的预测值;
根据所述第一数据的数据量的预测值和所述第一数据的变化量的预测值 计算所述第一数据的预测值。
9、 根据权利要求 8所述的存储设备, 其特征在于, 所述记录单元, 具体 用于:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述计算单元, 具体用于:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述垃圾 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述确定单元, 具体用于:
按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。
10、 根据权利要求 8所述的存储设备, 其特征在于, 所述记录单元, 具体 用于:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述计算单元, 具体用于:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述有效 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述确定单元, 具体用于:
按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。
11、 根据权利要求 8所述的存储设备, 其特征在于, 所述记录单元, 具体 用于:
分别记录所述每个段内当前时间的垃圾数据的数据量和在所述当前时间 之前预先设置的时间内有效数据的减少量;
所述计算单元, 具体用于:
根据所述每个段内所述当前时间的垃圾数据的数据量和所述第一权重计 算所述当前时间的垃圾数据的数据量的预测值;
根据所述每个段内所述有效数据的减少量和所述第二权重计算所述有效 数据的变化量的预测值;
将所述每个段内所述当前时间的垃圾数据的数据量的预测值和所述有效 数据的变化量的预测值相减, 得到所述垃圾数据的预测值;
所述确定单元, 具体用于:
按照垃圾数据的预测值从大到小的顺序确定需要回收垃圾数据的段。
12、 根据权利要求 8所述的存储设备, 其特征在于, 所述记录单元, 具体 用于:
分别记录所述每个段内当前时间的有效数据的数据量和在所述当前时间 之前预先设置的时间内垃圾数据的增加量;
所述计算单元, 具体用于:
根据所述每个段内所述当前时间的有效数据的数据量和所述第一权重计 算所述当前时间的有效数据的数据量的预测值;
根据所述每个段内所述垃圾数据的增加量和所述第二权重计算所述垃圾 数据的变化量的预测值;
将所述每个段内所述当前时间的有效数据的数据量的预测值和所述垃圾 数据的变化量的预测值相加, 得到所述有效数据的预测值;
所述确定单元, 具体用于:
按照有效数据的预测值从小到大的顺序确定需要回收垃圾数据的段。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14862227.7A EP2983087A4 (en) | 2013-11-14 | 2014-04-04 | RECYCLING PROCEDURE FOR DATA MILL AND MEMORY DEVICE |
JP2016526414A JP6093095B2 (ja) | 2013-11-14 | 2014-04-04 | ガベージデータを収集するための方法及び記憶装置 |
US14/983,211 US10303600B2 (en) | 2013-11-14 | 2015-12-29 | Method and storage device for collecting garbage data |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310573861.4 | 2013-11-14 | ||
CN201310573861.4A CN103577338B (zh) | 2013-11-14 | 2013-11-14 | 一种回收垃圾数据的方法及存储设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/983,211 Continuation US10303600B2 (en) | 2013-11-14 | 2015-12-29 | Method and storage device for collecting garbage data |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015070557A1 true WO2015070557A1 (zh) | 2015-05-21 |
Family
ID=50049161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2014/074797 WO2015070557A1 (zh) | 2013-11-14 | 2014-04-04 | 一种回收垃圾数据的方法及存储设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10303600B2 (zh) |
EP (1) | EP2983087A4 (zh) |
JP (2) | JP6093095B2 (zh) |
CN (1) | CN103577338B (zh) |
WO (1) | WO2015070557A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577338B (zh) * | 2013-11-14 | 2016-06-29 | 华为技术有限公司 | 一种回收垃圾数据的方法及存储设备 |
KR20160075229A (ko) * | 2014-12-19 | 2016-06-29 | 삼성전자주식회사 | 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템 |
US9811462B2 (en) * | 2015-04-30 | 2017-11-07 | Toshiba Memory Corporation | Memory system executing garbage collection |
CN105892941A (zh) * | 2016-03-30 | 2016-08-24 | 联想(北京)有限公司 | 垃圾回收方法、垃圾回收装置和电子设备 |
EP3859507A1 (en) * | 2016-04-07 | 2021-08-04 | Huawei Technologies Co., Ltd. | Method for processing stripe in storage device and storage device |
US10324959B2 (en) * | 2016-09-20 | 2019-06-18 | Futurewei Technologies, Inc. | Garbage collection in storage system |
AU2016397188B2 (en) * | 2016-11-11 | 2019-02-21 | Huawei Technologies Co.,Ltd. | Storage system and system garbage collection method |
CN106802772B (zh) * | 2016-12-30 | 2020-02-14 | 深圳忆联信息系统有限公司 | 数据回收的方法、装置及固态硬盘 |
CN107894958B (zh) * | 2017-11-22 | 2023-06-23 | 深圳市世芯信息技术有限公司 | 垃圾信息清理方法、终端、服务器及计算机可读存储介质 |
CN109960463B (zh) * | 2017-12-26 | 2021-11-02 | 中兴通讯股份有限公司 | 一种磁盘管理方法、装置及存储介质 |
CN109977031B (zh) * | 2017-12-27 | 2021-06-01 | 成都华为技术有限公司 | 固态硬盘垃圾回收的方法和固态硬盘 |
CN110399310B (zh) * | 2018-04-18 | 2021-08-31 | 杭州宏杉科技股份有限公司 | 一种存储空间的回收方法及装置 |
CN108984116B (zh) * | 2018-06-14 | 2021-07-20 | 浙江大华存储科技有限公司 | 一种固态硬盘垃圾回收带宽的流控方法及装置 |
CN108920313A (zh) * | 2018-06-21 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种raid的测试方法、装置、设备及介质 |
CN109445681B (zh) * | 2018-08-27 | 2021-05-11 | 华为技术有限公司 | 数据的存储方法、装置和存储系统 |
CN109284233B (zh) * | 2018-09-18 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种存储系统的垃圾回收方法及相关装置 |
CN109408404B (zh) * | 2018-10-15 | 2020-10-09 | 深圳忆联信息系统有限公司 | 基于tf卡的逆向查表方法、装置和计算机设备 |
KR20200044461A (ko) * | 2018-10-19 | 2020-04-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
TWI768476B (zh) * | 2018-11-08 | 2022-06-21 | 慧榮科技股份有限公司 | 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統 |
TWI709042B (zh) * | 2018-11-08 | 2020-11-01 | 慧榮科技股份有限公司 | 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統 |
CN112306896B (zh) * | 2019-07-31 | 2022-12-27 | 华为技术有限公司 | 一种垃圾回收方法及装置 |
CN110674056B (zh) * | 2019-09-02 | 2021-11-23 | 新华三大数据技术有限公司 | 一种垃圾回收方法及装置 |
KR20210051873A (ko) * | 2019-10-31 | 2021-05-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 메모리 시스템 |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281458A (zh) * | 2008-05-14 | 2008-10-08 | 华为技术有限公司 | 一种垃圾回收的装置、系统及方法 |
US20110055455A1 (en) * | 2009-09-03 | 2011-03-03 | Apple Inc. | Incremental garbage collection for non-volatile memories |
CN102799535A (zh) * | 2012-06-29 | 2012-11-28 | 记忆科技(深圳)有限公司 | 固态硬盘的数据处理方法及固态硬盘 |
CN103577338A (zh) * | 2013-11-14 | 2014-02-12 | 华为技术有限公司 | 一种回收垃圾数据的方法及存储设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60221847A (ja) * | 1984-04-18 | 1985-11-06 | Fujitsu Ltd | アダプテイブガ−ベジコレクシヨン方式 |
US7139901B2 (en) * | 2000-02-08 | 2006-11-21 | Mips Technologies, Inc. | Extended instruction set for packet processing applications |
JP3688286B2 (ja) * | 2003-06-09 | 2005-08-24 | 三菱電機株式会社 | 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム |
KR100690804B1 (ko) * | 2005-06-13 | 2007-03-09 | 엘지전자 주식회사 | 휴대단말기의 메모리 정리 방법 |
CN101438597B (zh) * | 2006-05-17 | 2011-05-11 | 富士通株式会社 | 图像数据压缩装置、压缩方法、图像数据恢复装置、恢复方法 |
US7774389B2 (en) * | 2007-01-17 | 2010-08-10 | Microsoft Corporation | Optimized garbage collection techniques |
US20090055628A1 (en) * | 2007-08-21 | 2009-02-26 | International Business Machine Corporation | Methods and computer program products for reducing load-hit-store delays by assigning memory fetch units to candidate variables |
KR20120028581A (ko) * | 2010-09-15 | 2012-03-23 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 장치들 |
JP5575828B2 (ja) | 2012-04-02 | 2014-08-20 | 日本電信電話株式会社 | ガベージコレクション実行装置、ガベージコレクション実行方法及びガベージコレクション実行プログラム |
US20140244897A1 (en) * | 2013-02-26 | 2014-08-28 | Seagate Technology Llc | Metadata Update Management In a Multi-Tiered Memory |
US9135164B2 (en) * | 2013-03-15 | 2015-09-15 | Virident Systems Inc. | Synchronous mirroring in non-volatile memory systems |
-
2013
- 2013-11-14 CN CN201310573861.4A patent/CN103577338B/zh active Active
-
2014
- 2014-04-04 WO PCT/CN2014/074797 patent/WO2015070557A1/zh active Application Filing
- 2014-04-04 JP JP2016526414A patent/JP6093095B2/ja active Active
- 2014-04-04 EP EP14862227.7A patent/EP2983087A4/en not_active Ceased
-
2015
- 2015-12-29 US US14/983,211 patent/US10303600B2/en active Active
-
2017
- 2017-02-08 JP JP2017021025A patent/JP6300132B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281458A (zh) * | 2008-05-14 | 2008-10-08 | 华为技术有限公司 | 一种垃圾回收的装置、系统及方法 |
US20110055455A1 (en) * | 2009-09-03 | 2011-03-03 | Apple Inc. | Incremental garbage collection for non-volatile memories |
CN102799535A (zh) * | 2012-06-29 | 2012-11-28 | 记忆科技(深圳)有限公司 | 固态硬盘的数据处理方法及固态硬盘 |
CN103577338A (zh) * | 2013-11-14 | 2014-02-12 | 华为技术有限公司 | 一种回收垃圾数据的方法及存储设备 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2983087A4 * |
Also Published As
Publication number | Publication date |
---|---|
US10303600B2 (en) | 2019-05-28 |
CN103577338B (zh) | 2016-06-29 |
EP2983087A4 (en) | 2016-05-11 |
JP2017123177A (ja) | 2017-07-13 |
JP2016525249A (ja) | 2016-08-22 |
JP6093095B2 (ja) | 2017-03-08 |
EP2983087A1 (en) | 2016-02-10 |
CN103577338A (zh) | 2014-02-12 |
JP6300132B2 (ja) | 2018-03-28 |
US20160132429A1 (en) | 2016-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015070557A1 (zh) | 一种回收垃圾数据的方法及存储设备 | |
US9292431B2 (en) | Allocating storage using calculated physical storage capacity | |
US10949108B2 (en) | Enhanced application performance in multi-tier storage environments | |
US9424184B2 (en) | Apparatus, systems, and methods for nameless writes | |
US9122579B2 (en) | Apparatus, system, and method for a storage layer | |
KR102170539B1 (ko) | 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치 | |
KR102549605B1 (ko) | Raid 스토리지 장치의 리커버리 방법 | |
WO2022017002A1 (zh) | 一种垃圾回收方法及装置 | |
EP3336706B1 (en) | Method and storage device for processing stripes in storage device | |
US20150212752A1 (en) | Storage system redundant array of solid state disk array | |
US20170177218A1 (en) | Memory system and method for controlling nonvolatile memory | |
US8370563B2 (en) | Non-volatile memory system and access method thereof utilizing a confirm mark when data has been successfully recorded therein | |
EP3748509B1 (en) | System garbage collection method and method for collecting garbage in solid state hard disk | |
WO2020007030A1 (zh) | 一种系统控制器和系统垃圾回收方法 | |
US20190243758A1 (en) | Storage control device and storage control method | |
TWI768346B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
Chiueh et al. | Software orchestrated flash array | |
CN112346658B (zh) | 在具有高速缓存体系结构的存储设备中提高数据热量跟踪分辨率 | |
WO2020052216A1 (zh) | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 | |
Shin | Flash Translation Layer for Solid State Drives |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14862227 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2014862227 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2016526414 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |