Cache Tracking for Zero-Filled Pages in Virtual Disks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software-defined networking (SDN) environments, improving input/output (IO) performance for virtual disks is challenging, particularly for applications that perform extensive zero writing and zero reading, as these operations consume significant device bandwidth and hinder IO throughput.

Innovation Solution

Implementing a system where a zero-filled logical memory page is configured in the cache and tracked for multiple logical block addresses, allowing subsequent zero read requests to be serviced from the cache instead of the virtual disk, thereby enhancing IO throughput and efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If zero writing and zero reading operations are performed on virtual disks, then applications can perform disk initialization and formatting, but device bandwidth is consumed and IO throughput is hindered

Engineering Contradiction:
Improvedisk initialization capabilityVSAvoidIO throughput
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system performs preliminary action by detecting zero write requests and proactively caching zero-filled data blocks in the cache memory before read requests arrive. This allows subsequent zero read requests to be served from cache rather than requiring actual disk operations, thus maintaining disk initialization capability while preventing bandwidth consumption and preserving IO throughput.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If actual disk operations are performed for zero read requests, then data accuracy is ensured, but device bandwidth is consumed and performance deteriorates

Engineering Contradiction:
Improvedata accuracyVSAvoidIO performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system creates a copy of zero-filled data blocks and stores them in cache memory. When zero read requests are detected, the system serves these requests from the cached copies rather than performing actual disk operations. This copying approach maintains data accuracy for zero-filled regions while dramatically improving IO performance by eliminating repeated disk accesses.

Inventive Principle:
Principle #26Copying

3Productivity

If zero-filled data blocks are cached, then subsequent zero read requests can be serviced from cache improving throughput, but cache memory is used

Engineering Contradiction:
ImproveIO throughputVSAvoidcache memory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system applies local quality by selectively caching only zero-filled data blocks in the cache memory, rather than caching all data blocks indiscriminately. The cache management system identifies and caches specifically those blocks that contain zero-filled patterns, which are the most likely to generate repeated read requests. This targeted approach improves IO throughput for zero-read workloads while minimizing unnecessary cache memory consumption.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11880316B2Input output (IO) request handling based on tracking information
Publication Date: 2024.01.23 VMWARE INC
  • US11880316B2 patent drawing
  • US11880316B2 patent drawing
  • US11880316B2 patent drawing

AI summary

Example methods and systems for input output (IO) request handling based on tracking information are described. One example may involve a computer system configuring, in a cache, a zero-filled logical memory page that is mappable to multiple logical block addresses of a virtual disk. In response to detecting a first IO request to perform zero writing at a logical block address, the computer system may store tracking information indicating that zero writing has been issued. In response to detecting a second IO request to perform a read at the logical block address, the computer system may determine that that zero writing has been issued for the logical block address based on the tracking information. The zero-filled logical memory page may be fetched from the cache to respond to the second IO request, thereby servicing the second IO request from the cache instead of the virtual disk.