Data garbage collection method and device, solid state disk, medium and program product

By coordinating and interacting with the SSD, data priority is calculated based on multi-dimensional information, and the priority of data to be reclaimed inside the SSD is dynamically updated. This solves the write amplification problem caused by solid-state drive garbage collection, improves write amplification optimization efficiency and SSD lifespan, and reduces performance interference.

CN121455840AActive Publication Date: 2026-02-03INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202512059687.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-31
Publication Date
2026-02-03
Estimated Expiration
2045-12-31

AI Technical Summary

Technical Problem

In NAND flash-based solid-state drives, write amplification caused by garbage collection leads to shortened SSD lifespan and performance degradation, and existing technologies have low optimization efficiency.

Method used

Through collaborative interaction between the host and SSD, data priority is calculated based on multi-dimensional information such as data value, update frequency, and lifecycle, and the priority of data to be reclaimed inside the SSD is dynamically updated to achieve a precise garbage collection strategy.

Benefits of technology

It improves write amplification optimization efficiency, extends SSD lifespan, reduces the performance interference of garbage collection on front-end services, and enhances the performance stability and reliability of enterprise-level storage systems under high-load scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121455840A_ABST
    Figure CN121455840A_ABST
Patent Text Reader

Abstract

The invention discloses a data garbage collection method and device, a solid state disk, a medium and a program product, and relates to the technical field of storage. A first priority calculated by a host based on multi-dimensional information (data value, life cycle, system load, write amplification contribution and the like) is received; the priority of specific target data in the to-be-recycled data in the SSD is dynamically updated, and finally recycling is executed according to the updated priority. Isolation of the host and the SSD in the aspect of garbage collection decision is broken, and the overall business view angle of the host and bottom layer physical operation of the SSD are tightly combined. According to the method, the spanning of the garbage collection strategy from the rough cold and hot division based on the updating frequency to the objective priority ranking based on the multi-dimensional weight is realized, so that the data classification can more accurately reflect the real write amplification contribution and business value, and the write amplification optimization efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of storage, in particular to a data garbage collection method, device, solid state disk, medium and program product. BACKGROUND

[0002] In a negative-AND (NAND) based solid state disk (SSD), garbage collection (GC) needs to be performed, which will cause write amplification, and further lead to the shortening of the service life and the performance degradation of the SSD. How to reduce write amplification is a key proposition for the optimization of SSD technology.

[0003] In the related art, the static data that is not updated for a long time is usually marked as an attribute that does not need to be recycled by relying on the hardware and algorithms inside the SSD, so as to reduce the effective data migration amount during GC. However, the write amplification optimization efficiency is low. SUMMARY

[0004] The present application provides a data garbage collection method, device, solid state disk, medium and program product to effectively reduce write amplification.

[0005] The present application provides a data garbage collection method, comprising:

[0006] receiving a first message sent by a host; the first message comprising a first priority of to-be-coordinated data; the first priority being related to first information; the first information comprising a data priority of the to-be-coordinated data, and at least one of the following: a first system load of the solid state disk, a first write amplification contribution coefficient of the to-be-coordinated data, and an update frequency; the data priority being determined according to a data value, an update frequency and a data life cycle of the to-be-coordinated data;

[0007] updating a recycling priority of target data in current to-be-recycled data of the solid state disk according to the first priority, to obtain a second priority of the target data; the target data being at least part of the to-be-coordinated data;

[0008] recycling the to-be-recycled data according to the second priority.

[0009] The present application provides a data garbage collection method, comprising:

[0010] determining a corresponding data priority according to a data value, an update frequency and a data life cycle of to-be-coordinated data;

[0011] determining a first priority of the to-be-coordinated data according to first information; the first information comprising the data priority and at least one of the following: a system load of the solid state disk, a write amplification contribution degree of the to-be-coordinated data, and an update frequency;

[0012] sending a first message to the solid state disk; the first message comprising a first priority.

[0013] The application further provides a data garbage collection device, comprising:

[0014] a receiving module, configured to receive a first message sent by a host; the first message comprising a first priority of to-be-coordinated data; the first priority being related to first information; the first information comprising a data priority of the to-be-coordinated data and at least one of the following: a first system load of the solid state disk, a first write amplification contribution coefficient of the to-be-coordinated data, and an update frequency; the data priority being determined according to a data value, the update frequency and a data life cycle of the to-be-coordinated data;

[0015] a first determining module, configured to update a collection priority of target data in current to-be-collected data of the solid state disk according to the first priority, and obtain a second priority of the target data; the target data being at least part of the to-be-coordinated data;

[0016] a processing module, configured to collect the to-be-collected data according to the second priority.

[0017] The application further provides a data garbage collection device, comprising:

[0018] a second determining module, configured to determine a corresponding data priority according to a data value, an update frequency and a data life cycle of the to-be-coordinated data;

[0019] The second determining module is further configured to determine the first priority of the to-be-coordinated data according to the first information; the first information comprising the data priority and at least one of the following: a system load of the solid state disk, a write amplification contribution degree of the to-be-coordinated data, and an update frequency;

[0020] a sending module, configured to send a first message to the solid state disk; the first message comprising a first priority.

[0021] The application further provides an electronic device, comprising: a memory, configured to store a computer program; and a processor, configured to execute the computer program to implement the steps of any of the data garbage collection methods.

[0022] The application further provides a computer readable storage medium, which stores a computer program; when the computer program is executed by a processor, the steps of any of the data garbage collection methods are implemented.

[0023] The application further provides a computer program product, comprising a computer program; when the computer program is executed by a processor, the steps of any of the data garbage collection methods are implemented.

[0024] This application utilizes a system where the receiving host calculates a first priority based on multi-dimensional information (data value, lifecycle, system load, write amplification contribution, etc.) and dynamically updates the priority of specific target data within the SSD's data to be reclaimed. Reclaiming is then performed based on the updated priority. This breaks down the isolation between the host and SSD in garbage collection decisions, tightly integrating the host's global business perspective with the SSD's underlying physical operations. It achieves a leap in garbage collection strategies from a coarse hot / cold classification based on update frequency to an objective priority ranking based on multi-dimensional weights, enabling data classification to more accurately reflect its true write amplification contribution and business value, and improving write amplification optimization efficiency. Attached Figure Description

[0025] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0026] Figure 1 A schematic diagram illustrating the principles of data compression and deduplication in data garbage collection for related technologies;

[0027] Figure 2 A schematic diagram of the system architecture for the data garbage collection method provided in the embodiments of this application;

[0028] Figure 3 A flowchart illustrating the data garbage collection method provided in this application embodiment. Figure 1 ;

[0029] Figure 4 A flowchart illustrating the data garbage collection method provided in this application embodiment. Figure 2 ;

[0030] Figure 5 An interactive schematic diagram of the data garbage collection method provided in the embodiments of this application;

[0031] Figure 6 Schematic diagram of the data garbage recycling device provided in the embodiments of this application Figure 1 ;

[0032] Figure 7 Schematic diagram of the data garbage recycling device provided in the embodiments of this application Figure 2 ;

[0033] Figure 8 A schematic diagram of the structure of the electronic device provided in this application. Detailed Implementation

[0034] With reference to the drawings, the technical solutions in the embodiments of the present application will be clearly and completely described below. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the protection scope of the present application.

[0035] It should be noted that, in the description of the present application, the terms “comprise”, “contain” or any other variants thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device comprising a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or device. The terms “first”, “second” and the like in the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence.

[0036] The present application relates to an optimization technology for enterprise-level solid state drives (SSDs), which can be applied to high-load and high-reliability data center scenarios. With the popularity of cloud computing, big data analysis and real-time transaction systems, enterprise-level SSDs have gradually replaced traditional mechanical hard drives as the mainstream medium of the core storage layer, thanks to their core advantages such as high bandwidth (e.g. Peripheral Component Interconnect Express (PCIe) 4.0 interface supported by Non-Volatile Memory Express (NVMe) protocol), high Input / Output Operations Per Second (IOPS) and low latency (microsecond-level response). However, the physical characteristics of NAND flash memory (e.g. “erase before write”) cause significant Write Amplification (WA) during the garbage collection (GC) process of SSDs, which directly affects the lifespan (limit of erase-write times) and performance (GC operations occupy host computing power and NAND channel bandwidth) of SSDs. In enterprise-level scenarios, daily petabyte (PB)-level data interaction and complex business loads (e.g. Redundant Array of Independent Disks (RAID) arrays, database transaction processing) place higher requirements on the write amplification control of SSDs.

[0037] In the related art, the GC efficiency is usually optimized by the internal hardware and algorithm of the SSD, and the host does not participate in any decision. The idle GC strategy can be used in the SSD, that is, the GC is triggered when the SSD is idle or has low load, so as to reduce the interference on the service. The static data which is not updated for a long time is marked as an attribute which does not need to be recycled, so as to reduce the effective data migration amount during the GC.

[0038] As shown in Figure 1 , the repeated data can be combined by using the data compression and deduplication method (for example, real-time compression and hash deduplication), and only one copy is retained. Such a processing method is only applicable to compressible data such as text and log, and the range of use is relatively narrow.

[0039] Therefore, how to improve the write amplification optimization efficiency becomes a technical problem to be solved.

[0040] To solve the above technical problems, the present application has found that the host can be used to reduce the write amplification, the parameters which have a greater impact on the write amplification are objectively sorted based on the collaborative data priority, and the SSD is notified through the collaborative interaction between the host and the SSD, so that the SSD makes a more accurate and beneficial recycling strategy for the write amplification optimization. Based on this, the present application provides a data garbage recycling method.

