In-Memory Data Grid for SOA Process Execution Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The overhead of interactions with databases in service-oriented architecture (SOA) middleware environments significantly slows down the execution time of process instances due to frequent persisting and restoring of flow states and audit data.

Innovation Solution

Implementing a distributed in-memory data grid as a dehydration store to store flow states and audit data, with periodic or event-driven transfer to persistent storage, using a separate worker thread to maintain response time and reduce database interactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If flow states and audit data are persisted to database during process execution, then data reliability is maintained, but execution performance deteriorates due to significant overhead

Engineering Contradiction:
Improvedata reliabilityVSAvoidexecution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the storage system into two distinct layers: an in-memory data grid for high-speed process execution and a database for reliable persistent storage. This segmentation allows each layer to specialize - the memory grid handles frequent read/write operations during execution while the database provides durability, resolving the contradiction between reliability and performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The in-memory data grid acts as an intermediary layer between the process execution engine and the database. It buffers data before writing to the database and serves as a fast storage layer during execution, reducing direct database interactions and improving performance while maintaining data reliability through periodic persistence.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If flow states are frequently persisted to database, then data consistency is improved, but execution time increases due to persistent storage operations

Engineering Contradiction:
Improvedata consistencyVSAvoidexecution time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

Instead of persisting data after every state change, the system uses periodic persistence where data is written to the database at configured intervals or when thresholds are reached. This periodic action maintains data consistency over time while dramatically reducing the frequency of slow database operations during critical execution paths.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system performs preliminary actions by pre-warming the in-memory data grid with frequently accessed data and pre-configuring persistence policies. This allows the system to handle execution requests without immediate database access, reducing execution time while maintaining consistency through the pre-established memory cache.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If data is stored in persistent storage during execution, then system reliability is improved, but access speed deteriorates due to disk operations

Engineering Contradiction:
Improvesystem reliabilityVSAvoidaccess speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent changes the physical state parameter of data storage from persistent disk-based storage to volatile in-memory storage during execution. This parameter change transforms data access from slow disk operations to fast memory operations, improving access speed while maintaining system reliability through the hybrid architecture that ensures periodic persistence to durable storage.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10489203B2System and method for using an in-memory data grid to improve performance of a process defined by a process execution language in a SOA middleware environment
Publication Date: 2019.11.26 ORACLE INT CORP
  • US10489203B2 patent drawing
  • US10489203B2 patent drawing
  • US10489203B2 patent drawing

AI summary

In accordance with an embodiment, described herein is a system and method for improving performance of an executable process defined by a process execution language in a service-oriented architecture (SOA) middleware environment. Flow states and audit data of a process instance can be stored in a dehydration store implemented on a distributed in-memory data grid, and transferred to a persistent storage at a configurable interval, or at certain state changes such as completions and faults of the process instance. A user interface can be used to configure the persistence policy for the process instance, and to retrieve the flow states and audit data from the persistent storage for process monitoring and diagnosis. The flow states data in the persistent storage can also be used for resuming execution of the process instance after a planned system maintenance, or a system crash.