Server-Side Streaming Data Buffer Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for streaming real-time speech data fail to account for server workload and network bandwidth, leading to client-side buffering issues such as delayed playback or interruptions due to inadequate data storage, which negatively impact user experience.

Innovation Solution

A method where the server estimates generation and play times for the data stream, alerts the client when the remaining generation time equals or exceeds the play time, and prioritizes processing to ensure reliable playback by adjusting the data stream generation rate and buffer management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a static client-side buffer is used to handle server stress, then buffer under-run can be avoided to some extent, but the client must wait an undesirable length of time between requesting and receiving playback of data

Engineering Contradiction:
Improvebuffer under-run preventionVSAvoidplayback delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements dynamic buffer sizing where the buffer size is adjusted in real-time based on server workload conditions and network bandwidth availability. The system transitions from a static buffer approach to a dynamic one that adapts to changing conditions, allowing the buffer to expand when server capacity is available and contract when stress is detected, thereby preventing under-runs without excessive delays

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system establishes a feedback loop between server and client where the server monitors its own workload and actively communicates buffer size recommendations to the client. The client adjusts its buffer accordingly based on this feedback, creating a closed-loop control system that optimizes playback timing while preventing buffer under-runs

Inventive Principle:
Principle #23Feedback

2Reliability

If the client stores additional data in the buffer, then buffer under-run is prevented, but the client waits longer before playback begins

Engineering Contradiction:
Improvecontinuous playbackVSAvoidinitial wait time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The server performs preliminary actions by pre-calculating and communicating the optimal buffer size to the client before playback begins. This allows the client to prepare the appropriate buffer capacity in advance, ensuring continuous playback can be maintained without excessive initial wait time

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If the server increases data generation rate to reduce client wait time, then playback delay is reduced, but server workload increases causing processing stress

Engineering Contradiction:
Improveclient wait timeVSAvoidserver processing stress
Core Design Contradiction:
Loss of timeVSStress or pressure

Solution Approach 1:

The system dynamically changes the data generation rate parameter based on server workload conditions. When server capacity is available, the generation rate increases to reduce client wait time. When server stress is detected, the rate is adjusted downward to prevent processing overload, creating an adaptive balance between responsiveness and server sustainability

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8626939B2Method and apparatus for streaming data
Publication Date: 2014.01.07 SERVICENOW INC
  • US8626939B2 patent drawing
  • US8626939B2 patent drawing
  • US8626939B2 patent drawing

AI summary

Method and apparatus for negotiation of streaming data, suitable for application in an environment wherein a server generates and serves large, continuous amounts of speech data to a client in real time. A method of controlling the play out of a generated data stream from a data stream player includes estimating a time for generating the data stream; estimating a time for playing the data stream; generating a data stream using a data stream generation resource, for output by the data stream player; and alerting the stream player if the remaining generation time is less than the play time. The server may calculate what it can do, given knowledge of the network, and send a message to guarantee a level of service. A “can start play” message may be sent to client when the client can reliably start playing the signal.