Distributed In-Memory Data Grid Caching with Common Serialization Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In transactional processing environments, such as Tuxedo server environments, providing a distributed caching system that can handle multiple data types and adapt to different caching solutions is challenging due to the need for customized code and compatibility issues across heterogeneous systems and protocols.

Innovation Solution

A distributed caching system with a top layer exposing an API for caching clients, a common caching layer supporting serialization/deserialization of data, and integration with a distributed in-memory data grid like Coherence, allowing for flexible caching operations across various providers and architectures without requiring changes to user applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a distributed caching system is implemented to handle multiple data types and adapt to different caching solutions, then adaptability and versatility are improved, but device complexity increases due to the need for customized code and compatibility issues across heterogeneous systems and protocols

Engineering Contradiction:
Improveadaptability to different caching solutionsVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a common caching layer as an intermediary between the top layer (client interface) and the implementation layer (caching provider). This intermediary layer handles the complexity of data conversion and protocol translation, allowing the system to adapt to different caching providers without increasing the complexity of the client interface. The common caching layer acts as a mediator that translates between different buffer types and caching protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The caching system is segmented into three distinct layers: the top layer for client interaction, the common caching layer for data conversion and protocol handling, and the implementation layer for specific caching providers. This segmentation allows each layer to be optimized independently and simplifies the overall system by dividing complexity into manageable sections that can be reused across different caching implementations.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If a common caching layer is introduced to support multiple buffer types through conversion, then adaptability is improved, but ease of operation deteriorates due to additional conversion overhead

Engineering Contradiction:
Improvesupport for multiple buffer typesVSAvoidcaching operation simplicity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The common caching layer automatically handles data conversion between different buffer types without requiring explicit intervention from the top layer. The system self-services the conversion process by using registered conversion functions that are invoked automatically during caching operations, making the complexity of multi-buffer-type support transparent to the user.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The common caching layer serves as an intermediary that transparently handles buffer type conversions. The top layer simply interacts with the common caching layer using a unified interface, and the intermediary automatically translates between different buffer types in the background, maintaining ease of operation while supporting multiple buffer types.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If data conversion functions are registered for each buffer type, then adaptability to different data types is improved, but device complexity increases due to registration and conversion mechanism requirements

Engineering Contradiction:
Improvebuffer type compatibilityVSAvoidconversion mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The common caching layer provides a universal interface that works with multiple buffer types through a single unified structure. Instead of requiring separate handling for each buffer type, the system uses a universal conversion mechanism that can handle any registered buffer type, reducing complexity while maintaining broad compatibility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The common caching layer acts as an intermediary that manages the registration and conversion of buffer types centrally. Rather than distributing complexity across multiple components, the intermediary consolidates conversion logic in one location, making the system easier to manage while supporting diverse data types.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11050840B2System and method for utilizing a distributed in-memory data grid to implement typed buffer caching services for a transactional processing environment
Publication Date: 2021.06.29 ORACLE INT CORP
  • US11050840B2 patent drawing
  • US11050840B2 patent drawing
  • US11050840B2 patent drawing

AI summary

In accordance with an embodiment, described herein is a system and method for providing distributed caching in a transactional processing environment. The caching system can include a plurality of layers that provide a caching feature for a plurality of data types, and can be configured for use with a plurality of caching providers. A common data structure can be provided to store serialized bytes of each data type, and architecture information of a source platform executing a cache-setting application, so that a cache-getting application can use the information to convert the serialized bytes to a local format. A proxy server can be provided to act as a client to a distributed in-memory grid, and advertise services to a caching client, where each advertised service can match a cache in the distributed in-memory data grid, such as Coherence. The caching system can be used to cache results from a service.