Method and apparatus for deleting invalid data

By obtaining the invalid data proportion of each data shard of the data disk in the storage node, selecting the target data shard that needs to perform the invalid data deletion operation, and performing the deletion operation on its data blocks, the problem of different concurrency degrees of different data disks is solved, and the read and write performance of the storage node is improved.

WO2025055420A1PCT designated stage expired Publication Date: 2025-03-20HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/098602
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-12
Filing Date
2024-06-12
Publication Date
2025-03-20

AI Technical Summary

Technical Problem

When the prior art deletes invalid data, the concurrency difference in different data disks performs invalid data deletion operations is large, affecting the read and write performance of the storage node.

Method used

By obtaining the invalid data proportion of each data shard in the data disk, we determine multiple target data shards that need to perform invalid data deletion operations, and perform deletion operations on multiple data blocks contained therein, ensuring the real-time balance of the invalid data deletion operations of multiple data disks.

Benefits of technology

Real-time balance of multiple data disks performing invalid data deletion operations is achieved, performance problems caused by hot disks are avoided, and read and write performance of storage nodes is ensured.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024098602_20032025_PF_FP_ABST
    Figure CN2024098602_20032025_PF_FP_ABST
Patent Text Reader

Abstract

The present application belongs to the technical field of data storage. Disclosed are a method and apparatus for deleting invalid data. The method for deleting invalid data comprises: acquiring the invalid-data ratio of each data shard in a data disk in a storage node, wherein the invalid-data ratio is the ratio of the total volume of invalid data in the data shard to the total data capacity of the data shard; on the basis of the invalid-data ratio, determining from among a plurality of data shards in the data disk a plurality of target data shards on which invalid-data deletion operations need to be executed, wherein the invalid-data ratio of each of the plurality of target data shards is greater than the invalid-data ratio of each of the other data shards, and the other data shards are any data shards, other than the plurality of target data shards, in the data disk; and executing deletion operations on a plurality of data blocks comprised in the plurality of target data shards. The present application ensures the real-time balance of executing invalid-data deletion operations on a plurality of data disks, thereby facilitating the balance of the degrees of concurrency of executing the invalid-data deletion operations on the plurality of data disks.
Need to check novelty before this filing date? Find Prior Art

Description

Invalid data deletion method and device

[0001] This application claims priority to Chinese patent application No. 202311171306.9 filed on September 12, 2023, with invention name “A data recovery method, device and computing device cluster”, and priority to Chinese patent application No. 202410050659.1 filed on January 12, 2024, with invention name “Invalid data deletion method and device”, all contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the technical field of data storage, and in particular to a method and device for deleting invalid data. Background Art

[0003] In the data storage field, to improve storage space utilization, invalid data is often deleted from storage units within a storage node. Deleting invalid data from a storage unit involves migrating valid data from that unit to another unit. Once the valid data is migrated, the unit is deleted.

[0004] Currently, storage nodes include multiple data disks, each of which contains multiple data shards, and each data shard contains multiple data blocks. When deleting invalid data, the valid data recorded in the data block is typically migrated. After the migration of the valid data in the data block is complete, the data block is deleted. The data blocks that require invalid data deletion are those with a high idle percentage (also known as the invalid data percentage). The idle percentage of a data block is the ratio of the total amount of invalid data recorded in the data block to the total data capacity of the data block.

[0005] However, this invalid data deletion method will cause large differences in the concurrency of invalid data deletion operations performed by different data disks, affecting the read and write performance of the storage node.

[0006] Summary of the Invention

[0007] This application provides a method and device for deleting invalid data. This application ensures real-time balance in the execution of invalid data deletion operations on multiple data disks, helps balance the concurrency of invalid data deletion operations on multiple data disks, avoids performance issues caused by hotspot disks, and ensures the read and write performance of storage nodes. The technical solutions provided by this application are as follows:

[0008] In a first aspect, the present application provides a method for deleting invalid data. The method is applied to a storage node. The storage node includes multiple data disks. The data disk includes multiple data shards. The data shards include multiple data blocks. The method includes: obtaining the invalid data ratio of each data shard in the data disk, where the invalid data ratio is the ratio of the total amount of invalid data in the data shard to the total data capacity of the data shard; based on the invalid data ratio, determining multiple target data shards in the multiple data shards in the data disk on which invalid data deletion operations need to be performed, the invalid data ratios of the multiple target data shards are all greater than the invalid data ratios of other data shards, and the other data shards are any data shards in the data disk except the multiple target data shards; and performing a deletion operation on the multiple data blocks included in the multiple target data shards.

[0009] In this invalid data deletion method, when selecting a data shard on which an invalid data deletion operation needs to be performed from multiple data shards of a data disk, the granularity of the storage unit targeted is the data shard. The granularity of the storage unit targeted when performing an invalid data deletion operation is the data shard. It can be seen that the granularity of the storage unit targeted when determining the storage unit on which an invalid data deletion operation needs to be performed is the same as the granularity of the storage unit targeted when performing the invalid data deletion operation. In this way, the storage unit on which the invalid data deletion operation needs to be performed can be selected from a global perspective, and the invalid data deletion tasks of multiple data disks in the storage node can be more evenly scheduled, ensuring the real-time balance of the invalid data deletion operations performed by multiple data disks, helping to balance the concurrency of the invalid data deletion operations performed by multiple data disks, avoiding performance problems caused by hot disks, and ensuring the read and write performance of the storage node.

[0010] In a possible implementation of the first aspect, invalid data proportions of all data blocks in the first data shard are obtained, and then the invalid data proportion of the first data shard is determined based on the invalid data proportions of all data blocks.

[0011] Since each data shard includes multiple data blocks, and a data block is the most basic storage unit, based on the above method, the invalid data ratio of the first data shard can be determined more accurately, and the invalid data can be deleted more precisely.

[0012] In another possible implementation of the first aspect, representative data blocks are selected from all data blocks in the first data shard, and then the invalid data ratio of the first data shard is determined based on the invalid data ratio of these representative data blocks. The representative data blocks may be data blocks having an invalid data ratio greater than a specified ratio threshold. Alternatively, the representative data blocks may be data blocks having a specified number of invalid data ratios in the first data shard. The specified number of data blocks having invalid data ratios are all greater than the invalid data ratios of other data blocks, where the other data blocks are any data blocks in the first data shard other than the specified number of data blocks.

[0013] Since the data storage situation of the representative data block can better represent the storage situation of the data in the data shard, based on the above method, the invalid data ratio of the first data shard can be determined more accurately, and the invalid data can be deleted more precisely.

[0014] In the present application, a deletion operation is performed on multiple data blocks included in multiple target data shards, including: migrating valid data recorded in the first data block based on the access popularity of the data recorded in the first data block in the target data shard, where the first data block is any one of the multiple data blocks; migrating all valid data recorded in the first data block to obtain a second data block, where the data recorded in the second data block are all invalid data, and deleting the second data block.

[0015] In a possible implementation of the first aspect, a data block includes multiple data pages. Based on the access heat of data recorded in a first data block in a target data shard, valid data in the data recorded in the first data block is migrated, including: obtaining the access heat of data recorded in multiple data pages in the first data block, where the access heat includes multiple heat levels; and migrating data recorded in multiple data pages whose access heat of the data recorded in the multiple data pages is at the same heat level to the same data block.

[0016] By migrating data with different access popularity to different data blocks, we achieve the separation of cold data and hot data. This reduces the frequency of recycling data blocks containing cold data during business operations, reducing ineffective migration of cold data and saving computing and I / O resources.

[0017] In a possible implementation of the first aspect, access popularity includes data access frequency and / or access timeliness. Access frequency reflects the number of times the data is accessed within a specified time period, and access timeliness reflects how far the data is accessed from the current time.

[0018] Data access popularity is positively correlated with access frequency. The higher the access frequency, the higher the access popularity. The closer the data is accessed to the current time, the longer the access time is. Conversely, the shorter the access time is. Data access popularity is positively correlated with access time. The longer the access time is, the higher the access popularity.

[0019] In a possible implementation manner of the first aspect, the method further includes: when a business load of a data disk to which the target data shard belongs is greater than a first threshold, stopping executing the invalid data deletion operation on the target data shard.

[0020] When the proportion of resources occupied by the data disk is greater than the first proportion threshold, it means that the read and write business of the data disk is relatively busy. If the invalid data deletion operation is stopped for the target data shard in the data disk, the computing resources and IO resources occupied by the invalid data deletion operation can be allocated to the read and write operations to ensure the performance of the read and write operations.

[0021] In a possible implementation of the first aspect, the method further includes: when the business load of the data disk to which the target data shard belongs is less than or equal to a second threshold, continuing to perform the invalid data deletion operation on the target data shard, and the second threshold is less than or equal to the first threshold.

[0022] When the business load of the data disk is less than or equal to the second threshold, it means that the read and write business of the data disk is no longer busy, and invalid data deletion operations can be performed while performing read and write operations. Then, invalid data deletion operations can continue to be performed on the target data shards in the data disk.

