JDO Persistence Manager for Distributed State Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed application systems face challenges in persisting application state data due to limitations in serialization, including lack of transaction support, concurrency control, query capabilities, and efficient data access, leading to complexity and scalability issues.
Innovation Solution
Implementing a server cluster networked with a persistent data store using a Java Data Object (JDO) persistence manager that detects changes in application state and persists only the changed data, providing transaction support and masking resource manager peculiarities, along with a JDO-style write barrier to manage object persistence.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If application state is stored locally to each server in a cluster, then data access speed is improved, but fault tolerance and load balancing capability deteriorate
Solution Approach 1:
The patent transitions from a single-dimension local storage model to a multi-dimensional architecture where state data exists both locally (for fast access) and remotely in a shared persistent store (for fault tolerance). This dimensional addition allows the system to simultaneously achieve fast local access and reliable remote persistence, resolving the contradiction between speed and reliability.
Solution Approach 2:
The patent introduces a shared persistent store as an intermediary between servers and state data. This mediator enables multiple servers to access the same state data without requiring direct server-to-server communication, providing both fault tolerance through redundancy and support for load balancing while maintaining data consistency.
2Reliability
If application state is persisted to a remote persistent store, then fault tolerance is improved, but data access speed and system complexity deteriorate
Solution Approach 1:
The patent applies local quality by allowing each server to maintain a local copy or cache of state data it frequently accesses. This enables hot data to be read from fast local storage while still being persisted to remote storage for fault tolerance, optimizing the speed-reliability tradeoff by giving different parts of the system different access characteristics.
3Adaptability or versatility
If serialization is used for state persistence, then data portability is improved, but transaction support and concurrency control deteriorate
Solution Approach 1:
The patent extracts the transaction management and concurrency control functions from the basic serialization mechanism. By separating these concerns and implementing them as distinct layers in the persistence architecture, the system maintains the simplicity and portability of serialization while adding robust transaction support and concurrency control through the persistent store manager.
4Loss of information
If entire object graphs are serialized, then data completeness is improved, but data access efficiency and update performance deteriorate
Solution Approach 1:
The patent segments the monolithic object graph serialization approach into fine-grained individual object or field-level persistence operations. This allows the system to persist only the specific data elements that have changed rather than serializing entire object graphs, dramatically improving update performance while maintaining data completeness through selective persistence of relevant objects and fields.
Data Source
AI summary
Various embodiments of a system and method for persisting application state data are disclosed. The system may include a server cluster networked to a persistent data store such as a database resident on a backend system. Each server of the cluster may include a server container providing services for one or more applications along with a persistence mechanism. The persistence mechanism may be able to detect changes to the state of an application and persist only the portion of the application state that changed to the remote, persistent data store. In some embodiments, the persistence mechanism may be a Java Data Object (JDO) persistence manager which provides object persistence and transaction support while masking the peculiarities of resource managers for particular databases.


