Cache Segmentation for Streaming Data Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional key-value pair caching systems for streaming applications face inefficiencies due to the need for keys to retrieve cache entries, significant resource overhead, and inadequate handling of metadata and indexing, leading to performance degradation and increased operations.

Innovation Solution

A caching system organized into multiple cache segments with equal-sized blocks, where cache entries are directly stored and retrieved using cache addresses, allowing for immediate access and modification without the need for keys, and incorporating a cache index and throttle for efficient data management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If key-value pair caching systems are used for streaming data, then data can be stored and retrieved, but significant resource overhead occurs due to metadata and indexing structures for each event

Engineering Contradiction:
Improvedata storage capabilityVSAvoidresource overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The cache is segmented into fixed-size blocks that are organized in a sequential structure. Instead of treating each event as an independent key-value pair, events are grouped into blocks, reducing the number of metadata entries and indexing structures required. This segmentation approach maintains data storage capability while significantly reducing the overhead per event.

Inventive Principle:
Principle #1Segmentation

2Productivity

If individual events are inserted into cache as separate key-value pairs, then no extra copying into memory is needed, but significant resource overhead occurs due to metadata and indexing for each event

Engineering Contradiction:
Improveinsertion efficiencyVSAvoidmetadata overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Multiple individual events are merged into fixed-size cache blocks. Instead of maintaining separate metadata and indexing structures for each event, the system creates a single metadata entry per block that contains information about all events within that block. This merging approach maintains insertion efficiency while dramatically reducing metadata overhead.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If data is accumulated in a memory buffer before cache insertion, then overhead is reduced by aggregating entries, but data must be copied twice and an indeterminate amount of time is spent filling the buffer

Engineering Contradiction:
Improveoverhead reductionVSAvoidbuffer filling time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The cache is pre-organized into fixed-size blocks with predetermined structures before data insertion begins. This preliminary organization eliminates the need for dynamic buffer filling and repeated copying operations. Data can be directly inserted into preallocated block structures, achieving overhead reduction without the time penalty of buffer management.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If read-modify-write pattern is used to extend cache entries, then new data can be appended to existing entries, but significant write amplification occurs and cache performance degrades

Engineering Contradiction:
Improvedata extension capabilityVSAvoidwrite operations
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The cache structure dynamically links blocks through pointers rather than requiring read-modify-write operations on individual entries. When new data needs to be appended, the system creates a new block and updates a pointer in the parent block, enabling efficient data extension without write amplification. This dynamic linking approach maintains adaptability while preserving write performance.

Inventive Principle:
Principle #15Dynamics

5Reliability

If key-value pair caches are used with offset modeling, then streaming data can be stored, but keys must be used to retrieve entries which introduces inefficiencies

Engineering Contradiction:
Improvedata retrieval capabilityVSAvoidretrieval efficiency
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

Instead of requiring keys to retrieve data entries, the system inverts the approach by using sequential block addresses that directly identify cache locations. The fixed-size block structure with sequential organization allows retrieval operations to work with simple address pointers rather than requiring key-based lookups, dramatically improving retrieval efficiency while maintaining data accessibility.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS11245774B2Cache storage for streaming data
Publication Date: 2022.02.08 EMC IP HLDG CO LLC
  • US11245774B2 patent drawing
  • US11245774B2 patent drawing
  • US11245774B2 patent drawing

AI summary

Described herein are systems and techniques to efficiently cache data for streaming applications. A cache can be organized to include multiple cache segments, and each cache segment can include multiple cache blocks. A cache entry can be created for streaming data, and the streaming data can be streamed directly into a first cache block. When the first cache block is full, a next cache block can be identified, in a same cache segment or in a new cache segment. The streaming data can be streamed directly into the next cache block, and into any further cache blocks as needed.