Data erasure methods, devices, electronic devices, storage media and software products

CN122308732APending Publication Date: 2026-06-30DAWNING INFORMATION IND (BEIJING) CO LTD +2
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610335121.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-03-18
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

During the data deletion process, traditional batch deletion operations can easily lead to excessive bandwidth consumption, affecting the normal execution of front-end services. Especially when there are many feature values ​​to be deleted, the system resources are consumed too much, resulting in deletion operation failure and low efficiency.

Method used

By dynamically determining the transmission bandwidth, large-granularity data blocks are divided into multiple small-granularity data blocks, which are then deleted. Combined with system load information, bandwidth allocation is optimized to ensure the normal execution of front-end services and the stable operation of back-end tasks.

Benefits of technology

This system enables reasonable allocation of bandwidth usage during data deletion, avoids failures in deleting large-granularity data blocks, improves the stability and efficiency of data deletion, and ensures efficient utilization of system resources and normal execution of front-end services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122308732A_ABST
    Figure CN122308732A_ABST
Patent Text Reader

Abstract

This application provides a data deletion method, apparatus, electronic device, storage medium, and program product. The method includes: acquiring a first data block, the first data block being determined based on a first feature value corresponding to data to be deleted, the first feature value indicating the content of the data to be deleted; determining a first transmission bandwidth, the first transmission bandwidth being used to delete the first data block; dividing the first data block based on the first transmission bandwidth to obtain multiple second data blocks; and deleting the multiple second data blocks. Thus, by using the above method, the first data block can be divided based on the first transmission bandwidth to obtain multiple second data blocks, and then the multiple second data blocks can be deleted, solving the problem that traditional feature value deletion operations affect the normal execution of front-end services.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of distributed storage technology, and in particular to a data deletion method, apparatus, electronic device, storage medium, and program product. Background Technology

[0002] With the application of enterprise-level cloud storage and distributed file systems, the amount of data is growing explosively. Data reduction technology can be used to reduce the storage space occupied. During the data reduction process, a large number of feature values ​​will be accumulated. Useless feature values ​​need to be deleted to free up storage space.

[0003] In related technologies, when deleting feature values, deletion operations for each feature value to be deleted can be initiated at once. If the deletion of any feature value fails, the deletion operation is terminated.

[0004] However, in the above method, when there are many feature values ​​to be deleted, the deletion operation will consume too much bandwidth, thereby affecting the normal execution of front-end services. Summary of the Invention

[0005] This application provides a data deletion method, apparatus, electronic device, storage medium, and program product to solve the technical problem that feature value deletion operations affect the normal execution of front-end business.

[0006] Firstly, this application provides a data deletion method, including:

[0007] Obtain the first data block, which is determined based on the first feature value corresponding to the data to be deleted. The first feature value is used to indicate the content of the data to be deleted.

[0008] A first transmission bandwidth is determined, and the first transmission bandwidth is used to delete the first data block;

[0009] Based on the first transmission bandwidth, the first data block is divided into multiple second data blocks;

[0010] Delete multiple second data blocks.

[0011] In this embodiment, the first data block can be divided into multiple second data blocks based on the first transmission bandwidth, and then the multiple second data blocks can be deleted, which solves the problem that traditional feature value deletion operations affect the normal execution of front-end services.

[0012] Optionally, the method described above, based on the first transmission bandwidth, divides the first data block into multiple second data blocks, including:

[0013] Based on the first transmission bandwidth, a first segmentation granularity is determined, which is used to indicate the amount of data in the second data block;

[0014] Based on the first segmentation granularity, the first data block is segmented to obtain multiple second data blocks.

[0015] In this embodiment, by dynamically matching the first segmentation granularity with the first transmission bandwidth, the problem of deletion failures caused by large-granularity data blocks under heavy load can be avoided. Subsequently, only the failed second data block needs to be processed to complete the retry. It can also prevent the problem of frequent data read and write interface calls and excessive resource consumption caused by too many blocks. Thus, a dynamic balance is achieved between the retry efficiency and resource consumption of data deletion, adapting to the limited resources of the low-priority cache pool, ensuring the stable execution of background deletion tasks, and taking into account the overall system operating efficiency.

[0016] Optionally, determining the first transmission bandwidth using the method described above includes:

[0017] Get the operation type, preset maximum transmission bandwidth, and load information. The operation type includes data deletion and data writing.

[0018] The first transmission bandwidth is determined based on the operation type, the preset maximum transmission bandwidth, and the load information.

[0019] In this embodiment, the first transmission bandwidth is dynamically determined based on the operation type, the preset maximum transmission bandwidth, and the load information. This prioritizes the bandwidth requirements for front-end data writing, prevents back-end data deletion operations from monopolizing system bandwidth resources, and ensures that the bandwidth usage for data deletion adapts to the real-time operating status of the system. This achieves reasonable allocation and efficient utilization of bandwidth resources, ensuring the normal execution of front-end services while allowing back-end feature value deletion tasks to be carried out stably within a controllable bandwidth range. This improves the overall operational stability and resource utilization of the storage system.

[0020] Optionally, after deleting multiple second data blocks using the method described above, the method further includes:

[0021] Obtain the third data block and the fourth data block. The third data block is the data block that failed to be deleted, and the fourth data block is the data block corresponding to the second feature value of the target data. The target data is the data to be deleted generated after the second data block was deleted. The second feature value is used to indicate the content of the target data.

[0022] The fourth data block is split to obtain multiple fifth data blocks;

[0023] Delete the third data block and multiple fifth data blocks.

[0024] In this embodiment, the third data block that failed to be deleted and the newly generated fourth data block are included in the deletion process. The newly added fourth data block is reasonably divided before being deleted. This can ensure that the failed data can be retried and cleaned up, while the newly added target data to be deleted can be processed in a timely manner, avoiding the accumulation of data blocks, reducing the risk of failure of a single deletion and the consumption of system resources, and improving the stability and success rate of the overall data deletion.

[0025] Optionally, the fourth data block can be divided using the method described above to obtain multiple fifth data blocks, including:

[0026] A second transmission bandwidth is determined, which is used to delete the third and fourth data blocks;

[0027] Based on the second transmission bandwidth, the fourth data block is divided into multiple fifth data blocks.

[0028] In this embodiment, by determining the second transmission bandwidth and dividing the fourth data block based on the second transmission bandwidth to obtain multiple fifth data blocks with adapted bandwidth, the granularity of the newly added data block to be deleted can accurately match the bandwidth resources of the joint deletion. This avoids the problem of large-granularity data block deletion failure and prevents excessive system resource consumption due to too many blocks, thereby improving the stability and efficiency of the deletion operations of the third and fifth data blocks.

[0029] Alternatively, the method described above may also include:

[0030] Determine the first capacity that needs to be expanded in the first cache space, which is used to carry data processing operations of the first priority;

[0031] Based on the first capacity, a target space is determined in the second cache space. The second cache space is used to carry data processing operations of the second priority, which include data deletion. The first priority is higher than the second priority.

[0032] The target space of the second cache space is allocated to the first cache space.

