US12346258B1ActiveUtilityA1

Metadata page prefetch processing for incoming IO operations

53
Assignee: DELL PRODUCTS LPPriority: Jan 1, 2024Filed: Jan 1, 2024Granted: Jul 1, 2025
Est. expiryJan 1, 2044(~17.5 yrs left)· nominal 20-yr term from priority
G06F 2212/602G06F 2212/313G06F 2212/1024G06F 12/0862
53
PatentIndex Score
0
Cited by
16
References
10
Claims

Abstract

Metadata page prefetch processing for incoming IO operations is provided to increase storage system performance by reducing the frequency of metadata page miss events during IO processing. When an IO is received at a storage system, the IO is placed in an IO queue to be scheduled for processing by an IO processing thread. A metadata page prefetch thread reads the LBA address of the IO and determines whether all of the metadata page(s) that will be needed by the IO processing thread are contained in IO thread metadata resources. In response to a determination that one or more of the required metadata pages are not contained in IO thread metadata resources, the metadata page prefetch thread instructs a MDP thread to move the required metadata page(s) from metadata storage to IO thread metadata resources. The IO processing thread then implements the IO operation using the prefetched metadata.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of metadata page prefetch processing for incoming IO operations, comprising:
 receiving an IO operation; 
 placing the IO operation in an IO queue; 
 determining, by a metadata page prefetch thread, that a metadata page required by an IO processing thread to implementing the IO operation is not contained in IO thread metadata resources; 
 instructing a MetaData Page (MDP) thread, by the metadata page prefetch thread, to page-in the required metadata page to the IO thread metadata resources; 
 after implementing the page-in process to load the metadata page to the IO thread metadata resources, selecting the IO operation from the IO queue by the IO processing thread to be implemented by the IO processing thread; and 
 accessing the metadata page, by the IO processing thread, from the IO thread metadata resources in connection with implementing the IO operation by the IO processing thread; 
 wherein determining, by the metadata page prefetch thread, that the metadata page required by the IO processing thread to implementing the IO operation is not contained in IO thread metadata resources comprises reading a Logical Block Address (LBA) of the IO operation while the IO operation is contained in the IO queue, and querying the IO thread metadata resources for a metadata page including metadata for the LBA of the IO operation; 
 wherein the IO processing thread, the MDP thread, and the metadata page prefetch thread are three separate, asynchronous, and independent processing threads; and 
 wherein the MDP thread executes to move metadata pages to the IO thread metadata resources in response to instructions from the IO processing thread and in response to instructions from the metadata page prefetch thread. 
 
     
     
       2. The method of  claim 1 , wherein querying the IO thread metadata resources for the metadata page comprises querying the IO thread metadata resources for all metadata pages required by the IO processing thread to implement the IO operation. 
     
     
       3. The method of  claim 1 , further comprising paging-in the required metadata page by the MDP thread from metadata storage to the IO thread metadata resources. 
     
     
       4. The method of  claim 3 , wherein metadata storage is implemented using a persistent memory technology, and IO thread metadata resources is implemented using a dynamic memory technology that has a shorter response time than the persistent memory technology. 
     
     
       5. The method of  claim 1 , further comprising:
 after implementing the page-in process, accessing the metadata page by the metadata page prefetch thread, from the IO thread metadata resources, to identify subsequent metadata pages required by the IO processing thread in connection with implementing the IO operation, and 
 instructing the MDP thread, by the metadata page prefetch thread, to page-in the subsequent metadata pages to the IO thread metadata resources. 
 
     
     
       6. A storage system, comprising:
 one or more processors and one or more storage devices storing instructions that are operable, when executed by the one or more processors, to cause the one or more processors to perform operations comprising: 
 receiving an IO operation; 
 placing the IO operation in an IO queue; 
 determining, by a metadata page prefetch thread, that a metadata page required by an IO processing thread to implementing the IO operation is not contained in IO thread metadata resources; 
 instructing a MetaData Page (MDP) thread, by the metadata page prefetch thread, to page-in the required metadata page to the IO thread metadata resources; 
 after implementing the page-in process to load the metadata page to the IO thread metadata resources, selecting the IO operation from the IO queue by the IO processing thread to be implemented by the IO processing thread; and 
 accessing the metadata page, by the IO processing thread, from the IO thread metadata resources in connection with implementing the IO operation by the IO processing thread; 
 wherein determining, by the metadata page prefetch thread, that the metadata page required by the IO processing thread to implementing the IO operation is not contained in IO thread metadata resources comprises reading a Logical Block Address (LBA) of the IO operation while the IO operation is contained in the IO queue, and querying the IO thread metadata resources for a metadata page including metadata for the LBA of the IO operation; 
 wherein the IO processing thread, the MDP thread, and the metadata page prefetch thread are three separate, asynchronous, and independent processing threads; and 
 wherein the MDP thread executes to move metadata pages to the IO thread metadata resources in response to instructions from the IO processing thread and in response to instructions from the metadata page prefetch thread. 
 
     
     
       7. The storage system of  claim 6 , wherein querying the IO thread metadata resources for the metadata page comprises querying the IO thread metadata resources for all metadata pages required by the IO processing thread to implement the IO operation. 
     
     
       8. The storage system of  claim 6 , further comprising paging-in the required metadata page by the MDP thread from metadata storage to the IO thread metadata resources. 
     
     
       9. The storage system of  claim 8 , wherein metadata storage is implemented using a persistent memory technology, and IO thread metadata resources is implemented using a dynamic memory technology that has a shorter response time than the persistent memory technology. 
     
     
       10. The storage system of  claim 6 , wherein the operations further include:
 after implementing the page-in process, accessing the metadata page by the metadata page prefetch thread, from the IO thread metadata resources, to identify subsequent metadata pages required by the IO processing thread in connection with implementing the IO operation; and 
 instructing the MDP thread, by the metadata page prefetch thread, to page-in the subsequent metadata pages to the IO thread metadata resources.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.