Asynchronous Metadata Track Updates via CPU Buffers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In storage system environments, direct updates to metadata tracks during syncio operations are often delayed due to concurrent access by multiple CPUs and the need to update metadata tracks on disk storage, which can hinder the timely completion of I/O operations.
Innovation Solution
The method involves storing updates for metadata tracks in buffers associated with CPUs, allowing asynchronous updates by background tasks, ensuring that I/O operations can complete without waiting for metadata track updates, and maintaining a balance of free and used buffers in a buffer pool to facilitate efficient metadata track updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If direct updates to metadata tracks are performed during syncio operations, then metadata consistency is maintained, but I/O operation completion time increases
Solution Approach 1:
The patent applies preliminary action by pre-allocating buffers for metadata updates before syncio operations need to access them. CPUs can immediately store update information in pre-prepared buffers without waiting for metadata track updates to complete, enabling I/O operations to proceed without delay while metadata consistency is maintained through subsequent background updates.
Solution Approach 2:
The patent introduces buffers as an intermediary between CPUs and metadata tracks. Instead of directly updating metadata tracks during syncio operations, CPUs write update information to buffers, which then serve as intermediaries that background tasks process to actually update the metadata tracks. This decoupling resolves the contradiction by separating the fast I/O path from the slower metadata update path.
2Productivity
If multiple CPUs concurrently update metadata tracks, then processing parallelism is achieved, but access conflicts and update reliability decrease
Solution Approach 1:
The patent segments the metadata update process by providing separate buffers for each CPU. This segmentation allows multiple CPUs to concurrently write update information to their own dedicated buffers without accessing conflicts, maintaining high processing parallelism. The actual metadata track updates are then performed sequentially by background tasks, ensuring update reliability through controlled access.
3Reliability
If metadata tracks are updated synchronously during I/O operations, then data integrity is ensured, but I/O operation speed decreases
Solution Approach 1:
The patent uses buffers as intermediaries to decouple the I/O operation path from the metadata update path. CPUs quickly store update information in buffers during syncio operations without waiting for actual metadata track updates, ensuring I/O speed. Background tasks then use these buffers to ensure metadata integrity is maintained through subsequent updates, resolving the contradiction between speed and reliability.
Solution Approach 2:
The patent applies preliminary action by having CPUs prepare update information in buffers during I/O operations. This preliminary storage of update data ensures that when metadata tracks are eventually updated by background tasks, the data integrity is preserved while the original I/O operations complete quickly without waiting for the actual metadata updates.
4Loss of time
If buffers are allocated for each CPU to store metadata updates, then I/O operation completion time is reduced, but buffer pool management complexity increases
Solution Approach 1:
The patent makes buffers universal by allowing them to be dynamically allocated to any CPU that needs them and then returned to the shared buffer pool after use. This multi-functionality enables buffers to serve multiple CPUs over time, reducing the need for dedicated permanent buffers for each CPU while still providing the performance benefit of immediate update storage. The buffer pool manager handles allocation and deallocation, adding manageable complexity that enables buffer reuse and efficient memory utilization.
Data Source
AI summary
A cache hit is generated, in response to receiving an input/output (I/O) command over a bus interface. An update for a metadata track is stored in a buffer associated with a central processing unit (CPU) that processes the I/O command, in response to generating the cache hit. The metadata track is asynchronously updated from the buffer with the stored update for the metadata track in the buffer.


