Early Read Return Virtualization for Cloud Storage Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud-based storage systems often experience high read latency due to the time required to retrieve data from distant locations or handle multiple read requests, which can reduce application and operating system performance.
Innovation Solution
Implementing an early read return virtualization technique that allows for partial data satisfaction of read requests, with unfilled pages unmapped, based on predefined policies such as data availability percentage, relative distribution of unavailable data, and estimated time duration, to reduce perceived latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data is retrieved from cloud storage, then data accessibility and replication are improved, but read latency increases due to large physical distances and multiple read requests
Solution Approach 1:
The system performs preliminary actions by issuing multiple read requests to different data blobs in advance, before the application actually needs the data. The scatter-gather array pre-configures the data retrieval paths, and the system returns partially satisfied read requests before all data is available, allowing applications to continue executing while remaining data is being retrieved.
Solution Approach 2:
The read request is segmented into multiple parallel operations using a scatter-gather array that distributes data retrieval across multiple data blobs. Instead of waiting for a single large read operation to complete, the system divides the data retrieval into smaller segments that can be fetched concurrently from different storage locations, reducing overall read latency.
2Reliability
If the system waits for complete data satisfaction before returning read requests, then data reliability is improved, but application performance deteriorates due to high read latency
Solution Approach 1:
The system applies partial action by returning read requests to applications even when the data is not completely satisfied. The scatter-gather array tracks which portions of data have been retrieved and which are still pending, allowing the system to provide partial results to applications while continuing to fetch remaining data in the background, thus maintaining application productivity without completely sacrificing data reliability.
Solution Approach 2:
The system implements feedback mechanisms to track the satisfaction status of read requests through the scatter-gather array. The array monitors which data portions have been retrieved and provides continuous feedback on data availability, allowing the system to dynamically manage partial returns and ensure that applications receive data as it becomes available while maintaining awareness of incomplete data states.
3Productivity
If multiple read requests are issued to different data blobs, then data retrieval capability is improved, but system complexity increases due to managing scatter-gather arrays and partial data returns
Solution Approach 1:
The scatter-gather array structure serves multiple functions simultaneously: it tracks data retrieval status, manages multiple parallel read requests, coordinates partial data returns, and monitors data satisfaction progress. This multi-functional approach consolidates what would otherwise require separate management systems, reducing overall system complexity while maintaining enhanced data retrieval capability.
Data Source
AI summary
Techniques are disclosed for reducing perceived read latency. Upon receiving a read request with a scatter-gather array from a guest operating system running on a virtual machine (VM), an early read return virtualization (ERRV) component of a virtual machine monitor fills the scatter-gather array with data from a cache and data retrieved via input-output requests (IOs) to media. The ERRV component is configured to return the read request before all IOs have completed based on a predefined policy. Prior to returning the read, the ERRV component may unmap unfilled pages of the scatter-gather array until data for the unmapped pages becomes available when IOs to the external media complete. Later accesses to unmapped pages will generate page faults, which are handled by stunning the VMs from which the access requests originated until, e.g., all elements of the SG array are filled and all pages of the SG array are mapped.