[0033] In this embodiment, by determining the first capacity that needs to be expanded in the first cache space, and allocating a target space matching the capacity from the second cache space that carries the data deletion operation to supplement the first cache space, it is possible to ensure that the first priority data processing operation obtains sufficient cache resources while ensuring the stable execution of high priority services, and without affecting the normal execution of second priority operations such as background data deletion. This can achieve dynamic optimization and allocation of cache resources among services of different priorities, and improve the utilization rate of server cache resources.

[0034] Secondly, this application provides a data erasure device, comprising:

[0035] The acquisition module is used to acquire a first data block, which is determined based on a first feature value corresponding to the data to be deleted. The first feature value is used to indicate the content of the data to be deleted.

[0036] The determination module is used to determine the first transmission bandwidth, which is used to delete the first data block;

[0037] The first processing module is used to divide the first data block into multiple second data blocks based on the first transmission bandwidth;

[0038] The delete module is used to delete multiple second data blocks.

[0039] Optionally, in the above apparatus, the first processing module is specifically used for,

[0040] Based on the first transmission bandwidth, a first segmentation granularity is determined, which is used to indicate the amount of data in the second data block;

[0041] Based on the first segmentation granularity, the first data block is segmented to obtain multiple second data blocks.

[0042] Optionally, the above-described device determines the specific use of the module.

[0043] Get the operation type, preset maximum transmission bandwidth, and load information. The operation type includes data deletion and data writing.

[0044] The first transmission bandwidth is determined based on the operation type, the preset maximum transmission bandwidth, and the load information.

[0045] Optionally, the above-described apparatus further includes a second processing module, the second processing module being used for,

[0046] Obtain the third data block and the fourth data block. The third data block is the data block that failed to be deleted, and the fourth data block is the data block corresponding to the second feature value of the target data. The target data is the data to be deleted generated after the second data block was deleted. The second feature value is used to indicate the content of the target data.

[0047] The fourth data block is split to obtain multiple fifth data blocks;

[0048] Delete the third data block and multiple fifth data blocks.

[0049] Optionally, in the above-described apparatus, the second processing module is specifically used for,

[0050] A second transmission bandwidth is determined, which is used to delete the third and fourth data blocks;

[0051] Based on the second transmission bandwidth, the fourth data block is divided into multiple fifth data blocks.

[0052] Optionally, the above-described apparatus further includes a third processing module, which is used for:

[0053] Determine the first capacity that needs to be expanded in the first cache space, which is used to carry data processing operations of the first priority;

[0054] Based on the first capacity, a target space is determined in the second cache space. The second cache space is used to carry data processing operations of the second priority, which include data deletion. The first priority is higher than the second priority.

[0055] The target space of the second cache space is allocated to the first cache space.

[0056] Thirdly, this application provides an electronic device, including: a processor, and a memory communicatively connected to the processor;

[0057] The memory stores the instructions that the computer executes;

[0058] The processor executes computer-executable instructions stored in memory to implement the method as described in the first aspect.

[0059] The electronic device provided in this application embodiment can execute the technical solutions in the above method embodiments, and its beneficial effects are similar, so they will not be described again here.

[0060] Fourthly, this application provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a computer, are used to implement the method as described in the first aspect.

[0061] The computer-readable storage medium provided in this application embodiment can execute the technical solutions in the above method embodiments, and its beneficial effects are similar, so they will not be described again here.

[0062] Fifthly, this application provides a computer program product, including a computer program, which, when executed by a computer, is used to implement the method of the first aspect.

[0063] The computer program product provided in this application embodiment can execute the technical solutions in the above method embodiments, and its beneficial effects are similar, so they will not be described again here.

[0064] The data deletion method, apparatus, electronic device, storage medium, and program product provided in this application, upon initiating a feature value deletion task, can obtain a first data block. The first data block is determined based on a first feature value corresponding to the data to be deleted. The first feature value is used to indicate the content of the data to be deleted. The first feature value can be a feature identifier used to uniquely identify the content of the data to be deleted. The first data block can refer to a large-granularity data set to be deleted based on the first feature value corresponding to the data to be deleted. A first transmission bandwidth is determined, which is used to delete the first data block. The first transmission bandwidth can refer to the maximum amount of data allocated by the storage system for executing the deletion operation of the first data block, which can be used to transmit deletion instructions and data to be deleted per unit time. Based on the first transmission bandwidth, the first data block is divided into multiple second data blocks. The second data blocks can refer to small-granularity sub-blocks of data to be deleted obtained after dynamically dividing the first data block based on the first transmission bandwidth. The multiple second data blocks are then deleted. In this way, the first data block can be divided into multiple second data blocks based on the first transmission bandwidth, and then the multiple second data blocks can be deleted, which solves the problem that the traditional feature value deletion operation affects the normal execution of front-end services. Attached Figure Description

[0065] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.

[0066] Figure 1 A flowchart illustrating a data deletion method provided in an embodiment of this application;

[0067] Figure 2 A schematic diagram illustrating the process of determining the second data block provided in an embodiment of this application;

[0068] Figure 3 A flowchart illustrating another data deletion method provided in this application embodiment;

[0069] Figure 4 A schematic diagram illustrating the partitioning of cache space provided in an embodiment of this application;

[0070] Figure 5 A flowchart illustrating the complete data deletion method provided in the application embodiment;

[0071] Figure 6 This is a schematic diagram of the structure of a data deletion device provided in an embodiment of this application;

[0072] Figure 7 This is a schematic diagram of another data deletion device provided in an embodiment of this application;

[0073] Figure 8 This is a schematic diagram of the structure of another data deletion device provided in the embodiments of this application;

[0074] Figure 9 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application.

[0075] The accompanying drawings illustrate specific embodiments of this application, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concept of this application to those skilled in the art through reference to particular embodiments. Detailed Implementation

[0076] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.

[0077] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.

[0078] With the application of enterprise-level cloud storage and distributed file systems, massive amounts of business data are growing explosively, and the pressure on storage resources continues to rise. Data reduction technology has become a core means to alleviate this problem. This technology first divides the data into multiple data blocks, and each data block has a corresponding feature value (including fingerprints and similar fingerprints). Duplicate data blocks are identified by comparing feature values; if the same feature value already exists, only one feature value is retained. Furthermore, duplicate data blocks can be deleted through feature value deletion operations. During the continuous operation of data reduction, when the capacity of the feature values ​​becomes too large or no longer has the value of being deleted, the feature values ​​to be deleted need to be cleaned up in a timely manner to free up metadata storage space and ensure the efficient operation of the storage system.

[0079] In the above scenario, the deletion of each feature value to be deleted is handled in batches. That is, in a single recycling task, a centralized deletion operation is initiated for all feature values ​​to be deleted. This deletion process uses rigid decision logic; if any feature value fails to be deleted due to insufficient bandwidth, system fluctuations, or other reasons, the entire feature value deletion operation is terminated, and the unfinished deletion task must be included in subsequent recycling processes for re-execution. When there are many feature values ​​to be deleted, the deletion operation can consume excessive bandwidth, thus affecting the normal execution of front-end services.

