Enabler Agents for Database Node Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-server environments, split-brain conditions due to data inconsistencies lead to inefficiencies, requiring human intervention for corrective actions like restarting database nodes, which is time-consuming and labor-intensive.

Innovation Solution

Implementing enabler agents that monitor database node availability, periodically check for consistency, and automatically remove flags when nodes become available, allowing app servers to reconnect without restarting, thus reducing human intervention and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual intervention is used to reset database nodes during split-brain conditions, then corrective action can be taken, but human intervention is required which is time-consuming and labor-intensive

Engineering Contradiction:
Improverecovery speedVSAvoidhuman intervention requirement
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system implements self-service through automatic detection and resolution mechanisms. The service monitors database node availability and automatically detects split-brain conditions. When detected, the system autonomously determines which nodes to reset and executes the recovery process without requiring human intervention, thereby improving productivity while eliminating manual operation requirements

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary actions by pre-configuring recovery policies and availability thresholds before split-brain conditions occur. The service continuously monitors node availability and has pre-established criteria for determining when recovery actions should be taken, enabling faster response when conditions arise without requiring real-time human decision-making

Inventive Principle:
Principle #10Preliminary action

2Reliability

If database nodes are monitored for availability, then split-brain conditions can be detected, but false positives may occur causing nodes to be flagged incorrectly

Engineering Contradiction:
Improvedetection accuracyVSAvoidavailability determination accuracy
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The system implements feedback mechanisms where the service continuously monitors database node availability and compares actual status against expected status. When discrepancies are detected, the system adjusts its monitoring and determination processes based on feedback from multiple sources, improving both detection accuracy and measurement precision by validating findings through repeated observation and cross-checking

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system applies dynamic thresholds and adaptive monitoring that adjust based on system conditions. Rather than using fixed availability criteria, the service dynamically determines when a node should be considered unavailable based on current system state, reducing false positives while maintaining reliable detection of actual split-brain conditions

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10958505B2Techniques and architectures for recovering from a service disruption in a multi-server environment
Publication Date: 2021.03.23 SALESFORCE INC
  • US10958505B2 patent drawing
  • US10958505B2 patent drawing
  • US10958505B2 patent drawing

AI summary

Techniques and architectures to provide multiple application servers each having at least one connection agent and at least one enabler agent and at least one database organized as multiple nodes. An error condition between a first connection agent and a first database node is detected. The first connection agent indicates that the first database node is unavailable to stop attempts to access the first database node by a first application server. A first enabler agent periodically checks availability of the first database node. The first database node is indicated as available in response to a pre-selected number of successful attempts to contact the first database node with the first enabler agent. The first database node is accessed with the application server in response to the indication that the first database node is available.