Coroutine Interleaving for Database Cache Miss Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database operations often incur significant runtime penalties due to cache misses, as accessing main memory can stall execution and impose overhead when switching between execution threads.

Innovation Solution

Implementing database operations as coroutines that can suspend and resume execution with lower overhead, allowing interleaving of instruction streams to minimize cache miss penalties and reduce the frequency of cache misses by pre-fetching data based on access patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional thread switching is used to handle cache misses, then execution can continue during memory access, but switching overhead increases and reduces performance

Engineering Contradiction:
Improvecache miss penaltyVSAvoidswitching overhead
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces coroutines as an intermediary execution model that enables seamless switching between instruction streams during cache misses. Coroutines act as a mediator between the processor and memory system, allowing suspension and resumption of execution without traditional thread switching overhead. The coroutine mechanism includes a coroutine switch data structure that tracks execution state, enabling efficient context switching when cache misses occur.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements dynamic execution flow by allowing instruction streams to be suspended and resumed based on cache hit/miss conditions. The system dynamically adjusts execution by switching between active and suspended states of different instruction streams, optimizing performance by keeping the processor busy during memory access operations rather than maintaining static execution sequences.

Inventive Principle:
Principle #15Dynamics

2Productivity

If instruction streams are suspended during cache misses, then processor can fetch data from main memory, but execution stalls increase runtime

Engineering Contradiction:
Improvedata fetch efficiencyVSAvoidexecution stall time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent ensures continuity of useful action by implementing interleaved execution of multiple instruction streams. When one instruction stream is suspended due to a cache miss, another instruction stream continues execution, ensuring the processor remains productive. This overlapping execution model maintains continuous useful work while data is being fetched from main memory, eliminating idle processor cycles.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system performs preliminary actions by predicting which instruction streams may experience cache misses and preparing alternative instruction streams in advance. The coroutine management structure pre-organizes multiple instruction streams so that when a cache miss occurs, a ready alternative can immediately take over execution, minimizing stall time and maintaining productive processor utilization.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple instruction streams are interleaved to minimize cache miss penalties, then performance improves, but determining optimal quantity increases complexity

Engineering Contradiction:
Improvememory access efficiencyVSAvoidcoroutine management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent employs parameter changes by dynamically adjusting the number of active coroutines and their interleaving patterns based on system conditions. The coroutine switch data structure tracks execution state and allows flexible configuration of coroutine quantities and priorities. This parameter-based management enables optimization of memory access efficiency while adapting to varying workloads without requiring complex fixed-structure designs.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11789741B2Determining an optimum quantity of interleaved instruction streams of defined coroutines
Publication Date: 2023.10.17 SAP SE
  • US11789741B2 patent drawing
  • US11789741B2 patent drawing
  • US11789741B2 patent drawing

AI summary

A method for optimizing memory access for database operations is provided. The method may include performing a first database operation by at least executing a first instruction stream associated with the first database operation. The first database operation may be defined as a coroutine to at least enable the execution of the first instruction stream to be interleaved with an execution of a second instruction stream. In response to determining that data required to continue the execution of the first instruction stream is absent from a cache, the execution of the first instruction stream may be suspended and the second instruction stream may be executed instead. Related systems and articles of manufacture, including computer program products, are also provided.