[0023] In a possible implementation of the first aspect, the method further includes: obtaining a first priority of the computing resources of the storage node used for the invalid data deletion operation, the first priority being lower than the second priority of the computing resources used by the storage node for executing read and write operations, the read and write operations being used to respond to the user's read and write operations; based on the first priority, allocating the computing resources of the storage node used for executing the invalid data deletion operation.

[0024] The priority of the invalid data deletion operation in using computing resources is lower than the priority of the read and write operations in using computing resources. This can be manifested as when the invalid data deletion operation and the read and write operations need to use computing resources at the same time, the computing resources are allocated to the read and write operations first. In addition, after allocating computing resources to the read and write operations, if there are no remaining computing resources, the invalid data deletion operation will be queued for allocation. After the invalid data deletion operation has waited for a specified period of time, when there are idle computing resources, computing resources will be allocated to the invalid data deletion operation. In another implementation, the priority of the invalid data deletion operation in using computing resources is lower than the priority of the read and write operations in using computing resources. This can be manifested as, among the computing resources owned by the storage node, a larger proportion of computing resources is allocated to the read and write operations, and a smaller proportion of computing resources is allocated to the invalid data deletion operation. By allocating computing resources to the invalid data deletion operation according to priority, and the first priority being lower than the second priority of the storage node in using computing resources for executing read and write operations, it can be ensured that the read and write operations have priority in using computing resources, and the invalid data deletion operation is prevented from preempting the computing resources of the read and write operations, thereby ensuring the performance of the read and write operations.

[0025] In a possible implementation of the first aspect, before determining, based on the proportion of invalid data, a plurality of target data shards in a data disk on which invalid data deletion operations need to be performed, the method further includes: determining the total number of first tasks on which the storage node can perform invalid data deletion tasks on the data disk; and determining the total number of target data shards based on the total number of first tasks.

[0026] In a possible implementation of the first aspect, before determining the target data shards on which the invalid data deletion operation needs to be performed, the total number of target data shards on which the invalid data deletion operation needs to be performed is first determined, so as to determine the total number of data shards among the multiple data shards on the data disk.

[0027] In a possible implementation of the first aspect, the total number of target data shards is determined based on the total number of first tasks that the storage node can perform on the data disk to delete invalid data. The process of determining the total number of target data shards includes: determining the total number of first tasks, and then determining the total number of target data shards based on the total number of first tasks. When the storage node includes multiple data disks, if the storage node allocates the same capabilities for performing invalid data deletion operations to the multiple data disks, the total number of target data shards for the multiple data disks obtained according to this method is substantially equal to the sum of the total number of unfinished invalid data deletion tasks for the corresponding data disks. In this way, the concurrent number of invalid data deletion operations performed by multiple data disks can be substantially equal, which can ensure the real-time balance of invalid data deletion operation tasks performed by multiple data disks, thereby ensuring the read and write performance of the storage node.

[0028] In a possible implementation of the first aspect, the first total number of tasks is obtained based on a first upper limit value of the total number of invalid data deletion tasks that the storage node can perform on the data disk and a first total number of invalid data deletion tasks that the storage node has not completed on the data disk.

[0029] In another possible implementation of the first aspect, the total number of target data shards is determined based on a total number of second tasks that the storage node can perform to delete invalid data on all data disks in the storage node. The process of determining the total number of target data shards includes obtaining the total number of second tasks, and then determining the total number of target data shards based on the total number of second tasks.

[0030] In a possible implementation of the first aspect, the second total number of tasks is obtained based on the second upper limit value of the total number of invalid data deletion tasks that the storage node can perform on multiple data disks and the second total number of invalid data deletion tasks that the storage node has not completed on multiple data disks.

[0031] In a possible implementation of the first aspect, performing a deletion operation on multiple data blocks included in multiple target data shards includes: distributing invalid data deletion tasks to the multiple target data shards by executing a distribution process until a stop condition is reached, the stop condition including: the total number of distributed tasks reaching a specified total number; the distribution process including: updating the third total number of currently uncompleted invalid data deletion tasks for each target data shard in the multiple target data shards; distributing the invalid data deletion task to the target data shard with the smallest third total number of tasks among the multiple target data shards; and performing the invalid data deletion operation on the target data shard to which the invalid data deletion task was distributed. In this way, the invalid data deletion tasks can be distributed more evenly, ensuring real-time balance in the execution of the invalid data deletion operation on multiple data disks.

[0032] In a second aspect, the present application provides an invalid data deletion device. The device is applied to a storage node. The storage node includes multiple data disks. The data disk includes multiple data shards. The data shards include multiple data blocks. The device includes: an acquisition module for obtaining the invalid data ratio of each data shard in the data disk, where the invalid data ratio is the ratio of the total amount of invalid data in the data shard to the total data capacity of the data shard; a determination module for determining, based on the invalid data ratio, multiple target data shards in the data disk on which invalid data deletion operations need to be performed, where the invalid data ratios of the multiple target data shards are all greater than the invalid data ratios of other data shards, and the other data shards are any data shards in the data disk except the multiple target data shards; a processing module for performing a deletion operation on the multiple data blocks included in the multiple target data shards.

[0033] The second aspect or any implementation method of the second aspect is the step implementation of the device corresponding to the first aspect or any implementation method of the first aspect. The description in the second aspect or any implementation method of the second aspect is applicable to the first aspect or any implementation method of the first aspect and will not be repeated here.

[0034] In a third aspect, the present application provides a computing device comprising a memory and a processor, wherein the memory stores program instructions, and the processor runs the program instructions to execute the method provided in the first aspect of the present application and any possible implementation thereof.

[0035] In a fourth aspect, the present application provides a computing device cluster, comprising multiple computing devices, wherein the multiple computing devices include multiple processors and multiple memories, wherein program instructions are stored in the multiple memories, and the multiple processors execute the program instructions, so that the computing device cluster executes the method provided in the first aspect of the present application and any possible implementation thereof.

[0036] In a fifth aspect, the present application provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium. The computer-readable storage medium includes program instructions. When the program instructions are executed on a computing device, the computing device executes the method provided in the first aspect of the present application and any possible implementation thereof.

[0037] In a sixth aspect, the present application provides a computer program product comprising instructions, which, when run on a computer, enables the computer to execute the method provided in the first aspect of the present application and any possible implementation thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] FIG1 is a schematic diagram of a storage structure of a storage node provided in an embodiment of the present application;

[0039] FIG2 is a schematic diagram showing that the functions of a storage node provided by an embodiment of the present application can be implemented through processes and threads;

[0040] FIG3 is a structural diagram of an implementation scenario involved in a method for deleting invalid data provided in an embodiment of the present application;

[0041] FIG4 is a flow chart of a method for deleting invalid data provided by an embodiment of the present application;

[0042] FIG5 is a flowchart of performing a deletion operation provided by an embodiment of the present application;

[0043] FIG6 is a schematic diagram of migrating hot and cold data separately according to an embodiment of the present application;

[0044] FIG7 is a schematic diagram of an invalid data deletion device provided in an embodiment of the present application;

[0045] FIG8 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0046] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.

[0047] In the field of data storage technology, storage nodes are commonly used to store data. As shown in Figure 1, a storage node includes multiple data disks, each of which contains multiple data shards, and each data shard contains multiple data blocks. A data block is the most basic storage unit. A data block has a fixed size. For example, all data blocks in a storage node are 64 megabytes (MB).

[0048] In one implementation, the functions of a storage node can be implemented through processes and threads. For example, as shown in FIG2 , in a distributed storage system, each storage node includes a read-write process and an invalid data deletion (also known as data recovery or garbage collection) process. The read-write process is used to respond to the user's read and write operations and manage the data stored in the storage node. The invalid data deletion process is used to perform invalid data deletion operations, etc. At the same time, as shown in FIG2 , each data disk also has its own input and output (IO) processing thread. The IO processing thread is used to respond to the IO request of the data disk. Among them, the IO processing thread of any data disk can be regarded as the exclusive resource of the data disk.

[0049] In this application, data disks support appending but not overwriting. When data disks do not support overwriting, the disk's service life is guaranteed. Similarly, data blocks support appending and random reads, but not overwriting. Therefore, for a data block, during the operation of a storage node, if a key value is already stored in a data block, and the value of that key is subsequently written to the same data block, the first written value becomes invalid, and the later written value becomes valid. Similarly, if the value corresponding to the key has not been refreshed, the value remains valid. Because data blocks are the most basic storage unit, data blocks can only be retained or deleted in their entirety; deleting a portion of a block is not supported. Accordingly, data within a data block can only be retained or deleted as a whole, and deleting a portion of a block is not supported. Therefore, although invalid data is logically deleted, it still exists physically and occupies storage space. The storage space occupied by the invalid data can only be released by physically deleting the entire data block after all the data on the block has become invalid. If the data blocks occupied by invalid data are not physically deleted, the invalid data will waste storage space. Therefore, in order to reduce the waste of storage space, it is necessary to perform garbage collection on the storage space and delete invalid data. Performing an invalid data deletion operation on a storage node means first migrating the valid data recorded in the storage unit to other storage units, and deleting the storage unit after completing the migration of all valid data in the storage unit. Among them, when the data block is the most basic storage unit, the storage unit here is the data block. It should be noted that the most basic storage unit in this application can also be a storage unit of other granularities such as a data page or a data partition. At this time, the storage unit targeted by the invalid data deletion operation is the storage unit of the other granularity, and the embodiments of this application do not make specific limitations on it. The following takes the storage unit targeted by the invalid data deletion operation as a data block as an example to illustrate the implementation process of the invalid data deletion method of this application.

