Asynchronous Video Stream Caching with Buffer Rotation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Advanced video servers face challenges in delivering high-definition video streams due to increased latency and dropped frames, especially when handling multiple concurrent streams and rendering farms that require high bitrates, as existing caching mechanisms are inefficient in managing storage and network latencies across different access directions and gaps in sequential access.

Innovation Solution

A video stream caching mechanism that maintains three contiguous segments of video data in cache memory, with asynchronous prefetching and buffer rotation to ensure continuous streaming regardless of playback direction and gaps between streams, using a system with forward and backward buffers to absorb storage and network latencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If read-ahead and pre-fetch mechanisms are used to hide disk latencies, then storage access efficiency is improved, but the mechanisms become less efficient when handling multiple concurrent streams with random access patterns, causing cache trashing and increased latency

Engineering Contradiction:
Improvestorage access efficiencyVSAvoidcache stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The cache is divided into multiple independent circular buffers (first buffer, second buffer, third buffer) that can be independently managed. Each buffer handles specific access patterns, preventing cache trashing by segmenting the cache space into dedicated regions for different stream types and access directions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-fetching video data into the circular buffers before actual playback requests occur. The asynchronous pre-fetching mechanism continuously loads data into buffers in advance, ensuring data availability without waiting for random access requests, thereby eliminating cache misses and trashing.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If more cache memory is used to reduce dropped frames through read-ahead and write-behind, then frame continuity is improved, but storage access latencies increase up to 500 msec

Engineering Contradiction:
Improveframe continuityVSAvoidstorage access latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The asynchronous pre-fetching mechanism ensures continuous data loading into circular buffers without interruption or waiting for storage responses. By maintaining continuous pre-fetching operations that run independently of playback requests, the system eliminates idle time and reduces effective storage access latency while ensuring frame continuity.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The circular buffers act as intermediaries between the storage array and the video streaming process. By introducing these buffer zones that hold pre-fetched data, the system decouples the storage access timing from the playback timing, allowing storage operations to occur at optimized intervals rather than responding to every random access request, thereby reducing effective latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If sequential access with large File System blocks is used to increase throughput, then storage bandwidth utilization is improved, but access flexibility is reduced when switching between forward and backward playback directions

Engineering Contradiction:
Improvestorage bandwidth utilizationVSAvoidaccess direction flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system dynamically switches between forward and backward circular buffers based on playback direction requirements. The video file manager can select which buffer to use depending on whether forward or backward playback is needed, providing adaptive flexibility without sacrificing sequential access efficiency. This dynamic buffer selection allows the system to maintain high bandwidth utilization while adapting to different playback directions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The circular buffer structure serves multiple functions: it handles both forward and backward sequential access patterns, supports asynchronous pre-fetching, and provides data buffering for frame continuity. This multi-functional design allows a single cache structure to accommodate various access patterns and playback directions without requiring separate optimization mechanisms for each case.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Productivity

If caching mechanisms are used to handle multiple concurrent streams, then stream delivery capability is improved, but random access patterns increase disk seek times and cause cache misses

Engineering Contradiction:
Improvestream delivery capabilityVSAvoiddisk seek time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

Each concurrent stream is assigned dedicated circular buffers, segmenting the cache space into isolated regions. This prevents cache trashing between different streams since each stream's data resides in its own buffer region. The segmentation allows multiple streams to be served simultaneously without interfering with each other's cache hits, eliminating disk seek times for cache misses.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The asynchronous pre-fetching mechanism performs preliminary data loading into circular buffers before actual playback requests occur. By continuously pre-fetching data in advance for multiple concurrent streams, the system ensures that data is already in cache when needed, eliminating the need for disk seeking at the moment of access and reducing effective latency for all concurrent streams.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8776158B1Asynchronous shifting windows caching for forward and backward video streaming
Publication Date: 2014.07.08 EMC IP HLDG CO LLC
  • US8776158B1 patent drawing
  • US8776158B1 patent drawing
  • US8776158B1 patent drawing

AI summary

Three contiguous segments of video data are kept in video cache memory for streaming video data to a host application from a video file in data storage. For example, three buffers are allocated in the cache memory for each video stream, and at any given time during sequential access, a particular one of the three buffers is a middle buffer from which pre-fetched data is streamed to the host application. For forward or backward streaming, the buffers also include a backward buffer as well as a forward buffer on opposite sides of the middle buffer. In order to simplify the assembling of the buffers, a shift or rotation of the roles of the buffers and an asynchronous pre-fetch for continuance of a stream or for a switched direction of a stream is triggered by the cache state of the offset requested by the video application.