Compression Window Buffering for High-Throughput Data Streams

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data buffering systems face inefficiencies due to non-negligible CPU, memory, or I/O overheads when handling large data sets, particularly when the peak data throughput of a sender exceeds that of the receiver.

Innovation Solution

A computer-implemented method involving a buffering system with multiple compression windows, each containing a data region and a statistics region, where data is written, statistics are updated, and the data is compressed based on these statistics before being sent, allowing for efficient handling and compression of large data sets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is buffered and compressed using existing data buffering systems, then data throughput can be increased, but CPU, memory, and I/O overheads become non-negligible when handling large data sets

Engineering Contradiction:
Improvedata throughputVSAvoidCPU, memory, and I/O overheads
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The buffer is divided into multiple compression windows, each independently managing compression for a segment of the data stream. This segmentation allows parallel processing of different data portions, reducing overall CPU overhead while maintaining high throughput. Each compression window can be processed independently, enabling better resource utilization and reducing memory access overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Statistics for compression are updated in advance as data arrives in each compression window, before the actual compression operation. This preliminary action allows the compression algorithm to be better prepared and optimized, reducing the computational overhead during the critical compression phase and improving overall processing efficiency.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If compression is performed on large data sets, then data size for storage and transfer is reduced, but processing time and computational resources increase

Engineering Contradiction:
Improvedata sizeVSAvoidprocessing time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

By dividing the large data set into multiple compression windows that can be compressed in parallel, the total processing time is reduced while still achieving significant compression ratios. Each window processes a manageable portion of the data, avoiding the bottleneck of processing the entire large data set sequentially.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts compression parameters based on the statistics updated for each compression window. By optimizing compression parameters for each segment based on its specific characteristics, the system achieves efficient compression with minimized processing time, adapting to varying data patterns without requiring exhaustive analysis of the entire data set.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10503432B2Buffering and compressing data sets
Publication Date: 2019.12.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10503432B2 patent drawing
  • US10503432B2 patent drawing
  • US10503432B2 patent drawing

AI summary

A method, computer program product, and apparatus for buffering data sets are provided. The method includes preparing at least one buffer including a plurality of compression windows. The method also includes receiving a data set. The method further includes writing the received data set into a data region in a first compression window among the plurality of compression windows included in a first buffer among the at least one buffer. The method also includes updating statistics of a statistics region in the first compression window based on the received data set. The method further includes compressing the data set from the data region of the first compression window based on the statistics in the statistics region of the first compression window. The method also includes sending the compressed data set to the data region of the first compression window to replace the received data set.