Parallel Prefetching Log Stream Sub-portions for Partition State Recreation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed computing systems, the time-consuming process of loading a partition onto a new computing node and recreating its operational state is hindered by the sequential reading of metadata and log streams, leading to increased downtime and reduced load-balancing efficiency and availability of service.

Innovation Solution

The system employs prefetching of sub-portions of metadata and log streams to recreate partition states by monitoring performance metrics, parsing transactions into smaller sub-portions, and using multiple prefetch buffers to load these sub-portions in parallel, allowing the replay operation to commence sooner.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If sequential reading of metadata and log streams is used to recreate partition state, then data integrity and accuracy are maintained, but loading time increases significantly

Engineering Contradiction:
Improvepartition loading timeVSAvoidstate recreation speed
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent divides the log stream into multiple sub-portions and uses multiple prefetch buffers to load different sub-portions in parallel. This segmentation allows simultaneous reading of multiple log segments, dramatically reducing the total loading time while maintaining data integrity through sequential processing within each buffer.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements prefetching by loading log stream sub-portions into buffers before they are actually needed for replay. This preliminary action allows the system to prepare data in advance, reducing waiting time during the state recreation process while ensuring data is ready when needed for accurate replay.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple prefetch buffers are used to load sub-portions in parallel, then loading speed increases, but system complexity increases

Engineering Contradiction:
Improveloading rateVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a prefetch manager as an intermediary component that coordinates multiple prefetch buffers. This manager handles the complexity of parallel buffer management, sub-portion division, and synchronization, allowing the system to achieve high loading rates while centralizing the control logic in a single managing component.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The prefetch buffers are designed to autonomously load their assigned sub-portions from the log stream without requiring complex coordination for each individual buffer operation. Each buffer independently manages its own loading and readiness status, reducing the overall management complexity while maintaining parallel efficiency.

Inventive Principle:
Principle #25Self-service

3Loss of time

If the stream read position is kept ahead of the record processing position, then loading delay is reduced, but risk of data loss increases

Engineering Contradiction:
Improveloading delayVSAvoiddata completeness
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent prefetches log sub-portions into buffers before they are processed during replay. This preliminary loading ensures that data is already in memory and ready for immediate processing, reducing loading delay while maintaining data completeness since the prefetching occurs before the actual replay begins.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By dividing the log stream into multiple sub-portions loaded into separate buffers, the system can advance the read position ahead of the processing position without losing data. Each buffer contains a complete sub-portion that can be independently processed, ensuring data completeness even as the overall read position moves ahead of processing.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10609174B2Parallel prefetching log/meta stream sub-portions to recreate partition states in a distributed computing system
Publication Date: 2020.03.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10609174B2 patent drawing
  • US10609174B2 patent drawing
  • US10609174B2 patent drawing

AI summary

Prefetching metadata stream sub-portions and/or log stream sub-portions to recreate partition states in a distributed computing system. A system monitors performance metrics associated with a first node running an instance of a partition and, based thereon, cause a second node to duplicate a desired operational state of the partition. The desired operational state may result from transactions being performed on the partition after a previous operational state. Re-creating the desired operational state may include causing multiple prefetch buffers to simultaneously load sub-portions of the transactions and then commencing a replay operation after an initial subset of the transactions is loaded but prior to the entirety of the transactions being fully loaded. The system may preemptively analyze individual prefetch buffers to identify partial buffers that have not fully loaded. Then, the system may cause other prefetch buffers to assist the partial buffers in fully loading a corresponding subset of transactions.