[0080] Therefore, this application provides a data deletion method that determines a first transmission bandwidth for deleting a first data block, then dynamically divides the first data block into multiple second data blocks with an appropriate granularity based on the first transmission bandwidth, and then deletes the multiple second data blocks. This method can accurately control the bandwidth usage of a single deletion operation, avoid bandwidth resource contention caused by batch deletion, and ensure the normal execution of front-end services.

[0081] In one possible implementation, the specific application scenarios of this application may include feature value reclamation scenarios for enterprise-level cloud storage, deduplication scenarios for distributed file systems, metadata release scenarios for database management systems, and redundant feature value deletion scenarios for object storage systems.

[0082] The technical solution of this application and how the technical solution of this application solves the above-mentioned technical problems are described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of this application will now be described with reference to the accompanying drawings.

[0083] Figure 1 This is a flowchart illustrating a data deletion method provided in an embodiment of this application. The method can be executed by a data deletion device, which can be implemented using a computer program; it can also be implemented using a medium storing the relevant computer program, such as a USB flash drive and / or optical disc; or it can be implemented using a physical device integrating or installing the relevant computer program, such as a chip or electronic device. The electronic device can be a server, server cluster, or computer, etc. The following description uses a server as an example. Figure 1 As shown, the method may include the following steps.

[0084] S101. Obtain the first data block. The first data block is determined based on the first feature value corresponding to the data to be deleted. The first feature value is used to indicate the content of the data to be deleted.

[0085] The first feature value can be a feature identifier used to uniquely identify the data content to be deleted, including but not limited to hash fingerprints and similar fingerprints, which is the basis for identifying duplicate data and performing data deletion operations.

[0086] The first data block can refer to a large-granularity data set determined based on the first feature value corresponding to the data to be deleted, which is the basic processing unit of the feature value deletion task. The first data block is formed by integrating multiple first feature values ​​to be deleted according to the contiguous storage rule. It has the characteristics of large data granularity and a large number of feature values ​​to be deleted. It is also the original data block for performing bandwidth adaptation and segmentation operations in this embodiment. The contiguous storage rule can refer to integrating feature values ​​with consecutive or adjacent addresses according to the sorting of the physical storage addresses corresponding to the first feature values ​​from low to high.

[0087] In one possible implementation, after the feature value deletion task is started, the background deletion task module in the server can continuously determine each first feature value corresponding to the data to be deleted, and then add each first feature value to the queue to be deleted. When any condition in the preset first condition set is met, each first feature value can be obtained from the queue to be deleted, and then each first feature value is integrated according to the continuous storage rule to obtain the first data block.

[0088] The first set of conditions may include: the amount of data for each first feature value to be deleted in the deletion queue is greater than or equal to a preset data amount threshold; and the CPU load is less than or equal to a preset load threshold within a preset first duration. CPU load can refer to the real-time resource utilization rate of the CPU of the server (or server cluster) executing the feature value deletion task, indicating the CPU's busy level. For example, the data amount threshold is 1 gigabyte (GB), the first duration is 5 seconds, and the load threshold is 30%.

[0089] In this way, by obtaining each first feature value and deleting it when the amount of data of each first feature value to be deleted in the deletion queue is greater than or equal to the preset data amount threshold, the problem of the traditional deletion queue being limited in the number of requests it can accommodate, and subsequent requests will fail to be processed if the deletion queue is full in a short time, can be avoided.

[0090] S102. Determine the first transmission bandwidth, which is used to delete the first data block.

[0091] The first transmission bandwidth can refer to the maximum amount of data allocated by the storage system for executing the deletion operation of the first data block, which can be used to transmit the deletion instruction and the data to be deleted per unit time. Its unit can be megabytes per second (MB / s) or gigabytes per second (GB / s), etc.

[0092] In one possible implementation, the background deletion task module within the server can send a transmission bandwidth query request to the underlying cache module within the server. After receiving the transmission bandwidth query request sent by the background deletion task module, the underlying cache module within the server determines the first transmission bandwidth and returns the first transmission bandwidth to the background deletion task module.

[0093] In one possible implementation, the first transmission bandwidth can be determined by: obtaining the operation type, the preset maximum transmission bandwidth, and load information, where the operation type includes data deletion and data writing; and determining the first transmission bandwidth based on the operation type, the preset maximum transmission bandwidth, and the load information.

[0094] Operation type can refer to the category of business operations that are currently being executed and that consume system transmission bandwidth.

[0095] The preset maximum transmission bandwidth refers to the maximum data transmission capacity that the server supports at the hardware level, which is the total upper limit of the system bandwidth allocation. It is determined by the hardware configuration of the server, such as the network card, bus, and storage controller, and remains fixed after being preset. The unit can be MB / s or GB / s.

[0096] Load information refers to the real-time resource utilization status of various operation types, including CPU real-time resource utilization, memory real-time resource utilization, remaining available space in the low-priority cache pool, and remaining available space in the high-priority cache pool. Specifically, CPU real-time resource utilization indicates the busy level of the server's central processing unit (CPU) performing data processing operations per unit of time, indicating the current usage of computing resources; memory real-time resource utilization indicates the proportion of memory space used for data storage and instruction execution in the server, indicating the current scarcity of memory resources; remaining available space in the low-priority cache pool refers to the amount of unused storage space in the second cache space used for background data deletion operations; remaining available space in the high-priority cache pool refers to the amount of unused storage space in the first cache space used for foreground data writing operations; and the cache pool refers to a pre-allocated high-speed storage area within the server used to temporarily store data to be processed and operation instructions, improving data read / write and processing efficiency.

[0097] The first transmission bandwidth can refer to the real-time available bandwidth allocated by the underlying cache module for the background feature value deletion task, which is dedicated to the first data block deletion operation. It is the upper limit of bandwidth usage for the feature value deletion operation, and the unit is consistent with the maximum transmission bandwidth. It will be dynamically adjusted according to changes in system load information.

[0098] In one possible implementation, the first transmission bandwidth can be determined based on the operation type, the preset maximum transmission bandwidth, and load information as follows: Based on the operation type, data write operations are classified as high-priority operations, and data deletion operations are classified as low-priority operations. The bandwidth requirements of high-priority operations are prioritized for satisfaction, while low-priority operations can only use the remaining system bandwidth after the bandwidth allocation for high-priority operations. The difference between the preset maximum transmission bandwidth, the real-time actual bandwidth occupancy of data write operations, and the basic reserved bandwidth is determined as the remaining available basic bandwidth. Based on the remaining available basic bandwidth, a dynamic adjustment coefficient is determined according to the real-time CPU resource occupancy rate and the proportion of remaining available space in the low-priority cache pool in the load information. The remaining available basic bandwidth and the dynamic adjustment coefficient are then multiplied to obtain the preliminary first transmission bandwidth. If the preliminary first transmission bandwidth is greater than or equal to a preset bandwidth threshold, the preliminary first transmission bandwidth is determined as the final first transmission bandwidth; if the preliminary first transmission bandwidth is less than the preset bandwidth threshold, the bandwidth threshold is determined as the final first transmission bandwidth.

