Level-Based Partition Management for Reader Starvation Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed messaging systems, reader starvation occurs when a slow writer delays readers, causing them to wait for partitions to fill, leading to inefficiencies and bottlenecks in data processing.

Innovation Solution

Implementing level management and closing mechanisms, where partitions are grouped into levels, allowing only one partition per writer, and using a managing broker to dynamically determine when to close levels, thereby avoiding reader starvation without significant overhead or complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If readers wait for partitions to fill before reading data, then data consistency is maintained, but reader throughput decreases due to slow writers causing delays

Engineering Contradiction:
Improvedata consistencyVSAvoidreader throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments partitions into different levels (level 0, level 1, etc.) based on their fill status and writer activity. Readers can selectively read from different levels, allowing fast writers to populate level 0 partitions for immediate reading while slow writers continue filling level 1 partitions, thus maintaining consistency within each level while improving overall throughput

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-filling partitions to a certain level before allowing readers to access them. Partitions are prepared in advance at different levels, so when readers need data, already-prepared partitions are available immediately without waiting for slow writers to complete filling

Inventive Principle:
Principle #10Preliminary action

2Stability of the object's composition

If readers continuously wait for slow writers to fill partitions, then order preservation is maintained, but system efficiency deteriorates due to reader starvation

Engineering Contradiction:
Improveorder preservationVSAvoidsystem efficiency
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The system dynamically adjusts reader behavior based on partition fill levels and writer speeds. Readers can switch between waiting for slow writers and reading from already-filled partitions at different levels, making the system adaptive rather than static, thus preventing reader starvation while maintaining order within each partition level

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The level management system acts as an intermediary between readers and writers. It mediates by providing readers with access to partitions at different levels that are already filled, while still preserving the write order within each partition, thus decoupling reader efficiency from writer speed without compromising order preservation

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the system implements level management and dynamic partition closing, then reader starvation is prevented, but system complexity increases

Engineering Contradiction:
Improvereader access efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements self-service through automated level management where partitions automatically transition between levels based on fill status, and readers automatically select appropriate levels for reading. This self-organizing behavior reduces the need for complex external control mechanisms while still achieving the goal of preventing reader starvation

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3407196B1Preventing reader starvation during order preserving data stream consumption
Publication Date: 2021.09.08 SAP SE
  • EP3407196B1 patent drawingFigure 1
  • EP3407196B1 patent drawingFigure 2
  • EP3407196B1 patent drawingFigure 3

AI summary

The present disclosure involves systems, software, and computer implemented methods for preventing reader starvation in a distributed system. One example method includes receiving, at a node that manages a data stream, a write-intent request from a writer for a first partition, the data stream associated with a graph that includes levels of partitions including a current level; identifying the first partition for the writer; providing partition information for the first partition to enable the writer to write to the first partition; determining that the writer has previously written to a second partition associated with the current level; in response to determining that the writer has previously written to the second partition: creating a new current level; associating the first partition with the new current level; identifying partitions associated with the current level; and providing a close-level instruction to each local node that includes a partition associated with the current level.