Metadata page prefetch processing for incoming IO operations
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-modifiedWhat 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.