[0099] Among them, the bandwidth threshold can refer to the minimum bandwidth resources that can ensure the continuous operation of the background feature value deletion task. For example, the bandwidth threshold is 20MB / s. The basic operation reserved bandwidth refers to the fixed bandwidth resources that can be allocated in advance to ensure the normal operation of core programs such as server operating system, hardware driver, and storage management basic module. This bandwidth is not allocated to any business operation and can be 5%-10% of the preset maximum transmission bandwidth.

[0100] In one possible implementation, the dynamic adjustment coefficient can be determined as follows: if the CPU real-time resource utilization is less than or equal to 30% and the remaining available space of the low-priority cache pool is greater than or equal to 60%, the adjustment coefficient can be 100%; if the CPU real-time resource utilization is greater than 30% and less than 50%, or the remaining available space of the low-priority cache pool is greater than 30% and less than 60%, the adjustment coefficient can be 70%; if the CPU real-time resource utilization is greater than or equal to 50%, or the remaining available space of the low-priority cache pool is less than or equal to 30%, the adjustment coefficient can be 50%.

[0101] In one possible implementation, the third transmission bandwidth can be determined based on the operation type, the preset maximum transmission bandwidth, and load information as follows: The difference between the preset maximum transmission bandwidth and the basic reserved bandwidth is determined as the basic available bandwidth for front-end data writing; then, based on the real-time memory resource utilization rate and the percentage of remaining available space in the high-priority cache pool in the load information, the initial third transmission bandwidth is determined; if the initial third transmission bandwidth is greater than or equal to the real-time bandwidth requirement of the data writing operation, the initial third transmission bandwidth is determined as the final third transmission bandwidth; if the initial third transmission bandwidth is less than the real-time bandwidth requirement of the data writing operation, the real-time bandwidth requirement of the data writing operation is determined as the final third transmission bandwidth, ensuring that the actual bandwidth requirement of the front-end data writing operation is fully met. The third transmission bandwidth is used for writing front-end business data.

[0102] In one possible implementation, the initial third transmission bandwidth can be determined as follows: if the real-time memory resource utilization rate is less than or equal to 40% and the remaining available space of the high-priority cache pool is greater than or equal to 50%, then 100% of the basic available bandwidth for writing front-end data is determined as the initial third transmission bandwidth; if the real-time memory resource utilization rate is greater than 40% and less than 60%, or the remaining available space of the high-priority cache pool is greater than 30% and less than 50%, then 90% of the basic available bandwidth for writing front-end data is determined as the initial third transmission bandwidth; if the real-time memory resource utilization rate is greater than or equal to 60%, or the remaining available space of the high-priority cache pool is less than 30%, then 80% of the basic available bandwidth for writing front-end data is determined as the initial third transmission bandwidth.

[0103] In one possible implementation, after determining the third transmission bandwidth, the third transmission bandwidth can also be sent to the front-end write task module within the server.

[0104] In this way, by dynamically determining the first transmission bandwidth based on the operation type, the preset maximum transmission bandwidth, and the load information, the bandwidth requirements for front-end data writing can be prioritized, preventing background data deletion operations from competing for system bandwidth resources. At the same time, the bandwidth usage for data deletion is adapted to the real-time operating status of the system, achieving reasonable allocation and efficient utilization of bandwidth resources. This ensures the normal execution of front-end services and allows background feature value deletion tasks to be carried out stably within a controllable bandwidth range, thereby improving the overall operational stability and resource utilization of the storage system.

[0105] S103. Based on the first transmission bandwidth, the first data block is divided into multiple second data blocks.

[0106] The second data block can refer to a small-granularity sub-block of data to be deleted obtained by dynamically dividing the first data block based on the first transmission bandwidth. Its granularity is determined by the size of the first transmission bandwidth. It has the characteristics of small data granularity and adaptability to the current bandwidth resources of the system. It is the smallest unit to actually perform the deletion operation. The sum of multiple second data blocks is consistent with the capacity of the original first data block and the number of first feature values ​​contained therein.

[0107] In one possible implementation, the background deletion task module within the server can divide the first data block based on the first transmission bandwidth to obtain multiple second data blocks.

[0108] S104. Delete multiple second data blocks.

[0109] In one possible implementation, the background deletion task module within the server can send first deletion requests to the underlying cache module to delete multiple second data blocks. The number of first deletion requests is the same as the number of second data blocks. After receiving the multiple first deletion requests, the underlying cache module begins deleting the multiple second data blocks. Each first deletion request includes the starting address of each second data block and the amount of data in each second data block.

[0110] It should be noted that during the deletion of multiple second data blocks, some second data blocks may be deleted due to communication fluctuations or network fluctuations.

[0111] In one possible implementation, when the deletion of the second data block is successful, the underlying caching module within the server can return information indicating that the deletion of the second data block was successful to the background deletion task module.

[0112] In one possible implementation, when deleting the second data block fails, the underlying cache module within the server can return the information about the failed deletion, the starting address of the second data block, and the amount of data in the second data block to the background deletion task module. Upon receiving this information, the background deletion task module stores the starting address and the amount of data in the second data block in a preset first storage space. Simultaneously, the underlying cache module can add the first deletion request corresponding to the failed second data block to a retry list. When a preset second condition is met, the underlying cache module can start an asynchronous thread and reprocess the first deletion request corresponding to the failed second data block through this asynchronous thread. The second condition refers to the server being in a CPU idle state where both the background deletion task and the foreground write task are relatively idle; that is, the real-time CPU resource utilization is less than or equal to a preset load threshold within a first time period, thus making full use of server resources.

[0113] In one possible implementation, after deleting multiple second data blocks, the processing results of multiple first deletion requests can be returned to the background deletion task module. The processing results may include the number of second data blocks that were successfully deleted and the number of second data blocks that failed to be deleted.

[0114] In the embodiments of this application, after initiating the feature value deletion task, a first data block can be obtained. The first data block is determined based on the first feature value corresponding to the data to be deleted. The first feature value is used to indicate the content of the data to be deleted. The first feature value can be a feature identifier used to uniquely identify the content of the data to be deleted. The first data block can refer to a large-granularity data set determined based on the first feature value corresponding to the data to be deleted and for which a deletion operation is to be performed. A first transmission bandwidth is determined. The first transmission bandwidth is used to delete the first data block. The first transmission bandwidth can refer to the maximum amount of data allocated by the storage system for executing the deletion operation of the first data block, which can be used to transmit deletion instructions and data to be deleted per unit time. Based on the first transmission bandwidth, the first data block is divided into multiple second data blocks. The second data blocks can refer to small-granularity sub-blocks of data to be deleted obtained after dynamically dividing the first data block based on the first transmission bandwidth. The multiple second data blocks are then deleted. In this way, by using the above method, the first data block can be divided into multiple second data blocks based on the first transmission bandwidth, and then the multiple second data blocks can be deleted, solving the problem that traditional feature value deletion operations affect the normal execution of front-end services.