[0050] Currently, when deleting invalid data, the valid data recorded in the data block is typically migrated. After the migration of the valid data in the data block is completed, the data block is deleted. Furthermore, the data blocks that require invalid data deletion are those with a high percentage of invalid data. The invalid data percentage of a data block is the ratio of the total amount of invalid data recorded in the data block to the total data capacity of the data block.

[0051] However, this invalid data deletion method can lead to significant differences in the concurrency of invalid data deletion operations on different data disks, affecting the read and write performance of storage nodes. For example, when performing invalid data deletion operations on a per-data-shard basis, some data shards may have a large number of data blocks requiring invalid data deletion, while other data shards may only have a small number of data blocks requiring invalid data deletion. Consequently, the concurrency of invalid data deletion operations on these two data shards can differ significantly. For example, assuming that each data disk performs an invalid data deletion operation on 20 data blocks per round, a data shard on a certain data disk has 20 data blocks requiring invalid data deletion, while another data disk has 20 data blocks requiring invalid data deletion located on 20 data shards. In this way, when the data disk generates invalid data deletion tasks in units of data shards, the first data disk needs to generate 1 invalid data deletion task, and the second data disk needs to generate 20 invalid data deletion tasks. The two data disks have an unbalanced scheduling of invalid data deletion tasks, resulting in a large difference in the concurrency of the two data disks executing invalid data deletion operations. The data disk that generates more invalid data deletion tasks will become a hot disk, which will affect the business latency of the storage node.

[0052] Based on this, an embodiment of the present application provides a method for deleting invalid data. The method is applied to a storage node. The storage node includes multiple data disks. The data disk includes multiple data shards, and the data shards include multiple data blocks. The method includes: obtaining the invalid data ratio of each data shard in the data disk, and then, based on the invalid data ratio of each data shard in the data disk, determining multiple target data shards on which invalid data deletion operations need to be performed among the multiple data shards of the data disk, and then performing invalid data deletion operations on the multiple data blocks included in the multiple target data shards. Among them, the invalid data ratio reflects the total amount of invalid data in the data shard. For example, the invalid data ratio is the ratio of the total amount of invalid data in the data shard to the total data capacity of the data shard.

[0053] In this method, when a storage node selects a data shard on which an invalid data deletion operation needs to be performed from multiple data shards of a data disk, the granularity of the storage unit it targets is the data shard. The granularity of the storage unit targeted when a storage node performs an invalid data deletion operation is the data shard. A data shard includes multiple data blocks, so it can be seen that the granularity of the storage unit targeted when the storage node determines the storage unit on which an invalid data deletion operation needs to be performed is the same as the granularity of the storage unit targeted when performing the invalid data deletion operation. In this way, the storage node can select the storage unit on which an invalid data deletion operation needs to be performed from a global perspective, can more evenly schedule the invalid data deletion tasks of multiple data disks in the storage node, ensure the real-time balance of invalid data deletion operations performed by multiple data disks, help balance the concurrency of invalid data deletion operations performed by multiple data disks, avoid performance problems caused by hot disks, and ensure the read and write performance of the storage node.

[0054] It should be noted that although this article uses the example of the storage unit granularity targeted when performing the invalid data deletion operation and the storage unit granularity targeted when performing the invalid data deletion operation as data sharding, this does not constitute a limitation on the storage unit granularity targeted by both. Those skilled in the art will understand that as business needs change, the implementation scenario of this application can be adjusted according to application needs, and the storage unit granularity targeted by both can also change accordingly. For example, in some implementation scenarios, a storage node has N-level storage units, and the storage node includes multiple first-level storage units, each first-level storage unit includes multiple second-level storage units, and so on, each N-1-level storage unit includes multiple N-level storage units. In order to more evenly schedule the invalid data deletion tasks in multiple first-level storage units in the storage node, the storage unit granularity targeted when performing the invalid data deletion operation and the storage unit granularity targeted when performing the invalid data deletion operation can be selected as any level of storage unit from the second to N-level storage units, as long as the storage unit granularity targeted when performing the invalid data deletion operation and the storage unit granularity targeted when performing the invalid data deletion operation remain consistent.

[0055] The following is a detailed introduction to the technical solution of this application from multiple perspectives, including implementation scenarios, method flow, hardware devices, and software devices.

[0056] The following first illustrates the application scenarios of the embodiments of the present application.

[0057] FIG3 is a schematic diagram of an implementation scenario of an invalid data deletion method provided in an embodiment of the present application. As shown in FIG3 , the implementation scenario includes a computing device 300. The computing device 300 can be used as a storage node. The storage node can store data and respond to user read and write requests.

[0058] The computing device 300 may optionally be a server, with each server serving as a storage node. In terms of implementation, the computing device 300 may optionally be a storage node in a storage resource pool, or the computing device 300 may be a storage node in another storage system. For example, the computing device may be a storage node in a storage resource pool of a cloud computing service center. In this case, the cloud computing service center can utilize the storage function of the storage node to provide storage cloud services to users, or provide the storage function as an additional service to other cloud services. For another example, the computing device may be a storage node in a distributed storage system used by the storage layer of a cloud database. In this case, the cloud database can utilize the storage function of the storage node to store the cloud database's data.

[0059] It should be noted that the above description of the implementation form of the storage node is only an example of the implementation form of the storage node and is not used to limit the implementation form of the storage node. The storage node in this application can also have other implementation forms. For example, the storage node is a storage node in other storage systems with multiple data disks and supporting append-write. This embodiment of the application does not specifically limit this. In addition, the computing device 300 can also be implemented by other resources besides cloud resources, which is also not specifically limited in this embodiment of the application.

[0060] In one implementation, the invalid data deletion method provided in the embodiment of the present application can be implemented by running an executable program on the computing device 300. For example, the executable program of the invalid data deletion method can be presented in the form of an application installation package. After the application installation package is installed on the computing device 300, the invalid data deletion method can be implemented by running the executable program.

[0061] Figure 3 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application. As shown in Figure 3, the computing device 300 includes a processor 301, a memory 302, a communication interface 303, and a bus 304. The processor 301, the memory 302, and the communication interface 303 are connected to each other via the bus 304.

[0062] The processor 301 may include a general-purpose processor and / or a dedicated hardware chip. The general-purpose processor may include: a central processing unit (CPU), a microprocessor or a graphics processing unit (GPU). The CPU is, for example, a single-core processor (single-CPU), or a multi-core processor (multi-CPU). The dedicated hardware chip is a hardware module for high-performance processing. The dedicated hardware chip includes at least one of a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or a network processor (NP). The processor 301 may also be an integrated circuit chip with signal processing capabilities. During implementation, some or all of the functions of the invalid data deletion method of the present application may be completed by the hardware integrated logic circuit in the processor 301 or instructions in the form of software.

[0063] Memory 302 is used to store computer programs, which include an operating system 302a and executable code (i.e., program instructions) 302b. Memory 302 may be, for example, a read-only memory or other type of static storage device capable of storing static information and instructions, a random access memory or other type of dynamic storage device capable of storing information and instructions, an electrically erasable programmable read-only memory, a read-only optical disc or other optical disc storage, an optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), a magnetic disk storage medium, or other magnetic storage device, or any other medium capable of carrying or storing desired executable code in the form of instructions or data structures and accessible by a computer, but not limited to these. For example, memory 302 is used to store an outbound port queue, etc. Memory 302 may be independent and connected to processor 301 via bus 304. Alternatively, memory 302 and processor 301 may be integrated. The memory 302 can store executable code. When the executable code stored in the memory 302 is executed by the processor 301, the processor 301 is used to perform some or all of the functions of the invalid data deletion method provided in the embodiments of the present application. For the implementation of the process executed by the processor 301, please refer to the relevant description of the aforementioned embodiments. The memory 302 may also include software modules and data required for other running processes, such as the operating system.

[0064] The communication interface 303 uses a transceiver module, such as, but not limited to, a transceiver, to communicate with other devices or communication networks. For example, the communication interface 303 can be any one or a combination of the following devices: a network interface (such as an Ethernet interface), a wireless network card, or other device with network access capabilities.

[0065] Bus 304 is any type of communication bus used to interconnect the internal components of a computing device (e.g., memory 302, processor 301, communication interface 303). For example, a system bus is provided. The embodiments of this application illustrate the interconnection of the aforementioned components within a computing device via bus 304. Alternatively, the aforementioned components within computing device 300 may be communicatively connected to each other using other connection methods besides bus 304. For example, the aforementioned components within computing device 300 may be interconnected via an internal logical interface.