[0041] In order to enable the skilled person in the art to better understand the present application, the present application will be further described in detail below in combination with the drawings and specific embodiments.

[0042] In combination with the specific application environment architecture or specific hardware architecture on which the data garbage recycling method is dependent, the specific application environment architecture or specific hardware architecture is described here. Referring to Figure 2 , Figure 2 , the system architecture diagram of the data garbage recycling method provided by the present application embodiment is shown. As shown in Figure 2 , the data garbage recycling method provided by the present application embodiment can run in a collaborative system architecture including a host and a solid state disk.

[0043] The host side includes an application layer, a file system, an SSD system management engine, a collaborative data identification and priority calculation unit, and a collaborative instruction generation and coding unit from top to bottom. The collaborative data identification and priority calculation unit can be used to calculate the first priority of the data to be collaborated. The collaborative instruction generation and coding unit can be used to encapsulate the first priority into a first message.

[0044] The SSD side can include a cooperative instruction receiving and decoding unit, a cooperative garbage collection control engine, a GC trigger and state feedback unit, a GC module, a traditional flash translation layer (FTL), a NAND operation unit, and a NAND medium. The cooperative instruction receiving and decoding unit can be configured to receive and analyze the first message from the host. The cooperative garbage collection control engine is the control center for executing the core logic of the embodiments. The GC module can be configured to perform specific garbage collection operations.

[0045] In the implementation process, the cooperative instruction receiving and decoding unit of the SSD side can receive the first message sent by the cooperative instruction generation and encoding unit of the host through the host interface, and decode the first message to extract the first priority of the data to be cooperated. The data to be cooperated can include one or more data blocks identified by the host, which are assigned the same first priority (e.g., P1) by the host. The first priority can be generated by the cooperative data identification and priority calculation unit of the host side, which is related to the first information. The first information at least includes the data priority determined by the host according to the data value, update frequency and data life cycle of the data to be cooperated, and can further fuse one or more of the first system load feedback from the SSD, the first write amplification contribution coefficient of the data to be cooperated, and the update frequency. The first message can also include identification information such as the logical address range of the data to be cooperated.

[0046] Further, the cooperative garbage collection control engine of the SSD side performs a priority update operation. After receiving the decoded first message, the cooperative garbage collection control engine can search and match the data to be cooperated in the current data to be recycled in the SSD according to the data to be cooperated carried in the first message (such as the address range). The current data to be recycled refers to a set of data blocks that have been initiated by the GC trigger and state feedback unit and are being prepared or planned to be recycled by the GC module. The set can include multiple data blocks with different original recycling priorities (such as P2, P3, P4, etc.). Then, from the current data to be recycled, those data blocks whose logical addresses overlap with the range of the data to be cooperated are filtered out and determined as target data. These target data can originally have their own recycling priorities (such as P2). Finally, the engine can uniformly update the original recycling priorities of these target data using the received first priority (such as P1), thereby generating a new and uniform second priority (i.e., P1) for these target data. The recycling priorities of other data blocks in the current data to be recycled that do not belong to the range of the data to be cooperated remain unchanged (such as P3, P4). This process realizes the precise intervention of the host strategy on the recycling priority of specific data blocks in the SSD.

[0047] Finally, the cooperative recycling control engine on the SSD side cooperates with the GC module to perform the recycling process. The cooperative recycling control engine synchronizes the updated priority state (i.e., part of the data blocks are updated to P1 priority, and the rest of the data blocks remain the original priority such as P3 and P4) to the GC module. When scheduling its internal recycling tasks, the GC module will determine the recycling order according to the updated overall priority state. For example, since P1 priority is higher than P3 and P4, the GC module will preferentially select the physical block containing the target data block updated to P1 priority for recycling. Then the GC module drives the NAND operation unit to perform the specific garbage collection operation according to the scheduling decision. The entire recycling process is based on the updated priority to ensure that the data blocks to be cooperated marked by the host as high priority (current priority P1) can be recycled in priority to other low priority data blocks (such as P3 and P4), thereby achieving fine control of write amplification.

[0048] Through the above process, the host side calculates the data priority (i.e., data types K1-K4) based on data value, update frequency, and data life cycle, which can make the data priority fully reflect the contribution of write amplification, and then determine the first priority based on system load, update frequency, and write amplification contribution coefficient, which can achieve objective ordering of data cooperative priority. Through the standardized message interface, the first message carrying the first priority is issued and applied to the ongoing garbage collection activity in the SSD. The SSD only updates the priority of the overlapping data blocks, so that the garbage collection operation can distinguish between data of different importance, align the garbage collection operation with the real needs of the upper application, and thus achieve optimization of write amplification, prolongation of life, and reduction of performance interference at the system level.

[0049] Optionally, the host can also include a dynamic interaction threshold decision unit and a GC information analysis and response unit. The dynamic interaction threshold decision unit is used to dynamically calculate and adjust the threshold for triggering cooperative operation according to the system load and other information fed back by the SSD, to achieve intelligent throttling. The GC information analysis and response unit can be used to receive and analyze the second message (such as GC state) reported by the SSD, and then generate a third message containing the highest priority allowed for recycling and the recycling task allocation ratio according to the global strategy.

[0050] The SSD can also include a shunt recycling execution unit and a no-recycling logical block address (LBA) index library. The shunt recycling execution unit is used to differentially schedule recycling tasks to different load channels for execution according to the recycling task allocation ratio and the channel idle state issued by the host. The no-recycling LBA index library is used to persistently record the data logical addresses marked by the host as long-term retention or no-recycling, so that the GC module can directly skip these data in the subsequent recycling period, avoiding invalid operations.

[0051] Figure 3 Flowchart of the data garbage collection method provided by the embodiments of the present application Figure 1 As shown in Figure 3 The embodiments of the present application provide a data garbage collection method, which can be applied to a controller of a solid state disk or a solid state disk, or software attached to the controller or the solid state disk. The method is described in detail as follows.

[0052] 301. receiving a first message sent by a host; the first message comprising a first priority of data to be cooperated; the first priority being related to first information; the first information comprising a data priority of the data to be cooperated, and at least one of the following data: a first system load of the solid state disk, a first write amplification contribution coefficient of the data to be cooperated, and an update frequency; the data priority being determined according to a data value, an update frequency and a data life cycle of the data to be cooperated.

[0053] In this embodiment, the solid state disk SSD can receive a first message sent by a host. The first message can comprise a first priority of data to be cooperated. The first priority can be related to first information, and the first information can comprise a data priority determined by the host according to a data value, an update frequency and a data life cycle of the data to be cooperated, and can further comprise at least one of the following data: a first system load of the solid state disk, a first write amplification contribution coefficient of the data to be cooperated, and an update frequency of the data to be cooperated. In this way, the host can generate a first priority that can objectively reflect the importance of data to write amplification optimization by comprehensively considering the business semantic value, historical behavior characteristics of the data and the real-time state of the SSD, and encapsulate it in the first message to send to the SSD, thereby providing a basis for decision-making for cooperative garbage collection.

[0054] 302. updating a recovery priority of target data in current data to be recovered in the solid state disk according to the first priority, to obtain a second priority of the target data; the target data being at least part of the data to be cooperated.

[0055] In this embodiment, the solid state disk can update the recovery priority of target data in the current data to be recovered in the internal SSD according to the received first priority, thereby obtaining the second priority of the target data.

[0056] The current data to be recovered can refer to a set of multiple data blocks in the SSD that have triggered and are planned to be garbage collected.

[0057] The target data can be at least part of the data to be cooperated that has a logical address overlap with the current data to be recovered.

[0058] In the implementation process, the SSD can identify which data blocks in the current data to be recycled belong to the data range to be cooperated specified by the host, and determine these data blocks as target data. Then, the SSD can use the first priority issued by the host to uniformly cover or adjust the original internal recycling priority of the target data, and generate a new second priority. For other data blocks in the current data to be recycled that do not belong to the data range to be cooperated, their recycling priority can remain unchanged. This step realizes the accurate and dynamic intervention of the host strategy on the internal specific data recycling priority of the SSD.

[0059] 303. Recycle the data to be recycled according to the second priority.

[0060] In this embodiment, when scheduling and executing the recycling task, the garbage recycling module of the SSD can determine the order of recycling operation and resource allocation according to the updated overall priority state (i.e., the target data has the second priority, and the other data maintains the original priority). For example, physical blocks containing high second priority target data can be preferentially selected and processed. By driving the garbage recycling process based on the second priority as the core, it can be ensured that the data identified by the host as high value and high optimization demand can have priority to obtain recycling resources, so that the garbage recycling operation is more in line with the real intention of the upper application, and fine control of write amplification is realized.

[0061] The data garbage recycling method provided by the embodiment of the application receives the first priority calculated by the host based on multi-dimensional information (data value, life cycle, system load, write amplification contribution, etc.), dynamically updates the priority of specific target data in the internal data to be recycled of the SSD, and finally executes recycling according to the updated priority. It breaks the isolation between the host and the SSD in garbage recycling decision-making, closely combines the global business perspective of the host with the underlying physical operation of the SSD. It realizes the leap from the rough hot and cold division based on update frequency to the objective priority sorting based on multi-dimensional weight in the garbage recycling strategy, so that the data classification can more accurately reflect the real write amplification contribution and business value, and the write amplification optimization efficiency is improved. And through the real-time intervention of the host strategy on the internal recycling queue of the SSD, the data with high optimization value can be processed preferentially, thereby significantly improving the overall efficiency and pertinence of write amplification optimization, prolonging the service life of the SSD, reducing the performance interference of garbage recycling on the front-end business input / output (Input / Output, I / O), and improving the performance stability and reliability of the enterprise-level storage system in complex high-load scenarios.

