CN107506136B - Garbage recycling method and device - Google Patents

Garbage recycling method and device Download PDF

Info

Publication number
CN107506136B
CN107506136B CN201710667409.2A CN201710667409A CN107506136B CN 107506136 B CN107506136 B CN 107506136B CN 201710667409 A CN201710667409 A CN 201710667409A CN 107506136 B CN107506136 B CN 107506136B
Authority
CN
China
Prior art keywords
concurrently
layer
recycled
recycling
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
Application number
CN201710667409.2A
Other languages
Chinese (zh)
Other versions
CN107506136A (en
Inventor
吴延赞
吴素宏
黄国炎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Chengdu Huawei Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Huawei Technology Co Ltd filed Critical Chengdu Huawei Technology Co Ltd
Priority to CN201710667409.2A priority Critical patent/CN107506136B/en
Publication of CN107506136A publication Critical patent/CN107506136A/en
Application granted granted Critical
Publication of CN107506136B publication Critical patent/CN107506136B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Memory System (AREA)

Abstract

The embodiment of the invention provides a method and a device for garbage recovery, relates to the technical field of computers, and can flexibly adjust the garbage recovery speed. The method comprises the following steps: under the condition that the value of the residual storage space of the flash memory storage system is smaller than or equal to a first preset threshold value, determining the number of recovery units which are concurrently recovered in each recovery layer in at least one recovery layer of the flash memory storage system according to the value of the residual storage space; and recovering the garbage in the flash memory storage system by utilizing at least one recovery layer according to the number of recovery units which are concurrently recovered in each recovery layer, wherein the value of the residual storage space is the available storage space in the flash memory storage system, concurrent recovery is performed in the same recovery layer, and serial recovery is performed between different recovery layers. The method may be applied to a flash memory storage system.

Description

Garbage recycling method and device
Technical Field
The embodiment of the invention relates to the technical field of computers, in particular to a method and a device for recycling garbage.
Background
In a flash memory storage system, the storage space of the flash memory storage system is limited, and when new data is written in a flash disk, the existing data in the flash disk cannot be directly overwritten, and it is necessary to erase (may be referred to as garbage collection) useless data (hereinafter, all referred to as garbage) in the flash disk and then write new data in the flash disk.
Generally, in the process of recovering the garbage in the flash memory storage system, garbage recovery can be performed according to the size of the garbage amount of the whole flash memory storage system by taking one data block in a flash disk as a recovery unit. Specifically, as shown in fig. 1, when the garbage amount of the flash memory storage system is greater than or equal to a preset garbage amount threshold (hereinafter, both referred to as a garbage level), data in a data block (which may be referred to as a valid data block) in which useful data is written is read and written into a new data block, and then data (i.e., garbage) in other data blocks (i.e., invalid data blocks) in the flash memory disk is erased, thereby completing garbage collection in the flash memory storage system.
However, in the above method, garbage collection is performed in units of data blocks, that is, each time garbage in one or more data blocks is collected, the amount of garbage that can be stored in one data block is fixed, so the garbage collection speed is also fixed, and for different scenarios, the requirement for the garbage collection speed is different, so the above method may not be able to flexibly adjust the garbage collection speed.
Disclosure of Invention
The application provides a method and a device for garbage recovery, which can flexibly adjust the garbage recovery speed.
In order to achieve the purpose, the technical scheme is as follows:
in a first aspect, the present application provides a method for garbage collection, where the method may be applied to a flash memory storage system, and the method may include: determining the number of recovery units concurrently recovered in each recovery layer in at least one recovery layer of the flash memory storage system according to the value of the remaining storage space under the condition that the value of the remaining storage space of the flash memory storage system is smaller than or equal to a first preset threshold, and recovering garbage in the flash memory storage system by using at least one recovery layer according to the number of the recovery units concurrently recovered in each recovery layer, wherein each recovery layer comprises at least one recovery unit, the remaining storage space is an available storage space in the flash memory storage system, concurrent recovery is performed in the same recovery layer, and serial recovery is performed between different recovery layers.
According to the garbage recycling method, the number of recycling units which are recycled concurrently in each recycling layer can be determined according to the value of the remaining storage space, and the number of recycling units which are recycled concurrently in each recycling layer can reflect the garbage recycling speed, so that the garbage recycling speed can be flexibly adjusted by adjusting the number of recycling units which are recycled concurrently in each recycling layer.
In a first optional implementation manner of the first aspect, the flash memory storage system includes three recovery layers, a recovery unit of a first recovery layer is a data block group, a recovery unit of a second recovery layer is a data block, and a recovery unit of a third recovery layer is a data granule, where a storage space of the flash memory storage system includes at least one data block group, one data block group includes at least one data block, and one data block includes at least one data granule.
In the application, the storage space of the flash memory storage system can be divided into a plurality of recovery layers, the garbage of each recovery layer can be recovered according to the recovery unit of each recovery layer, and the garbage recovery speed can be flexibly controlled by controlling the quantity of the recovery units of each recovery layer in the plurality of recovery layers.
In a second optional implementation manner of the first aspect, if the upper limit of the number of data block groups concurrently recycled in the first recycling layer is a1, the lower limit is a2, the upper limit of the number of data blocks concurrently recycled in the second recycling layer is B1, the lower limit is B2, the upper limit of the number of data grains concurrently recycled in the third recycling layer is C1, and the lower limit is C2, the method for determining the number of recycling units concurrently recycled in each recycling layer according to the value of the remaining storage space may include: when the value of the remaining storage space is greater than or equal to a second preset threshold and smaller than the first preset threshold, determining the number of the data block groups which are concurrently recycled in the first recycling layer as A2, determining the number of the data blocks which are concurrently recycled in the second recycling layer as B2, and determining the number of the data grains which are concurrently recycled in the third recycling layer as C2; and in the case that the value of the remaining storage space is smaller than a second preset threshold, determining the number of the data block groups which are concurrently recycled in the first recycling layer as A1, determining the number of the data blocks which are concurrently recycled in the second recycling layer as B1, and determining the number of the data grains which are concurrently recycled in the third recycling layer as C1.
In the application, when the value of the remaining storage space is greater than or equal to the second preset threshold value and is smaller than the first preset threshold value, namely, the value of the remaining storage space is between the second preset threshold value and the first preset threshold value, it is indicated that the garbage in the storage space of the flash memory storage system is less, because the garbage in the storage space of the flash memory storage system is less, the number of the recovery units concurrently recovered in each recovery layer can be determined as the lower limit value (i.e. the minimum value) of the recovery units concurrently recovered in each preset recovery layer, so that the garbage recovery can be performed at a lower garbage recovery speed, and therefore, the resources occupied by the garbage recovery process can be reduced, and sufficient resources can be ensured to be used for processing other services.
When the value of the remaining storage space is smaller than the second preset threshold, it is indicated that the amount of garbage in the flash memory storage system is large, and new data may not be written due to the large amount of garbage in the storage space of the flash memory storage system, so that the number of recovery units concurrently recovered in each recovery layer can be determined as the preset upper limit (i.e. the maximum value) of the recovery units concurrently recovered in each recovery layer, so that garbage recovery can be performed at a faster garbage recovery speed, and the flash memory storage system can be ensured to have a sufficient storage space to smoothly write new data.
In a third optional implementation manner of the first aspect, the method for garbage recycling provided by the present application may include: when the value of the remaining storage space is greater than or equal to the second preset threshold and less than the third preset threshold, the number of the data block groups concurrently recovered in the first recovery layer, the number of the data blocks concurrently recovered in the second recovery layer, and the number of the data particles concurrently recovered in the third recovery layer may be adjusted according to the change condition of the remaining storage space, where the third preset threshold is less than the first preset threshold.
In the application, the number of recovery units concurrently recovered in each recovery layer can be dynamically adjusted according to the value of the remaining storage space of the flash memory storage system, so that the garbage recovery speed can be flexibly adjusted.
In a fourth optional implementation manner of the first aspect, the method for adjusting the number of the data block groups concurrently recycled in the first recycle layer, the number of the data blocks concurrently recycled in the second recycle layer, and the number of the data grains concurrently recycled in the third recycle layer according to the change of the remaining storage space may include increasing the number of the data grains concurrently recycled in the third recycle layer per unit time, where σ is a unit of change sensitivity of the storage space of the flash memory storage system, and α is an adjustment value of the number of the data grains concurrently recycled, and if the number of the data grains concurrently recycled in the third recycle layer increases to C1, the increasing of the number of the data grains concurrently recycled in the third recycle layer is stopped, and the number of the data blocks concurrently recycled in the second recycle layer increases to 1, and if the number of the data blocks concurrently recycled in the second recycle layer increases to B1, the increasing of the number of the data block groups concurrently recycled in the first recycle layer increases to 1.
In the application, the quantity of the data particles which are concurrently recycled in the third recycling layer is adjusted by monitoring the variable quantity of the size of the residual storage space in unit time, and if the value of the residual storage space is monitored to be reduced, the garbage of the flash memory storage system is increased, the garbage recycling speed needs to be increased, so that new data can be written in the flash memory system. The number of the data grains concurrently recycled in the bottommost layer (i.e., the third recycling layer) can be adjusted first, and then the number of the data blocks concurrently recycled in the second recycling layer and the number of the data block groups concurrently recycled in the first recycling layer are adjusted according to actual conditions.
In a fifth optional implementation manner of the first aspect, the method for recycling garbage provided by the present application may further include: after the number of the data blocks which are concurrently recycled in the second recycling layer is increased by 1, adjusting the number of the data particles which are concurrently recycled in the third recycling layer; and after the number of the data block groups which are concurrently recycled in the first recycling layer is increased by 1, adjusting the number of the data blocks which are concurrently recycled in the second recycling layer.
In this application, after the number of the data particles concurrently recycled in the third recycling layer is increased to the preset upper limit C1, the number of the data blocks concurrently recycled in the second recycling layer may be increased by 1, and during the subsequent garbage recycling process, the number of the data particles concurrently recycled in the third recycling layer may be further adjusted, that is, the number of the data particles concurrently recycled in the third recycling layer that has been increased to the preset upper limit C1 may be appropriately reduced on the basis of C1, so as to flexibly control the garbage recycling speed.
In a sixth optional implementation manner of the first aspect, the adjusting, according to a change of the remaining storage space, the number of the data block groups concurrently recycled in the first recycle layer, the number of the data blocks concurrently recycled in the second recycle layer, and the number of the data grains concurrently recycled in the third recycle layer may include: in unit time, when the value of the residual storage space increases, the number of the data particles which are concurrently recycled in the third recycling layer decreases, and the value is a change sensitive unit of the storage space of the flash memory storage system and is an adjustment value of the number of the data particles which are concurrently recycled; and if the number of the data particles concurrently recycled in the third recycling layer is reduced to C2, stopping reducing the number of the data particles concurrently recycled in the third recycling layer, and reducing the number of the data blocks concurrently recycled in the second recycling layer by 1; and if the number of the data blocks which are concurrently recycled in the second recycling layer is reduced to B2, stopping reducing the number of the data blocks which are concurrently recycled in the second recycling layer, and reducing the number of the data block groups which are concurrently recycled in the first recycling layer by 1.
In the application, if the value of the remaining storage space is monitored to be increased, the garbage amount of the flash memory storage system is reduced, and the garbage recycling speed can be properly reduced to save resources. The number of the data grains concurrently recycled in the bottommost layer (i.e., the third recycling layer) can be adjusted first, and then the number of the data blocks concurrently recycled in the second recycling layer and the number of the data block groups concurrently recycled in the first recycling layer are adjusted according to actual conditions.
In a seventh optional implementation manner of the first aspect, the above-mentioned method for recycling garbage in the flash memory storage system by using at least one recycle layer and according to the number of recycle units concurrently recycled in each recycle layer may include: switching to the next data block of the second recovery layer after recovering at least one data block of the second recovery layer according to the number of the data particles concurrently recovered in the third recovery layer, switching to the next data block group of the first recovery layer after recovering at least one data block of the second recovery layer according to the number of the data blocks concurrently recovered in the second recovery layer, and recovering at least one data block group of the first recovery layer according to the number of the data block groups concurrently recovered in the first recovery layer.
In the application, the storage space of the flash memory storage system is layered, the same recovery layer is adopted for concurrent recovery, and different recovery layers are serially recovered, so that the garbage recovery speed can be flexibly adjusted.
In a second aspect, the present application provides a garbage collection apparatus that includes a determination module and a garbage collection module. The determining module may be configured to determine, according to a value of a remaining storage space of the flash memory storage system, the number of concurrently recycled recycle units in each recycle layer when the value of the remaining storage space is less than or equal to a first preset threshold, where the remaining storage space is an available storage space in the flash memory storage system; the garbage recycling module can be used for recycling garbage in the flash memory storage system by utilizing at least one recycling layer according to the number of recycling units which are concurrently recycled in each recycling layer and determined by the determining module, wherein concurrent recycling is performed in the same recycling layer, and serial recycling is performed between different recycling layers.
In a first optional implementation manner of the second aspect, the flash memory storage system includes three recovery layers, a recovery unit of the first recovery layer is a data block group, a recovery unit of the second recovery layer is a data block, and a recovery unit of the third recovery layer is a data granule, where a storage space of the flash memory storage system includes at least one data block group, one data block group includes at least one data block, and one data block includes at least one data granule.
In a second optional implementation manner of the second aspect, if the upper limit value of the number of data block groups concurrently recovered in the first recovery layer is a1, the lower limit value is a2, the upper limit value of the number of data blocks concurrently recovered in the second recovery layer is B1, the lower limit value is B2, the upper limit value of the number of data grains concurrently recovered in the third recovery layer is C1, and the lower limit value is C2, the determining module is specifically configured to determine, when the value of the remaining storage space is greater than or equal to a second preset threshold and is smaller than a first preset threshold, the number of data block groups concurrently recovered in the first recovery layer as a2, the number of data blocks concurrently recovered in the second recovery layer as B2, and the number of data grains concurrently recovered in the third recovery layer as C2; and when the value of the remaining storage space is smaller than a second preset threshold, determining the number of the data block groups which are concurrently recycled in the first recycling layer as A1, determining the number of the data blocks which are concurrently recycled in the second recycling layer as B1, and determining the number of the data grains which are concurrently recycled in the third recycling layer as C1.
In a third optional implementation manner of the second aspect, the garbage recycling device provided by the present application may further include an adjusting module. The adjusting module may be configured to adjust, when the value of the remaining storage space is greater than or equal to a second preset threshold and is smaller than a third preset threshold, the number of the data block groups concurrently recovered in the first recovery layer, the number of the data blocks concurrently recovered in the second recovery layer, and the number of the data particles concurrently recovered in the third recovery layer according to a change condition of the remaining storage space, where the third preset threshold is smaller than the first preset threshold.
In a fourth optional implementation manner of the second aspect, the foregoing adjusting module is specifically configured to increase α the number of concurrently recycled data grains in the third recycling layer every time the value of the remaining storage space decreases by σ, and stop increasing the number of concurrently recycled data grains in the third recycling layer if the number of concurrently recycled data grains in the third recycling layer increases to C1, and increase 1 the number of concurrently recycled data blocks in the second recycling layer, and stop increasing the number of concurrently recycled data blocks in the second recycling layer if the number of concurrently recycled data blocks in the second recycling layer increases to B1, and increase 1 the number of concurrently recycled data block groups in the first recycling layer, where σ is a change sensitive unit of the storage space of the flash memory storage system, and α is an adjusting value of the number of concurrently recycled data grains.
In a fifth optional implementation manner of the second aspect, the adjusting module may be further configured to adjust the number of data grains concurrently recycled in the third recycling layer after the number of data blocks concurrently recycled in the second recycling layer is increased by 1, and adjust the number of data blocks concurrently recycled in the second recycling layer after the number of data block groups concurrently recycled in the first recycling layer is increased by 1.
In a sixth optional implementation manner of the second aspect, the foregoing adjusting module is specifically configured to, every time the value of the remaining storage space increases by σ, decrease α the number of concurrently recycled data grains in the third recycling layer, and in a case where the number of concurrently recycled data grains in the third recycling layer decreases to C2, stop decreasing the number of concurrently recycled data grains in the third recycling layer, decrease 1 the number of concurrently recycled data blocks in the second recycling layer, and in a case where the number of concurrently recycled data blocks in the second recycling layer decreases to B2, stop decreasing the number of concurrently recycled data blocks in the second recycling layer, and decrease 1 the number of concurrently recycled data block groups in the first recycling layer, where σ is a unit of sensitivity to change in the storage space of the flash memory storage system, and α is an adjusting value of the number of concurrently recycled data grains.
In a seventh optional implementation manner of the second aspect, the garbage collection module is specifically configured to switch to a next data block of the second collection layer after at least one data particle of the third collection layer is collected according to the number of data particles collected concurrently in the third collection layer determined by the determination module, switch to a next data block group of the first collection layer after at least one data block of the second collection layer is collected according to the number of data blocks collected concurrently in the second collection layer determined by the determination module, and collect at least one data block group of the first collection layer according to the number of data block groups collected concurrently in the first collection layer determined by the determination module.
In a third aspect, the present application provides a garbage collection apparatus including a processor and a memory coupled to the processor. The memory is configured to store computer instructions, and when the garbage collection apparatus is running, the processor executes the computer instructions stored in the memory to cause the garbage collection apparatus to perform the method of garbage collection according to any one of the first aspect and its various alternative implementations.
In a fourth aspect, the present application provides a computer readable storage medium comprising computer instructions which, when run on a garbage collection apparatus, cause the garbage collection apparatus to perform the method of garbage collection according to any one of the first aspect and its various alternative implementations.
In a fifth aspect, the present application provides a computer program product comprising instructions which, when run on a garbage collection apparatus, cause the garbage collection apparatus to perform the method of garbage collection according to any one of the first aspect and its various alternative implementations.
For the descriptions of the related contents and technical effects of the second aspect to the fifth aspect, reference may be made to the above description of the related contents and technical effects of the first aspect and various optional implementations thereof, and further description is omitted here.
Drawings
FIG. 1 is a schematic diagram of a garbage recycling method provided in the prior art;
FIG. 2 is a hardware diagram of a flash memory array according to an embodiment of the present invention;
FIG. 3 is a first schematic view of a garbage recycling method according to an embodiment of the present invention;
FIG. 4 is a first schematic diagram illustrating a remaining storage space according to an embodiment of the present invention;
FIG. 5 is a first diagram illustrating a recycle layer of a flash memory system according to an embodiment of the present invention;
FIG. 6 is a second schematic diagram illustrating a recycling layer of a flash memory system according to an embodiment of the present invention;
FIG. 7 is a second schematic view of a garbage recycling method according to an embodiment of the present invention;
FIG. 8 is a second schematic diagram of the remaining storage space provided by the embodiment of the present invention;
FIG. 9 is a third schematic diagram of the remaining storage space provided by the embodiment of the present invention;
fig. 10 is a first schematic structural diagram of a garbage recycling device according to an embodiment of the present invention;
fig. 11 is a schematic structural diagram of a garbage recycling device according to an embodiment of the present invention.
Detailed Description
The term "and/or" herein is merely an association describing an associated object, meaning that three relationships may exist, e.g., a and/or B, may mean: a exists alone, A and B exist simultaneously, and B exists alone.
The terms "first" and "second," and the like, in the description and in the claims of embodiments of the present invention are used for distinguishing between different objects and not for describing a particular order of the objects. For example, the first and second recycled layers, etc. are used to distinguish between different recycled layers, rather than to describe a particular order of recycled layers; the first preset threshold and the second preset threshold, etc. are to distinguish different thresholds, and are not used to describe a specific order of sub-thresholds.
In the embodiments of the present invention, words such as "exemplary" or "for example" are used to mean serving as examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "e.g.," an embodiment of the present invention is not necessarily to be construed as preferred or advantageous over other embodiments or designs. Rather, use of the word "exemplary" or "such as" is intended to present concepts related in a concrete fashion.
In the description of the embodiments of the present invention, the meaning of "a plurality" means two or more unless otherwise specified. For example, a plurality of processing units refers to two or more processing units.
First, some concepts related to the method and apparatus for garbage recycling provided by the embodiment of the present invention are explained.
A recycling layer: from the logic point of view, the space of the flash memory storage system is divided into a plurality of layers according to different partition granularities, each layer can be called as a garbage collection layer, for example, when the flash memory storage system is divided into three layers, firstly, the space of the flash memory storage system is divided into at least one data block group according to the granularity of the data block group, and the at least one data block group forms a first garbage collection layer (hereinafter, all referred to as a first collection layer); then, with the data blocks as granularity, dividing each data block group in at least one data block group into at least one data block, and forming a second garbage collection layer (hereinafter, referred to as a second collection layer) by a plurality of data blocks into which at least one data block group is divided; each of the plurality of data blocks is divided into at least one data grain again with the data grain as the granularity, and the plurality of data grains into which the plurality of data blocks are divided form a third garbage collection layer (hereinafter, referred to as a third collection layer).
And (3) concurrent recovery: concurrency means that macroscopically many programs are running simultaneously over a period of time, but in a single-processor system, only one program can be executed at a time, so microscopically these programs can be executed alternately in a time-sharing manner. Concurrent recovery in the same recovery layer refers to recovering preset number of recovery units in the same recovery layer in a concurrent manner.
Serial recovery: taking the first recycling layer and the second recycling layer as examples, the inter-layer serial recycling refers to: the number of the concurrent data block groups of the first recovery layer is 2, the number of the concurrent data blocks of the second recovery layer is 5, after all the 5 data blocks are processed on the processor thread, the first recovery layer can complement one data block group, and then concurrently issue 5 data blocks to the second recovery layer to concurrently recover the 5 data blocks.
It should be noted that, in the embodiment of the present invention, the data block group, the data block, and the data granule are all garbage collection units, that is, the granularity of garbage collection, and the granularity of garbage collection may also be other garbage collection units meeting actual requirements, which is not limited in particular in the embodiment of the present invention.
In order to solve the problems in the background art, the method and the device for garbage collection provided by the embodiment of the invention can be applied to a scenario that a flash memory array collects garbage in a flash memory storage system, can realize layered collection of garbage in the flash memory storage system, can realize concurrent collection in the same collection layer, and can realize serial collection between different collection layers, thereby flexibly adjusting the garbage collection speed.
The garbage recycling device provided by the embodiment of the invention can be a flash memory array, and the flash memory array can be applied to a computer. The following describes each component of the flash memory array provided by the embodiment of the present invention with reference to fig. 2. As shown in fig. 2, a flash memory array provided by an embodiment of the present invention may include: a control box 10 and a hard disk box 11.
Optionally, the flash memory array may further include a cascade module, where the cascade module connects the control frame 10 and the hard disk frame 11 through a cascade port, and is a connection point for data transmission between the control frame 10 and the hard disk frame 11.
The respective constituent components of the control frame 10 and the hard disk frame 11 will be described below.
The control block 10 includes a controller 101, a power supply module 102, a Battery Backup Unit (BBU) 103, a management module 104, and an interface module 105.
The controller 101: the controller is a core component of the flash memory array and is mainly responsible for processing storage services, receiving configuration management commands of users, storing configuration information, accessing hard disks and storing key information to hard disks of the safe. The controller may be a plurality of multi-core processors, which may specifically be a Central Processing Unit (CPU), a general purpose processor, a Digital Signal Processor (DSP), an application-specific integrated circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof, and may implement or execute various exemplary logic blocks, modules, and circuits described in the disclosure of the embodiments of the present invention; the processor 10 may also be a combination of computing functions, e.g., comprising one or more microprocessors, a combination of a DSP and a microprocessor, or the like.
The power supply module 102: the power module 102 is divided into an ac power module and a dc power module, and can support the normal operation of the control frame in the maximum power consumption mode.
BBU 103: the BBU can provide backup power supply support under the condition that power supply outside the flash memory array fails so as to ensure the safety of service data in the memory array. When the output of the flash memory array power supply is normal, the flash memory array power supply is in a backup state, and when the external power supply is disconnected, the BBU can continuously supply power to the system. The BBU supports failure isolation, and normal operation of the flash memory array cannot be influenced when the BBU fails. When the flash memory array is powered off, the BBU can ensure that the system writes the cache data into the built-in hard disk of the controller, and the data is ensured not to be lost. When the power failure outside the flash memory array is recovered, the drive software reads out the data stored on the hard disk built in the controller and recovers the data to the cache.
The management module 104: the management interface comprises a USB port, a management network port, a serial port and a maintenance network port.
The interface module 105: for connection between flash memory array and application server, the interface module comprises IB
The interface module comprises an (InfiniBand) interface module, a GE interface module and a SmartIO interface module FC interface module.
Optionally, the control block 10 may further include a system plug block, a fan module, a cascade module, and the like. The system plug-in frame can be used for providing reliable connection for various interface modules through a back plate, and realizing signal interconnection and power interconnection among the modules; the fan module can be used for providing a heat dissipation function for the flash memory array and supporting the normal operation of the control frame 10 under the maximum power consumption; the cascade module is connected to the control frame 10 and the hard disk frame 11 through a cascade port, and is a connection point for data transmission between the control frame 10 and the hard disk frame 11.
The hard disk frame 11 includes a cascade module 111, a power module 112, and a hard disk module 113.
The cascade module 111: the control frame 10 and the hard disk frame 11 are connected by a cascade port, which is a connection point for data transmission between the control frame 10 and the hard disk frame 11.
The power supply module 112: the hard disk frame 11 is provided with a power supply, and the power supply module 112 is divided into an alternating current power supply module and a direct current power supply module, and can support the hard disk frame to normally operate in a maximum power consumption mode.
The hard disk module 113: the flash memory storage system is provided with storage capacity, can be used as a system safe box, and can realize the storage function of business data, system data and cache data. The hard disk may include a Solid State Drive (SSD), an Integrated Drive Electronics (IDE) disk, a Serial Advanced Technology Attachment (SATA) disk, and the like.
Optionally, the control frame 10 may further include a system plug frame, and the system plug frame provides reliable connection for various interface modules through a backplane, so as to implement signal interconnection and power interconnection between the modules.
In the embodiment of the present invention, the garbage collection method provided in the embodiment of the present invention may be used to collect garbage in different areas of the flash memory system, and the flash memory system may be generally divided into a meta information area and a data area. In the following embodiments, the method for garbage collection according to the embodiments of the present invention is exemplarily described by taking garbage in the meta information area as an example.
It should be noted that, in the method for garbage collection provided in the embodiment of the present invention, the flash memory storage system is an independent storage array or device that is formed by a solid-state storage medium and no hard disk drive. The flash memory storage systems mentioned in the following embodiments all refer to meta information areas in the flash memory storage systems, and the remaining storage spaces of the flash memory storage systems all refer to the remaining storage spaces of the meta information areas, which will not be explained in the following embodiments.
As shown in fig. 3, the method for recycling garbage according to the embodiment of the present invention may include S101 to S103:
s101, determining the value of the residual storage space of the flash memory storage system.
The remaining storage space of the flash memory storage system is the storage space available in the flash memory storage system.
In the embodiment of the present invention, the storage space of the flash memory storage system is limited, and when data is written into the flash memory storage system during the operation and business processing of the computer, if the available storage space (i.e., the remaining storage space) of the flash memory storage system is smaller than a certain threshold, which indicates that the available storage space of the flash memory storage system is insufficient, the existing useless data (i.e., garbage) in the flash memory storage system needs to be erased, and then the data is written into the flash memory storage system.
In the process of processing business by a computer, in order to ensure that a flash memory storage system has enough storage space for storing data, so that the computer can smoothly and effectively process the business, garbage in the flash memory storage system can be dynamically recycled (namely, useless data in the flash memory storage system are erased), specifically, a controller in the flash memory storage system can detect the value of the residual storage space of the flash memory storage system in real time or in a preset detection period, and determine whether the garbage in the flash memory storage system needs to be recycled according to the value of the residual storage space.
S102, under the condition that the value of the residual storage space of the flash memory storage system is smaller than or equal to a first preset threshold value, determining the number of recovery units which are concurrently recovered in each recovery layer of at least one recovery layer of the flash memory storage system according to the value of the residual storage space.
In the embodiment of the present invention, as shown in fig. 4, if the value of the remaining storage space of the flash memory storage system is less than or equal to the first preset threshold, which indicates that there is garbage in the flash memory storage system, it is necessary to properly recycle the existing garbage to ensure that the flash memory storage system has enough storage space to store new data; if the value of the remaining storage space of the flash memory storage system is greater than the first preset threshold, it indicates that the amount of garbage in the flash memory storage system is small, that is, it indicates that there is enough storage space in the flash memory storage system for storing new data, and there is no need to recycle the garbage in the flash memory storage system.
It should be noted that, in the embodiment of the present invention, the first preset threshold may be set according to an actual situation, and the embodiment of the present invention is not limited specifically.
In the embodiment of the present invention, in a garbage collection process, a storage space of a flash memory storage system may be divided into at least one recovery layer according to different garbage collection granularities (i.e., recovery units), each recovery layer includes at least one recovery unit, and when a remaining storage space is smaller than or equal to a first preset threshold, a number of recovery units concurrently collected in each recovery layer in the at least one recovery layer may be determined according to a value of the remaining storage space, that is, how many recovery units may be concurrently collected in each recovery layer is determined. For example, in a recycling layer as an example, assuming that the value of the remaining storage space is between 60% and 80% of the total storage space of the flash memory storage system, the recycling unit for concurrent recycling in the recycling layer may be 10, and assuming that the value of the remaining storage space is between 40% and 60% of the total storage space of the flash memory storage system, the recycling unit for concurrent recycling in the recycling layer may be 20.
S103, recycling garbage in the flash memory storage system by using at least one recycling layer according to the number of recycling units which are concurrently recycled in each recycling layer, wherein the garbage is concurrently recycled in the same recycling layer, and the garbage is serially recycled among different recycling layers.
In this embodiment of the present invention, the recycling garbage of the flash memory storage system by using at least one recycling layer specifically includes: in the same recovery layer, according to the number of recovery units recovered concurrently in the recovery layer, concurrently recovering data corresponding to each recovery unit; data corresponding to each recovery unit is serially recovered between different recovery layers.
For example, as shown in fig. 5, taking two recycle layers as an example, the recycle granularity of a first recycle layer is larger than that of a second recycle layer, and if the recycle granularity of the first recycle layer is a data block, the recycle granularity of the second recycle layer is a data granule, one data block includes 10 data granules, and the number of the data granules concurrently recycled in the second recycle layer is 5, as shown in fig. 5, 5 data granules may be concurrently recycled until 10 data granules of the second recycle layer are recycled, and then the next data block of the second recycle layer may not be recycled.
According to the garbage recycling method provided by the embodiment of the invention, the number of the recycling units concurrently recycled in each recycling layer in at least one recycling layer of the flash memory system can be determined according to the value of the residual storage space of the flash memory system, and then the garbage in the flash memory system is recycled by utilizing the at least one recycling layer according to the number of the recycling units concurrently recycled in each recycling layer. Compared with the prior art, the quantity of the recovery units concurrently recovered in each recovery layer can be determined according to the value of the remaining storage space, and the quantity of the recovery units concurrently recovered in each recovery layer can reflect the garbage recovery speed, so that the garbage recovery speed can be flexibly adjusted by adjusting the quantity of the recovery units concurrently recovered in each recovery layer.
Optionally, in the embodiment of the present invention, the garbage collection method provided in the embodiment of the present invention is described in detail by taking an example of dividing a storage space of a flash memory storage system into 3 recovery layers.
In the embodiment of the present invention, as shown in fig. 6, the storage space of the flash memory storage system is divided into 3 recovery layers, and the recovery layers are respectively, from large to small, according to the recovery units: the recycling device comprises a first recycling layer, a second recycling layer and a third recycling layer, wherein the first recycling layer is the topmost recycling layer, the third recycling layer is the bottommost recycling layer, and the second recycling layer is the recycling layer between the topmost recycling layer and the bottommost recycling layer. The recovery unit of the first recovery layer is a data block group, the recovery unit of the second recovery layer is a data block, and the recovery unit of the third recovery layer is a data grain, so that the first recovery layer comprises at least one data block group, the second recovery layer comprises at least one data block, and the third recovery layer comprises at least one recovery grain.
It should be noted that, in the embodiment of the present invention, the relationship among the data block group, the data block, and the data granule is as follows: one data block group comprises at least one data block, and one data block at least comprises one data grain.
As shown in fig. 7, in the embodiment of the present invention, a method for dividing a flash memory storage space into 3 recycle layers to perform garbage collection may include S201 to S203:
s201, determining the value of the residual storage space of the flash memory storage system.
For the specific description of S201, reference may be made to the related description of S101 in the foregoing embodiment, and details are not repeated here.
S202, under the condition that the value of the residual storage space of the flash memory storage system is smaller than or equal to a first preset threshold value, determining the number of recovery units which are concurrently recovered in each of three recovery layers of the flash memory storage system according to the value of the residual storage space.
In the embodiment of the present invention, the number of recovery units concurrently recovered in each of three recovery layers of the flash memory storage system is determined, that is, the number of data block groups concurrently recovered in a first recovery layer is determined, the number of data blocks concurrently recovered in a second recovery layer is determined, and the number of data grains concurrently recovered in a third recovery layer is determined.
Specifically, in the embodiment of the present invention, an upper limit value and a lower limit value of the number of recovery units concurrently recovered in each recovery layer may be set. If the preset upper limit value of the number of the data block groups concurrently recycled in the first recycle layer is a1, the lower limit value is a2, the upper limit value of the number of the data blocks concurrently recycled in the second recycle layer is B1, the lower limit value is B2, the upper limit value of the number of the data grains concurrently recycled in the third recycle layer is C1, and the lower limit value is C2, the method for determining the number of the data block groups concurrently recycled in the first recycle layer, the number of the data blocks concurrently recycled in the second recycle layer, and the number of the data grains concurrently recycled in the third recycle layer according to the value of the remaining storage space may include any one of the following S202 a-S202C.
S202a, when the value of the remaining storage space is greater than or equal to the second preset threshold and smaller than the first preset threshold, determining the number of the data block groups which are recovered in the first recovery layer in a concurrent mode as A2, determining the number of the data blocks which are recovered in the second recovery layer in a concurrent mode as B2, and determining the number of the data particles which are recovered in the third recovery layer in a concurrent mode as C2.
In this embodiment of the present invention, as shown in fig. 8, when the value of the remaining storage space is greater than or equal to the second preset threshold and is less than the first preset threshold, that is, the value of the remaining storage space is between the second preset threshold and the first preset threshold, which indicates that there is less garbage in the storage space of the flash memory storage system, in this case, the number of concurrently recycled recovery units in each of the three recycling layers may be set as a lower limit value of the number of concurrently recycled recovery units in each of the recycling layers, that is, the number of concurrently recycled data blocks in the first recycling layer is determined as a2, the number of concurrently recycled data blocks in the second recycling layer is determined as B2, and the number of concurrently recycled data grains in the third recycling layer is determined as C2.
In the embodiment of the invention, as the garbage in the storage space of the flash memory storage system is less, the number of the recovery units which are concurrently recovered in each recovery layer can be determined as the preset lower limit value (namely the minimum value) of the recovery units which are concurrently recovered in each recovery layer, so that the garbage recovery can be carried out at a lower garbage recovery speed, the resources occupied by the garbage recovery process can be reduced, and enough resources can be ensured to be used for processing related services by a computer.
S202B, when the value of the remaining storage space is smaller than the second preset threshold, determining the number of the data block groups which are recovered in the first recovery layer in a concurrent mode as A1, determining the number of the data blocks which are recovered in the second recovery layer in a concurrent mode as B1, and determining the number of the data particles which are recovered in the third recovery layer in a concurrent mode as C1.
In the embodiment of the present invention, as shown in fig. 8, when the value of the remaining storage space is smaller than the second preset threshold, it is described that there is a large amount of garbage in the flash memory system, in this case, the number of concurrently recycled recycling units in each recycling layer in the three recycling layers may be set as an upper limit value of the number of concurrently recycled recycling units in each recycling layer, that is, the number of concurrently recycled data block groups in the first recycling layer is determined to be a1, the number of concurrently recycled data blocks in the second recycling layer is determined to be B1, and the number of concurrently recycled data grains in the third recycling layer is determined to be C1.
In the embodiment of the invention, as the garbage in the storage space of the flash memory storage system is more, new data can not be written, the number of the recovery units which are concurrently recovered in each recovery layer can be determined as the preset upper limit value (namely the maximum value) of the recovery units which are concurrently recovered in each recovery layer, so that garbage recovery can be carried out at a higher garbage recovery speed, and the flash memory storage system can be ensured to have enough storage space to smoothly write new data.
It should be noted that, in the embodiment of the present invention, in the process of processing a service by a computer, the number of recovery units concurrently recovered in each recovery layer may also be dynamically adjusted according to the size of the value of the remaining storage space of the flash memory storage system. Specifically, the method may further include S202 c:
s202c, when the value of the remaining storage space is greater than or equal to the second preset threshold and smaller than the third preset threshold, adjusting the number of the data block groups concurrently recycled in the first recycling layer, the number of the data blocks concurrently recycled in the second recycling layer, and the number of the data granules concurrently recycled in the third recycling layer according to the change of the remaining storage space.
Wherein the third preset threshold is smaller than the first preset threshold.
In this embodiment of the present invention, as shown in fig. 9, when the value of the remaining storage space is greater than or equal to the second preset threshold and is less than the third preset threshold, that is, the value of the remaining storage space is between the second preset threshold and the third preset threshold, according to a change condition of the remaining storage space, adjusting the number of concurrently-recovered recovery units in each of the three recovery layers may include increasing the number of concurrently-recovered recovery units in each recovery layer or decreasing the number of concurrently-recovered recovery units in each recovery layer.
It should be noted that, in the embodiment of the present invention, the first preset threshold, the second preset threshold, and the third preset threshold may be specifically determined according to a value of a storage space of an actual flash memory storage system, and the embodiment of the present invention is not limited.
Optionally, in this embodiment of the present invention, in a case that the value of the remaining storage space increases in each unit time, the method for determining the number of the data block groups concurrently recycled in the first recycling layer, the number of the data blocks concurrently recycled in the second recycling layer, and the number of the data grains concurrently recycled in the third recycling layer may include S2021 to S2023:
s2021, in the unit time, every time the value of the remaining storage space decreases by σ, the number of the concurrently recycled data particles in the third recycling layer increases α, where σ is a unit of change sensitivity of the storage space of the flash memory storage system, and α is an adjustment value of the number of the concurrently recycled data particles.
In the embodiment of the invention, the quantity of the data particles which are concurrently recycled in the third recycling layer is adjusted by monitoring the variable quantity of the size of the remaining storage space in unit time, if the value of the remaining storage space is monitored to be reduced, which indicates that the garbage of the flash memory storage system is increased, the garbage recycling speed needs to be increased to ensure that new data can be written in the flash memory system, firstly, the quantity of the data particles which are concurrently recycled in the bottommost layer (namely, the third recycling layer) can be adjusted, and then, the quantity of the data blocks which are concurrently recycled in the second recycling layer and the quantity of the data block groups which are concurrently recycled in the first recycling layer are adjusted according to actual conditions.
It should be noted that, in the embodiment of the present invention, the setting of the values of σ and α may be set according to actual use requirements, and the embodiment of the present invention is not particularly limited.
S2022, if the number of the data grains concurrently recovered in the third recovery layer increases to C1, the number of the data grains concurrently recovered in the third recovery layer stops increasing, and the number of the data blocks concurrently recovered in the second recovery layer increases by 1.
In the embodiment of the present invention, the number of the concurrently-recycled data particles in the third recycling layer is increased according to the adjustment value of the number of the concurrently-recycled data particles and the sensitive unit of the remaining storage space in the unit time, it should be noted that the number of the concurrently-recycled data particles in the third recycling layer is not increased without limitation, and when the number of the concurrently-recycled data particles in the third recycling layer is increased to a certain upper limit value, the number of the concurrently-recycled data particles in the third recycling layer is stopped being increased, and the number of the concurrently-recycled data blocks in the second recycling layer may be increased, specifically, the number of the concurrently-recycled data particles in the third recycling layer is increased to a preset upper limit value C1, and the number of the concurrently-recycled data blocks in the second recycling layer is increased by 1.
S2023, if the number of the data blocks concurrently recycled in the second recycle layer increases to B1, stopping increasing the number of the data blocks concurrently recycled in the second recycle layer, and increasing the number of the data block groups concurrently recycled in the first recycle layer by 1.
Similarly, in the embodiment of the present invention, the number of the data blocks concurrently recycled in the second recycling layer does not increase without limitation, the number of the data blocks concurrently recycled in the second recycling layer increases to a certain upper limit, and the increase of the number of the data blocks concurrently recycled in the second recycling layer is stopped, so that the number of the data block groups concurrently recycled in the first recycling layer may be increased, specifically, the number of the data blocks concurrently recycled in the second recycling layer increases to a preset upper limit B1, and the number of the data block groups concurrently recycled in the first recycling layer increases by 1.
Optionally, in this embodiment of the present invention, through the above step S2022, after the number of the data blocks concurrently recycled in the second recycling layer is increased by 1, the number of the data grains concurrently recycled in the third recycling layer may be adjusted.
In the embodiment of the present invention, after the number of the data particles concurrently recycled in the third recycling layer is increased to the preset upper limit C1, the number of the data blocks concurrently recycled in the second recycling layer may be increased by 1, and in the subsequent garbage recycling process, the method for garbage recycling according to the embodiment of the present invention may further adjust the number of the data particles concurrently recycled in the third recycling layer, that is, the number of the data particles concurrently recycled in the third recycling layer that has been increased to the preset upper limit C1 may be appropriately reduced on the basis of C1, so as to flexibly control the garbage recycling speed.
Optionally, in this embodiment of the present invention, through the above S2023, after the number of the data block groups concurrently recycled in the first recycling layer is increased by 1, the number of the data blocks concurrently recycled in the second recycling layer may be adjusted.
Similarly, after the number of the concurrently recycled data blocks in the second recycling layer is increased to the preset upper limit value B1, the number of the concurrently recycled data block groups in the first recycling layer may be increased by 1, and in the subsequent garbage recycling process, the method for garbage recycling according to the embodiment of the present invention may further adjust the number of the concurrently recycled data blocks in the second recycling layer, that is, the number of the concurrently recycled data blocks in the second recycling layer that has been increased to the preset upper limit value B1 may be appropriately reduced on the basis of B1, so as to flexibly control the garbage recycling speed.
Optionally, in an embodiment of the present invention, the method for adjusting the number of groups of data blocks concurrently recycled in the first recycling layer, the number of data blocks concurrently recycled in the second recycling layer, and the number of data grains concurrently recycled in the third recycling layer when the value of the remaining storage space decreases in each unit time may include S202c1-S202c3:
s202c1, in the unit time, the number of the data particles concurrently recycled in the third recycling layer is reduced α every time the value of the remaining storage space increases by σ, where σ is a unit of change sensitivity of the storage space of the flash memory storage system, and α is an adjustment value of the number of the data particles concurrently recycled.
In the embodiment of the invention, if the value of the remaining storage space is monitored to be increased, the garbage amount of the flash memory storage system is reduced, and the garbage recovery speed can be properly reduced, so as to save resources.
S202C2, if the number of the data particles concurrently recycled in the third recycling layer is reduced to C2, the number of the data particles concurrently recycled in the third recycling layer is stopped to be reduced, and the number of the data particles concurrently recycled in the second recycling layer is reduced by 1.
In the embodiment of the present invention, the number of the concurrently-recycled data particles in the third recycling layer is reduced according to the adjustment value of the number of the concurrently-recycled data particles and the sensitive unit of the remaining storage space in the unit time, it should be noted that the number of the concurrently-recycled data particles in the third recycling layer is not decreased without limitation, and when the number of the concurrently-recycled data particles in the third recycling layer is decreased to a certain lower limit, the number of the concurrently-recycled data particles in the third recycling layer is stopped being decreased, so that the number of the concurrently-recycled data blocks in the second recycling layer can be decreased, specifically, the number of the concurrently-recycled data particles in the third recycling layer is decreased to a preset upper limit value C2, and the number of the concurrently-recycled data blocks in the second recycling layer is decreased by 1.
S202c3, if the number of data blocks concurrently recycled in the second recycle layer is reduced to B2, the number of data blocks concurrently recycled in the second recycle layer is stopped being reduced, and the number of data block groups concurrently recycled in the first recycle layer is reduced by 1.
Similarly, in the embodiment of the present invention, the number of the data blocks concurrently recycled in the second recycling layer is not decreased without limitation, the number of the data blocks concurrently recycled in the second recycling layer is decreased to a certain lower limit, and the decrease of the number of the data blocks concurrently recycled in the second recycling layer is stopped, so that the number of the data block groups concurrently recycled in the first recycling layer can be decreased, specifically, the number of the data blocks concurrently recycled in the second recycling layer is decreased to a preset lower limit B2, and the number of the data block groups concurrently recycled in the first recycling layer is decreased by 1.
In summary, in the process of recovering the garbage in the flash memory storage system, the number of recovery units concurrently recovered in each recovery layer can be dynamically adjusted according to the change of the remaining storage space, so as to dynamically adjust the garbage recovery speed.
S203, recycling garbage in the flash memory storage system by using the three recycling layers according to the number of recycling units which are concurrently recycled in each recycling layer, wherein the garbage is concurrently recycled in the same recycling layer, and the garbage is serially recycled among different recycling layers.
In the embodiment of the present invention, the step S203 may be specifically implemented by steps S203a to S203 c:
s203a, according to the number of the data particles concurrently recovered in the third recovery layer, after recovering at least one data particle in the third recovery layer, switching to the next data block in the second recovery layer.
The at least one data grain of the third recycling layer refers to at least one data grain that divides a data block, that is, all data grains included in a data block.
It should be noted that, in the embodiment of the present invention, the number of the data grains concurrently recovered in the third recovery layer may be less than or equal to the number of the data grains that divide one data block, for example, the number of the data grains included in one data block is 20, and the number of the data grains concurrently recovered in the third recovery layer is 10, then first concurrently recover the first 10 data grains of the 20 data grains, then switch to the next data grain, and start to recover the last 10 data grains of the 20 data grains, when all the data grains in the at least one data grain are recovered, switch to the next data block of the second recovery layer, and then start to recover the data grains included in the next data block.
S203b, according to the number of concurrently recycled data blocks in the second recycling layer, after at least one data block in the second recycling layer is recycled, switching to the next data block group in the first recycling layer.
The at least one data block of the second recycling layer refers to at least one data block obtained by dividing one data block group, that is, all data blocks included in one data block group.
Similarly, it should be noted that, in the embodiment of the present invention, the number of concurrently recycled data blocks in the second recycling layer may be less than or equal to the number of data blocks that divide one data block group, for example, the number of data blocks included in one data block group is 10, and the number of concurrently recycled data blocks in the second recycling layer is 5, then first concurrently transmit and recycle the first 5 data blocks of the 10 data blocks, then switch to the next data block, start recycling the last 5 data blocks of the 10 data blocks, when all data blocks in the at least one data block are recycled, switch to the next data block group of the first recycling layer, and then start recycling the data blocks included in the next data block group.
S203c, recycling at least one data block group of the first recycling layer according to the number of the data block groups concurrently recycled in the first recycling layer.
In the embodiment of the present invention, the number of the concurrently recycled data block groups in the first recycling layer is used to recycle at least one data block group in the first recycling layer, that is, garbage in the cache storage system is recycled.
According to the garbage recycling method provided by the embodiment of the invention, the number of the recycling units concurrently recycled in each recycling layer in at least one recycling layer of the flash memory system can be determined according to the value of the residual storage space of the flash memory system, and then the garbage in the flash memory system is recycled by utilizing the at least one recycling layer according to the number of the recycling units concurrently recycled in each recycling layer. Compared with the prior art, the quantity of the recovery units concurrently recovered in each recovery layer can be determined according to the value of the remaining storage space, and the quantity of the recovery units concurrently recovered in each recovery layer can reflect the garbage recovery speed, so that the garbage recovery speed can be flexibly adjusted by adjusting the quantity of the recovery units concurrently recovered in each recovery layer.
It should be noted that, in the embodiment of the present invention, the garbage in the meta information area and the data area in the flash memory storage system can be recovered by the above method, and for the garbage recovery of the unused area, various thresholds (for example, a first preset threshold, a second preset threshold, and a third preset threshold) of each of the two areas can be set according to actual situations, the number of recovery units concurrently recovered in each recovery layer of each of the two areas (for example, a1, a2, B1, B2, C1, and C2 in the above embodiment) is set, and an adjustment value α of the change sensitive unit σ of the storage space of each of the two areas and the number of data particles concurrently recovered is set.
The above description mainly introduces the scheme provided by the embodiment of the present invention from the perspective of a garbage collection device (i.e., a flash memory array). It is understood that the garbage collection apparatus includes hardware structures and/or software modules for performing the respective functions in order to realize the above functions. Those of skill in the art will readily appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as hardware or combinations of hardware and computer software. Whether a function is performed as hardware or computer software drives hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the embodiment of the present invention, the garbage collection apparatus and the like may be divided into functional modules according to the above method, for example, each functional module may be divided for each function, or two or more functions may be integrated into one processing module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. It should be noted that, the division of the modules in the embodiment of the present invention is schematic, and is only a logic function division, and there may be another division manner in actual implementation.
In the case of dividing each function module according to each function, fig. 10 shows a schematic structural diagram of the garbage collection apparatus according to the above embodiment, and as shown in fig. 10, the garbage collection apparatus may include: a determination module 20 and a garbage collection module 21. The determining module 20 may be configured to support the garbage collection apparatus to perform S101, S102, S201, and S202 (including any one of S202a-S202 c) in the above method embodiment; the garbage collection module 21 may be used to support the garbage collection apparatus to execute S103 and S203 in the above method embodiments
(S203a-S203 c). Optionally, as shown in fig. 10, the garbage recycling device may further include an adjusting module 22. The adjustment module 22 may be used to support the garbage collection apparatus to perform the steps S2021-S2023 and S202c1-S202c3 in the above method embodiments. All relevant contents of each step related to the above method embodiment may be referred to the functional description of the corresponding functional module, and are not described herein again.
In the case of an integrated unit, fig. 11 shows a schematic view of a possible construction of the waste recycling device according to the above-described embodiment. As shown in fig. 11, the garbage collection apparatus may include: a processing module 30 and a communication module 31. The processing module 30 may be used to control and manage the actions of the garbage collection apparatus, for example, the processing module 30 may be used to support the garbage collection apparatus to perform the processes of S101-S103, S201-S203, and S2021-2023 (or S202c1-S202c3) in the above-described method embodiments, and/or other processes for the techniques described herein. The communication module 31 may be used to support communication of the garbage collection apparatus with other network entities. Optionally, as shown in fig. 11, the garbage collection apparatus may further include a storage module 32 for storing program codes and data of the garbage collection apparatus.
The processing module 60 may be a processor or a controller (for example, the controller 10 shown in fig. 2), such as a Central Processing Unit (CPU), a general purpose processor, a Digital Signal Processor (DSP), an application-specific integrated circuit (ASIC), a Field Programmable Gate Array (FPGA), or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. Which may implement or execute the various illustrative logical blocks, modules, and circuits described in connection with the embodiment disclosure. The processor described above may also be a combination of computing functions, e.g., comprising one or more microprocessors, DSPs and microprocessors, and the like. The communication module 31 may be a transceiver, a transceiving circuit or a communication interface, etc. The storage module 32 may be a memory (e.g., may be the hard disk module 113 described above in fig. 2).
When the processing module 30 is a processor, the communication module 31 is a transceiver, and the storage module 32 is a memory, the processor, the transceiver, and the memory may be connected by a bus. The bus may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The bus may be divided into an address bus, a data bus, a control bus, etc.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented using a software program, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the flow or functions according to embodiments of the invention, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wire (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device including one or more available media integrated servers, data centers, and the like. The usable medium may be a semiconductor medium (e.g., a Solid State Drive (SSD)), or the like.
Through the above description of the embodiments, it is clear to those skilled in the art that, for convenience and simplicity of description, the foregoing division of the functional modules is merely used as an example, and in practical applications, the above function distribution may be completed by different functional modules according to needs, that is, the internal structure of the device may be divided into different functional modules to complete all or part of the above described functions. For the specific working processes of the system, the apparatus and the unit described above, reference may be made to the corresponding processes in the foregoing method embodiments, and details are not described here again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the modules or units is only one logical division, and there may be other divisions when actually implemented, for example, a plurality of units or components may be combined or may be integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be substantially implemented or contributed to by the prior art, or all or part of the technical solution may be embodied in a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) or a processor to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: flash memory, removable hard drive, read only memory, random access memory, magnetic or optical disk, and the like.
The above description is only an embodiment of the present application, but the scope of the present application is not limited thereto, and any changes or substitutions within the technical scope of the present disclosure should be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (18)

1. The garbage recycling method is applied to a flash memory system, wherein the flash memory system comprises at least one recycling layer, and each recycling layer comprises at least one recycling unit;
under the condition that the value of the residual storage space of the flash memory storage system is smaller than or equal to a first preset threshold value, determining the number of recovery units concurrently recovered in each recovery layer according to the value of the residual storage space, wherein the residual storage space is available in the flash memory storage system;
and recovering the garbage in the flash memory storage system by utilizing the at least one recovery layer and according to the number of recovery units which are concurrently recovered in each recovery layer, wherein concurrent recovery is performed in the same recovery layer, and serial recovery is performed between different recovery layers.
2. The method of claim 1,
the flash memory storage system comprises three recovery layers, wherein a recovery unit of a first recovery layer is a data block group, a recovery unit of a second recovery layer is a data block, and a recovery unit of a third recovery layer is a data grain, wherein the storage space of the flash memory storage system comprises at least one data block group, one data block group comprises at least one data block, and one data block comprises at least one data grain.
3. The method of claim 2, wherein if the upper limit value of the number of the data block groups concurrently recycled in the first recycle layer is a1 and the lower limit value is a2, the upper limit value of the number of the data blocks concurrently recycled in the second recycle layer is B1 and the lower limit value is B2, the upper limit value of the number of the data particles concurrently recycled in the third recycle layer is C1 and the lower limit value is C2, the determining the number of recycle units concurrently recycled in each recycle layer according to the value of the remaining storage space comprises:
when the value of the remaining storage space is greater than or equal to a second preset threshold and smaller than the first preset threshold, determining the number of the data block groups concurrently recycled in the first recycling layer as A2, determining the number of the data blocks concurrently recycled in the second recycling layer as B2, and determining the number of the data grains concurrently recycled in the third recycling layer as C2;
and when the value of the remaining storage space is smaller than the second preset threshold, determining the number of the data block groups concurrently recycled in the first recycling layer as A1, determining the number of the data blocks concurrently recycled in the second recycling layer as B1, and determining the number of the data grains concurrently recycled in the third recycling layer as C1.
4. The method of claim 3, further comprising:
and when the value of the remaining storage space is greater than or equal to the second preset threshold and smaller than a third preset threshold, adjusting the number of the data block groups concurrently recycled in the first recycling layer, the number of the data blocks concurrently recycled in the second recycling layer, and the number of the data particles concurrently recycled in the third recycling layer according to the change condition of the remaining storage space, wherein the third preset threshold is smaller than the first preset threshold.
5. The method according to claim 4, wherein the adjusting the number of groups of concurrently recycled data blocks in the first recycling layer, the number of concurrently recycled data blocks in the second recycling layer, and the number of concurrently recycled data granules in the third recycling layer according to the change of the remaining storage space comprises:
in unit time, the number of the data particles which are concurrently recycled in the third recycling layer is increased α every time the value of the residual storage space is reduced by sigma, wherein sigma is a unit of change sensitivity of the storage space of the flash memory storage system, and α is an adjustment value of the number of the data particles which are concurrently recycled;
if the number of the data grains concurrently recycled in the third recycling layer increases to C1, stopping increasing the number of the data grains concurrently recycled in the third recycling layer, and increasing the number of the data blocks concurrently recycled in the second recycling layer by 1;
and if the number of the data blocks concurrently recycled in the second recycling layer increases to B1, stopping increasing the number of the data blocks concurrently recycled in the second recycling layer, and increasing the number of the data block groups concurrently recycled in the first recycling layer by 1.
6. The method of claim 5,
after increasing the number of concurrently reclaimed data blocks within the second reclamation layer by 1, the method further comprises:
adjusting the number of the data particles which are concurrently recycled in the third recycling layer;
after the number of data block groups concurrently recycled in the first recycling layer is increased by 1, the method further includes:
and adjusting the number of the data blocks which are concurrently recycled in the second recycling layer.
7. The method according to claim 4, wherein the adjusting the number of groups of concurrently recycled data blocks in the first recycling layer, the number of concurrently recycled data blocks in the second recycling layer, and the number of concurrently recycled data granules in the third recycling layer according to the change of the remaining storage space comprises:
in unit time, the number of the data particles which are concurrently recycled in the third recycling layer is reduced α every time the value of the residual storage space is increased by sigma, wherein sigma is a unit of change sensitivity of the storage space of the flash memory storage system, and α is an adjustment value of the number of the data particles which are concurrently recycled;
if the number of the data grains concurrently recycled in the third recycling layer is reduced to C2, stopping reducing the number of the data grains concurrently recycled in the third recycling layer, and reducing the number of the data blocks concurrently recycled in the second recycling layer by 1;
and if the number of the data blocks concurrently recycled in the second recycling layer is reduced to B2, stopping reducing the number of the data blocks concurrently recycled in the second recycling layer, and reducing the number of the data block groups concurrently recycled in the first recycling layer by 1.
8. The method according to any one of claims 2 to 7, wherein the recycling garbage in the flash memory storage system by using the at least one recycling layer and according to the number of recycling units concurrently recycled in each recycling layer comprises:
according to the number of the data particles which are concurrently recycled in the third recycling layer, after at least one data particle of the third recycling layer is recycled, switching to the next data block of the second recycling layer;
according to the number of the concurrently-recycled data blocks in the second recycling layer, after at least one data block of the second recycling layer is recycled, switching to the next data block group of the first recycling layer;
and recovering at least one data block group of the first recovery layer according to the quantity of the data block groups recovered in the first recovery layer in a concurrent manner.
9. The garbage recycling device is used for recycling garbage in a flash memory storage system, the flash memory storage system comprises at least one recycling layer, each recycling layer comprises at least one recycling unit, and the garbage recycling device comprises a determining module and a garbage recycling module;
the determining module is configured to determine, according to a value of a remaining storage space of the flash memory storage system, the number of concurrently-recycled recycle units in each recycle layer according to the value of the remaining storage space when the value of the remaining storage space is less than or equal to a first preset threshold, where the remaining storage space is an available storage space in the flash memory storage system;
the garbage recycling module is configured to recycle the garbage in the flash memory storage system according to the number of recycling units concurrently recycled in each recycling layer determined by the determining module by using the at least one recycling layer, where the garbage is concurrently recycled in the same recycling layer and serially recycled between different recycling layers.
10. The apparatus of claim 9,
the flash memory storage system comprises three recovery layers, wherein a recovery unit of a first recovery layer is a data block group, a recovery unit of a second recovery layer is a data block, and a recovery unit of a third recovery layer is a data grain, wherein the storage space of the flash memory storage system comprises at least one data block group, one data block group comprises at least one data block, and one data block comprises at least one data grain.
11. The apparatus of claim 10, wherein if the upper limit of the number of the data block groups concurrently recycled in the first recycle layer is A1 and the lower limit is A2, the upper limit of the number of the data blocks concurrently recycled in the second recycle layer is B1 and the lower limit is B2, the upper limit of the number of the data particles concurrently recycled in the third recycle layer is C1 and the lower limit is C2,
the determining module is specifically configured to determine, when the value of the remaining storage space is greater than or equal to a second preset threshold and is less than the first preset threshold, the number of data block groups concurrently recycled in the first recovery layer as a2, the number of data blocks concurrently recycled in the second recovery layer as B2, the number of data grains concurrently recycled in the third recovery layer as C2, and when the value of the remaining storage space is less than the second preset threshold, the number of data block groups concurrently recycled in the first recovery layer as a1, the number of data blocks concurrently recycled in the second recovery layer as B1, and the number of data grains concurrently recycled in the third recovery layer as C1.
12. The apparatus of claim 11, further comprising an adjustment module;
the adjusting module is configured to adjust, according to a change condition of the remaining storage space, the number of data block groups concurrently recycled in the first recycling layer, the number of data blocks concurrently recycled in the second recycling layer, and the number of data grains concurrently recycled in the third recycling layer when the value of the remaining storage space is greater than or equal to the second preset threshold and smaller than a third preset threshold, where the third preset threshold is smaller than the first preset threshold.
13. The apparatus of claim 12,
the adjusting module is specifically configured to increase α the number of the data grains concurrently recycled in the third recycling layer for each decrease σ in the value of the remaining storage space, and stop increasing α the number of the data grains concurrently recycled in the third recycling layer when the number of the data grains concurrently recycled in the third recycling layer increases to C1, increase 1 the number of the data blocks concurrently recycled in the second recycling layer, and stop increasing 1 the number of the data blocks concurrently recycled in the second recycling layer when the number of the data blocks concurrently recycled in the second recycling layer increases to B1, where σ is a change sensitive unit of the storage space of the flash memory storage system, and α is an adjusted value of the number of the data grains concurrently recycled.
14. The apparatus of claim 13,
the adjusting module is further configured to adjust the number of data grains concurrently recycled in the third recycling layer after the number of data blocks concurrently recycled in the second recycling layer increases by 1, and adjust the number of data blocks concurrently recycled in the second recycling layer after the number of data block groups concurrently recycled in the first recycling layer increases by 1.
15. The apparatus of claim 12,
the adjusting module is specifically configured to decrease α the number of concurrently recycled data grains in the third recycling layer for each increment of σ in the value of the remaining storage space per unit time, and stop decreasing α the number of concurrently recycled data grains in the third recycling layer when the number of concurrently recycled data grains in the third recycling layer decreases to C2, and decrease 1 the number of concurrently recycled data blocks in the second recycling layer, and stop decreasing 1 the number of concurrently recycled data blocks in the second recycling layer when the number of concurrently recycled data blocks in the second recycling layer decreases to B2, and decrease 1 the number of concurrently recycled data blocks in the first recycling layer, where σ is a unit of sensitivity to changes in the storage space of the flash memory storage system, and α is an adjusted value of the number of concurrently recycled data grains.
16. The apparatus of any one of claims 10 to 15,
the garbage collection module is specifically configured to switch to a next data block of the second collection layer after at least one data particle of the third collection layer is collected according to the number of data particles collected concurrently in the third collection layer determined by the determination module, switch to a next data block group of the first collection layer after at least one data block of the second collection layer is collected according to the number of data blocks collected concurrently in the second collection layer determined by the determination module, and collect at least one data block group of the first collection layer according to the number of data block groups collected concurrently in the first collection layer determined by the determination module.
17. The garbage recycling device is characterized by comprising a processor and a memory coupled with the processor;
the memory is configured to store computer instructions that, when executed by the garbage collection apparatus, cause the garbage collection apparatus to perform the method of garbage collection according to any one of claims 1 to 8.
18. A computer readable storage medium comprising computer instructions which, when run on a garbage collection apparatus, cause the garbage collection apparatus to perform the method of garbage collection of any one of claims 1 to 8.
CN201710667409.2A 2017-08-07 2017-08-07 Garbage recycling method and device Active CN107506136B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710667409.2A CN107506136B (en) 2017-08-07 2017-08-07 Garbage recycling method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710667409.2A CN107506136B (en) 2017-08-07 2017-08-07 Garbage recycling method and device

Publications (2)

Publication Number Publication Date
CN107506136A CN107506136A (en) 2017-12-22
CN107506136B true CN107506136B (en) 2020-07-07

Family

ID=60689629

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710667409.2A Active CN107506136B (en) 2017-08-07 2017-08-07 Garbage recycling method and device

Country Status (1)

Country Link
CN (1) CN107506136B (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977031B (en) * 2017-12-27 2021-06-01 成都华为技术有限公司 Solid state disk garbage recycling method and solid state disk
CN110058794B (en) * 2018-01-19 2022-11-01 上海宝存信息科技有限公司 Data storage device for dynamically executing garbage recovery and operation method
CN108984116B (en) * 2018-06-14 2021-07-20 浙江大华存储科技有限公司 Flow control method and device for garbage recovery bandwidth of solid state disk
CN108959118B (en) * 2018-06-27 2021-11-19 郑州云海信息技术有限公司 Data writing method and device
CN109086223B (en) * 2018-08-21 2021-10-29 郑州云海信息技术有限公司 Method and device for controlling garbage recovery
CN110058810B (en) * 2019-01-17 2022-06-17 创新先进技术有限公司 Disk cleaning method and device for distributed system and distributed system
CN111078588B (en) * 2019-12-17 2022-03-25 北京三快在线科技有限公司 Garbage recycling method, device, equipment and storage medium
CN113971137A (en) * 2020-07-22 2022-01-25 华为技术有限公司 Garbage recovery method and device
CN112433676A (en) * 2020-11-24 2021-03-02 合肥康芯威存储技术有限公司 Garbage recycling method and system for solid state disk
CN114741326A (en) * 2022-03-21 2022-07-12 阿里巴巴(中国)有限公司 Data processing method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929699A (en) * 2012-10-10 2013-02-13 武汉钢铁(集团)公司 Garbage recycling method for Java virtual machine and monitoring system thereof
CN103608866A (en) * 2013-03-15 2014-02-26 华为技术有限公司 Data wiping method and device for flash memory
CN104714891A (en) * 2013-12-11 2015-06-17 华为技术有限公司 Flash memory data management method and device
WO2016004407A1 (en) * 2014-07-03 2016-01-07 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9495115B2 (en) * 2014-10-01 2016-11-15 Sap Se Automatic analysis of issues concerning automatic memory management

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100938183B1 (en) * 2007-10-19 2010-01-21 한국과학기술정보연구원 Method and apparatus for deleting files in a scratch disk using parallelization and computer readeable record medium for the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929699A (en) * 2012-10-10 2013-02-13 武汉钢铁(集团)公司 Garbage recycling method for Java virtual machine and monitoring system thereof
CN103608866A (en) * 2013-03-15 2014-02-26 华为技术有限公司 Data wiping method and device for flash memory
CN104714891A (en) * 2013-12-11 2015-06-17 华为技术有限公司 Flash memory data management method and device
WO2016004407A1 (en) * 2014-07-03 2016-01-07 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9495115B2 (en) * 2014-10-01 2016-11-15 Sap Se Automatic analysis of issues concerning automatic memory management

Also Published As

Publication number Publication date
CN107506136A (en) 2017-12-22

Similar Documents

Publication Publication Date Title
CN107506136B (en) Garbage recycling method and device
US10019183B2 (en) On-demand snapshot and prune in a data storage system
CN105607721B (en) For the power management in equipment resource allocation and redistribute
US10599503B2 (en) Triggering power loss protection on solid-state storage devices
CN104620234B (en) Reducing latency in a peripheral component interconnect express link
CN101158935B (en) South bridge system and method
US20150331473A1 (en) NON-VOLATILE MEMORY EXPRESS (NVMe) DEVICE POWER MANAGEMENT
US20130179631A1 (en) Solid-state disk (ssd) management
US20140201576A1 (en) System and Method for Improving Solid State Storage System Reliability
CN103123604A (en) Method for tracking memory usages of a data processing system
CN105474192A (en) Event-triggered storage of data to non-volatile memory
US9851990B2 (en) Method and system for performing on-demand data write through based on UPS power status
US10565108B2 (en) Write-back cache for storage controller using persistent system memory
US10592285B2 (en) System and method for information handling system input/output resource management
US11132291B2 (en) System and method of FPGA-executed flash translation layer in multiple solid state drives
KR20170129709A (en) Mechanism to adapt garbage collection resource allocation in solid-state drives
CN105453039A (en) Systems and methods for instantly restoring virtual machines in high input/output load environments
CN109032901A (en) A kind of monitoring method, device and the controlled terminal of the outer SSD of remote band
KR20160128751A (en) APPLICATION PROCESSOR, SYSTEM ON CHIP (SoC), AND COMPUTING DEVICE INCLUDING THE SoC
CN110795279B (en) System and method for facilitating DRAM data cache dumps and rack level battery backups
US10346072B1 (en) Dislocated power loss protection charge storage
US20130232377A1 (en) Method for reusing resource and storage sub-system using the same
CN103778002A (en) Method and device for recycling critical resources in multi-core system
CN105404468A (en) Green NAND solid-state disk application and driver therefor
US20200133752A1 (en) Prediction of power shutdown and outage incidents

Legal Events

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