[0066] It should be noted that the above-mentioned multiple devices can be respectively arranged on independent chips, or at least partially or completely arranged on the same chip. Whether each device is independently arranged on different chips or integrated on one or more chips often depends on the needs of product design. The embodiments of the present application do not limit the specific implementation form of the above-mentioned devices. The descriptions of the processes corresponding to the above-mentioned figures have different focuses. For parts that are not described in detail in a certain process, please refer to the relevant descriptions of other processes.

[0067] In the above embodiments, all or part of the methods can be implemented using software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the methods can be implemented in the form of a computer program product. The computer program product that provides a program development platform includes one or more computer instructions. When these computer program instructions are loaded and executed on a computing device, the functions of the invalid data deletion method provided in the embodiments of the present application are fully or partially implemented.

[0068] Furthermore, computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium stores computer program instructions that provide a program development platform.

[0069] It should be understood that the above content is an illustrative description of the implementation scenario of the invalid data deletion method provided in the embodiment of the present application, and does not constitute a limitation on the implementation scenario of the invalid data deletion method. Ordinary technicians in this field know that as business needs change, its implementation scenario can be adjusted according to application requirements, and the embodiments of the present application do not list them one by one.

[0070] The following describes the invalid data deletion method provided by the embodiment of the present application, taking the invalid data deletion method executed by the storage node as an example. As shown in FIG4 , the invalid data deletion method includes the following steps:

[0071] Step 401: The storage node obtains the invalid data ratio of each data shard in the data disk. The invalid data ratio is the ratio of the total amount of invalid data in the data shard to the total data capacity of the data shard.

[0072] In the present application, the storage node needs to select the target data shard on which the invalid data deletion operation needs to be performed from the multiple data shards of the data disk. The original intention of performing the invalid data deletion operation is to reuse the storage space occupied by invalid data. Therefore, before selecting the target data shard, the storage node needs to first determine the invalid data ratio of each data shard in the data disk, so as to determine the target data shard based on the invalid data ratio. Among them, the invalid data ratio reflects the total amount of invalid data in the data shard. For example, the invalid data ratio is the ratio of the total amount of invalid data in the data shard to the total data capacity of the data shard. When there is a lot of invalid data in the data shard, the invalid data ratio of the data shard is large, which means that the lower the utilization rate of the storage space of the data shard is, the more necessary it is to perform the invalid data deletion operation on the data shard.

[0073] According to the previous description, each data shard includes multiple data blocks, and the data block is the most basic storage unit. For the first data shard, the storage node may optionally first obtain the invalid data ratio of the data blocks in the first data shard, and then determine the invalid data ratio of the first data shard based on the invalid data ratio of the data blocks. The first data shard is any one of the multiple data shards in the data disk. The storage node is configured with a counter for each data block, and the counter will count the total amount of invalid data in the data block based on the writing result of the data in the data block. In addition, the storage node can obtain the size of each data block, and the storage node can determine the invalid data ratio of any data block based on the total amount of invalid data in the data block and the size of the data block.

[0074] In one implementation, the storage node obtains the invalid data percentages of all data blocks in the first data shard, and then determines the invalid data percentage of the first data shard based on the invalid data percentages of all data blocks. For example, the storage node determines the invalid data percentage of the first data shard as the average invalid data percentage of all data blocks in the first data shard. The average invalid data percentage of all data blocks is equal to the quotient of the sum of the invalid data percentages of all data blocks and the total number of all data blocks.

[0075] In another implementation, the storage node selects representative data blocks from all data blocks in the first data shard, and then determines the invalid data percentage of the first data shard based on the invalid data percentages of these representative data blocks. For example, the storage node determines the invalid data percentage of the first data shard as the average invalid data percentage of the representative data blocks. The average invalid data percentage of the representative data blocks is equal to the quotient of the sum of the invalid data percentages of all representative data blocks and the total number of all representative data blocks.

[0076] Among them, the representative data block can be selected as a data block whose invalid data ratio is greater than a specified ratio threshold. Alternatively, the representative data block is a data block with a specified number of invalid data ratios in the first data shard. The specified number of invalid data ratios are all data blocks that are greater than the invalid data ratios of other data blocks, and the other data blocks are any data blocks other than the specified number of data blocks in the first data shard. For example, when determining the representative data block, the storage node may first obtain the invalid data ratio of all data blocks in the first data shard, and then sort the data blocks in order of invalid data ratio from large to small, and determine the data blocks with the first specified number of sorted blocks as representative data blocks. The value of the specified number can be optionally set according to application requirements. For example, the specified number is determined based on factors such as the capabilities of the processor used to perform the invalid data deletion operation and the IO capabilities of the data shard.

[0077] On this basis, the representative data blocks may also be data blocks that meet the specified recycling conditions. The specified recycling conditions can be set according to the application requirements. For example, in some businesses, some data blocks record data indicating special status. During the implementation of the business, these data blocks are not allowed to be deleted, and the specified recycling condition is that the data blocks are allowed to be deleted. For another example, the specified recycling condition is that the proportion of invalid data in the data block is greater than the specified proportion threshold. When determining the representative data blocks, both the specified number limit and the specified proportion threshold limit must be considered. For example, if the total number of data blocks in the first data shard whose invalid data proportion is greater than or equal to the specified proportion threshold is greater than the specified number, the representative data blocks are the first specified number of data blocks after the invalid data proportion is sorted from large to small. If the total number of data blocks in the first data shard whose invalid data proportion is greater than the specified proportion threshold is less than the specified number, the representative data blocks are all data blocks whose invalid data proportion is greater than the specified proportion threshold.

[0078] Step 402: Determine the total number of target data shards on which invalid data deletion operations need to be performed.

[0079] Before determining the target data shards for performing the invalid data deletion operation, the total number of target data shards for performing the invalid data deletion operation can optionally be determined, so as to facilitate determining this total number of data shards among the multiple data shards on the data disk. In one implementation, the total number of target data shards is determined based on a first total number of invalid data deletion tasks that the storage node can perform on the data disk. The process of determining the total number of target data shards includes: the storage node determining the first total number of tasks, and then determining the total number of target data shards based on the first total number of tasks. The first total number of tasks can be understood as the total number of invalid data deletion tasks that the storage node can perform on the data disk within its capabilities. The first total number of tasks is based on at least the processing power that the storage node can allocate to the data disk and the tasks that the storage node has not completed for the data disk. For example, the first total number of tasks is based on a first upper limit for the total number of invalid data deletion tasks that the storage node can perform on the data disk and a first total number of invalid data deletion tasks that the storage node has not completed for the data disk. For example, the first total number of tasks is equal to the difference between the first upper limit and the first total number. The first upper limit is determined by the capacity of the data disk available for performing invalid data deletion operations. This first upper limit can be considered the maximum concurrency of the data disk. For example, assuming that the storage node allocates a processor core to each data disk, and the core allocated to the data disk is used to perform invalid data deletion operations on the data disk, the first upper limit for the data disk is determined by factors such as the processing power of the core allocated to the data disk and the disk's I / O capacity. The first total is the total number of invalid data deletion tasks that the storage node has not completed for the data disk. These invalid data deletion tasks that the storage node has not completed for the data disk include tasks currently being executed by the storage node on the data disk and tasks that the storage node has assigned to the data disk but has not yet started. The storage node allocates a task counter to the data disk, which can count tasks assigned to the data disk and completed tasks. The storage node can then determine the first total based on the count of the task counter. For example, the first total is equal to the difference between the number of tasks assigned to the data disk and the number of completed tasks. In this case, the first total can be considered the occupied capacity of the data disk. When the total number of target data shards is obtained based on the total number of first tasks, the total number of target data shards can be considered to be obtained based on the capacity of the data disk for executing invalid data deletion operations, minus the occupied capacity. When a storage node includes multiple data disks, if the storage node allocates the same capacity for executing invalid data deletion operations to the multiple data disks, the total number of target data shards for the multiple data disks obtained in this manner is substantially equal to the sum of the total number of uncompleted invalid data deletion tasks for the corresponding data disks.In this way, the concurrent number of invalid data deletion operations performed by multiple data disks can be basically equal, which can ensure the real-time balance of invalid data deletion operation tasks performed by multiple data disks, thereby ensuring the read and write performance of the storage node.

