Session State Persistence via Database Plug-in Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveaccess speedVSAvoiddata persistence
Core Design Contradiction:
SpeedVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If session state information is persisted to external database, then reliability is improved, but access speed deteriorates

Engineering Contradiction:
Improvedata persistenceVSAvoidaccess speed
Core Design Contradiction:
ReliabilityVSSpeed

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

3Device complexity

If session management criteria are tightly coupled with session state data, then system complexity is reduced, but adaptability deteriorates

Engineering Contradiction:
Improvesystem complexityVSAvoidpersistence strategy flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

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

4Reliability

If session state information is stored in shared memory, then failover protection is improved, but memory consumption increases

Engineering Contradiction:
Improvefailover protectionVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7761435B2External persistence of session state information
Publication Date: 2010.07.20 SAP SE
  • US7761435B2 patent drawing
  • US7761435B2 patent drawing
  • US7761435B2 patent drawing

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.