Serialization Cache for Object Deserialization Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing serialization solutions are inefficient in managing serialized objects, as they do not effectively avoid redundant serialization efforts for unchanged objects and require hand-coded serialization, which is tedious and error-prone, and do not account for references from the outer scope.

Innovation Solution

A system with a serialization cache maintained in conjunction with an object cache, where serialized objects are checked for presence in the cache, and if present, the equivalent object is retrieved without deserialization, and if not, the object is deserialized and cached, optimizing the deserialization process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If complete serialized object graphs are cached and transmitted enclosed within another serialization stream, then serialization effort is avoided for cached objects, but the system does not account for references from the outer scope and requires hand-coded serialization

Engineering Contradiction:
Improveserialization efficiencyVSAvoidserialization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the serialized object into two parts: a header containing type information and a body containing the actual data. This segmentation allows the system to cache only the header portion while dynamically handling the body, avoiding the need to cache complete serialized object graphs while still reducing serialization effort for cached objects.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by pre-computing and caching the header information (type metadata) for serialized objects. When an object needs to be serialized, the system checks if its header exists in the cache, and if so, reuses it without re-computation, thereby avoiding redundant serialization work while maintaining simplicity.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If hand-coded serialization is used to optimize serialization effort, then serialization efficiency improves, but the process becomes tedious and error-prone

Engineering Contradiction:
Improveserialization efficiencyVSAvoidimplementation ease
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent implements self-service by enabling automatic header generation and caching through the serialization framework itself, without requiring manual intervention. The system automatically computes headers, caches them, and retrieves them when needed, eliminating the need for hand-coded serialization while maintaining efficiency.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediary component (the header cache mechanism) that mediates between the serialization process and the actual object data. This intermediary automatically handles header management, serving as a bridge that provides optimization benefits without requiring direct hand-coding of serialization logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If serialized objects are cached without checking for presence, then retrieval is fast, but redundant deserialization occurs when the same serialized object is received again

Engineering Contradiction:
Improveretrieval speedVSAvoiddeserialization efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent implements feedback by checking whether the header of a received serialized object exists in the cache before proceeding with deserialization. This feedback mechanism allows the system to detect previously cached objects and skip redundant deserialization, thereby maintaining fast retrieval while improving overall deserialization efficiency.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent applies partial action by performing only a header check (partial verification) rather than complete deserialization when an object is received. If the header matches a cached entry, the system stops further processing and directly retrieves the cached object, avoiding excessive deserialization work while ensuring correctness.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9940243B1System and method for managing an object cache
Publication Date: 2018.04.10 RED HAT INC
  • US9940243B1 patent drawing
  • US9940243B1 patent drawing
  • US9940243B1 patent drawing

AI summary

In order to optimize efficiency of deserialization, a serialization cache is maintained at an object server. The serialization cache is maintained in conjunction with an object cache and stores serialized forms of objects cached within the object cache. When an inbound request is received, a serialized object received in the request is compared to the serialization cache. If the serialized byte stream is present in the serialization cache, then the equivalent object is retrieved from the object cache, thereby avoiding deserialization of the received serialized object. If the serialized byte stream is not present in the serialization cache, then the serialized byte stream is deserialized, the deserialized object is cached in the object cache, and the serialized object is cached in the serialization cache.