Session State Persistence via Database Plug-in Translation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in persisting session state information across computing systems, particularly in ensuring seamless session continuation after a virtual machine crash, and managing session state data efficiently across multiple sessions and applications.
Innovation Solution
A method involving the use of a deployment descriptor to specify an external persistence scope, instantiating a database plug-in, and managing session state information through a persistence storage interface that translates generic commands into database-specific commands for storing and retrieving session attributes, utilizing a hierarchical organization of session domains and shared memory for failover protection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If session state information is stored in volatile system memory, then access speed is improved, but data loss occurs upon system crash
Solution Approach 1:
The patent segments session state information into multiple attributes that can be independently managed and persisted. Each attribute can be stored in different persistence locations (volatile memory, shared memory, or external database), allowing the system to balance speed and reliability on a per-attribute basis rather than treating all session data uniformly.
Solution Approach 2:
The patent introduces a persistence storage interface as an intermediary layer between the session management system and the actual storage media. This interface abstracts the complexity of different storage mechanisms and provides a unified method for persisting session attributes, enabling seamless failover and data recovery without compromising access speed.
2Reliability
If session state information is persisted to external database, then reliability is improved, but access speed deteriorates
Solution Approach 1:
The patent divides session state information into multiple attributes and allows selective persistence of only critical attributes to external databases. Frequently accessed attributes can remain in volatile or shared memory for fast access, while less frequently accessed but critical attributes are persisted externally, optimizing the balance between speed and reliability.
Solution Approach 2:
The patent applies different persistence strategies to different session attributes based on their specific requirements. Critical attributes that need fast access are stored in shared memory or volatile memory, while attributes requiring strong consistency and durability are persisted to external databases, allowing each attribute to have the quality of persistence appropriate to its needs.
3Device complexity
If session management criteria are tightly coupled with session state data, then system complexity is reduced, but adaptability deteriorates
Solution Approach 1:
The patent separates session management criteria from session state data into distinct components. The persistence storage interface acts as an independent layer that mediates between the session management logic and the actual data storage, allowing each to evolve and be optimized independently while maintaining clear interfaces between them.
Solution Approach 2:
The patent creates a universal persistence storage interface that can work with different session management criteria and session state data formats. This interface provides multi-functional capabilities, supporting various persistence strategies (volatile memory, shared memory, external database) and different session attributes through a unified API, thereby enhancing adaptability without increasing complexity.
4Reliability
If session state information is stored in shared memory, then failover protection is improved, but memory consumption increases
Solution Approach 1:
The patent segments session state attributes and selectively persists only critical attributes to shared memory for failover protection. Less critical attributes can remain in volatile memory or be persisted to external databases, reducing the amount of data that needs to be maintained in shared memory while still providing adequate failover protection for essential session information.
Data Source
AI summary
A method performed by a computing system is described. The method involves receiving a deployment descriptor that specifies a persistence scope that is external to the computing system. The method also involves, as a consequence of the receiving, instantiating a plug-in for a database that is external to the computing system. The method also involves, over the course of a session, managing the persistence of the session's session state information in said database by, with program code provided by the plug-in, translating a first command that is not specific to the database into a second command that is specific to the database. The session state information comprises a plurality of attributes. The first command is to cause a process to be performed. The process is selected from the group consisting of: storing in the database one of the attributes; and, retrieving from the database one of the attributes.