[0062] In some embodiments, the first message further includes at least one of the following: an address range of the data to be cooperated, a first write amplification contribution coefficient, a data life cycle, and a recyclable flag.

[0063] For example, the first message Msg1 can be a data attribute synchronization instruction for pushing attribute information of high-priority data to the SSD. The format is shown in Table 1.

[0064] Table 1

[0065]

[0066] The method provided by the embodiments of the present application can make the SSD more accurately identify and locate target data, and more comprehensively understand the context and state of the data, thereby supporting more fine and intelligent collaborative garbage collection decisions, and further improving optimization efficiency, by passing additional information such as an address range of the data to be cooperated, a first write amplification contribution coefficient, a data life cycle, and a recyclable flag.

[0067] In some embodiments, the recycling processing of the data to be recycled according to the second priority includes: determining a highest priority of the data to be recycled based on the second priority.

[0068] sending a second message to the host; the second message includes the highest priority of the data to be recycled.

[0069] receiving a third message sent by the host; the third message includes: an allowed recycling highest priority; the allowed recycling highest priority is determined based on the highest priority of the data to be recycled.

[0070] adjusting a data range of the data to be recycled according to the allowed recycling highest priority, obtaining new data to be recycled, and performing recycling processing on the new data to be recycled.

[0071] In some embodiments, the process of recycling processing of the data to be recycled according to the second priority can be further refined to achieve safer two-way cooperation.

[0072] Optionally, the solid state disk can determine a highest priority of all the data to be recycled based on the second priority. The solid state disk can send a second message to the host, and the second message can include the determined highest priority of the data to be recycled. Further, the solid state disk can receive a third message sent by the host in response to the second message, and the third message can include an allowed recycling highest priority, which can be determined by the host based on the received highest priority of the data to be recycled and combined with its global strategy. Finally, the solid state disk can adjust the current data range to be recycled according to the allowed recycling highest priority, for example, only data with a priority equal to or lower than the allowed recycling highest priority is included in the recycling range, thereby obtaining new data to be recycled, and finally performing recycling processing on the new data to be recycled.

[0073] Exemplarily, each message (e.g., the first message Msg1, the second message Msg2, and the third message Msg3) in the embodiment can adopt a structure of an instruction header, a data field, and a check field. The instruction header can include key information such as an instruction type and a priority identifier. The data field can carry a quantization parameter. The check field can adopt a CRC8 check. The following is an example description of the second message Msg2 and the third message Msg3.

[0074] The second message Msg2, that is, the GC state feedback instruction sent by the SSD to the host, is used to synchronize the GC trigger state and the to-be-recycled data information to the host. The format is as shown in Table 2.

[0075] Table 2

[0076]

[0077] The third message Msg3, that is, the recycling strategy adjustment instruction sent by the host to the SSD, is used for the host to adjust the SSD recycling strategy according to the business load and the data priority. The format is as shown in Table 3.

[0078] Table 3

[0079]

[0080] In the recycling block priority filtering process, the data attributes (e.g., the first priority and the data priority (K1, K2, K3, K4, and the like data types)) pushed by the host through Msg1 and the allowed recycling highest priority in Msg3 can be combined to perform secondary screening on the to-be-recycled data blocks of the SSD.

[0081] For example, K1 type data blocks (high-value static data) and data blocks with a priority greater than or equal to the allowed recycling threshold (e.g., when the threshold is set to P3, P1 and P2 type data blocks are removed) can be deleted from the plurality of data blocks of the to-be-recycled data.

[0082] K4 type low-value redundant data blocks, K3 type cache data blocks, and low-priority data blocks that do not reach the threshold can also be preferentially retained to form a precise recycling list.

[0083] The embodiment of the application introduces a secondary handshake mechanism of the highest priority reporting and host confirmation, so that the host can finally audit and authorize the recycling operation to be performed by the SSD. The safety and controllability of the collaborative process are enhanced, and the garbage recycling strategy is ensured to be consistent with the global business goal of the host at all times.

[0084] In some embodiments, the recycling of the new data to be recycled includes: determining channel loads of the plurality of channels; determining channel load statuses of the plurality of channels according to the system load and the channel loads of the plurality of channels; and recycling the new data to be recycled according to the channel load statuses of the plurality of channels.

[0085] In some embodiments, the solid state disk can first determine channel loads of the plurality of NAND flash channels inside the solid state disk. Then, the solid state disk can determine which of the plurality of channels are in a relatively idle state by combining the system load of the solid state disk as a whole and the determined channel loads of the plurality of channels. Finally, the solid state disk can schedule and perform recycling of the new data to be recycled according to the determined channel load statuses of the plurality of channels, for example, by preferentially assigning recycling tasks to channels that are currently less loaded or idle.

[0086] Embodiments of the present application can more evenly distribute I / O pressure caused by garbage collection operations to hardware resources by perceiving and utilizing differentiated load statuses of a plurality of NAND channels for intelligent task scheduling. This effectively avoids the intensification of interference with foreground business I / O caused by the centralized occupation of a small number of busy channels by recycling tasks, thereby ensuring the smooth and efficient overall performance of the storage system to the greatest extent while performing necessary recycling in the background.

[0087] In some embodiments, determining the channel load statuses of the plurality of channels according to the system load and the channel loads of the plurality of channels includes: determining an average channel load according to the channel loads of the plurality of channels; and determining a first coefficient according to the system load.

[0088] Determining an idle channel threshold value according to the first coefficient and the average channel load.

[0089] For each channel, determining a channel load status of the channel according to the channel load of the channel and the idle channel threshold value.

[0090] In some embodiments, an average channel load can be calculated according to the channel loads of the plurality of channels. Meanwhile, a first coefficient can be determined according to the system load, which reflects the influence of the overall busy degree of the system on the determination of channel idleness. Then, by combining the first coefficient with the calculated average channel load, a dynamic idle channel threshold value can be determined. Finally, for each channel, by comparing the channel load of the channel with the dynamically determined idle channel threshold value, it can be determined whether the channel is in a load state (for example, if the channel load is lower than the threshold value, the channel is determined to be idle).

[0091] Exemplarily, in the embodiment, the data priority, channel load and coordination strategy can be precisely matched for shunting and recycling based on the recycling policy parameters (such as the highest priority allowed to be recycled, the recycling task allocation ratio, etc.) issued by the host through Msg3, in combination with the internal GC state of the SSD (fed back to the host through Msg2), so as to completely adapt to the host-SSD bidirectional coordination closed-loop design, and avoid resource waste and efficiency loss caused by independent recycling of the SSD.

[0092] In the specific implementation process, the coordination parameters can be first parsed and initialized, for example, the SSD receives the recycling policy adjustment instruction sent by the host through Msg3, extracts the core parameters (which can include the highest priority allowed to be recycled (such as P3), the recycling task allocation ratio, the upper limit of the maximum task quantity of a single channel, etc.) based on the recycling policy adjustment instruction, and at the same time, the system load SL and the NAND channel state fed back by itself through Msg2 can be combined to complete the recycling parameter initialization.

[0093] Further, intelligent channel load grading can be performed. For example, the load of each NAND channel can be collected at a preset period (such as 100 ms), the channel load calculation formula (Load_Chan = current queue length / maximum queue length × 100%) can be used, and the idle channel judgment logic can be optimized in combination with the system load SL:

[0094] When SL≤30% (indicating that the system is in a valley), the idle channel threshold Load_Th = average queue length / maximum queue length × 80% (which can expand the idle channel range and fully utilize redundant resources);

[0095] When 30% < SL < 70% (indicating that the system is stable), Load_Th = average queue length / maximum queue length × 100% (which can maintain regular idle channel screening);

[0096] When SL≥70% (indicating that the system is in a peak), Load_Th = average queue length / maximum queue length × 120% (which can shrink the idle channel range to guarantee user IO response);

[0097] Finally, the channels with Load_Chan≤Load_Th can be screened as idle channels, and the rest are non-idle channels (the non-idle channels with channel load ≤50% can also be used for recycling tasks).

[0098] The embodiment of the present application introduces an idle channel threshold based on dynamic adjustment of system load, so that the determination of the channel load state is no longer static and isolated, but can sensitively respond to the changes of the overall system load. The adaptability of the recycling task scheduling strategy is ensured, which can fully utilize the hardware resources to accelerate recycling when the system is idle, and can remain restrained when the system is busy, so as to more intelligently balance the background recycling efficiency and the foreground business performance.

[0099] In some embodiments, the second message further includes a data amount of the data to be recycled or a second write amplification contribution coefficient; the third message further includes: a recycling task allocation ratio; the recycling task allocation ratio represents a proportion of the data corresponding to the highest priority allowed to be recycled in the new data to be recycled, and is determined according to the data amount of the data to be recycled or the second write amplification contribution coefficient; the recycling processing is performed on the new data to be recycled according to the load states of the plurality of channels, including: based on the recycling task allocation ratio, the recycling processing is performed on the new data to be recycled according to the load states of the plurality of channels.