[0115] In addition, the second data block that failed to be deleted can be recorded and retried asynchronously when the CPU is idle. This allows for upper-level tracing by storing key information of failed data blocks in the background deletion task module, and lower-level autonomous processing by the retry list in the underlying cache module. At the same time, when the combined CPU load of background deletion and foreground writing is low, an asynchronous thread is started to perform retry. This solves the problems of traditional single feature value deletion failure terminating the entire task and repeated accumulation of failed data blocks, which leads to low deletion efficiency and low system resource utilization.

[0116] Below, in conjunction with Figure 2 The process of determining multiple second data blocks is explained.

[0117] Figure 2 This is a schematic diagram illustrating the process of determining the second data block provided in an embodiment of this application. Based on the above embodiments, see [link to relevant documentation]. Figure 2 The method includes:

[0118] S201. Based on the first transmission bandwidth, determine the first segmentation granularity, which is used to indicate the amount of data in the second data block.

[0119] The first segmentation granularity can be a value used to indicate the size of a single second data block, and it is positively correlated with the first transmission bandwidth. That is, the larger the first transmission bandwidth, the larger the first segmentation granularity, and the unit of the first segmentation granularity is consistent with the unit of the first transmission bandwidth. For example, if the first segmentation granularity is 400 megabytes (MB), that is, the data size of a single second data block after segmentation is less than or equal to 400MB, it ensures that when deleting a second data block at a time, the bandwidth usage is stable within 400MB / s, and does not preempt the bandwidth of the foreground service.

[0120] In one possible implementation, the first segmentation granularity can be determined by: obtaining a first mapping relationship, which indicates the relationship between transmission bandwidth and segmentation granularity; and determining the first segmentation granularity based on the first mapping relationship and the first transmission bandwidth.

[0121] The first mapping relationship can refer to a pre-defined set of rules used to clarify the correspondence between transmission bandwidth and segmentation granularity. For example, the first mapping relationship can be Table 1.

[0122] Table 1

[0123]

[0124] For example, if the first transmission bandwidth is 1G / s, the first segmentation granularity is 4MB; if the first transmission bandwidth is 2G / s, the first segmentation granularity is 8MB; if the first transmission bandwidth is 4G / s, the first segmentation granularity is 16MB, and so on. This will not be elaborated here.

[0125] In one possible implementation, the background deletion task module within the server can determine the first segmentation granularity based on the first transmission bandwidth.

[0126] S202. Based on the first segmentation granularity, the first data block is segmented to obtain multiple second data blocks.

[0127] In one possible implementation, the background deletion task module within the server can round up the ratio of the first transmission bandwidth to the first segmentation granularity to obtain the number of second data blocks. Then, the background deletion task module can perform continuous segmentation according to the physical storage address of the first data blocks in ascending order. Except for the last second data block, which may be smaller than the first segmentation granularity because the total data volume of the first data blocks is not divisible by the first segmentation granularity, the data volume of each of the remaining second data blocks is equal to the first segmentation granularity. During the segmentation process, the data volume of each second data block, the starting address of each second data block, and the data volume of each second data block can be recorded to facilitate the tracking and management of subsequent deletion operations.

[0128] exist Figure 2In the illustrated embodiment, a first segmentation granularity can be determined based on a first transmission bandwidth. This first segmentation granularity indicates the data size of the second data block and can be a value indicating the size of a single second data block. Based on the first segmentation granularity, the first data block is segmented to obtain multiple second data blocks. Thus, by dynamically matching the first segmentation granularity with the first transmission bandwidth, the problem of deletion failures due to large-granularity data blocks under heavy load can be avoided. Retrying only requires processing the failed second data blocks. Furthermore, it prevents excessive data read / write interface calls and resource consumption caused by too many segments. This achieves a dynamic balance between data deletion retry efficiency and resource consumption, adapting to the limited resources of the low-priority cache pool, ensuring stable execution of background deletion tasks while maintaining overall system efficiency.

[0129] Based on the above embodiments, when deleting multiple second data blocks, some second data blocks may fail to be deleted. The following discussion, in conjunction with... Figure 3 This explains the data deletion process after deleting multiple second data blocks.

[0130] Figure 3 This is a flowchart illustrating another data deletion method provided in an embodiment of this application. Based on the above embodiments, see [link to relevant documentation]. Figure 3 The method includes:

[0131] S301. Obtain the third data block and the fourth data block. The third data block is the data block that failed to be deleted, and the fourth data block is the data block corresponding to the second feature value of the target data. The target data is the data to be deleted generated after the second data block was deleted. The second feature value is used to indicate the content of the target data.

[0132] The third data block can refer to the data block that failed to be deleted when the deletion operation was performed on the second data block in the above embodiment (S104 method) due to reasons such as high load, network fluctuation, or insufficient resources in the cache pool.

[0133] The fourth data block can refer to the data block formed by integrating the second feature values ​​corresponding to the target data; it is a newly added data block to be deleted. The target data is the newly generated data to be deleted after the second data block is deleted. The fourth data block is formed by integrating multiple second feature values ​​corresponding to the target data according to a contiguous storage rule.

[0134] The target data can refer to the newly generated data to be deleted after the deletion operation is performed on the second data block. The main reasons for its generation include: after the deletion of the second data block, the associated redundant feature values ​​are identified, newly expired feature values ​​are discovered, and feature values ​​left over after the user manually deletes the original data.

[0135] The second feature value can be used to indicate the content of the data to be deleted. The second feature value can be a feature identifier that uniquely identifies the content of the target data, including but not limited to hash fingerprints and similar fingerprints.

[0136] In one possible implementation, the background deletion task module within the server can obtain the fourth data block in the following way: After deleting multiple second data blocks, the background deletion task module within the server can continuously determine each second feature value corresponding to the target data to be deleted, and then add each second feature value to the queue to be deleted. When any condition in the preset first set of conditions is met, each second feature value can be obtained from the queue to be deleted, and then the second feature values ​​can be integrated according to the continuous storage rule to obtain the fourth data block.

[0137] In one possible implementation, the background deletion task module within the server can obtain the third data block in the following way: obtain the starting address and data volume of the second data block that failed to be deleted from the first storage space, and determine each third data block that failed to be deleted based on the starting address and data volume.

[0138] S302. Divide the fourth data block into multiple fifth data blocks.

[0139] The fifth data block can refer to the small-granularity data sub-block to be deleted obtained by the background deletion task module after dividing the fourth data block based on the second transmission bandwidth. It is the smallest unit for actually performing the deletion operation, and the data volume of a single fifth data block is determined by the second transmission bandwidth.

[0140] In one possible implementation, after obtaining the third and fourth data blocks, the background deletion task module within the server can send a request to the underlying cache module to query the current transmission bandwidth. Subsequently, the underlying cache module can determine the second transmission bandwidth and send the second transmission bandwidth to the background deletion task module.

[0141] In one possible implementation, multiple fifth data blocks can be obtained by: determining a second transmission bandwidth, which is used to delete the third and fourth data blocks; and dividing the fourth data block based on the second transmission bandwidth to obtain multiple fifth data blocks.

[0142] The second transmission bandwidth can refer to the transmission bandwidth allocated for the joint deletion operation of the third and fourth data blocks. It is used to control the deletion bandwidth usage of the third and fifth data blocks (after the fourth data block is split). Its determination method is the same as that of the first transmission bandwidth.