[0080] In another implementation, the total number of target data shards is determined based on a second total number of tasks that the storage node can perform on all data disks in the storage node to delete invalid data. The process of determining the total number of target data shards includes: the storage node obtains the second total number of tasks, and then determines the total number of target data shards based on the second total number of tasks. The second total number of tasks can be understood as the total number of tasks that the storage node can perform on all data disks in the storage node to delete invalid data within its capabilities. The second total number of tasks is obtained based on at least the processing capacity of the storage node and the uncompleted tasks of the storage node. For example, the second total number of tasks is obtained based on a second upper limit value of the total number of tasks that the storage node can perform on multiple data disks to delete invalid data, and the second total number of invalid data deletion tasks that the storage node has not completed on multiple data disks. For example, the second total number of tasks is equal to the difference between the second upper limit value and the second total number. The second upper limit value is determined by the storage node's ability to perform invalid data deletion operations, and the second upper limit value can be regarded as the maximum concurrency of the storage node. For example, assuming the storage node is assigned a processor core for performing invalid data deletion operations, the second upper limit is determined by factors such as the processing power of the core and the storage node's I / O capacity. The second total is the total number of invalid data deletion tasks that the storage node has not completed for all data disks in the storage node. The uncompleted invalid data deletion tasks for all data disks in the storage node include: the total number of tasks that the storage node is currently executing for all data disks, and the total number of tasks that the storage node has assigned to all data disks but has not yet begun executing. The storage node is assigned a task counter that counts all assigned tasks and completed tasks. The storage node can then determine the second total based on the count result of the task counter. For example, the second total is equal to the difference between the number of assigned tasks and the number of completed tasks. In this case, the second total can be considered as the occupied capacity of the storage node's capacity for performing invalid data deletion operations. When the total number of target data shards is determined based on the second total number of tasks, it can be considered as the total number of target data shards based on the remaining capacity after subtracting the occupied capacity from the storage node's capacity for performing invalid data deletion operations.

[0081] Furthermore, the total number of target data shards can be obtained based on the total number of the first and second tasks. In this case, the total number of target data shards is limited by the total number of the first and second tasks. For example, the total number of target data shards can be selected as the minimum of the total number of the first and second tasks. In this case, the resource consumption of the invalid data deletion operation to be executed must meet the capacity corresponding to the minimum of the total number of the first and second tasks to ensure real-time load balancing of the data disk executing the invalid data deletion operation.

[0082] Step 403: The storage node determines, based on the invalid data ratio of each data shard in the data disk and the total number of target data shards, a plurality of target data shards on which invalid data deletion operations need to be performed from the plurality of data shards in the data disk.

[0083] After obtaining the invalid data percentage of each data shard on the data disk and the total number of target data shards requiring invalid data deletion, the storage node can then determine, based on the invalid data percentage of each data shard and the total number, multiple target data shards on the data disk requiring invalid data deletion. In one implementation, the storage node can optionally sort the multiple data shards on the data disk in descending order of invalid data percentage and select the data shard with the highest number of invalid data percentages from the sorted results. These selected data shards are the target data shards. This ensures that the invalid data percentage of the multiple target data shards is greater than the invalid data percentage of the other data shards. The other data shards are any data shards on the data disk other than the multiple target data shards. Since a larger invalid data percentage for a data shard indicates lower storage space utilization for that data shard, the more necessary it is to perform invalid data deletion on that data shard, determining the target data shards in this manner ensures that limited resources are used as much as possible on more urgent tasks, achieving efficient utilization of invalid data deletion resources.

[0084] Step 404: The storage node allocates computing resources of the storage node to perform the invalid data deletion operation.

[0085] Before executing the invalid data deletion operation, the storage node may optionally allocate the computing resources of the storage node for use in executing the invalid data deletion operation. Optionally, the storage node may optionally first obtain the first priority of the computing resources of the storage node for use in executing the invalid data deletion operation, and then, based on the first priority, allocate the computing resources of the storage node for use in executing the invalid data deletion operation. For example, considering that if the invalid data deletion operation preempts the computing resources used by the read and write operations, it will affect the performance of the read and write operations, the first priority may be lower than the second priority of the computing resources used by the storage node for use in executing the read and write operations. That is, the priority of the computing resources used by the invalid data deletion operation is lower than the priority of the computing resources used by the read and write operations. The read and write operations are used to respond to the user's read and write operations. The first priority may be optionally configured by the maintenance personnel of the storage node, or the first priority may be determined by the storage node itself, and the embodiments of the present application do not specifically limit this. In one implementation, the priority of the computing resources used by the invalid data deletion operation is lower than the priority of the computing resources used by the read and write operations, which can be manifested as when the invalid data deletion operation and the read and write operations need to use computing resources at the same time, the computing resources are preferentially allocated to the read and write operations. Also, after allocating computing resources to read and write operations, if there are no remaining computing resources, the invalid data deletion operation will be queued for allocation, and after the waiting time of the invalid data deletion operation reaches a specified time, when there are idle computing resources, computing resources will be allocated to the invalid data deletion resource. In another implementation, the priority of the invalid data deletion operation in using computing resources is lower than the priority of the read and write operations in using computing resources, which can be manifested as allocating a larger proportion of computing resources to read and write operations and a smaller proportion of computing resources to invalid data deletion operations among the computing resources owned by the storage node. By allocating computing resources to invalid data deletion operations according to priority, and the first priority being lower than the second priority of the storage node in using computing resources for executing read and write operations, the storage node can ensure that the read and write operations have priority in using computing resources, avoid invalid data deletion operations from preempting computing resources for read and write operations, and thus ensure the performance of read and write operations.

[0086] Step 405: The storage node performs a deletion operation on the multiple data blocks included in the multiple target data shards.

[0087] The process of a storage node performing an invalid data deletion operation on multiple data blocks included in multiple target data shards is actually the process of the storage node distributing invalid data deletion tasks to the multiple target data shards and performing the invalid data deletion operation on the target data shards to which the invalid data deletion tasks have been assigned. In the present application, the storage node may optionally distribute the invalid data deletion tasks according to a load balancing policy. The implementation process includes: the storage node distributing the invalid data deletion tasks to the multiple target data shards by executing the distribution process until a stop condition is met. The stop condition includes: the total number of distributed tasks reaches a specified total number. The specified total number may be equal to the first task total number or the second task total number. The distribution process includes: the storage node updating the third task total number of currently uncompleted invalid data deletion tasks for each target data shard in the multiple target data shards, and distributing the invalid data deletion task to the target data shard with the smallest third task total number among the multiple target data shards. For example, the storage node obtains the third task total number of currently uncompleted invalid data deletion tasks for each target data shard on the data disk, sorts the multiple target data shards in ascending order of the third task total number, and distributes the invalid data deletion task to the target data shard ranked first. After the distribution is completed, the total number of third tasks of the invalid data deletion tasks that are currently unfinished for each target data shard in the data disk is re-obtained, and the multiple target data shards are sorted in order from small to large according to the total number of third tasks, and then the invalid data deletion task is distributed to the target data shard ranked first. According to this distribution logic loop, the distribution stops when the stop condition is reached, and the resources reserved for the undistributed tasks are released. Among them, distributing invalid data deletion tasks to target data shards means encapsulating the target data shard into a task so that the storage node performs invalid data deletion operations on the target data shard. Distributing invalid data deletion tasks to multiple target data shards in this way can not only make the number of tasks distributed to all data disks in the storage node basically the same, but also ensure that the load of all data disks is in a relatively balanced state, which helps to ensure the performance of the storage node.

[0088] In a storage system, different data may have different access frequencies. For example, some data is updated frequently, while other data is rarely updated. These frequently updated data are called hot data, and these rarely updated data are called cold data. During the invalid data deletion process, if cold data and hot data are migrated to the same data block, the frequent updates of the hot data will cause the cold data on the data block to be frequently migrated during the subsequent invalid data deletion process, resulting in more resource consumption in the invalid data deletion process. In response to this, the storage node in this application performs differentiated migration of cold data and hot data according to the access popularity of the data to solve the above problem. In one implementation method, as shown in Figure 5, the implementation process includes:

[0089] Step 4051: The storage node obtains the access popularity of the data recorded in the first data block in the target data shard, where the first data block is any one of the multiple data blocks.

[0090] According to the previous description, a data shard includes multiple data blocks. When performing an invalid data deletion operation on a target data shard, the invalid data deletion operation may be performed on a data shard basis. In step 4051, the storage node may first obtain the access popularity of each data recorded in the first data block in the target data shard, and then perform differentiated migration of cold data and hot data based on the access popularity. Optionally, the storage node may also obtain the access popularity of each valid data recorded in the first data block. The access popularity of data may be reflected by the access frequency of the data. The access popularity of data is positively correlated with the access frequency. When the access frequency of data is higher, the access popularity of the data is higher. The access frequency indicates the number of times the data is accessed within a specified time period. Among them, the storage node records the access time of the data, and the access frequency of the data can be determined based on the access time.

[0091] Optionally, the present application can not only reflect the access popularity through the access frequency of the data, but also optionally reflect the access popularity through the access timeliness of the data. The access timeliness of the data reflects how close the time when the data is accessed is to the current time. The closer the time when the data is accessed is to the current time, the greater the access timeliness of the data, and vice versa. The access popularity of the data is positively correlated with the access timeliness. The greater the access timeliness of the data, the higher the access popularity of the data. Among them, the storage node records the access time of the data, and the access timeliness of the data can be determined based on the access time.