[0100] In some embodiments, the second message can further include a data amount of the data to be recycled or a second write amplification contribution coefficient. Correspondingly, the third message returned by the host can further include a recycling task allocation ratio in addition to the highest priority allowed to be recycled, which is determined by the host based on the data amount or the second write amplification contribution coefficient reported in the second message. When performing recycling processing, the solid state disk can perform recycling processing on the new data to be recycled based on the recycling task allocation ratio and in combination with the load states of the plurality of channels. For example, when the data amount is less than a preset amount, the host can not intervene in the allocation ratio, and when the data amount is greater than the preset amount, the host can determine the allocation ratio according to the second write amplification contribution coefficient, for example, the allocation ratio can not be set when the second write amplification contribution coefficient is greater than a preset value (for example, an average value of the write amplification contribution coefficient within a preset time period), and if the second write amplification contribution coefficient is less than the preset value, the allocation ratio can be determined according to the ratio between the difference between the second write amplification contribution coefficient and the preset value and the preset value.

[0101] The embodiment of the present application dynamically specifies the recycling task allocation ratio of the data of the highest priority allowed to be recycled and the data of other priorities (data other than the data corresponding to the highest priority allowed to be recycled in the new data to be recycled) by the host based on the data size or the write amplification influence, so that the host can adaptively adjust the intervention degree of the SSD recycling strategy according to the information fed back by the SSD.

[0102] In some embodiments, based on the recycling task allocation ratio, the new data to be recycled is recycled according to the load state of the plurality of channels, comprising: determining the ratio between the first data and the second data in the data to be recycled according to the recycling task allocation ratio; the second priority of the first data is the same as the highest priority allowed to be recycled, and the second priority of the second data is lower than the highest priority allowed to be recycled.

[0103] The first data is allocated to the idle channel for recycling.

[0104] The second data is allocated to the non-idle channel for recycling.

[0105] In some embodiments, the ratio between the first data and the second data in the data to be recycled can be determined according to the recycling task allocation ratio issued by the host. The first data refers to data whose second priority is the same as the highest priority allowed to be recycled by the host, and the second data refers to data whose second priority is lower than the highest priority allowed to be recycled. Then, when recycling is scheduled, the first data can be preferentially allocated to the channel currently determined to be in an idle state for recycling to ensure that high-priority data is recycled in a timely and low-interference manner. At the same time, the second data can be allocated to a non-idle (i.e., high-load) channel for recycling, thereby realizing differentiated resource scheduling for data of different importance.

[0106] The embodiments of the present application realize fine matching of recycling tasks and hardware resources by classifying data according to priority and matching them to channels in different load states. This ensures that high-priority recycling tasks can obtain high-quality channel resources to complete quickly, while allowing low-priority tasks to be executed in the background, thereby optimizing the balance between recycling efficiency and system performance as a whole and improving resource utilization.

[0107] In some embodiments, during the hierarchical task allocation and scheduling process, task scheduling can be performed according to the allocation ratio specified by Msg3 based on data priority (i.e., data types K1-K4) and channel load state.

[0108] For example, cold data recycling tasks (mainly K4 type redundant data and long-term low-priority K3 type data that has not been updated) can be allocated to idle channels to reduce interference with business using idle resources.

[0109] Hot data recycling tasks (mainly high-frequency updated low-priority K2 type data) can also be allocated to non-idle channels with a load of ≤50% to balance recycling efficiency and IO response speed.

[0110] In addition, based on the single-channel maximum task quantity (10 blocks) limit, in combination with the data weight parameter in Msg1, the channel resources can be preferentially allocated to high-weight low-priority data blocks, so as to avoid recovery delay.

[0111] During the recovery process, the SSD can real-time statistics of channel load, task completion progress, effective data migration amount and the like, and synchronizes the information to the host through a subsequent Msg2 instruction, so as to provide data support for the host to dynamically adjust the recovery strategy (update Msg3 parameter), and form a closed-loop optimization.

[0112] In some embodiments, the third message further includes a single-channel maximum task quantity, and the new data to be recovered is recovered by: based on the single-channel maximum task quantity, the new data to be recovered is recovered according to the load state of the plurality of channels.

[0113] In some embodiments, the third message issued by the host can further include the parameter of the single-channel maximum task quantity. Accordingly, when the SSD recovers the new data to be recovered, the SSD can perform recovery scheduling based on the single-channel maximum task quantity in combination with the load state of the plurality of channels. For example, even if a channel is determined to be idle, the recovery task quantity allocated to the channel will not exceed the single-channel maximum task quantity limit set by the host.

[0114] The embodiments of the present application provide a single-channel recovery task quantity upper limit set by the host, which provides a clear resource constraint boundary for the parallel recovery operation of the SSD. The performance bottleneck or delay fluctuation of a single channel caused by concentrated processing of excessive recovery tasks is effectively prevented, and it is ensured that the occupation of the recovery operation on the channel resources is controllable and balanced, so that the parallelism of the recovery operation is improved, and the stability of the I / O response of each channel is guaranteed.

[0115] Figure 4 Flowchart of the data garbage recovery method provided by the embodiments of the present application Figure 2 As shown in Figure 4 The embodiments of the present application provide a data garbage recovery method, which can be applied to a controller of a host or the host, or software attached to the controller of the host or the host. The method is described in detail as follows:

[0116] 401. Determine the corresponding data priority according to the data value, update frequency and data life cycle of the data to be coordinated.

[0117] In this embodiment, the host can determine the corresponding data priority according to the data value, update frequency and data life cycle of the data to be cooperated. For example, the host can evaluate the importance or business value (data value) of the data to be cooperated to the upper application, analyze the frequency of modification or overwrite of the data (update frequency), and predict or obtain the expected effective storage time length (data life cycle) of the data. By comprehensively considering these three dimensions, the host can give an initial data priority (i.e., divide the data into different data types such as K1, K2, K3 and K4) to the data to be cooperated, which can preliminarily reflect the potential importance and urgency of data of different priorities in garbage collection optimization, and lay a foundation for subsequent more detailed priority calculation.

[0118] 402、determine a first priority of the data to be cooperated according to the first information; the first information includes the data priority and at least one of the following data: system load of the solid state disk, write amplification contribution degree of the data to be cooperated, update frequency.

[0119] In this embodiment, the host can determine the final first priority of the data to be cooperated according to the first information. The first information at least includes the data priority determined by step 401, and can further integrate at least one of the following data: the system load of the solid state disk obtained or estimated from the solid state disk, the contribution degree of the data to the overall write amplification of the solid state disk (write amplification contribution coefficient), and the update frequency of the data. By combining the data priority reflecting the characteristics of the data itself with the indicators reflecting the real-time state of the SSD (system load) and the influence of the historical behavior of the data on physical wear (write amplification contribution coefficient), the host can calculate a more comprehensive, objective and dynamic first priority. The first priority not only reflects the business semantics of the data, but also considers the actual efficiency and execution timing of optimizing write amplification, realizing the multi-dimensional integration of decision basis.

[0120] 403、send a first message to the solid state disk; the first message includes the first priority.

[0121] In this embodiment, the host can send a first message to the solid state disk, and the first message can include the determined first priority. So that the solid state disk can obtain and rely on the priority information provided by the host side, which is closely related to the demand of the upper application and the system state, when performing the garbage collection operation subsequently, thereby providing a key external input for the adjustment of its internal recovery strategy.

[0122] The data garbage collection method provided in the embodiments of the present application determines the data priority according to the data value, update frequency and life cycle on the host side, and further integrates real-time and historical information such as SSD system load and write amplification contribution, to comprehensively calculate the first priority of the data to be coordinated, and finally issue the priority to the SSD. A multi-dimensional and quantifiable data importance evaluation system is constructed, so that the priority can truly reflect the value of the data to the business and its impact on the storage device life (write amplification), which goes beyond the traditional simple classification based on hot and cold data. The host actively pushes the priority instruction integrated with real-time system status to the SSD, realizing information interconnection and strategy coordination between the upper and lower layers of the storage stack, so that the bottom layer recovery operation of the SSD can be aligned with the real intention of the upper layer application and the immediate load status of the system. Therefore, the SSD can be guided to perform more intelligent and accurate garbage collection, effectively reduce write amplification, prolong the service life of the SSD, and reduce the performance jitter caused by background recovery.

[0123] In some embodiments, the data priority includes a first level, a second level, a third level and a fourth level from high to low; the corresponding data priority is determined according to the data value, update frequency and data life cycle of the data to be coordinated, including: if the data value of the data to be coordinated is less than a first preset value, the data priority is determined as the fourth level. The data value can include data source, for example, user data can be determined as higher value, for example, greater than a second preset value.

[0124] If the data value of the data to be coordinated is greater than the second preset value and the update frequency is greater than a first frequency, the data priority is determined as the first level; the second preset value is greater than the first preset value.

[0125] If the data value of the data to be coordinated is greater than the first preset value, the update frequency is less than a second frequency, and the data life cycle is less than a second preset time length, the data priority is determined as the third level; the first frequency is greater than or equal to the second frequency.

[0126] If the data value of the data to be coordinated is greater than the first preset value, the update frequency is less than the second frequency, and the data life cycle is greater than a first preset time length, the data priority is determined as the second level; the first preset time length is greater than or equal to the second preset time length.

[0127] In the embodiments, the data can be divided into multiple data priorities (i.e., multiple data types) based on the contribution degree to write amplification optimization and data characteristics, for example, four data types K1, K2, K3 and K4, and the core features and coordination value of each type of data are clearly defined.

