OZIP Block Compression with Static Dictionary Random Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data compression codecs, such as ZLIB and LZO, are inefficient for high-performance, latency-sensitive applications with random data access due to high processing overhead and unsuitability for hardware implementation, particularly in systems requiring low latency and random access support.

Innovation Solution

OZIP, a data compression codec that uses a static dictionary and direct token encoding to facilitate low-cost, high-performance hardware implementations, enabling parallel processing and supporting low latency random access through granular block mapping in metadata.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If common compression codecs (ZLIB, LZO) are used to achieve high compression ratios, then storage footprint is reduced, but processing overhead increases significantly

Engineering Contradiction:
Improvestorage footprintVSAvoidprocessing overhead
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent segments the compressed data into fixed-size blocks with block headers containing offset information. This segmentation enables independent processing of individual blocks, reducing the processing overhead when accessing specific data portions without requiring decompression of entire data sets.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-computing and storing block offsets in headers during the compression phase. This allows the decompression process to directly access specific blocks without sequential processing, significantly reducing processing time for random access workloads.

Inventive Principle:
Principle #10Preliminary action

2Speed

If common compression codecs are implemented in hardware to reduce latency, then processing speed improves, but hardware complexity and fabrication costs increase

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent divides compressed data into fixed-size blocks with simple header structures containing only offset information. This segmentation simplifies hardware implementation by enabling parallel processing of independent blocks without complex state management required by traditional sliding window approaches.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the fundamental parameters of compression by using fixed-block sizes and static dictionary references instead of dynamic sliding windows. This parameter change reduces hardware complexity while maintaining compression effectiveness for workloads with repeated data patterns.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If compression codecs are designed for sequential access to minimize processing overhead, then processing efficiency improves, but random data access capability deteriorates

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidrandom data access capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments compressed data into fixed-size blocks with headers storing offset information for each block. This segmentation enables random access to any block independently, providing both sequential processing efficiency and random access capability simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces block headers as an intermediary layer between the compressed data and the access mechanism. These headers contain offset information that mediates between the compressed data structure and random access requirements, enabling efficient positioning without sequential processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Speed

If in-memory data is cached to eliminate disk read latency, then access speed improves, but memory usage increases

Engineering Contradiction:
Improveaccess speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments compressed data into fixed-size blocks that can be independently cached in memory. This segmentation allows selective caching of only the blocks currently needed for processing, reducing overall memory usage while maintaining fast access speeds for cached portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary compression to reduce the total data size before caching. By compressing data beforehand, the same amount of information fits into smaller memory footprints, allowing more data to be cached within available memory constraints.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9697221B2OZIP compression and decompression
Publication Date: 2017.07.04 ORACLE INT CORP
  • US9697221B2 patent drawing
  • US9697221B2 patent drawing
  • US9697221B2 patent drawing

AI summary

A method, apparatus, and system for OZIP, a data compression and decompression codec, is provided. OZIP utilizes a fixed size static dictionary, which may be generated from a random sampling of input data to be compressed. Compression by direct token encoding to the static dictionary streamlines the encoding and avoids expensive conditional branching, facilitating hardware implementation and high parallelism. By bounding token definition sizes and static dictionary sizes to hardware architecture constraints such as word size or processor cache size, hardware implementation can be made fast and cost effective. For example, decompression may be accelerated by using SIMD instruction processor extensions. A highly granular block mapping in optional stored metadata allows compressed data to be accessed quickly at random, bypassing the processing overhead of dynamic dictionaries. Thus, OZIP can support low latency random data access for highly random workloads, such as for OLTP systems.