[0092] According to the previous description, a data block includes multiple data pages. Therefore, when the storage node migrates valid data, it can choose to migrate the valid data in units of data pages. Accordingly, when the storage node obtains the access heat of data, it can choose to obtain the access heat of valid data in units of data pages. That is, when the storage node obtains the access heat of valid data recorded in the data block in the target data shard, it actually means that the storage node obtains the access heat of each data page in the target data shard. Its implementation process includes: the storage node obtains the time when the data page is accessed, and then obtains the access frequency and / or access time of the data page based on the access time, and obtains the access heat of the data page based on the access frequency and / or access time. Among them, when any data recorded in a data page is accessed, it is considered that the data page is accessed. For the relationship between the access frequency and / or access time of a data page and the access heat of a data page, please refer to the relationship between the access frequency and / or access time of data and the access heat of data. When the access popularity of data is determined based on the access frequency and access timeliness of the data, the accuracy and timeliness of identifying hot and cold data can be guaranteed.

[0093] For example, when the access frequency is represented by the number of accesses, the access heat hd[k], the number of accesses access[k], and the access decay factor of the data page in the kth time period satisfy the following formula:

[0094] hd[k]=hd[k-1]×decayFactor+access[k]×(1-decayFactor).

[0095] Where hd[0] = 0, and k is a positive integer. hd[k] represents the access popularity of the data page in the kth time period. decayFactor represents the access age of the data page, also known as the time decay parameter, and its value range is (0, 1). As can be seen from the formula, the access age affects the calculation result of the access popularity as a weight. Therefore, when determining the value of the access age, if you are more concerned about the impact of the access age on the access popularity, you can choose to set the value of the access age to a smaller value, such as setting the value of the access age to 0.03. access[k] represents the number of accesses to the data page in the kth time period. When a storage node needs to perform multiple rounds of invalid data deletion operations on a storage shard, the execution process of each round is called a time period.

[0096] Step 4052: The storage node migrates valid data in the data recorded in the first data block based on the access popularity of the data recorded in the first data block in the target data shard.

[0097] After obtaining the access heat of the data, the storage node can migrate the valid data based on the access heat. In one implementation, in order to perform differentiated migration of cold data and hot data, the storage node can migrate the data recorded in multiple data pages whose access heat is at the same heat level to the same data block. For example, the cold data and hot data are migrated to different data blocks respectively. When migrating valid data in units of data pages, the data page with an access heat greater than the heat threshold is a hot data page, and all the data recorded therein is hot data; the data page with an access heat less than or equal to the heat threshold is a cold data page, and all the data recorded therein is cold data, and the access heat of all data recorded on the same data page is equal to the access heat of the data page. As shown in Figure 6, the squares filled with circles represent hot data, the squares filled with black represent cold data, and the squares filled with slashes represent invalid data. Following the migration principle of migrating data recorded on multiple data pages with the same access popularity level to the same data block, after migrating the data in data blocks 1, 2, and 3, the hot data in data blocks 1 and 3 is migrated to data block 4, and the cold data in data blocks 1 and 2 is migrated to data block 5. The hotness level division can be optionally set based on application requirements. For example, in scenarios with strict cost control, each hotness level can be set with a smaller span to significantly reduce the ineffective migration of cold data, thereby reducing the computing and I / O resource consumption caused by cold data. By migrating data recorded on multiple data pages with the same access popularity level to the same data block, the separation of cold and hot data is achieved. This reduces the frequency of recycling the data blocks containing cold data during business operations, reducing the ineffective migration of cold data and saving computing and I / O resources.

[0098] It should be noted that while the above description uses data and data pages as examples to describe the process of migrating valid data, it does not exclude the possibility that storage nodes can also migrate valid data at other granularities, which can be larger or smaller than the granularity of a data page. When migrating valid data at other granularities, it is necessary to obtain the access popularity of the storage unit at that other granularity. When migrating valid data, the data recorded in the storage unit at that other granularity is migrated to a storage unit at a larger granularity.

[0099] Step 4053: The storage node migrates all valid data recorded in the first data block to obtain a second data block. The data recorded in the second data block is all invalid data, and the second data block is deleted.

[0100] After the storage node completes the migration of valid data on the data block, the first data block of the migrated data becomes the second data block. The data recorded in the second data block is all invalid data. In this case, the second data block can be deleted to complete the invalid data deletion operation on the data block. As shown in Figure 6, after the valid data in data blocks 1 to 3 are migrated to data blocks 4 and 5, the migrated data blocks 1 to 3 are recorded as the second data blocks, and the migrated data blocks 1 to 3 can be deleted. It should be noted that when a data block records all invalid data, the data block can be directly deleted without migrating the data recorded in it, such as data block 6 in Figure 6.

[0101] Optionally, after starting to execute the invalid data deletion operation on the target data shard, the storage node can also choose to stop or continue executing the invalid data deletion operation based on the execution status. For example, during the process of executing the invalid data deletion operation on the target data shard, the storage node can optionally obtain the business load of the data disk to which the target data shard belongs. When the business load of the data disk to which the target data shard belongs is greater than a first threshold, the storage node stops executing the invalid data deletion operation on the target data shard. Based on this, the storage node can also choose to continue executing the invalid data deletion operation on the target data shard when the business load of the data disk to which the target data shard belongs is less than or equal to a second threshold.

[0102] The service load can be the service latency of the data disk. In this case, a service load greater than the first threshold means that the service latency of the data disk is greater than the corresponding first latency threshold. When the service latency is greater than the first latency threshold, the read and write traffic of the data disk is relatively busy. If the invalid data deletion operation on the target data shard of the data disk is stopped, the computing resources and IO resources occupied by the invalid data deletion operation can be allocated to read and write operations to ensure read and write performance. Alternatively, the service load can be the proportion of resources occupied by the data disk. For example, when the resources occupied by the data disk are processor resources, the proportion of resources occupied by the data disk can be the proportion of processor resource time slices occupied by the data disk. When this proportion is large, it indicates that the data disk has occupied a large number of resources. In this case, a service load greater than the first threshold means that the proportion of resources occupied by the data disk is greater than the corresponding first proportion threshold. When the proportion of resources occupied by the data disk is greater than the first proportion threshold, the read and write traffic of the data disk is relatively busy. If the invalid data deletion operation on the target data shard of the data disk is stopped, the computing resources and IO resources occupied by the invalid data deletion operation can be allocated to read and write operations to ensure read and write performance. When the business load of the data disk is less than or equal to the second threshold, it means that the read and write business of the data disk is no longer busy, and invalid data deletion operations can be performed while performing read and write operations. The storage node can continue to perform invalid data deletion operations on the target data shards in the data disk.

[0103] Among them, the first threshold value and the second threshold value can be equal to or different. The values ​​of the first threshold value and the second threshold value can be set according to application requirements. For example, the first threshold value and the second threshold value can both be equal to 2 milliseconds. When the first threshold value and the second threshold value are not equal, the second threshold value is less than the first threshold value. For example, in order to avoid the task state switching back and forth, the first threshold value and the second threshold value can be set to be different, and the first threshold value is a specified multiple of the second threshold value (such as 1.2 times). When the business load is between the first threshold value and the second threshold value, the task state can be maintained in the current state. For example, assuming that the business load is the business delay, the strategy for stopping and continuing to execute the invalid data deletion operation based on the business load is shown in Table 1. When the current state is to execute the invalid data deletion operation, if the business delay is less than the second delay threshold, the current state is maintained unchanged, that is, the invalid data deletion operation is continued. When the current state is to execute the invalid data deletion operation, if the business delay is less than the first delay threshold, and the business delay is greater than or equal to the second delay threshold, the current state is maintained unchanged, that is, the invalid data deletion operation is continued. When the current state is to execute the invalid data deletion operation, if the business delay is greater than or equal to the first delay threshold, the current state is switched, that is, the invalid data deletion operation is stopped. When the current state is to stop executing the invalid data deletion operation, if the business delay is less than the second delay threshold, the current state is switched, that is, the invalid data deletion operation is continued. When the current state is to stop executing the invalid data deletion operation, if the business delay is less than the first delay threshold, and the business delay is greater than or equal to the second delay threshold, the current state is maintained unchanged, that is, the invalid data deletion operation is continued to be stopped. When the current state is to stop executing the invalid data deletion operation, if the business delay is greater than or equal to the first delay threshold, the current state is maintained unchanged, that is, the invalid data deletion operation is continued to be stopped.

[0104] Table 1

[0105] Optionally, after starting to execute the invalid data deletion operation, the storage node can continuously obtain the business load of the data disk to which the target data shard belongs, or periodically obtain the business load of the data disk to which the target data shard belongs, so as to decide whether to continue or stop executing the invalid data deletion operation based on the business load.

[0106] It should be noted that the above description of the invalid data deletion method is a description of executing one round of invalid data deletion process. And the total number of target data shards that need to execute invalid data deletion operations is the total number of target data shards that need to execute invalid data deletion operations in one round. The above total number of first tasks is the total number of tasks that the storage node can execute invalid data deletion tasks on the data disk in one round. The above total number of second tasks is the total number of second tasks that the storage node can execute invalid data deletion tasks on multiple data disks in one round. When the storage node needs to execute multiple rounds of invalid data deletion operations on the storage shards, the implementation process of executing each round of invalid data deletion process can refer to the above description accordingly, and this application will not repeat them.