[0128] For data type K1, i.e. the first level, this type belongs to high-value static data, which is usually long-term non-updated ice data, important data that is not updated for a long time after writing, and moving such data inside the SSD is mainly triggered by wear leveling, and the moving efficiency is close to 100%. A strict coordination mechanism is needed to ensure the accuracy of the identification of such data, and if the accuracy cannot be guaranteed, the moving efficiency will be severely affected, and the coordination frequency is low but the accuracy is required.

[0129] For data type K2, i.e. the second level, such data belongs to high-value hot data, which usually has a relatively frequent update frequency, and is usually user data and important metadata of the storage system. Such data has a high write frequency and is the main contributor to garbage collection inside the SSD. Such data has a certain probability of user overwrite in a short time after garbage collection data moving, which reduces the efficiency of garbage collection. The coordination of such data needs to be relatively frequent, the coordination frequency is general, and the accuracy is slightly high.

[0130] For data type K3, i.e. the third level, such data belongs to cache data, which has a very short life cycle. The recycling efficiency brought by the traditional garbage collection strategy will be very low, and there is a high probability that the data will be overwritten by the user soon after recycling. However, K3 data will become K2 data due to changes in storage system behavior and user behavior, and the coordination frequency is relatively high, and a certain degree of accuracy is required.

[0131] For data type K4, i.e. the fourth level, such data belongs to low-value redundant data, which is only process data and has no moving value. Such data accounts for a small proportion and needs to be coordinated in a timely manner.

[0132] The embodiments of the application convert the multi-dimensional qualitative evaluation into clear and executable priority determination rules by setting clear value, frequency and life cycle thresholds. The automation and standardization of data priority classification are realized, the randomness of subjective judgment is reduced, the consistency and predictability of the priority order of different data are ensured, and a reliable decision basis is provided for the host to perform large-scale and efficient data coordination management.

[0133] In some embodiments, determining the first priority of the data to be coordinated according to the first information includes: fusing each item of data in the first information according to the weight corresponding to each item of data to determine the first priority of the data to be coordinated.

[0134] In this embodiment, a weight coefficient can be configured for each item of data (such as data priority, system load, write amplification contribution, update frequency, etc.) contained in the first information, which can be pre-set or dynamically adjusted. Then, according to the respective weights of each item of data, they are comprehensively calculated and fused (such as weighted summation or other fusion algorithms), so as to finally determine the first priority of the data to be coordinated.

[0135] Alternatively, the deep learning model pre-trained can also be used to identify each item of data in the first information to obtain the first priority.

[0136] The embodiments of the present application introduce configurable weight coefficients to weight and fuse multi-source information, so that the calculation of the first priority has high flexibility and adjustability. Users or systems can dynamically adjust the proportion of each decision factor according to different business scenarios or optimization targets, thereby customizing the data priority that best meets the current demand, and realizing fine management and adaptive optimization of the priority strategy.

[0137] In some embodiments, the first information includes: a first write amplification contribution of the data to be coordinated, an update frequency, a data priority, and a system load of the solid state disk; and the first priority of the data to be coordinated is determined by fusing each item of data in the first information according to the respective weights of the items of data, including: the first write amplification contribution of the data to be coordinated, the update frequency, the data priority, and the system load of the solid state disk are weighted and fused according to the first weight of the first write amplification contribution, the second weight of the update frequency, the third weight of the data priority, and the fourth weight of the system load, to determine the first priority of the data to be coordinated.

[0138] Among them, the second weight is less than or equal to the first weight, and greater than the third weight; and the fourth weight is less than or equal to the third weight.

[0139] The first priority P can be determined according to formula (1), and formula (1) is as follows:

[0140] (1)

[0141] Among them, is the write amplification contribution weight, which can be a fixed value in actual implementation, and is the core target of write amplification optimization, and is the largest among the four weight parameters; is the update frequency weight, and the update frequency affects the number of rewrite times, and the weight is the second; is the life cycle weight, and the life cycle determines the value of optimizing write amplification in a long time; is the system load adaptation weight, and when the SSD load is high, the frequency of coordinated interaction should be reduced to improve the IO response capability of the SSD; The write amplification is obtained by the historical statistics of the SSD, and is normalized by all data; The data update frequency is calculated by the statistical write speed of the host, and is normalized, for example, the update times of various data in a fixed time range represent the proportion; The value is determined according to the data type, for example, K1 can take 6, K2 can take 2, K3 can take 1, and K4 can take 0.2; The system load is determined according to the system load, for example, the system load ≤ 30% indicates that it is in the valley, which can take 1.0, 30%-70% indicates that the system is stable, which can take 0.8, and ≥ 70% indicates that it is in the peak, which can take 0.5.

[0142] For example, the above four weights can meet the relationship The specific values can be determined by actual measurement according to the firmware implementation, for example, the values of can be used.

[0143] For example, the application rule of the first priority can be set as: if P ≥ 0.8, it is determined as the highest priority (P1), and the cooperative interaction is triggered preferentially; if 0.6 ≤ P < 0.8, it is determined as the high priority (P2), and the second priority is triggered; if 0.3 ≤ P < 0.6, it is determined as the medium priority (P3), and can be triggered as needed (when the system is in the valley); if P < 0.3, it is determined as the low priority (P4), and the cooperative interaction is not triggered (the traditional processing is used).

[0144] It should be noted that the above threshold values (0.8, 0.6, 0.3) are example values, which can be adjusted according to actual conditions.

[0145] The embodiment of the application sets the highest weight of the write amplification contribution degree, the second weight of the update frequency, the third weight of the data priority, and the relatively lowest weight of the system load, and takes reducing physical loss (write amplification) and improving recovery efficiency (paying attention to high-frequency update data) as the core optimization target. The first priority calculated ensures that the SSD preferentially recovers those data which have a great impact on life loss and are frequently updated, so as to more effectively balance the write amplification optimization and performance improvement on the system level.

[0146] In some embodiments, the first message is sent to the solid state disk, comprising: determining a trigger threshold according to the system load; if the first priority is greater than the trigger threshold, the first message is sent to the solid state disk.

[0147] In this embodiment, the host can determine a dynamic trigger threshold according to the current obtained solid state disk system load. Further, the host compares the first priority calculated with the trigger threshold. When the first priority is greater than (i.e. higher than) the trigger threshold, the host sends the first message containing the first priority to the solid state disk; otherwise, the host can not send or take other processing.

[0148] The embodiments of the present application realize intelligent throttling of priority message sending by introducing a dynamic trigger threshold based on system load. It ensures that the host initiates a cooperative recycling request to the SSD only when the data priority is high enough and the system load condition is suitable, avoiding frequent sending of low-value instructions to interfere with the SSD under high load, thereby improving communication efficiency and the accuracy of cooperative operation.

[0149] In some embodiments, the trigger threshold is linearly related to the system load.

[0150] To reduce invalid interactions, an exemplary interactive trigger threshold T can be dynamically calculated in combination with the system load, and the interaction can be triggered when the data priority score P is greater than T. The following formula (2) can be used:

[0151] (2)

[0152] wherein, the CPU utilization rate of the current host (%) is in the range of 0-100; the threshold T is in the range of 0.3 (CPU utilization rate 0%, low period) to 0.8 (CPU utilization rate 100%, peak period).

[0153] According to the above formula (2), when the system is at peak (CPU≥70%), T≥0.65, only P1 and P2 type high-value data are allowed to trigger interaction, reducing the occupation of host resources by interaction; when the system is at low period (CPU≤30%), T≤0.45, K3 type data can be allowed to join the cooperation, and idle resources are fully utilized to optimize the write amplification. In theory, this mechanism can reduce the proportion of invalid interactions.

[0154] The interaction between the host and the SSD can be extended based on the NVMe standard protocol, and a separate system control channel can be designed.

[0155] In the process of dual-determination trigger using priority and threshold: the host cooperative data recognition unit can scan the LBA block data once based on a preset period (e.g. 60s); (the preset period can be adjusted according to the system computing power, the larger the time interval, the worse the effect of cooperation, and the smaller the time interval, the better the effect, but the performance is affected more).

[0156] The first priority P is calculated according to formula (1) and the trigger threshold T.

[0157] If P > T, the interaction preparation is triggered, otherwise it is skipped.

[0158] In some embodiments, when the system load is greater than or equal to a first preset load and less than or equal to a second preset load (wherein the first preset load is less than the second preset load), the trigger threshold is set to be linearly related to the system load, for example, the higher the load, the higher the trigger threshold. When the system load is less than the first preset load or greater than the second preset load, the trigger threshold is determined to be an invalid value, i.e. in this load interval, the trigger mechanism may not be applicable or requires special handling.

[0159] The embodiments of the present application realize the refinement of the cooperative triggering strategy and the control of the safety boundary by defining the linear relationship between the trigger threshold and the system load. It ensures that the cooperative operation is intelligently adjusted only when the system load is in the typical working interval, avoiding inappropriate intervention when the load is extremely low or high, thereby improving the applicability and robustness of the cooperative mechanism.

[0160] In some embodiments, the method further comprises: receiving a second message sent by the solid state disk; the second message comprising: the highest priority of the data to be recycled. Based on the highest priority of the data to be recycled, determining the highest priority of the data to be recycled allowed to be recycled.

[0161] Sending a third message to the solid state disk; the third message comprising: the highest priority allowed to be recycled.

[0162] In the embodiment, the host receives a second message from the solid state disk, which can include the highest priority of the data to be recycled determined by the solid state disk. The host analyzes and decides based on the received highest priority to determine the highest priority allowed to be recycled by the solid state disk (i.e. the highest priority allowed to be recycled). Further, a third message can be sent to the solid state disk, which can include the highest priority allowed to be recycled.

