Distributed Cluster Join Management via Fence Work Requests
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems, when a node joins or leaves a cluster managing workload tasks in a storage system, existing technologies face challenges in ensuring that workload tasks are not allocated to multiple nodes for processing simultaneously, leading to potential conflicts and inefficiencies.
Innovation Solution
Implementing a distributed cluster join management process that updates cluster membership and ensures previously allocated workload tasks are completed before a new node can process tasks, using a striping algorithm to deterministically allocate tasks and prevent concurrent processing during the joining process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a node joins the cluster and cluster membership is updated, then the cluster can process more workload tasks with increased capacity, but previously allocated workload tasks may be re-sent to the joining node causing duplicate execution and conflicts
Solution Approach 1:
The system performs preliminary actions by having the joining node send fence work requests to all other nodes before it begins processing workload tasks. These fence requests ensure that any workload tasks currently being processed by other nodes are completed or abandoned before the joining node starts executing tasks, preventing duplicate execution and maintaining execution consistency.
Solution Approach 2:
Fence work requests act as an intermediary mechanism between the joining node and existing cluster nodes. These requests coordinate the transition by signaling other nodes to complete or abandon their current workload tasks, ensuring that the joining node does not receive duplicate work requests and preventing conflicts during the cluster membership update.
2Adaptability or versatility
If the striping algorithm is re-run after cluster membership changes, then workload task allocation can be redistributed to include the new node, but workload tasks may be sent to multiple nodes simultaneously causing conflicts
Solution Approach 1:
The system performs preliminary actions by executing fence work requests before the joining node begins processing workload tasks. This preliminary fencing action ensures that the striping algorithm can be re-run and cluster membership updated without causing duplicate execution, as other nodes will have already completed or abandoned their current tasks.
Solution Approach 2:
The system converts the potential harm of re-running the striping algorithm (which could cause duplicate execution) into a benefit by using fence work requests to control the timing. The re-run of the striping algorithm is beneficial for load distribution, and the fence mechanism ensures it doesn't cause harm by coordinating when nodes can process tasks.
3Speed
If a node is allowed to join the cluster immediately, then cluster expansion is faster and more responsive, but workload task allocation may become inconsistent leading to conflicts
Solution Approach 1:
The system performs preliminary fencing actions quickly upon node joining, sending fence work requests immediately to all other nodes. This allows the node to join the cluster rapidly while still maintaining stability, as the fence mechanism quickly establishes the boundary conditions for safe workload allocation before the node begins processing tasks.
Solution Approach 2:
The system dynamically adjusts the cluster membership state by transitioning nodes through different phases (joining, fenced, active). This dynamic approach allows rapid node joining while maintaining stability through controlled state transitions, where the fence phase temporarily restricts workload allocation until safety conditions are met.
Data Source
AI summary
Nodes of the cluster receive workload tasks and use a striping algorithm to determine which node in the cluster should process the workload tasks. Workload task allocation within the cluster is dependent on the cluster membership at the time the striping algorithm is implemented. If a node leaves the cluster, the cluster membership is updated, and the striping algorithm is used to reallocate workload tasks assigned to the leaving node to other nodes within the cluster. If a node joins the cluster, cluster membership is updated, and any workload tasks previously assigned to the cluster nodes are allowed to complete before the joining node is able to begin working on workload tasks. Cluster membership changes are updated in a shared global memory, and locally synchronized in connection with particular events, to implement the distributed cluster join management process.


