Unidirectional Resource Dependencies in Oracle Clusterware

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing clusterware technologies face difficulties in managing resources across nodes in a cluster, particularly when resources have complex dependencies that require customized code to handle, leading to potential cascading failures and increased complexity in node addition or removal.

Innovation Solution

The implementation of unidirectional resource dependencies within resource profiles allows for decoupling of start and stop procedures, enabling more flexible resource management and reducing the need for customized code by using START and STOP dependencies with qualifiers like 'hard' and 'weak', and scope modifiers like 'local' and 'global'.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If bi-directional resource dependencies are used to manage cluster resources, then resource management control is maintained, but the system complexity increases and customized code is required to handle complex dependencies

Engineering Contradiction:
Improveresource management controlVSAvoiddependency management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the bi-directional dependency relationship into two separate unidirectional dependency types: start dependencies and stop dependencies. This segmentation allows each dependency type to be handled independently with standardized behavior, eliminating the need for customized code to manage complex bi-directional relationships while maintaining full resource management control.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If customized code is written to handle complex resource dependencies, then specific dependency requirements can be met, but the ease of operation and maintenance decreases

Engineering Contradiction:
Improvedependency requirement flexibilityVSAvoidcode maintenance ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent creates universal dependency types (start and stop dependencies) that can handle multiple dependency scenarios through a standardized framework. By defining universal behaviors for these dependency types, the system can accommodate various complex dependency requirements without requiring customized code, thereby maintaining ease of operation and maintenance while preserving adaptability.

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

3Stability of the object's composition

If resources are tightly coupled with inter-resource dependencies, then resource coordination is improved, but the risk of cascading failures increases

Engineering Contradiction:
Improveresource coordinationVSAvoidcascading failures
Core Design Contradiction:
Stability of the object's compositionVSObject-affected harmful factors

Solution Approach 1:

By segmenting dependencies into independent start and stop dependency types, the patent reduces the coupling between resources. Each dependency type operates independently with well-defined behavior, which prevents failure propagation across the system while maintaining coordinated resource management. This segmentation breaks the chains that would otherwise lead to cascading failures.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8583798B2Unidirectional resource and type dependencies in oracle clusterware
Publication Date: 2013.11.12 ORACLE INT CORP
  • US8583798B2 patent drawing
  • US8583798B2 patent drawing
  • US8583798B2 patent drawing

AI summary

A clusterware manager configures a resource according to resource attributes values specified by a resource profile. The resource profile conforms to a resource profile syntax that the clusterware manager is configured to interpret pursuant to clusterware manager software. The resource profile syntax prescribes a start dependency syntax defining a dependency between a first resource and a second resource in which the second resource must be in an online state before the first resource is started. The resource profile syntax further prescribes a stop dependency syntax defining a dependency between a first resource and a second resource in which the first resource is brought in an off-line state when the second resource leaves an online state.