[0107] In summary, in the invalid data deletion method provided in the embodiment of the present application, when the storage node selects the data shard on which the invalid data deletion operation needs to be performed from the multiple data shards of the data disk, the storage unit granularity it targets is the data shard. The storage unit granularity targeted when the storage node performs the invalid data deletion operation is the data shard. It can be seen that the storage unit granularity targeted when the storage node determines the storage unit on which the invalid data deletion operation needs to be performed is the same as the storage unit granularity targeted when the invalid data deletion operation is performed. In this way, the storage node can select the storage unit on which the invalid data deletion operation needs to be performed from a global perspective, can more evenly schedule the invalid data deletion tasks of multiple data disks in the storage node, ensure the real-time balance of the invalid data deletion operations performed by multiple data disks, help to balance the concurrency of the invalid data deletion operations performed by multiple data disks, avoid performance problems caused by the emergence of hot disks, and ensure the read and write performance of the storage node.

[0108] It should be noted that the order of the steps of the invalid data deletion method provided in the embodiment of the present application can be adjusted appropriately, and the steps can be increased or decreased accordingly. Any person skilled in the art can easily think of a modified method within the technical scope disclosed in this application, and the modified method should be included in the scope of protection of this application, so it will not be repeated here.

[0109] The following describes the virtual device in the embodiment of the present application by way of example.

[0110] The above describes the invalid data deletion method of the embodiment of the present application. Corresponding to the above method, the embodiment of the present application also provides an invalid data deletion device. The device is applied to a storage node. The storage node includes multiple data disks. The data disk includes multiple data shards. The data shards include multiple data blocks. Figure 7 is a structural schematic diagram of an invalid data deletion device provided by an embodiment of the present application. Based on the following multiple components shown in Figure 7, the invalid data deletion device shown in Figure 7 can perform all or part of the operations shown in Figure 4 above. It should be understood that the device may include more additional components than the components shown or omit some of the components shown therein, and the embodiment of the present application does not limit this. Optionally, the invalid data deletion device can be configured on a cloud platform. As shown in Figure 7, the invalid data deletion device 70 may include:

[0111] The acquisition module 701 is used to obtain the invalid data ratio of each data shard in the data disk, where the invalid data ratio is the ratio of the total amount of invalid data in the data shard to the total data capacity of the data shard.

[0112] Determination module 702 is used to determine, based on the invalid data ratio, multiple target data shards in the data disk that need to perform invalid data deletion operations, where the invalid data ratio of the multiple target data shards is greater than the invalid data ratio of other data shards, and the other data shards are any data shards in the data disk except the multiple target data shards.

[0113] The processing module 703 is configured to perform a deletion operation on the multiple data blocks included in the multiple target data slices.

[0114] Optionally, the acquisition module 701 is specifically used to: obtain the invalid data ratio of the data blocks in the data shard, and obtain the invalid data ratio in the data shard based on the invalid data ratio of a specified number of data blocks in the data shard, wherein the invalid data ratio of the specified number of data blocks is greater than the invalid data ratio of other data blocks, and the other data blocks are any data blocks in the data shard except the specified number of data blocks.

[0115] Optionally, the processing module 703 is specifically used to: migrate valid data recorded in the first data block based on the access popularity of the data recorded in the first data block in the target data shard, where the first data block is any one of multiple data blocks; complete the migration of all valid data recorded in the first data block to obtain a second data block, and the data recorded in the second data block are all invalid data, and delete the second data block.

[0116] Optionally, the data block includes multiple data pages, and the processing module 703 is specifically used to: obtain the access heat of the data recorded in multiple data pages in the first data block, where the access heat includes multiple heat levels; and migrate the data recorded in multiple data pages whose access heat is at the same heat level to the same data block.

[0117] Optionally, the access popularity includes the access frequency and / or access timeliness of the data. The access frequency reflects the number of times the data is accessed within a specified time period, and the access timeliness reflects how far the data is accessed from the current time.

[0118] Optionally, the processing module 703 is further configured to: when the service load of the data disk to which the target data shard belongs is greater than a first threshold, stop executing the invalid data deletion operation on the target data shard.

[0119] Optionally, the processing module 703 is further configured to: when the business load of the data disk to which the target data shard belongs is less than or equal to a second threshold, continue to perform the invalid data deletion operation on the target data shard, and the second threshold is less than or equal to the first threshold.

[0120] Optionally, the processing module 703 is also used to: obtain the first priority of the computing resources of the storage node used for the invalid data deletion operation, the first priority is lower than the second priority of the computing resources used by the storage node for executing read and write operations, and the read and write operations are used to respond to the user's read and write operations; based on the first priority, allocate the computing resources of the storage node used for executing the invalid data deletion operation.

[0121] Optionally, the determination module 702 is further configured to: determine the total number of first tasks that the storage node can perform on the data disk to delete invalid data; and determine the total number of target data shards based on the total number of first tasks.

[0122] Optionally, the first total number of tasks is obtained based on a first upper limit value of the total number of invalid data deletion tasks that the storage node can perform on the data disk and a first total number of invalid data deletion tasks that the storage node has not completed on the data disk.

[0123] Optionally, the determination module 702 is further configured to obtain a total number of second tasks that the storage node can perform on multiple data disks to delete invalid data; and determine a total number of target data shards based on the total number of second tasks.

[0124] Optionally, the second total number of tasks is obtained based on a second upper limit value of the total number of invalid data deletion tasks that the storage node can perform on multiple data disks and a second total number of invalid data deletion tasks that the storage node has not completed on multiple data disks.

[0125] Optionally, the processing module 703 is used to: distribute invalid data deletion tasks to multiple target data shards by executing a distribution process until a stop condition is reached, the stop condition including: the total number of distributed tasks reaches a specified total number, the distribution process including: updating the third task total number of currently unfinished invalid data deletion tasks for each target data shard in the multiple target data shards, distributing invalid data deletion tasks to the target data shard with the smallest third task total number among the multiple target data shards; and performing invalid data deletion operations on the target data shard to which the invalid data deletion tasks are distributed.

[0126] Here, please refer to the description of the previous method embodiment for the detailed working process of the acquisition module 701, determination module 702, and processing module 703. For example, the acquisition module 701 uses the implementation method of step 401 to obtain the invalid data ratio of each data shard in the data disk. The determination module 702 uses the implementation method of step 403 to determine multiple target data shards that need to perform invalid data deletion operations. The processing module 703 uses the implementation method of step 405 to perform a deletion operation on the multiple data blocks included in the multiple target data shards. The embodiments of this application will not be repeated here.

[0127] In summary, in the invalid data deletion device provided in the embodiment of the present application, when the determination module selects a data shard on which an invalid data deletion operation needs to be performed from multiple data shards of a data disk, the storage unit granularity it targets is the data shard. The storage unit granularity targeted when the processing module performs the invalid data deletion operation is the data shard. It can be seen that the storage unit granularity targeted when determining the storage unit on which an invalid data deletion operation needs to be performed is the same as the storage unit granularity targeted when performing the invalid data deletion operation. In this way, the storage node can select the storage unit on which the invalid data deletion operation needs to be performed from a global perspective, can more evenly schedule the invalid data deletion tasks of multiple data disks in the storage node, ensure the real-time balance of multiple data disks performing invalid data deletion operations, help balance the concurrency of multiple data disks performing invalid data deletion operations, avoid performance problems caused by the emergence of hot disks, and ensure the read and write performance of the storage node.

[0128] Among them, the acquisition module 701, the determination module 702, and the processing module 703 can all be implemented by software or by hardware. For example, the implementation of the acquisition module 701 is described below using the acquisition module 701 as an example. Similarly, the implementation of the determination module 702 and the processing module 703 can refer to the implementation of the acquisition module 701.

[0129] As an example of a software functional unit, the acquisition module 701 may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Furthermore, the computing instance may be one or more. For example, the acquisition module 701 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one data center or multiple geographically close data centers. Typically, a region may include multiple AZs.

[0130] Similarly, multiple hosts / virtual machines / containers running the code can be distributed within the same virtual private cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Cross-region communication between two VPCs within the same region, or between VPCs in different regions, requires a communication gateway within each VPC to interconnect the VPCs.

[0131] As an example of a hardware functional unit, acquisition module 701 may include at least one computing device, such as a server. Alternatively, acquisition module 701 may be implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0132] The multiple computing devices included in acquisition module 701 can be distributed in the same region or in different regions. The multiple computing devices included in acquisition module 701 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in acquisition module 701 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of servers, ASICs, PLDs, CPLDs, FPGAs, GALs, and other computing devices.

[0133] It should be noted that, in other embodiments, any one of the acquisition module 701, determination module 702, and processing module 703 can be used to execute any step in the invalid data deletion method. The steps that the acquisition module 701, determination module 702, and processing module 703 are responsible for implementing can be specified as needed. By having the acquisition module 701, determination module 702, and processing module 703 respectively implement different steps in the invalid data deletion method, the full functionality of the invalid data deletion device can be achieved.

[0134] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the various components described above can refer to the corresponding contents in the aforementioned method embodiments and will not be repeated here.

[0135] Embodiments of the present application also provide a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0136] Optionally, the structure of at least one computing device included in the computing device cluster may refer to the computing device 300 shown in Figure 3. The memory 302 in one or more computing devices 300 in the computing device cluster may store the same instructions for executing the invalid data deletion method.