[0143] In one possible implementation, the underlying caching module within the server can determine the second transmission bandwidth based on the current operation type, the preset maximum transmission bandwidth, and the current load information. The method for determining the second transmission bandwidth can refer to the method for determining the first transmission bandwidth, which will not be elaborated here.

[0144] In one possible implementation, the background deletion task module within the server can also determine the second segmentation granularity based on a preset first mapping relationship and second transmission bandwidth, and segment the fourth data block based on the second segmentation granularity to obtain multiple fifth data blocks.

[0145] In this way, by determining the second transmission bandwidth and dividing the fourth data block based on the second transmission bandwidth to obtain multiple fifth data blocks with adapted bandwidth, the granularity of the newly added data blocks to be deleted can accurately match the bandwidth resources of the joint deletion. This avoids the problem of large-granularity data block deletion failure and prevents excessive system resource consumption due to too many blocks, thereby improving the stability and efficiency of the deletion operations of the third and fifth data blocks.

[0146] S303. Delete the third data block and multiple fifth data blocks.

[0147] In one possible implementation, the background deletion task module within the server can send a second deletion request to the underlying cache module. The number of the second deletion requests is the sum of the number of third data blocks and the number of fifth data blocks. The second deletion request includes the starting address of each third data block, the data size of each third data block, the starting address of each fifth data block, and the data size of each fifth data block. After the underlying cache module receives multiple second deletion requests, it can delete the third data blocks and multiple fifth data blocks.

[0148] In one possible implementation, the underlying caching module can delete the third data block and multiple fifth data blocks as follows: It determines whether the starting address of the data block included in the current second deletion request matches the starting address of the data block in the retry list. If they do not match, it indicates that the current second deletion request is for the fifth data block, and when deleting the fifth data block, it is directly deleted based on the current second deletion request. If they match, it indicates that the current second deletion request is for the third data block, and if the third data block was not successfully deleted by the asynchronous thread when the second condition is met, then the third data block is deleted again. This can reduce peak-hour pressure.

[0149] In one possible implementation, upon successful deletion of the third and fifth data blocks, information indicating successful deletion of the third and fifth data blocks can be returned to the background deletion task module.

[0150] In one possible implementation, when the deletion of the third and fifth data blocks fails, the information about the failed deletion, the starting address of the third and fifth data blocks, and the data volume of the third and fifth data blocks can be returned to the background deletion task module. After receiving this information, the background deletion task module stores the starting address and data volume of the third and fifth data blocks in a preset first storage space. At the same time, the underlying cache module in the server can also add the second deletion request corresponding to the failed deletion of the third and fifth data blocks to the retry list. When a preset second condition is met, the underlying cache module can start an asynchronous thread and process the failed second deletion request again through the asynchronous thread.

[0151] exist Figure 3 In the illustrated embodiment, a third data block and a fourth data block are obtained. The third data block is the data block that failed to be deleted, and the fourth data block is the data block corresponding to the second feature value of the target data. The target data is the data to be deleted generated after the deletion of the second data block. The second feature value is used to indicate the content of the target data. The third data block may refer to the data block that failed to be deleted when the deletion operation was performed on the second data block due to reasons such as high load, network fluctuations, or insufficient resources in the cache pool. The fourth data block is then divided to obtain multiple fifth data blocks. The fifth data blocks may refer to the small-granularity sub-blocks of data to be deleted obtained by the background deletion task module based on the second transmission bandwidth after dividing the fourth data block. The third data block and the multiple fifth data blocks are then deleted. In this way, by using the above method, the third data block that failed to be deleted and the newly generated fourth data block are uniformly included in the deletion process. The newly added fourth data block is reasonably divided before being uniformly deleted. This ensures that the failed data can be retried and cleaned up, while timely processing of the newly added target data to be deleted, avoiding the accumulation of data blocks, reducing the failure risk and system resource consumption of a single deletion, and improving the overall stability and success rate of data deletion.

[0152] Based on the above embodiments, it is also possible to: determine the first capacity that needs to be expanded in the first cache space, the first cache space being used to carry data processing operations of the first priority; based on the first capacity, determine a target space in the second cache space, the second cache space being used to carry data processing operations of the second priority, the second priority data processing operations including data deletion, the first priority being higher than the second priority; and allocate the target space of the second cache space to the first cache space.

[0153] The first cache space refers to a dedicated high-speed cache area within a server, used to handle the highest priority data processing operations. It provides a fast data read / write and processing channel for high-priority services, ensuring their response speed and execution stability. The first cache space has the highest priority in resource allocation; when space is insufficient, redundant resources can be allocated from lower-priority cache spaces.

[0154] The first priority data processing operation can refer to the business data processing operation. This type of operation can directly affect the user experience and normal business operation, and has a higher priority than all other data processing operations. The first priority data processing operation can be understood as the data writing operation in the above embodiment, such as user file upload, business data entry and other operations.

[0155] The first capacity can refer to the current remaining capacity of the first cache space, which is insufficient to meet the real-time needs of the first priority data processing operations, and the size of the cache capacity that needs to be expanded.

[0156] The second cache space can refer to a high-speed cache area in the server that is specially allocated to carry out second-priority data processing operations. It has a lower priority than the first cache space and can be used to provide caching support for low-priority services. When the first cache space is insufficient, its redundant resources can be allocated to the first cache space.

[0157] Second-priority data processing operations can refer to data processing operations that are less important than first-priority operations and can be performed without affecting core business operations. Second-priority data processing operations can be understood as data deletion operations in the above embodiments.

[0158] The target space can refer to the cache region that is partitioned from the second cache space to supplement the first cache space. Its capacity is the same as the first cache space, that is, the capacity that the first cache space needs to be expanded.

[0159] In one possible implementation, the first capacity can be determined as follows: the storage status of the first cache space can be scanned to obtain the real-time remaining capacity of the first cache space. At the same time, the real-time caching requirements of the first priority data processing operations can be determined by monitoring the execution status and data transmission volume of the foreground business. Then, the difference between the real-time caching requirements and the real-time remaining capacity is determined. If the difference is less than or equal to the real-time remaining capacity, it indicates that the capacity of the first cache space is sufficient and no expansion is needed, and this process can be terminated. If the difference is greater than the real-time remaining capacity, it indicates that the capacity of the first cache space is insufficient and expansion is needed, and the difference is determined as the first capacity.

[0160] It should be noted that the sum of this difference and the first minimum guarantee amount can also be determined as the first capacity. The first minimum guarantee amount is a pre-set minimum reserved capacity to ensure that the first cache space has sufficient redundancy to cope with sudden growth in front-end business. For example, the first minimum guarantee amount is 1GB.

[0161] In one possible implementation, the target space can be determined as follows: the total capacity, occupied capacity, remaining capacity, and minimum cache requirement of the current second priority data processing operation in the second cache space can be scanned to ensure that the remaining capacity of the second cache space is greater than or equal to the sum of the minimum cache requirement and the first capacity; then, in the remaining area of ​​the second cache space, a continuous cache area with the same capacity as the first capacity is selected, and the start address and end address of the cache area are marked.