[0163] The embodiments of the present application introduce a closed-loop interaction process of SSD reporting, host decision-making and host authorization, which returns the recycling permission to the host. This enables the host to regulate the recycling strategy of the SSD, preventing the SSD from making recycling decisions that may affect the overall performance due to a local view, and enhancing the control of background operations at the system level.

[0164] In some embodiments, based on the highest priority of the data to be recycled, the highest priority of the data to be recycled allowed to be recycled is determined, comprising: determining the data priority of the data to be recycled according to the highest priority of the data to be recycled and a first correspondence relationship; the first correspondence relationship comprising a one-to-one correspondence relationship between a plurality of first priorities and a plurality of data priorities.

[0165] obtaining an update condition of the data to be reclaimed; the update condition comprises whether the data is being updated and an update initiator.

[0166] determining an allowed reclamation highest priority of the data to be reclaimed according to a data priority of the data to be reclaimed and the update condition.

[0167] In some embodiments, the data priority corresponding to the data to be reclaimed can be reversely looked up or derived according to the received highest priority and a preset first correspondence relationship defining a one-to-one mapping between a plurality of first priorities and a plurality of data priorities. Then, the host obtains the update condition of the data to be reclaimed, for example, whether the data is currently being updated and an update initiator (for example, from which application or user). Finally, the host comprehensively considers the data priority and the update condition to determine the final allowed reclamation highest priority.

[0168] The embodiments of the present application make a secondary decision by combining the original service priority of the data (data priority) and the real-time update state, so that the reclamation priority authorized by the host is more accurate. The embodiments can effectively avoid authorizing a high priority reclamation when the data is being updated by a key service, thereby preventing resource conflicts between the reclamation operation and the foreground service and ensuring the continuity and performance of the key service.

[0169] In some embodiments, the second message further comprises at least one of the following: a reclamation trigger reason, a remaining redundant space; and determining the allowed reclamation highest priority of the data to be reclaimed based on the highest priority of the data to be reclaimed comprises: determining the allowed reclamation highest priority of the data to be reclaimed according to at least one of the reclamation trigger reason and the remaining redundant space and the highest priority of the data to be reclaimed.

[0170] In some embodiments, the second message sent by the solid state disk can additionally include information such as a reclamation trigger reason (for example, insufficient redundant space, wear leveling, etc.) and / or a remaining redundant space. Accordingly, the host can comprehensively consider these additional information when determining the allowed reclamation highest priority.

[0171] The embodiments of the present application take the physical state (for example, remaining space) of the SSD and the internal event (trigger reason) into account for the host decision-making, so that the authorization decision is more suitable for the actual health status and urgency of the SSD. This helps the host to authorize more aggressive reclamation when the SSD space is tight, or to take a more conservative strategy when the trigger is not urgent, thereby realizing the coordination of business logic and device physical state.

[0172] In some embodiments, the second message further comprises a second write amplification contribution coefficient and / or a data amount of the data to be recycled; and the third message further comprises a recycling task allocation ratio allowing recycling of the data corresponding to the highest priority; and the method further comprises: determining the recycling task allocation ratio according to the second write amplification contribution coefficient and / or the data amount of the data to be recycled.

[0173] In some embodiments, the second message further comprises a second write amplification contribution coefficient and / or a data amount of the data to be recycled. Accordingly, the host can return, in the third message, a recycling task allocation ratio for the data corresponding to the highest priority in addition to allowing recycling of the highest priority. The host needs to calculate and determine the recycling task allocation ratio according to the second write amplification contribution coefficient and / or the data amount of the data to be recycled.

[0174] The embodiments of the present application allow the host to dynamically control the intensity (allocation ratio) of recycling each type of data at a time according to the potential impact (contribution coefficient) of the recycling operation on write amplification or the task size (data amount). The fine and quantitative control of the recycling process is achieved.

[0175] Figure 5 The interaction diagram of the data garbage recycling method provided by the embodiments of the present application is shown in FIG. 1, and the embodiments of the present application provide a data garbage recycling method, which is described in detail as follows. Figure 5

[0176] 501. The host file system / storage system sends a data IO log.

[0177] 502. The collaborative data identification unit calculates the first priority P and the trigger threshold T, and judges whether to trigger.

[0178] 503. If triggered, output the data attribute (the first priority of the data to be recycled).

[0179] 504. The collaborative instruction generation unit organizes and sends the first message Msg1.

[0180] 505. The SSD receiving unit parses the instruction (i.e., Msg1).

[0181] 506. The SSD receiving unit sends the parsed LBA attribute (e.g., the first priority) of the data to be recycled.

[0182] 507. The GC unit updates whether the LBA in the current data to be recycled is the first priority and the recycling flag (RETAIN flag).

[0183] ​508、GC unit organizes and sends the second message Msg2, feeding back the GC state (including the highest priority to be reclaimed). It can also feed back the write amplification contribution factor and the system load of SSD (i.e. CPU utilization) for the next calculation of P and T.

[0184] 509、The collaborative instruction generation unit determines the highest priority allowed to be reclaimed according to the GC state.

[0185] 510、The collaborative instruction generation unit organizes and sends the third message Msg3.

[0186] 511、The SSD receiving unit parses the instruction (i.e. Msg3).

[0187] 512、The SSD receiving unit sends the parsed LBA attribute (e.g. the highest priority allowed to be reclaimed).

[0188] 513、The GC unit updates the reclaiming strategy.

[0189] In this embodiment, through the orderly cooperation of multiple functional units on the host side and the SSD side, a closed-loop management from data identification, priority decision to reclaim execution and feedback is realized.

[0190] The host performs data identification and instruction generation through steps 501-504. Specifically, the host file system or storage system sends data I / O logs. The collaborative data identification unit calculates the first priority P of the data to be cooperated and the trigger threshold T determined according to the system load based on the logs, and judges whether the trigger condition is met. If triggered, the data attribute containing the first priority is output. The collaborative instruction generation unit organizes and generates the first message Msg1 (i.e. the collaborative instruction containing the first priority) and sends it to the SSD. This process embodies the host's priority fusion calculation based on multi-dimensional information such as data value, update frequency, life cycle, write amplification contribution and system load, and can control instruction sending based on dynamic threshold.

[0191] Further, the SSD realizes instruction parsing and state feedback through steps 505-508. Specifically, the SSD receiving unit parses Msg1 and extracts the logical block address (LBA) attribute (such as the first priority) therein. The garbage collection (GC) unit updates the internal management state according to these information, and marks whether the corresponding LBA in the data to be reclaimed has the first priority and whether it is reclaimed. The GC unit organizes and sends the second message Msg2 to the host, feeding back the current garbage collection state, which at least includes the highest priority of the data to be reclaimed. In addition, Msg2 can also contain the write amplification contribution factor and the system load of SSD (such as CPU utilization), providing input for the host to calculate the new Msg1 in the next round.

[0192] Finally, the host decision authorization and SSD side strategy update are performed through steps 509-513. Specifically, after receiving the Msg2, the cooperative instruction generation unit on the host side determines the highest priority allowed for recycling according to the feedback GC state (such as the highest priority), and possibly considers the update situation, the triggering reason, the remaining space, etc. Then, the third message Msg3 is organized and sent to the SSD, which contains the highest priority allowed for recycling, and can contain parameters such as recycling task allocation ratio. The receiving unit of the SSD parses the Msg3 and extracts the relevant LBA attributes (such as the highest priority allowed for recycling). Finally, the GC unit updates its recycling strategy according to the parsed instructions, for example, performs differentiated recycling scheduling according to the allowed highest priority and possible task allocation ratio, combined with the channel idle state.

[0193] Through the host-SSD bidirectional cooperative closed-loop mechanism, the embodiments of the present application accurately locate high-value cooperative data, quantize priority ranking, refine interaction instruction content, and design dynamic triggering strategies, thereby solving the problems of resource waste, priority confusion, algorithm waste, and low interaction efficiency in the prior art, and finally realizing significant reduction of enterprise-level SSD write amplification.

[0194] Through the priority formula and dynamic threshold, invalid interaction is reduced, the host process switching overhead is reduced, and the response demand of high-load business scenarios (such as real-time financial transactions) can be adapted. And reducing write amplification, increasing the life of the SSD, and improving the life of the whole machine storage. The instruction contains quantized parameters, so that the SSD does not need to parse twice, reducing the occupation of the host algorithm. And through the interaction of host-SSD cooperative parameters, the blindness of SSD independent recycling is avoided, and the dynamic threshold strategy and data classification standard of the system are echoed through load grading and priority filtering, ensuring that the recycling operation is highly adapted to the whole cooperative system design.

[0195] Through the above description of the embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be realized by means of software and the necessary general hardware platform, of course, it can also be realized by hardware, but in many cases the former is a better embodiment.

[0196] Figure 6 The structure of the data garbage recycling device provided by the embodiments of the present application Figure 1 As shown in Figure 6 , the embodiments of the present application also provide a data garbage recycling device, which can include a receiving module 601, a first determining module 602, and a processing module 603.

[0197] The receiving module 601 is configured to receive a first message sent by the host, wherein the first message comprises a first priority of the to-be-coordinated data, the first priority is related to first information, and the first information comprises a data priority of the to-be-coordinated data and at least one of the following data: a first system load of the solid state disk, a first write amplification contribution coefficient of the to-be-coordinated data, and an update frequency; the data priority is determined according to a data value, an update frequency and a data life cycle of the to-be-coordinated data.

