Non-blocking Write Mechanism for Operating System Page Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing 'fetch-before-write' approach in operating systems leads to process blocking during page writes, as the system synchronously fetches pages from backing storage, resulting in inefficient performance, especially in data-intensive workloads and systems with high memory usage.

Innovation Solution

Implementing non-blocking writes by creating in-memory patches for updated pages, allowing the writing process to continue without waiting for page fetches to complete, and buffering data elsewhere in memory, enabling asynchronous page fetches and reducing process blocking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous page fetch is performed before write operation, then data consistency is ensured, but process blocking occurs and system performance deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by creating in-memory patches for updated pages before the actual page fetch completes. The system prepares patch data structures that contain the write operations, which will be applied to the page once it is fetched from backing storage. This allows the writing process to continue without waiting for the synchronous page fetch, thereby maintaining data consistency while improving system performance.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If page is fetched into memory before write, then write operation can proceed, but process must wait and blocking occurs

Engineering Contradiction:
Improvewrite operation executionVSAvoidprocess waiting time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs preliminary actions by preparing patch data structures that encapsulate the write operations before the page fetch completes. These patches are created in advance and stored in memory, allowing the writing process to proceed immediately without waiting for the page to be fetched from backing storage. The patches will be applied to the page once it becomes available, eliminating process blocking and reducing waiting time.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If fetch-before-write constraint is enforced, then data integrity is maintained, but asynchronous write capability is lost

Engineering Contradiction:
Improvedata integrityVSAvoidasynchronous write capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent enables asynchronous write capability by creating patch data structures in advance that contain the write operations. These patches are prepared before the page fetch completes, allowing the writing process to continue asynchronously without waiting for the page to be available in memory. The patches ensure data integrity by being applied to the page once it is fetched, thus maintaining reliability while enabling asynchronous operation.

Inventive Principle:
Principle #10Preliminary action

4Device complexity

If synchronous page fetch is used for writes, then simplicity of implementation is maintained, but system throughput is reduced

Engineering Contradiction:
Improveimplementation simplicityVSAvoidsystem throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system maintains implementation simplicity by using a straightforward approach of creating patch data structures before page fetch completes. The patch creation logic is integrated into the existing write path, and the patches are applied once the page is available. This preliminary action approach does not require complex changes to the overall system architecture, yet it significantly improves system throughput by eliminating process blocking during page fetch operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10073721B2Non-blocking writes to file data
Publication Date: 2018.09.11 FLORIDA INTERNATIONAL UNIVERSITY
  • US10073721B2 patent drawing
  • US10073721B2 patent drawing
  • US10073721B2 patent drawing

AI summary

Techniques and systems are disclosed for implementing non-blocking writes to eliminate the fetch-before-write requirement by creating an in-memory patch for the updated page and unblocking the calling process. Non-blocking writes eliminate such blocking by buffering the written data elsewhere in memory and unblocking the writing process immediately. Subsequent reads to the updated page locations are also made non-blocking and, in some cases, can be eliminated when the read request can be serviced from in-memory patches.Implementation scenarios can include an operating system (OS) enhancement, revision to an existing OS component (e.g., the OS kernel), special OS component, or enhancement to the software or firmware of the controller software or microcontroller of a storage device or array of storage devices.