[0162] In one possible implementation, the target space of the second cache space can be allocated to the first cache space in the following way: the target space in the second cache space can be formally allocated to the first cache space through system configuration adjustment, and the remaining capacity and address range of the first and second cache spaces can be updated to ensure that the first cache space can use the target space immediately and to ensure the normal execution of data operations with the second priority.

[0163] Wherein, after the target space of the second cache space is divided into the first cache space, the total capacity of the first cache space is the sum of the total capacity of the first cache space before the division and the first capacity, and the total capacity of the second cache space is the difference between the total capacity of the second cache space before the division and the first capacity.

[0164] In this way, by determining the first capacity that needs to be expanded in the first cache space, and allocating a target space matching that capacity from the second cache space that carries data deletion operations to supplement the first cache space, it is possible to ensure that the first priority data processing operations obtain sufficient cache resources while ensuring the stable execution of high priority services, and without affecting the normal execution of second priority operations such as background data deletion. This can achieve dynamic optimization and allocation of cache resources among services of different priorities, and improve the utilization rate of server cache resources.

[0165] Below, in conjunction with Figure 4 The process of allocating cache space will be explained.

[0166] Figure 4 This is a schematic diagram illustrating the partitioning of cache space provided in an embodiment of this application. Based on the above embodiments, see also... Figure 4 The method includes:

[0167] When a data processing request (including requests corresponding to data write operations and requests corresponding to data delete operations) arrives at the cache partition manager, it can first determine whether the priority of the data processing request belongs to the second priority data processing operation. If the data processing request does not belong to the second priority data processing operation and belongs to the first priority data processing operation (i.e., data write operation), it is allocated to the first cache space used to carry this type of operation. If the data processing request belongs to the second priority data processing operation (i.e., data delete operation), it is allocated to the second cache space used to carry this type of operation.

[0168] After the data processing request allocation is completed, it can be further determined whether the source cache pool of the data processing request comes from the first cache space. If it comes from the first cache space, the request enjoys the highest priority. When the capacity of the first cache space is insufficient, it can preempt the free quota of the second cache space. If it comes from the second cache space, the cache quota it occupies can be preempted by the first cache space, and the minimum cache requirement to meet the normal execution of the data processing operation with the second priority is reserved. In the initial state, the quota ratio of the first cache space and the second cache space can be preset. For example, the quota ratio of the first cache space and the second cache space is 6:4.

[0169] Finally, since the essence of data deletion operation is to perform a write operation on the storage medium to mark invalid data and release storage space, it is further possible to determine whether the write-back type corresponding to the data processing request is a high-priority write-back. If the write-back type corresponding to the data processing request is a high-priority write-back, a high-priority write-back channel of the disk is allocated to the first-priority data processing operation corresponding to the first cache space to ensure its bandwidth and latency. If the write-back type corresponding to the data processing request is not a high-priority write-back, a low-priority write-back channel is allocated to the second-priority data processing operation corresponding to the second cache space, and the remaining bandwidth is used to complete the data deletion. This achieves the goal of prioritizing the stability of the bandwidth of the foreground data write operation and avoiding the blocking of the data deletion operation.

[0170] To facilitate understanding, the following will be explained... Figure 5 The complete data deletion process is explained. Figure 5 A flowchart illustrating the complete data deletion method provided in the application embodiments, as shown below. Figure 5 As shown, the method includes:

[0171] S501, Obtain the first data block.

[0172] S502, Obtain operation type, preset maximum transmission bandwidth and load information.

[0173] S503. Determine the first transmission bandwidth based on the operation type, the preset maximum transmission bandwidth, and the load information.

[0174] S504. Determine the first segmentation granularity based on the first transmission bandwidth.

[0175] S505. Based on the first segmentation granularity, the first data block is segmented to obtain multiple second data blocks.

[0176] S506. Delete multiple second data blocks.

[0177] The specific implementation method and technical effects in this embodiment are similar to those in the above embodiments, and will not be repeated here.

[0178] Figure 6 This is a schematic diagram of the structure of a data deletion device provided in an embodiment of this application, as shown below. Figure 6 As shown, the device 60 includes: an acquisition module 601, a determination module 602, a first processing module 603, and a deletion module 604.

[0179] The acquisition module 601 is used to acquire a first data block, which is determined based on a first feature value corresponding to the data to be deleted. The first feature value is used to indicate the content of the data to be deleted.

[0180] The determining module 602 is used to determine the first transmission bandwidth, which is used to delete the first data block;

[0181] The first processing module 603 is used to divide the first data block based on the first transmission bandwidth to obtain multiple second data blocks;

[0182] The deletion module 604 is used to delete multiple second data blocks.

[0183] The apparatus in this embodiment can be used to execute the technical solutions of the above method embodiments. The specific implementation methods and technical effects are similar, and will not be described again here.

[0184] Optionally, in the above-described apparatus, the first processing module 603 is specifically used for,

[0185] Based on the first transmission bandwidth, a first segmentation granularity is determined, which is used to indicate the amount of data in the second data block;

[0186] Based on the first segmentation granularity, the first data block is segmented to obtain multiple second data blocks.

[0187] Optionally, in the above-described apparatus, the determining module 602 is specifically used for,

[0188] Get the operation type, preset maximum transmission bandwidth, and load information. The operation type includes data deletion and data writing.

[0189] The first transmission bandwidth is determined based on the operation type, the preset maximum transmission bandwidth, and the load information.

[0190] The apparatus in this embodiment can be used to execute the technical solutions of the above method embodiments. The specific implementation methods and technical effects are similar, and will not be described again here.

[0191] Figure 7 This is a schematic diagram of another data deletion device provided in an embodiment of this application. Figure 6 Based on what is shown, as Figure 7 As shown, the device also includes a second processing module 605.

[0192] Optionally, in the above apparatus, the second processing module 605 is used for,

[0193] Obtain the third data block and the fourth data block. The third data block is the data block that failed to be deleted, and the fourth data block is the data block corresponding to the second feature value of the target data. The target data is the data to be deleted generated after the second data block was deleted. The second feature value is used to indicate the content of the target data.

[0194] The fourth data block is split to obtain multiple fifth data blocks;

[0195] Delete the third data block and multiple fifth data blocks.

[0196] Optionally, in the above-described apparatus, the second processing module 605 is specifically used for,

[0197] A second transmission bandwidth is determined, which is used to delete the third and fourth data blocks;

[0198] Based on the second transmission bandwidth, the fourth data block is divided into multiple fifth data blocks.

[0199] The apparatus in this embodiment can be used to execute the technical solutions of the above method embodiments. The specific implementation methods and technical effects are similar, and will not be described again here.

[0200] Figure 8 This is a schematic diagram of another data deletion device provided in an embodiment of this application. Figure 6 and Figure 7 Based on what is shown, as Figure 8 As shown, the device also includes a third processing module 606.

[0201] Optionally, in the above-described apparatus, the third processing module 606 is used for,

[0202] Determine the first capacity that needs to be expanded in the first cache space, which is used to carry data processing operations of the first priority;