[0198] The first determining module 602 is configured to update a recycling priority of target data in the current to-be-recycled data of the solid state disk according to the first priority, to obtain a second priority of the target data.

[0199] The processing module 603 is configured to recycle the to-be-recycled data according to the second priority.

[0200] In some embodiments, the first message further comprises at least one of the following: an address range of the to-be-coordinated data, the first write amplification contribution coefficient, the data life cycle, and a recyclable flag.

[0201] In some embodiments, the processing module 603 is specifically configured to: determine a highest priority of the to-be-recycled data based on the second priority; send a second message to the host, wherein the second message comprises the highest priority of the to-be-recycled data; receive a third message sent by the host, wherein the third message comprises: an allowed recycling highest priority, and the allowed recycling highest priority is determined based on the highest priority of the to-be-recycled data; and adjust a data range of the to-be-recycled data according to the allowed recycling highest priority, to obtain new to-be-recycled data, and recycle the new to-be-recycled data.

[0202] In some embodiments, the processing module 603 is specifically configured to: determine a channel load of each channel; determine a load state of each channel based on the system load and the channel load of each channel; and recycle the new to-be-recycled data according to the load state of each channel.

[0203] In some embodiments, the processing module 603 is specifically configured to: determine an average channel load based on the channel load of each channel; determine a first coefficient based on the system load; determine an idle channel threshold based on the first coefficient and the average channel load; and determine the load state of each channel based on the channel load of each channel and the idle channel threshold.

[0204] In some embodiments, the second message further includes the amount of data to be recycled or the second write amplification contribution coefficient; the third message further includes: the recycling task allocation ratio; the recycling task allocation ratio represents the proportion of the data corresponding to the highest priority that can be recycled in the new data to be recycled, and is determined according to the amount of data to be recycled or the second write amplification contribution coefficient; the processing module 603 is specifically used to: perform recycling processing on the new data to be recycled based on the recycling task allocation ratio and according to the load status of multiple channels.

[0205] In some embodiments, the load state includes an idle state and a non-idle state. The processing module 603 is specifically used to: determine the ratio between the first data and the second data in the data to be recycled according to the recycling task allocation ratio; the second priority of the first data is the same as the highest priority allowed for recycling, and the second priority of the second data is lower than the highest priority allowed for recycling; allocate the first data to the channel in the idle state for recycling processing; and allocate the second data to the channel in the non-idle state for recycling processing.

[0206] In some embodiments, the third message also includes the maximum task volume of a single channel, and the processing module 603 is specifically used to: perform recycling processing on new data to be recycled based on the maximum task volume of a single channel and the load status of multiple channels.

[0207] For a description of the features in the embodiment corresponding to the data garbage collection device, please refer to the relevant description of the embodiment corresponding to the data garbage collection method provided in the solid-state drive side embodiment, which will not be repeated here.

[0208] Figure 7 Schematic diagram of the data garbage recycling device provided in the embodiments of this application Figure 2 .like Figure 7 As shown, embodiments of this application also provide a data garbage collection device, which may include a second determining module 701 and a sending module 702.

[0209] The second determining module 701 is used to determine the corresponding data priority based on the data value, update frequency and data lifecycle of the data to be coordinated.

[0210] The second determining module 701 is further configured to determine the first priority of the data to be coordinated based on the first information; the first information includes data priority and at least one of the following: system load of the solid-state drive, write amplification contribution of the data to be coordinated, and update frequency;

[0211] The sending module 702 is used to send a first message to the solid-state drive; the first message includes a first priority.

[0212] In some embodiments, the data priority comprises a first level, a second level, a third level and a fourth level from high to low; the second determining module 701 is specifically configured to: determine the data priority as the fourth level if the data value of the data to be coordinated is less than a first preset value; determine the data priority as the first level if the data value of the data to be coordinated is greater than a second preset value and the update frequency is greater than a first frequency; the second preset value is greater than the first preset value; determine the data priority as the third level if the data value of the data to be coordinated is greater than the first preset value, the update frequency is less than a second frequency, and the data life cycle is less than a second preset time length; the first frequency is greater than or equal to the second frequency; determine the data priority as the second level if the data value of the data to be coordinated is greater than the first preset value, the update frequency is less than the second frequency, and the data life cycle is greater than a first preset time length; and the first preset time length is greater than or equal to the second preset time length.

[0213] In some embodiments, the second determining module 701 is specifically configured to: fuse each item of data in the first information according to the weight corresponding to each item of data to determine the first priority of the data to be coordinated.

[0214] In some embodiments, the first information comprises: a first write amplification contribution degree of the data to be coordinated, an update frequency, a data priority, and a system load of the solid state disk; and the second determining module 701 is specifically configured to: weight and fuse the write amplification contribution degree of the data to be coordinated, the update frequency, the data priority, and the system load of the solid state disk according to a first weight of the first write amplification contribution degree of the data to be coordinated, a second weight of the update frequency, a third weight of the data priority, and a fourth weight of the system load to determine the first priority of the data to be coordinated; wherein the second weight is less than or equal to the first weight and greater than the third weight; and the fourth weight is less than or equal to the third weight.

[0215] In some embodiments, the sending module 702 is specifically configured to: determine a trigger threshold according to the system load; and send a first message to the solid state disk if the first priority is greater than the trigger threshold.

[0216] In some embodiments, the trigger threshold is linearly related to the system load.

[0217] In some embodiments, the sending module 702 is further configured to: receive a second message sent by the solid state disk; the second message comprises: a highest priority of the data to be recycled; determine an allowed recycling highest priority of the data to be recycled based on the highest priority of the data to be recycled; send a third message to the solid state disk; and the third message comprises: the allowed recycling highest priority.

[0218] In some embodiments, the sending module 702 is specifically configured to: determine the data priority of the data to be recycled according to the highest priority of the data to be recycled and a first correspondence relationship; the first correspondence relationship includes a one-to-one correspondence relationship between a plurality of first priorities and a plurality of data priorities; obtain the update situation of the data to be recycled; the update situation includes whether to be updated, an update initiator; and determine the allowed recycling highest priority of the data to be recycled according to the data priority of the data to be recycled and the update situation.

[0219] In some embodiments, the second message further includes at least one of the following: a recycling trigger reason, a remaining redundant space; and the sending module 702 is specifically configured to: determine the allowed recycling highest priority of the data to be recycled according to at least one of the recycling trigger reason and the remaining redundant space, and the highest priority of the data to be recycled.

[0220] In some embodiments, the second message further includes a second write amplification contribution coefficient and / or a data amount of the data to be recycled; the third message further includes a recycling task allocation ratio of the data corresponding to the allowed recycling highest priority; and the sending module 702 is further configured to: determine the recycling task allocation ratio according to the second write amplification contribution coefficient and / or the data amount of the data to be recycled.

[0221] The features of the embodiments of the data garbage recycling device can refer to the related descriptions of the embodiments of the data garbage recycling method provided by the host side, which will not be repeated here.

[0222] Figure 8 The structural schematic diagram of an electronic device provided in the present application is shown in FIG. 8. As shown in FIG. 8, the electronic device 80 provided in the present embodiment includes at least one processor 801 and a memory 802. Optionally, the electronic device 80 further includes a communication component 803. The processor 801, the memory 802 and the communication component 803 are connected through a bus. Figure 8

[0223] In the specific implementation process, the at least one processor 801 executes the computer execution instructions stored in the memory 802, so that the at least one processor 801 executes the above-mentioned data garbage recycling method embodiments.

[0224] The specific implementation process of the processor 801 can refer to the above-mentioned method embodiments, which have similar implementation principles and technical effects, and will not be repeated here in the present embodiment.

[0225] ​In the above embodiments, it should be understood that the processor can be a central processing unit (CPU), and can also be other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), etc. The general-purpose processor can be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the application can be directly embodied as hardware processor execution, or executed by a combination of hardware and software modules in the processor.

[0226] The memory can include a random access memory (RAM), and can also include a non-volatile memory (NVM), such as at least one disk memory.

[0227] The bus can be an industry standard architecture (ISA) bus, a peripheral component (PCI) bus, an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For convenience of representation, the bus in the drawings of the present application does not limit to only one bus or one type of bus.

[0228] The embodiments of the present application also provide a computer readable storage medium, which stores a computer program, and the computer program is configured to execute the steps in any of the above data garbage collection method embodiments when running.

[0229] In an example embodiment, the above computer readable storage medium can include, but is not limited to, a U disk, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and various media that can store computer programs.

[0230] The embodiments of the present application also provide a computer program product, which includes a computer program, and the computer program is executed by a processor to implement the steps in any of the above data garbage collection method embodiments.

[0231] The embodiment of the present application further provides another computer program product, comprising a nonvolatile computer readable storage medium, the nonvolatile computer readable storage medium stores a computer program, the computer program is executed by a processor to implement the steps in any of the above data garbage collection method embodiments.

[0232] Those skilled in the art will further appreciate that the functions of the examples described herein-based units and algorithm steps can be implemented using electronic hardware, computer software, or any combination thereof. To clearly illustrate this interchangeability of hardware and software, various examples have been described herein in terms of their general functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Skilled artisans can 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.

[0233] The above has introduced in detail a data garbage collection method provided by the present application. The principle and implementation mode of the present application are described herein by applying specific examples, and the above embodiment description is only applicable to help understand the method of the present application and its core idea. It should be pointed out that, for those skilled in the art, some improvements and modifications can be made to the present application without departing from the principle of the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.

Claims

