Method and system for acquiring hot and cold data by intercepting NVMe command through driver
By intercepting and listening to NVMe commands to obtain hot and cold data, the problem of inaccurate differentiation in existing technologies is solved, achieving more accurate differentiation between hot and cold data, reducing the number of write and erase operations on solid-state drives, and extending their lifespan.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-20
- Publication Date
- 2026-03-20
AI Technical Summary
Existing technologies that use timestamps and user data from solid-state drives (SSDs) to distinguish between hot and cold data are not accurate enough, leading to an increase in the number of write and erase operations on SSDs and affecting their lifespan.
By intercepting and listening to NVMe commands through the driver, information including LBA, operation type and operation size is parsed to create a hot data statistics table, accurately marking and distinguishing between hot and cold data.
This reduces the number of write/erase operations on solid-state drives, extends their lifespan, and improves storage efficiency and capacity utilization.
Smart Images

Figure CN117742601B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of obtaining cold and hot data, and particularly relates to a method for obtaining cold and hot data by intercepting and monitoring NVMe commands through a driver. BACKGROUND
[0002] A solid state disk (SSD) is a type of hard disk made from an array of solid-state electronic storage chips. It usually uses NAND Flash to store data. NAND Flash memory blocks must be erased in their entirety before writing data, and can only handle additional writes after being erased. The smallest granularity of NAND Flash memory write is a page. Each memory block is composed of a series of pages. When the block is erased, it is in an empty state. When all the pages in the block have been written, the block is full and cannot accept new writes. It must be erased in its entirety before it can accept new writes.
[0003] The service life of a solid state disk is related to the number of times the memory blocks are erased. After a certain number of erasures, the solid state disk will be damaged and unable to read and write data. Erasing the memory blocks of a solid state disk will cause wear and tear on the memory blocks. Therefore, data is classified into hot data and cold data categories based on access frequency and importance. The distinction between hot and cold data in a solid state disk (SSD) can help optimize data storage and improve storage efficiency and capacity utilization. The usual practice is to store the identified hot and cold data in different areas. By separating hot and cold data, the impact of cold data on hot data read-write performance can be reduced, providing faster response times and higher throughput. In addition, the service life of a solid state disk is related to the number of erase-write operations. Hot data is frequently read and written, while cold data is rarely changed. Separating hot and cold data can reduce the number of erase-write operations on the SSD, thereby extending its service life.
[0004] The key to separating hot and cold data is the distinction between hot and cold data. Different algorithms and techniques can be used to determine and identify hot data through the driver. Existing technologies distinguish between hot and cold data by, for example, data access frequency, timestamp, etc. For example, the patent document "CN116225334A, a cold and hot data storage method, device and medium" disclosed in the prior art. The technology disclosed in this patent document is as follows: when a write command is received, the current time stamp of the solid state disk is obtained; the time stamp, the logical block address corresponding to the write command, and the user data in the write command are saved together; the cold and hot attributes of the user data are obtained by querying the logical block address cold and hot attribute table; and the user data is stored in the corresponding storage location according to the cold and hot attributes.
[0005] The time stamp and user data of the solid state disk are not accurate enough to distinguish hot data and cold data, which is a problem to be solved by those skilled in the art. SUMMARY
[0006] The present application aims to at least solve one of the technical problems existing in the prior art. To this end, the embodiment of the present application provides a method for obtaining hot and cold data by intercepting NVMe commands through a driver. The method obtains NVMe commands through an intercepting function by the driver and analyzes them to obtain a record table including LBA (logical block address) range, operation type (read or write), operation size, etc., thereby accurately marking hot data and distinguishing system hot and cold data.
[0007] According to the method for obtaining hot and cold data by intercepting NVMe commands through a driver according to the first aspect of the present application, the method steps include:
[0008] S0: creating a hot data statistics table, including time, count, flag, pre_flag, special_flag, data: lba, block, size fields;
[0009] S1: loading a hot data driver to obtain a host command;
[0010] S2: determining whether there is an application module that needs to directly set hot data in the host command, if yes, going to S3, if no, going to S5;
[0011] S3: analyzing data from the application module that directly sets hot data and setting the hot data special flag to true;
[0012] S4: inserting the hot data special flag value into the hot data statistics table;
[0013] S5: intercepting and monitoring commands (NVME) and determining whether the intercepted and monitored commands are NVMe commands, if not, going to S6, if yes, going to S7;
[0014] S6: ending the interception and monitoring of the commands;
[0015] S7: analyzing data in the NVMe command;
[0016] S8: obtaining write command information in the NVMe command data;
[0017] S9: determining whether the time interval in the write command information is less than the hot data read-write threshold time, if yes, going to S10, if not, going to S17;
[0018] S10: updating the logical block address record count value in the write command to 1 in the hot data statistics table;
[0019] S11: updating the time field timestamp in the hot data statistics table to the monitoring time;
[0020] S12: obtaining hot data according to the count number in the hot data statistics table by an internal function;
[0021] S13: judging whether the data with a higher count number is less than a preset threshold data, if yes, going to S14, if no, going to S16;
[0022] S14: reordering according to the block data size in the hot data statistics table;
[0023] S15: setting the pre_flag value in the hot data statistics table to true, and updating the hot data statistics table;
[0024] S16: setting the flag of the top 10% to 20% data of the average value of the number of times of monitoring the lba to true, marking the data as hot data, and updating the hot data statistics table;
[0025] S17: setting the logical block address record count value count in the write command to 1;
[0026] S18: judging whether the flag in the hot data statistics table is true, if yes, going to S19, if no, going to S12;
[0027] S19: setting the flag in the hot data statistics table to false, pre_flag=true, and going to S12.
[0028] Further, the preset threshold data is data with the condition that pre_flag is true and flag is false.
[0029] Further, the hot data read-write threshold time is data obtained by averaging the time of writing data to the disk and the time of reading data from the disk during the whole disk read-write of the SSD.
[0030] Further, the hot data read-write threshold time is mapped into the mapping table of the hard id and the read-write d(w), d(r) of the SSD.
[0031] Further, the hot data proportion range is 10% to 20% of the average value of the number of times of monitoring the lba during the whole disk read-write of the SSD, as the hot data proportion range.
[0032] Further, the hot data proportion range is mapped into the mapping table of the hard id and n(w), n(r) of the SSD.
[0033] Further, the hot data statistics table is stored in the memory or the register.
[0034] According to the method for acquiring hot and cold data by intercepting and monitoring NVMe commands through a driver provided in the embodiment of the application, at least the following advantages are achieved
[0035] Advantages:
[0036] The hook function in the kernel module is used to monitor and intercept the NVMe command to process and analyze the screening and prediction of hot and cold data, and then send the analyzed hot and cold data information to the firmware. The hot and cold data are stored separately, which can reduce the number of erase and write operations of the SSD, thereby prolonging the service life of the SSD.
[0037] The embodiment of the application also provides a system for acquiring hot and cold data by intercepting and monitoring NVMe commands through a driver, which comprises:
[0038] a hot data driving module, a data analysis module, a hot data statistical table module, an NVMe command analysis module, and a controller
[0039] The hot data driving module is configured to acquire and analyze host command data.
[0040] The data analysis module is configured to analyze hot data in the host command and the NVMe command.
[0041] The hot data statistical table module executes the method according to claims 1 to 7, updates the hot data state to the hot data statistical table, and executes hot and cold data processing by the controller.
[0042] According to the system for acquiring hot and cold data by intercepting and monitoring NVMe commands through a driver provided in the embodiment of the second aspect of the application, at least the following advantages are achieved
[0043] The hook function in the kernel module is used to monitor and intercept the NVMe command to process and analyze the screening and prediction of hot and cold data, and then send the analyzed hot and cold data information to the firmware. The hot and cold data are stored separately, which can reduce the number of erase and write operations of the SSD, thereby prolonging the service life of the SSD.
[0044] Additional aspects and advantages of the application will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and / or by practice of the application. BRIEF DESCRIPTION OF DRAWINGS
[0045] The above and / or additional aspects and advantages of the application will become apparent and be readily understood by a person of ordinary skill in the art from the following description, taken in conjunction with the accompanying drawings in which:
[0046] Figure 1 A system flowchart for acquiring hot and cold data by intercepting and monitoring NVMe commands through a driver is provided in the embodiment of the application.
[0047] Figure 2 This application provides a schematic diagram illustrating the workflow of a method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver embodiment.
[0048] Figure 3 A thermal data statistics table structure diagram of a method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver embodiment is provided in this application.
[0049] Figure 4 This is a schematic diagram of a system for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver, as provided in an embodiment of this application. Detailed Implementation
[0050] Embodiments of the present invention are described in detail below. Examples of these embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain the present invention, and should not be construed as limiting the present invention.
[0051] In the description of this invention, unless otherwise explicitly defined, terms such as "set up," "install," and "connect" should be interpreted broadly, and those skilled in the art can reasonably determine the specific meaning of the above terms in this invention in conjunction with the specific content of the technical solution.
[0052] Solid-state drives (SSDs) are hard drives made using arrays of solid-state electronic storage chips. They typically use NAND flash memory to store data. Before writing data to a NAND flash memory block, the entire block must be erased. The smallest unit of writing to NAND flash memory is a page. Each flash memory block consists of a series of pages. When a flash memory block is erased, it is in an empty state. When all the pages in the block have been written to, the flash memory block is said to be full. If a flash memory block is full, it cannot receive new writes until it is completely erased.
[0053] The service life of the solid state disk is related to the number of erasing times of the flash memory block, and the solid state disk will be damaged and unable to read and write data after exceeding a certain number of erasing times. Erasing the flash memory block of the solid state disk will cause wear and tear of the flash memory block. Therefore, according to the access frequency and importance of data, the data is divided into hot data and cold data categories. The classification of hot and cold data of the solid state disk (SSD) can help optimize data storage and improve storage efficiency and capacity utilization. The usual practice is to store the identified hot and cold data in different areas. By separating the storage of hot and cold data, the impact of cold data on the read and write performance of hot data can be reduced, providing faster response time and higher throughput. In addition, the service life of the solid state disk is related to the number of erasing and writing operations. Hot data is frequently read and written, while cold data is rarely changed. Separating the storage of hot and cold data can reduce the number of erasing and writing operations of the SSD, thereby prolonging its service life.
[0054] In order to illustrate the present application, the relevant technical terms will be explained as follows:
[0055] Driver: The driver is responsible for detecting and identifying the SSD connected to the system and performing necessary initialization operations to ensure correct communication and function. The driver defines an interface that allows the operating system and application programs to communicate with the SSD through standard read and write commands. This includes operations such as transmitting data, sending commands, and receiving responses. The driver can also provide advanced functions such as firmware upgrades, error handling, performance optimization, and power management through the driver configuration and control.
[0056] Hot data: refers to data that is frequently accessed or used within a certain period of time.
[0057] NVMe (Non-Volatile Memory Express) controller: is one of the key components in modern solid state disks (SSD), used to manage and control flash memory chips and communicate with the host.
[0058] The present application mainly solves the classification of hot and cold data of the solid state disk. Through the driver, the NVMe command is intercepted and analyzed to obtain a record table including the LBA (Logical Blocked Address) range, operation type (read or write), and operation size, thereby realizing the marking of hot data and the classification of system hot and cold data.
[0059] As shown in Figure 1 and Figure 2 , the present embodiment provides a method for obtaining hot and cold data by intercepting NVMe commands through the driver as follows:
[0060] Step one: create a hot data statistics table, including time, count, flag, pre_flag, special_flag, data: lba, block, size fields;
[0061] Create a hot data statistics table, establish the above fields, and store hot data records.
[0062] Step two: load the hot data driver and get the host command;
[0063] Load the hot data driver after the system starts running, and get the system command from the host.
[0064] Step three: determine whether there is an application module that needs to directly set hot data in the host command. If yes, go to step four, if no, go to step six;
[0065] Step four: parse data from the hot data application module and set the hot data special flag to true;
[0066] The driver can develop appropriate data management strategies according to different application scenarios and user needs, and be more personalized and flexible. For example, for some specific applications, their related data can be directly marked as hot data in the driver to provide faster access speed and improve the performance of specific applications and other actual needs.
[0067] Step five: insert the hot data special flag value into the hot data statistics table;
[0068] After identifying the data in the specific application program as hot data, insert the special hot data flag value into the hot data statistics table.
[0069] Step six: intercept and listen to NVME commands;
[0070] Step seven: determine whether the intercepted and listened to command is an NVMe command. If not, go to step eight, if yes, go to step nine;
[0071] Step six and step seven can be combined into one step in this embodiment.
[0072] Step eight: end the intercepted and listened to command;
[0073] Step nine: parse the data in the NVMe command;
[0074] Step ten: get the write command information in the NVMe command data;
[0075] Step eleven: determine whether the time interval in the write command information is less than the hot data read-write threshold time. If yes, go to step twelve, if no, go to step nineteen;
[0076] Step twelve: update the hot data statistics table with the logical block address record count value in the write command plus 1;
[0077] Step thirteen: update the time field timestamp in the hot data statistics table to the monitoring time;
[0078] Step fourteen: the internal function obtains hot data according to the count number in the hot data statistics table;
[0079] Step fifteen: determine whether the data with a higher count number is less than the preset threshold data, if yes, go to step sixteen, if no, go to step seventeen;
[0080] In this step, the preset threshold data refers to data with pre_flag=true & flag=false, and the data with a higher count number is compared with other data, and if it is less than the preset threshold data, it is considered to be relevant to the smaller.
[0081] Step sixteen: reorder according to the block data size in the hot data statistics table;
[0082] Step seventeen: set the pre_flag value in the hot data statistics table to true, and update the hot data statistics table;
[0083] Step eighteen: the first n(w)% data flag=true, marked as hot data, and the hot data statistics table is updated;
[0084] Take the average of the number of times the lba is monitored, and take the first 10%~20% of the data in the ssd write data, which is stored in the mapping table of the ssd hard id and n(w), n(r).
[0085] Step nineteen: this write lba record count=1;
[0086] Set the logical block address record count value count in the write command to 1.
[0087] Step twenty: determine whether the flag in the hot data statistics table is true, if yes, go to step twenty-one, if no, go to step fourteen;
[0088] Step twenty-one: set the flag in the hot data statistics table to false, and the pre_flag to true, and go to step fourteen.
[0089] In the present embodiment, (1) when the driver starts, it first determines whether the data source is data of a special application, i.e., using appropriate packet capture technology (such as underlying network monitoring, hook functions, etc.) to capture data packets or requests from the target application. The captured data packets are parsed, and the key fields related to read and write operations are found and extracted. After obtaining the information related to these read and write operations, the special_flag is set to true, and the relevant fields of the hot data statistics table are directly inserted.
[0090] (2) If it is determined that an NVMe write command is monitored, the information of the lba is first analyzed, and the requested time "t1" and the lba information "lba1" of the data are obtained, and then the judgment begins. If the lba is not recorded in the table, its record information is added and inserted: lba1,1,t1; if the record already exists, the existing record is, for example, lba1,1,t0, the driver will subtract the time t0 of the current judgment record from the time "t1" of the lba1 just monitored to obtain tx, if tx
[0091] After updating the table, it is sorted by the count number. The data with the count number in the first n(w)% will have the flag changed to true, and the rest of the data will have the flag changed to false. That is, the flag is changed to true to mark the hot data, and the data with the count number of 1 is marked as cold data, and its information is transmitted to the nvme controller.
[0092] (3) If the data cannot be marked as hot data through driver analysis, and the count numbers of the first n% data are similar, the driver can filter the same block data in the table as "high-priority hot data". The data with a relatively large count number, belonging to the same block, and with a large data size is considered as predicted hot data, i.e., the pre_flag is changed to true. That is, when the flag is not true, the data with the pre_flag changed to true is considered as "pre-hot data", and its information is transmitted to the nvme controller. If the flag of the lba is changed to true thereafter, the pre_flag needs to be automatically changed to false.
[0093] In the embodiment, when the system is started, the driver loads the program into the kernel after being initialized, and the command interception function is implemented by using the kernel module in the LINUX system, all NVMe commands sent by the application program are intercepted through the function, when the driver captures the NVMe command, it records some information about the command, including: including LBA (Logical Blocked Address) range, operation type (read or write), operation size, etc.
[0094] In the embodiment, the driver maintains a table in the kernel or the register, which is used to store hot data related information, and the table structure is as shown in Figure 3
[0095] data: lba, block, size, offset, etc. data information;
[0096] count: the number of times that the lba is monitored by the driver;
[0097] time: the last monitoring time of the lba;
[0098] flag: whether the lba is marked as hot data.
[0099] pre_flag: predicted hot data flag.
[0100] special_flag: special hot data field, the special flag obtained by the driver can be directly marked as hot data, such as a certain specific upper application program.
[0101] In the creation process of the table, the update of the time field and the insertion condition need to be judged by the driver by setting the hot data read-write threshold time d, that is, only the read-write in the range is effective. The threshold time d of each solid state disk (SSD) is obtained by experiment and test, and the average time length data of the whole disk read-write is obtained, which is stored in the mapping table of the hard id and read-write d(w), d(r) of the SSD. At the same time in this experiment and test, the data with high count field is obtained as hot data through the test, and the average value n% (10%~20%) is calculated as the hot data proportion range through multiple experiments. Similarly, the hard id and n(w), n(r) of the SSD are mapped in the table. When the driver of the application runs, the corresponding data d and n are obtained from the above table, and the specific implementation strategy can be optimized in the internal processing.
[0102] In the embodiment, the following methods can be used in the driver to meet the actual needs.
[0103] Firstly, NVMe commands are monitored and intercepted:
[0104] In the driver, a hook function in the kernel module can be registered at a suitable location (such as the I / O path or the request processing path) to listen to and intercept the NVMe command. The hook function can be executed before the NVMe command reaches the driver and parses the command. First, a hook function is defined in the driver to handle the NVMe command, intercept and process the NVMe command, and perform corresponding operations as needed, such as logging, modifying command parameters, etc. Second, register the hook function at a suitable location (such as the I / O path or the request processing path). For example, register the hook function in the NVMe queue request processing function, call the hook function, pass the NVMe device and command parameters to it, and continue processing the NVMe request.
[0105] When the NVMe queue request processing function is called, it will first call the registered hook function my_hook, pass the NVMe device and command parameters to it for processing, so as to achieve the purpose of listening and intercepting.
[0106] Second, implement communication with the controller:
[0107] In the driver, the ioctl function can be used to communicate with the SSD firmware through the NVMe driver, and the hot data obtained by the driver can be sent to the firmware through the defined interface. Build a data information structure, such as: lba, block, count, time, flag, pre_flag, special_flag; Create an NVMe interface class, which is used to open the NVMe device file, judge the opening result of the device file, such as error or other error handling measures, close the device file after completing the corresponding operation; Send a command to the SSD and receive data information, first set the command parameters, fill the data information into the command structure, set the value of each field according to the specific requirements, and realize communication with the controller.
[0108] As shown in a system for intercepting and listening to NVMe commands to obtain hot and cold data through a driver, comprising: a hot data driver module, a data analysis module, a hot data statistics table module, an NVMe command analysis module, and a controller. Figure 4
[0109] The hot data driver module is used to obtain and analyze host command data.
[0110] The data analysis module is used to analyze hot data in host commands and NVMe commands.
[0111] The hot data statistics table module updates the hot data state to the hot data statistics table by judging the hot data, and the controller performs hot and cold data processing.
[0112] Through the above-mentioned embodiments, the actual application after the drive program obtains the hot and cold data:
[0113] Hot data optimization: SLC & TLC tiered storage
[0114] The firmware adds a hot data flag to the hot data obtained by the drive. The marked hot data is written to SLC first, and other data is written to TLC. When the SSD is in an idle state, the firmware can move the hot data in the SLC region to the TLC region according to the strategy. In this way, the SLC space can be released to accommodate new hot data, and the overall SSD life is balanced. In this way, the characteristics of different chip types of the SSD (such as SLC and TLC) can be utilized to migrate hot data to SLC to improve read and write performance and prolong the life of the SSD. The advantage of this is that while maintaining a large overall capacity of the TLC region, the high-performance advantages of SLC are utilized to handle hot data.
[0115] The above describes the embodiments of the present application in detail in combination with the drawings, but the present application is not limited to the above-mentioned embodiments, and various changes can be made within the scope of knowledge possessed by those skilled in the art without departing from the purpose of the present application.
[0116] The device embodiments described above are only schematic, and the units described as separate components can or can not be physically separate, that is, can be located in one place, or can be distributed on multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the present embodiment.
[0117] In the description of the present specification, the description of the terms "one embodiment", "some embodiments", "illustrative embodiment", "example", "specific example", or "some examples" means that the specific features, structures, materials or characteristics described in connection with the embodiment or example are included in at least one embodiment or example of the present application. In the present specification, the illustrative description of the above terms does not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described can be combined in any one or more embodiments or examples in a suitable manner.
[0118] Although the embodiments of the present application have been shown and described, those skilled in the art can understand that various changes, modifications, replacements and variations can be made to the embodiments without departing from the principles and purposes of the present application, and the scope of the present application is defined by the claims and their equivalents.
Claims
1. A method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver, characterized in that, The method steps include: S0: Create a hot data statistics table, including the fields time, count, flag, pre_flag, special_flag, data: lba, block, size; S1: Load the hot data driver and obtain host commands; S2: Determine if there is an application module in the host command that needs to directly set hot data. If there is, proceed to S3; otherwise, proceed to S5. S3: Parse data from the direct setting hot data application module and set the special hot data flag to true; S4: Insert the special marker values of the heat data into the heat data statistics table; S5: Intercept the listening command and determine whether the intercepted listening command is an NVMe command. If not, proceed to S6; if so, proceed to S7. S6: End interception and listening commands; S7: Parse data in NVMe commands; S8: Retrieves write command information from NVMe command data; S9: Determine if the time interval in the write command information is less than the hot data read / write threshold time. If yes, proceed to S10; otherwise, proceed to S17. S10: Increment the logical block address record count value in the write command and update the hot data statistics table; S11: Update the timestamp in the time field of the hot data statistics table to the listening time; S12: The internal function retrieves heat data based on the count in the heat data statistics table; S13: Determine whether the data with a higher count is less than the preset threshold data. If yes, proceed to S14; otherwise, proceed to S16. S14: Reorder the block data according to the size of the heat data statistics table; S15: Set the pre_flag value in the hot data statistics table to true, and update the hot data statistics table; S16: Set the flag of the top 10% to 20% of the data with the highest number of times LBA is monitored to true, mark it as hot data, and update the hot data statistics table; S17: Set the logical block address record count value in the write command to 1; S18: Determine if the flag in the hot data statistics table is true. If yes, proceed to S19; otherwise, proceed to S12. S19: Set flag to false and pre_flag = true in the hot data statistics table, then go to S12.
2. The method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver as described in claim 1, wherein the preset threshold data is data with the condition that pre_flag is true and flag is false.
3. The method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver as described in claim 1, wherein the hot data read / write threshold time is the average time taken to obtain data during the full disk read / write of the SSD, including the time for writing data to the disk and the time for reading data from the disk.
4. The method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver as described in claim 3, wherein the hot data read / write threshold time is mapped and stored in the mapping table between the SSD's hard ID and read / write d(w), d(r).
5. The method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver as described in claim 1, wherein the proportion of hot data is 10% to 20% of the average number of times the LBA is listened to during the full disk read and write of the SSD, and is used as the range of its hot data proportion.
6. The method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver as described in claim 5, wherein the proportion range of hot data is stored in a mapping table of SSD hard ID and n(w), n(r).
7. The method for obtaining hot and cold data by intercepting and listening to NVMe commands through a driver according to claim 1, wherein the hot data statistics table is stored in memory or a register.
8. A system for intercepting and listening to NVMe commands to obtain hot and cold data via a driver, characterized in that, include: Thermal data driver module, data parsing module, thermal data statistics table module, NVMe command parsing module, controller; The hot data driving module is used to acquire and parse host command data. The data parsing module is used to parse hot data in host commands and NVMe commands. The thermal data statistics table module executes the method described in claims 1 to 7 to update the thermal data status to the thermal data statistics table, and the controller performs cold and hot data processing.
Citation Information
Patent Citations
Cold and hot data storage method and device and medium
CN116225334A
Cold and hot data identification threshold value calculation method, device and system
CN103631538A
File transmission method, cloud server, client and fog node router
CN113163003A
Slow disk simulation method, device, equipment and medium
CN115576767A