[0203] Based on the first capacity, a target space is determined in the second cache space. The second cache space is used to carry data processing operations of the second priority, which include data deletion. The first priority is higher than the second priority.

[0204] The target space of the second cache space is allocated to the first cache space.

[0205] The apparatus in this embodiment can be used to execute the technical solutions of the above method embodiments. The specific implementation methods and technical effects are similar, and will not be described again here.

[0206] Figure 9 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application, such as... Figure 9 As shown, the electronic device 90 may include at least one processor 901 and a memory 902.

[0207] The memory 902 is used to store programs. Specifically, the program may include program code, which includes computer-executable instructions.

[0208] The memory 902 may include random access memory (RAM) and may also include non-volatile memory, such as at least one disk storage.

[0209] The processor 901 is used to execute computer execution instructions stored in the memory 902 to implement the method described in the foregoing method embodiments. The processor 901 may be a CPU, an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of this application.

[0210] Optionally, the electronic device 90 may also include a communication interface 903. In specific implementations, if the communication interface 903, memory 902, and processor 901 are implemented independently, they can be interconnected via a bus to complete communication. The bus can be an industry standard architecture (ISA) bus, a peripheral component (PCI) bus, or an extended industry standard architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc., but this does not imply that there is only one bus or one type of bus.

[0211] Optionally, in a specific implementation, if the communication interface 903, memory 902, and processor 901 are integrated on a single chip, then the communication interface 903, memory 902, and processor 901 can communicate through an internal interface.

[0212] Electronic devices 90 can be servers, etc.

[0213] The electronic device in this embodiment can be used to execute the technical solutions of the above method embodiments. The specific implementation methods and technical effects are similar, and will not be repeated here.

[0214] This application provides a computer-readable storage medium, which may include various media capable of storing computer-executable instructions, such as USB flash drives, portable hard drives, read-only memory (ROM), RAM, disks, or optical discs. Specifically, the computer-readable storage medium stores computer-executable instructions, which, when executed by a computer, cause the technical solution shown in the above method embodiment to be executed. The specific implementation and technical effects are similar and will not be repeated here.

[0215] This application provides a computer program product, including a computer program. When the computer program is executed by a computer, the technical solution shown in the above method embodiment is executed. The specific implementation method and technical effect are similar, and will not be repeated here.

[0216] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are all optional embodiments, and the actions and modules involved are not necessarily essential to this application.

[0217] It should be further noted that although the steps in the flowchart are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowchart may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the sub-steps or stages of other steps.

[0218] It should be understood that the above-described device embodiments are merely illustrative, and the device of this application can also be implemented in other ways. For example, the division of units / modules in the above embodiments is only a logical functional division, and there may be other division methods in actual implementation. For example, multiple units, modules, or components may be combined, or integrated into another system, or some features may be ignored or not executed.

[0219] Furthermore, unless otherwise specified, the functional units / modules in the various embodiments of this application can be integrated into one unit / module, or each unit / module can exist physically separately, or two or more units / modules can be integrated together. The integrated units / modules described above can be implemented in hardware or as software program modules.

[0220] When an integrated unit / module is implemented in hardware, the hardware can be digital circuits, analog circuits, etc. The physical implementation of the hardware structure includes, but is not limited to, transistors, memristors, etc. Unless otherwise specified, the processor can be any suitable hardware processor, such as a CPU, GPU, FPGA, DSP, and ASIC, etc. Unless otherwise specified, the storage unit can be any suitable magnetic or magneto-optical storage medium, such as Resistive Random Access Memory (RRAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Enhanced Dynamic Random Access Memory (EDRAM), High-Bandwidth Memory (HBM), Hybrid Memory Cube (HMC), etc.

[0221] If the integrated unit / module is implemented as a software program module and sold or used as an independent product, it can be stored in a computer-readable storage device (CMD). Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a memory and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned memory includes various media capable of storing program code, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard drive, magnetic disk, or optical disk.

[0222] In the above embodiments, the descriptions of each embodiment have their own emphasis. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments. The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as the combination of these technical features does not contradict each other, it should be considered within the scope of this specification.

[0223] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this application are indicated by the following claims.

[0224] It should be understood that this application is not limited to the precise structure described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this application is limited only by the appended claims.

Claims

1. A data deletion method, characterized in that, include: Obtain a first data block, which is determined based on a first feature value corresponding to the data to be deleted, and the first feature value is used to indicate the content of the data to be deleted; A first transmission bandwidth is determined, and the first transmission bandwidth is used to delete the first data block; Based on the first transmission bandwidth, the first data block is divided into multiple second data blocks; The plurality of second data blocks are deleted.

2. The method according to claim 1, characterized in that, The step of dividing the first data block based on the first transmission bandwidth to obtain multiple second data blocks includes: Based on the first transmission bandwidth, a first segmentation granularity is determined, which is used to indicate the amount of data in the second data block; Based on the first segmentation granularity, the first data block is segmented to obtain multiple second data blocks.

3. The method according to claim 1, characterized in that, Determining the first transmission bandwidth includes: Obtain the operation type, preset maximum transmission bandwidth, and load information; the operation type includes data deletion and data writing. The first transmission bandwidth is determined based on the operation type, the preset maximum transmission bandwidth, and the load information.

4. The method according to claim 1, characterized in that, After deleting the plurality of second data blocks, the method further includes: Obtain a third data block and a fourth data block. The third data block is a data block that failed to be deleted, and the fourth data block is a data block corresponding to the second feature value of the target data. The target data is the data to be deleted generated after the second data block was deleted. The second feature value is used to indicate the content of the target data. The fourth data block is divided into multiple fifth data blocks; The third data block and the plurality of fifth data blocks are deleted.

5. The method according to claim 4, characterized in that, The process of dividing the fourth data block to obtain multiple fifth data blocks includes: A second transmission bandwidth is determined, which is used to delete the third data block and the fourth data block; Based on the second transmission bandwidth, the fourth data block is divided to obtain multiple fifth data blocks.

6. The method according to claim 1, characterized in that, The method further includes: Determine the first capacity that needs to be expanded in the first cache space, the first cache space being used to carry data processing operations of the first priority; Based on the first capacity, a target space is determined in the second cache space. The second cache space is used to carry data processing operations of the second priority, which include data deletion. The first priority is higher than the second priority. The target space of the second cache space is allocated to the first cache space.

7. A data deletion device, characterized in that, include: The acquisition module is used to acquire a first data block, which is determined based on a first feature value corresponding to the data to be deleted, and the first feature value is used to indicate the content of the data to be deleted. A determining module is used to determine a first transmission bandwidth, which is used to delete the first data block; The first processing module is used to divide the first data block into multiple second data blocks based on the first transmission bandwidth; The deletion module is used to delete the plurality of second data blocks.

8. An electronic device, characterized in that, include: A processor, and a memory communicatively connected to the processor; The memory stores computer-executed instructions; The processor executes computer execution instructions stored in the memory to implement the method as described in any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, are used to implement the method as described in any one of claims 1 to 6.

10. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method described in any one of claims 1-6.