[0137] In some possible implementations, the memory 302 of one or more computing devices 300 in the computing device cluster may also store partial instructions for executing the invalid data deletion method. In other words, the combination of one or more computing devices 300 can jointly execute the instructions for executing the invalid data deletion method.

[0138] It should be noted that the memory 302 in different computing devices 300 in the computing device cluster can store different instructions, each for executing a portion of the functions of the invalid data deletion apparatus. In other words, the instructions stored in the memory 302 in different computing devices 300 can implement the functions of one or more of the acquisition module 701, the determination module 702, and the processing module 703.

[0139] In some possible implementations, one or more computing devices in a computing device cluster may be connected via a network. The network may be a wide area network (WAN) or a local area network (LAN), among others. FIG. 8 illustrates a possible implementation. As shown in FIG. 8 , two computing devices 800A and 800B are connected via a network. Specifically, each computing device is connected to the network via a communication interface within the computing device. In this type of possible implementation, computing devices 800A and 800B include a bus 802, a processor 804, a memory 806, and a communication interface 808.

[0140] It should be understood that the functions of computing device 800A shown in FIG8 can also be performed by multiple computing devices 800. Similarly, the functions of computing device 800B can also be performed by multiple computing devices 800. Moreover, the deployment method of the modules for implementing the invalid data deletion method in the computing devices can also be adjusted according to application requirements.

[0141] An embodiment of the present application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium. The computer-readable storage medium includes program instructions. When the program instructions are executed on a computing device, the computing device implements the invalid data deletion method provided in the embodiment of the present application.

[0142] An embodiment of the present application also provides a computer program product containing instructions. When the computer program product is run on a computer, the computer implements the invalid data deletion method provided by the embodiment of the present application.

[0143] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, which may be a read-only memory, a disk, or an optical disk, etc.

[0144] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, storage, display, etc.), and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the raw data and executable code involved in this application were obtained with full authorization.

[0145] In the embodiments of the present application, the terms "first," "second," and "third" are used for descriptive purposes only and should not be understood as indicating or implying relative importance. The term "at least one" refers to one or more, and the term "plurality" refers to two or more, unless otherwise expressly limited.

[0146] In this application, the term "and / or" simply describes an association between related objects, indicating that three possible relationships exist. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. In addition, the character " / " in this document generally indicates that the related objects are in an "or" relationship.

[0147] The above description is merely an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the concepts and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A method for deleting invalid data, characterized in that: The method is applied to a storage node, the storage node includes a plurality of data disks, the data disks include a plurality of data shards, the data shards include a plurality of data blocks, and the method includes: Obtaining the invalid data ratio of each data shard in the data disk, where the invalid data ratio is the ratio of the total amount of invalid data in the data shard to the total data capacity of the data shard; Based on the invalid data proportion, multiple target data shards on which invalid data deletion operations need to be performed are determined among the multiple data shards in the data disk, the invalid data proportions of the multiple target data shards are all greater than the invalid data proportions of other data shards, and the other data shards are any data shards in the data disk except the multiple target data shards; A deletion operation is performed on the multiple data blocks included in the multiple target data slices.

2. The method according to claim 1, characterized in that The obtaining the invalid data ratio of each data shard in the data disk includes: Obtain the invalid data ratio of the data blocks in the data shard, and obtain the invalid data ratio in the data shard based on the invalid data ratio of a specified number of data blocks in the data shard, wherein the invalid data ratio of the specified number of data blocks is greater than the invalid data ratio of other data blocks, and the other data blocks are any data blocks in the data shard except the specified number of data blocks.

3. The method according to claim 1 or 2, characterized in that The performing a deletion operation on the multiple data blocks included in the multiple target data slices includes: Migrating valid data in the data recorded in a first data block in the target data shard based on access popularity of the data recorded in the first data block, where the first data block is any one of the multiple data blocks; All valid data in the data recorded in the first data block is migrated to obtain a second data block, and all data recorded in the second data block are invalid data, so the second data block is deleted.

4. The method according to claim 3, characterized in that The data block includes a plurality of data pages, and the migrating valid data in the data recorded in the first data block based on the access popularity of the data recorded in the first data block in the target data shard includes: Acquire access heat of data recorded in a plurality of data pages in the first data block, wherein the access heat includes a plurality of heat levels; The data recorded in the multiple data pages whose access heats of the data recorded in the multiple data pages are at the same heat level are migrated to the same data block.

5. The method according to claim 3 or 4, characterized in that The access popularity includes the access frequency and / or access timeliness of the data. The access frequency reflects the number of times the data is accessed within a specified time period, and the access timeliness reflects how close the data is to the current time.

6. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: When the business load of the data disk to which the target data slice belongs is greater than a first threshold, the invalid data deletion operation on the target data slice is stopped.

7. The method according to claim 6, characterized in that The method further comprises: When the business load of the data disk to which the target data shard belongs is less than or equal to a second threshold, the invalid data deletion operation continues to be performed on the target data shard, and the second threshold is less than or equal to the first threshold.

8. The method according to any one of claims 1 to 7, characterized in that: The method further comprises: Obtaining a first priority of the computing resources of the storage node used by the invalid data deletion operation, the first priority being lower than a second priority of the computing resources used by the storage node for executing a read / write operation, the read / write operation being used to respond to a read / write operation of a user; Based on the first priority, computing resources of the storage node are allocated to perform the invalid data deletion operation.

9. An invalid data deletion device, characterized in that: The device is applied to a storage node, the storage node includes a plurality of data disks, the data disks include a plurality of data slices, the data slices include a plurality of data blocks, and the device includes: An acquisition module, used to acquire the invalid data ratio of each data shard in the data disk, where the invalid data ratio is the ratio of the total amount of invalid data in the data shard to the total data capacity of the data shard; A determination module, configured to determine, based on the invalid data proportion, a plurality of target data slices in the data disk on which invalid data deletion operations need to be performed, wherein the invalid data proportions of the plurality of target data slices are all greater than the invalid data proportions of other data slices, and the other data slices are any data slices in the data disk except the plurality of target data slices; The processing module is used to perform a deletion operation on the multiple data blocks included in the multiple target data slices.

10. The device according to claim 9, characterized in that The acquisition module is specifically used for: Obtain the invalid data ratio of the data blocks in the data shard, and obtain the invalid data ratio in the data shard based on the invalid data ratio of a specified number of data blocks in the data shard, wherein the invalid data ratio of the specified number of data blocks is greater than the invalid data ratio of other data blocks, and the other data blocks are any data blocks in the data shard except the specified number of data blocks.

11. The device according to claim 9 or 10, characterized in that The processing module is specifically used for: Migrating valid data in the data recorded in a first data block in the target data shard based on access popularity of the data recorded in the first data block, where the first data block is any one of the multiple data blocks; All valid data in the data recorded in the first data block is migrated to obtain a second data block, and all data recorded in the second data block are invalid data, so the second data block is deleted.

12. The device according to claim 11, characterized in that The data block includes a plurality of data pages, and the processing module is specifically used for: Acquire access heat of data recorded in a plurality of data pages in the first data block, wherein the access heat includes a plurality of heat levels; The data recorded in the multiple data pages whose access heats of the data recorded in the multiple data pages are at the same heat level are migrated to the same data block.

13. The device according to claim 11 or 12, characterized in that The access popularity includes the access frequency and / or access timeliness of the data. The access frequency reflects the number of times the data is accessed within a specified time period, and the access timeliness reflects how close the data is to the current time.

14. The device according to any one of claims 9 to 13, characterized in that: The processing module is also used for: When the business load of the data disk to which the target data slice belongs is greater than a first threshold, the invalid data deletion operation on the target data slice is stopped.

15. The device according to claim 14, characterized in that The processing module is also used for: When the business load of the data disk to which the target data shard belongs is less than or equal to a second threshold, the invalid data deletion operation continues to be performed on the target data shard, and the second threshold is less than or equal to the first threshold.

16. The device according to any one of claims 9 to 15, characterized in that: The processing module is also used for: Obtaining a first priority of the computing resources of the storage node used by the invalid data deletion operation, the first priority being lower than a second priority of the computing resources used by the storage node for executing a read / write operation, the read / write operation being used to respond to a read / write operation of a user; Based on the first priority, computing resources of the storage node are allocated to perform the invalid data deletion operation.

17. A computing device, characterized in that The method comprises a computing device, wherein the computing device comprises a processor and a memory, wherein program instructions are stored in the memory, and the processor executes the program instructions so that the computing device executes any one of the methods of claims 1 to 8.

18. A computer-readable storage medium, characterized in that: The method comprises program instructions, and when the program instructions are executed on a computing device, the computing device is caused to execute the method according to any one of claims 1 to 8.

19. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Trash recycling method for solid-state storage equipment and computer equipment

    CN108874683A

  • Data processing method and device and related components

    CN111880731A

  • Garbage collection target block selection method and device, equipment and readable storage medium

    CN113849422A

  • Memory system and data deleting method

    US20120144097A1