Application Instance Identifier for Clustered Client Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In clustered environments, when a node fails, applications may not properly release resources, leading to locked or fenced states, causing delays and conflicts when attempting to regain access from a different node, as the server struggles to identify the original application attempting to reaccess the resource.

Innovation Solution

The use of a unique application instance identifier associated with the resource allows the server to differentiate between requests, ensuring that the original application can regain access without waiting for the resource to be released by the previous node, thereby preventing conflicts and reducing delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the server fences or locks the resource after a node failure, then resource protection is improved, but access delay and system availability deteriorate

Engineering Contradiction:
Improveresource protectionVSAvoidaccess delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The server receives feedback in the form of an application instance identifier with each resource access request. This identifier allows the server to recognize that a failover has occurred and that the same application is requesting access from a different node, enabling the server to invalidate the fence and grant access without delay

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The application instance identifier acts as an intermediary mechanism that bridges the gap between resource protection and access continuity. It provides the server with the information needed to distinguish between legitimate failover requests and actual conflicts, enabling intelligent decision-making about resource access

Inventive Principle:
Principle #24Intermediary (Mediator)

2Object-generated harmful factors

If the server locks the resource per the previous client's request, then conflict prevention is improved, but system availability and access continuity deteriorate

Engineering Contradiction:
Improveconflict preventionVSAvoidaccess continuity
Core Design Contradiction:
Object-generated harmful factorsVSProductivity

Solution Approach 1:

The application instance identifier provides continuous feedback to the server about the identity of the requesting application. This allows the server to maintain conflict prevention while recognizing failover scenarios, as the identifier remains consistent across node transitions

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts resource access decisions based on the application instance identifier. When the server detects that the identifier matches a previously locked resource, it invalidates the lock and grants access, making the system adaptive to failover conditions

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2754059B1Clustered client failover
Publication Date: 2017.03.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2754059B1 patent drawing
  • EP2754059B1 patent drawing
  • EP2754059B1 patent drawing

AI summary

An application instance identifier is employed with various systems and methods in order to provide a requestor with continuous access to a resource when operating in a client clustered environment. A requestor residing on a first client in may attempt to access a resource. The first client sends a request to access the resource. The request may be associated with an application instance identifier that identifiers the requestor. At some point, the first client fails and the requestor is associated with a second client via a failover mechanism. The second client sends a second request to access the resource on behalf of the requestor. The second request is associated with the requestor's application instance identifier. The application instance identifier is used to identify the second request as belonging to the same requestor as the first request, thereby granting the second request to access the resource while avoiding a conflict situation.