1. A data garbage collection method, characterized in that, The method includes: The system receives a first message sent by the host; the first message includes a first priority of the data to be coordinated; the first priority is related to first information; the first information includes the data priority of the data to be coordinated, and at least one of the following: the first system load of the solid-state drive, the first write amplification contribution coefficient of the data to be coordinated, and the update frequency; the data priority is determined based on the data value, update frequency, and data lifecycle of the data to be coordinated. Based on the first priority, the recycling priority of the target data in the current data to be recycled on the solid-state drive is updated to obtain the second priority of the target data; the target data is at least a portion of the data to be coordinated. The data to be recycled is processed according to the second priority.

2. The data garbage recycling method according to claim 1, characterized in that, The first message also includes at least one of the following: the address range of the data to be coordinated, the first write amplification contribution coefficient, the data lifecycle, and whether it is recyclable.

3. The data garbage recycling method according to claim 1 or 2, characterized in that, The step of recycling the data to be recycled according to the second priority includes: Based on the second priority, the highest priority of the data to be recycled is determined; Send a second message to the host; the second message includes the highest priority of the data to be reclaimed; The system receives a third message sent by the host; the third message includes: allowing the highest priority to be recycled; the allowed highest priority to be recycled is determined based on the highest priority of the data to be recycled; Based on the highest priority allowed for recycling, the data range of the data to be recycled is adjusted to obtain new data to be recycled, and the new data to be recycled is then processed.

4. The data garbage recycling method according to claim 3, characterized in that, The process of recycling the new data to be recycled includes: Determine the channel load for multiple channels; Based on the system load and the channel load of the multiple channels, determine the load status of the multiple channels; The new data to be recycled is processed based on the load status of multiple channels.

5. The data garbage collection method according to claim 4, characterized in that, The step of determining the load status of multiple channels based on the system load and the channel load of multiple channels includes: Determine the average channel load based on the channel load of each channel; The first coefficient is determined based on the system load; The idle channel threshold is determined based on the first coefficient and the average channel load. For each channel, the load status of the channel is determined based on the channel load and the idle channel threshold.

6. The data garbage collection method according to claim 4, characterized in that, The second message also includes the amount of data to be reclaimed or the second write amplification contribution coefficient; the third message also includes: a reclamation task allocation ratio; the reclamation task allocation ratio represents the proportion of the data corresponding to the highest priority allowed for reclamation in the new data to be reclaimed, and is determined based on the amount of data to be reclaimed or the second write amplification contribution coefficient; the reclamation processing of the new data to be reclaimed based on the load status of multiple channels includes: Based on the recycling task allocation ratio, the new data to be recycled is processed according to the load status of multiple channels.

7. The data garbage recycling method according to claim 6, characterized in that, The load status includes idle and non-idle states. The process of recycling the new data to be recycled based on the recycling task allocation ratio and the load status of multiple channels includes: Based on the recycling task allocation ratio, the ratio between the first data and the second data in the data to be recycled is determined; the second priority of the first data is the same as the highest priority allowed for recycling, and the second priority of the second data is lower than the highest priority allowed for recycling. The first data is allocated to an idle channel for recycling. The second data is allocated to a non-idle channel for recycling.

8. The data garbage recycling method according to claim 4, characterized in that, The third message also includes the maximum task volume per channel, and the recycling process for the new data to be recycled includes: Based on the maximum task volume of a single channel, the new data to be recycled is processed according to the load status of multiple channels.

9. A data garbage collection method, characterized in that, The method includes: Determine the corresponding data priority based on the data value, update frequency, and data lifecycle of the data to be collaborated on; The first priority of the data to be coordinated is determined based on the first information; the first information includes the data priority and at least one of the following: the system load of the solid-state drive, the write amplification contribution of the data to be coordinated, and the update frequency; Send a first message to the solid-state drive; the first message includes the first priority.

10. The data garbage collection method according to claim 9, characterized in that, The data priority includes a first level, a second level, a third level, and a fourth level, from high to low; The process of determining the corresponding data priority based on the data value, update frequency, and data lifecycle of the data to be coordinated includes: If the data value of the data to be coordinated is less than the first preset value, then the data priority is determined to be the fourth level. If the data value of the data to be coordinated is greater than the second preset value and the update frequency is greater than the first frequency, then the data priority is determined to be the first level; the second preset value is greater than the first preset value. If the data value of the data to be coordinated is greater than the first preset value, the update frequency is less than the second frequency, and the data lifecycle is less than the second preset duration, then the data priority is determined to be the third level; the first frequency is greater than or equal to the second frequency; If the data value of the data to be coordinated is greater than the first preset value, the update frequency is less than the second frequency, and the data lifecycle is greater than the first preset duration, then the data priority is determined to be the second level; the first preset duration is greater than or equal to the second preset duration.

11. The data garbage collection method according to claim 9, characterized in that, The step of determining the first priority of the data to be coordinated based on the first information includes: The data in the first information are merged according to the weights corresponding to each data item to determine the first priority of the data to be coordinated.

12. The data garbage collection method according to claim 11, characterized in that, The first information includes: the first write amplification contribution, update frequency, data priority, and system load of the data to be coordinated; the step of fusing the data in the first information according to the weights corresponding to each data item to determine the first priority of the data to be coordinated includes: Based on the first weight of the first write amplification contribution of the data to be coordinated, the second weight of the update frequency, the third weight of the data priority, and the fourth weight of the system load, the write amplification contribution, update frequency, data priority, and system load of the solid-state drive are weighted and fused to determine the first priority of the data to be coordinated. Wherein, the second weight is less than or equal to the first weight and greater than the third weight; the fourth weight is less than or equal to the third weight.

13. The data garbage recycling method according to claim 9, characterized in that, Sending the first message to the solid-state drive includes: Determine the trigger threshold based on the system load; If the first priority is greater than the trigger threshold, then a first message is sent to the solid-state drive.

14. The data garbage collection method according to claim 13, characterized in that, The trigger threshold is linearly related to the system load.

15. The data garbage collection method according to any one of claims 9-14, characterized in that, The method further includes: Receive a second message sent by the solid-state drive; the second message includes: the highest priority of the data to be reclaimed; Based on the highest priority of the data to be recycled, determine the highest priority that the data to be recycled can be recycled. Send a third message to the solid-state drive; the third message includes: the highest priority for allowing recycling.

16. The data garbage collection method according to claim 15, characterized in that, The process of determining the highest priority for recycling the data to be recycled based on its highest priority includes: The data priority of the data to be recycled is determined based on the highest priority of the data to be recycled and the first correspondence relationship; the first correspondence relationship includes a one-to-one correspondence relationship between multiple first priorities and multiple data priorities. Obtain the update status of the data to be recycled; the update status includes whether it is being updated and the object that initiated the update. Based on the data priority of the data to be recycled and the update status, the highest priority for recycling the data to be recycled is determined.

17. The data garbage collection method according to claim 15, characterized in that, The second message also includes at least one of the following: a reason for triggering the recycling, and remaining redundant space; the determination of the highest allowable recycling priority of the data to be recycled based on the highest priority of the data to be recycled includes: The highest priority for recycling the data to be recycled is determined based on at least one of the recycling trigger reasons and the remaining redundant space, as well as the highest priority of the data to be recycled.

18. The data garbage collection method according to claim 15, characterized in that, The second message also includes a second write amplification contribution coefficient and / or the amount of data to be reclaimed; the third message also includes the reclaiming task allocation ratio for the data corresponding to the highest priority that can be reclaimed. The method further includes: The allocation ratio of the recycling task is determined based on the second amplification contribution coefficient and / or the amount of data to be recycled.

19. A data garbage recycling device, characterized in that, include: The receiving module is used to receive the first message sent by the host; The first message includes a first priority of the data to be coordinated; the first priority is related to the first information; the first information includes the data priority of the data to be coordinated, and at least one of the following: the first system load of the solid-state drive, the first write amplification contribution coefficient of the data to be coordinated, and the update frequency; the data priority is determined based on the data value, update frequency, and data lifecycle of the data to be coordinated. The first determining module is used to update the recycling priority of the target data in the current data to be recycled of the solid-state drive according to the first priority, and obtain the second priority of the target data; the target data is at least a portion of the data to be coordinated. The processing module is used to perform recycling processing on the data to be recycled according to the second priority.

20. A data garbage recycling device, characterized in that, include: The second determining module is used to determine the corresponding data priority based on the data value, update frequency, and data lifecycle of the data to be coordinated; The second determining module is further configured to determine a first priority of the data to be coordinated based on the first information; the first information includes the data priority and at least one of the following: system load of the solid-state drive, write amplification contribution of the data to be coordinated, and update frequency; The sending module is used to send a first message to the solid-state drive; the first message includes the first priority.

21. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the data garbage collection method or steps as described in any one of claims 1 to 18 when executing the computer program.

22. A solid-state drive, characterized in that, include Memory, used to store computer programs; A processor, configured to implement the data garbage collection method or steps as described in any one of claims 1 to 8 when executing the computer program.

23. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the data garbage collection method as described in any one of claims 1 to 18.

24. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the data garbage collection method as described in any one of claims 1 to 18.

Citation Information

Patent Citations

  • Solid state disk configuration method, garbage collection method and related equipment

    CN117909250A

  • Storage space recovery method, electronic equipment, storage medium and program product

    CN120335733A

  • Solid state disk wear leveling method and device, electronic equipment and storage medium

    CN120723168A

  • Data block recovery method and device, electronic equipment and storage medium

    CN121116182A

  • Adaptive prefix tree based order partitioned data storage system

    US20170212680A1