In-Memory Data Grid for SOA Process Execution Bottlenecks
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If data is stored in persistent storage during execution, then system reliability is improved, but access speed deteriorates due to disk operations
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.
Data Source
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.


