Deterministic Backup Server Selection via Session Key Hashing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In a distributed server environment, determining a backup server for session state information in a scalable and efficient manner becomes impractical when the number of servers increases, due to the high time and bandwidth consumption of querying operational servers to find a suitable backup.

Innovation Solution

A deterministic mechanism is used to generate result values from a session's key value, associating each server with a unique result value, ensuring that each server can determine the operational backup server without the need for explicit indication in requests, using a pseudo-random number generator seeded with the key value to maintain session integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a server queries each operational server to determine backup server assignment, then backup server determination is accurate, but time and bandwidth consumption increases prohibitively with many servers

Engineering Contradiction:
Improvebackup server determination accuracyVSAvoidquery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system pre-computes and stores backup server assignments using a deterministic algorithm before any failover events occur. Each server can independently determine backup assignments by applying the same deterministic function to session keys, eliminating the need for runtime queries among operational servers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each server independently determines backup server assignments by applying the deterministic algorithm locally using session keys and server identifiers, without needing to query other servers. This self-service approach eliminates communication overhead and scales efficiently regardless of server count.

Inventive Principle:
Principle #25Self-service

2Reliability

If a server queries each operational server to determine backup server assignment, then backup server determination is accurate, but bandwidth consumption increases prohibitively with many servers

Engineering Contradiction:
Improvebackup server determination accuracyVSAvoidbandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system pre-computes and stores backup server assignments using a deterministic algorithm before any failover events occur. Each server can independently determine backup assignments by applying the same deterministic function to session keys, eliminating the need for runtime queries among operational servers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each server independently determines backup server assignments by applying the deterministic algorithm locally using session keys and server identifiers, without needing to query other servers. This self-service approach eliminates communication overhead and scales efficiently regardless of server count.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If session state information is stored in a central repository, then all servers can access session data, but access efficiency decreases due to centralized bottleneck

Engineering Contradiction:
Improvesession data accessibilityVSAvoidaccess efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system divides session state information storage across multiple servers, with each server maintaining local copies of session data for sessions it handles. This segmentation eliminates the centralized bottleneck while maintaining data accessibility through distributed storage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each server maintains local session state information for its assigned sessions, enabling fast local access without querying the central repository. The deterministic backup mechanism ensures that backup servers also have local copies, maintaining both accessibility and efficiency.

Inventive Principle:
Principle #3Local quality

4Productivity

If each server maintains local session state information, then access efficiency improves, but session integrity may be compromised during server failures

Engineering Contradiction:
Improveaccess efficiencyVSAvoidsession integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system pre-computes and stores backup server assignments using a deterministic algorithm before any failover events occur. Each server can independently determine backup assignments by applying the same deterministic function to session keys, eliminating the need for runtime queries among operational servers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The deterministic algorithm provides a consistent feedback mechanism where any server can determine the same backup server for a given session by applying the same function to the session key and server identifiers, ensuring session integrity is maintained across failures.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8090829B1Determining a backup server for a session based on a deterministic mechanism and the session's key value
Publication Date: 2012.01.03 ORACLE AMERICAN INC
  • US8090829B1 patent drawing
  • US8090829B1 patent drawing
  • US8090829B1 patent drawing

AI summary

A mechanism is disclosed for determining, based on a deterministic mechanism and a session's key value, a backup server for the session. In one embodiment, each session has a different key value, and each key value can be processed through the deterministic mechanism to give rise to a separate ordering of a result value set. Each server of a plurality of servers is associated with a different one of the set's values. A request pertaining to a particular session is received. The request indicates the particular session's key value. The deterministic mechanism can generate result values, in a particular order to which the session's key value gives rise, until a result value associated with a currently operational server is generated. The request is sent to that server if the request's primary server is not currently operational. A pseudo-random number generator seeded with the key value may generate the result values.