Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Leader election and Failover detection java library [closed]

I am looking for a library that provides the most basic clustering requirements. This library should hopefully come detached from a full blown state replication solution (ZooKeeper), since the state replication requirements are very minimal.

  1. Discovery of other cluster members using seeding and gossiping. (networks without multicast)
  2. Fail-over detection algorithm for LAN and WAN networks based on REST over HTTP/S. (Firewall friendly by design, multi-site clustering).
  3. Quorum based leader election, including split-brain detection. (multi-site clustering)
  4. Hopefully written in Java, or JVM compatible language.
  5. Reads/Writes only from/to the leader (any write to leader node is replicated to all other nodes)
  6. Negligible amount of read/write traffic.
like image 272
itaifrenkel Avatar asked Dec 19 '12 07:12

itaifrenkel


People also ask

How to demonstrate the leader election process in Hyperledger Fabric?

Raft leader election process in Hyperledger Fabric. The aim is to demonstrate the leader election using apache curator library and zookeeper Implement a simple Distributed Class Management System to be software failure tolerant or highly available using process replication Implementation of HS Algorithm in the field of Distributed Algorithms

How does the election process work when the leader fails?

This process, together with the new process that also thinks that it currently has the highest ID via the election algorithm since the failure of the old leader; will send the COORDINATOR concurrently to announce themselves as the new leader.

What is a leader election algorithm?

Leader election algorithms aim to: Elect one leader only among the non-faulty processes and all non-faulty processes agree on who the leader is. Any non-faulty process can call for an election but at most one election at a time. Multiple processes are allowed to call an election simultaneously but together must yield only a single leader.

Can we implement Hirschberg-Sinclair leader election algorithm in Python?

Implementation and experimental tests of various algorithms. An implementation of the Hirschberg-Sinclair leader election algorithm in Python. Raft leader election process in Hyperledger Fabric. The aim is to demonstrate the leader election using apache curator library and zookeeper


2 Answers

Last I looked(a few years back) JGroups offered a nice collection of utilities for creating and managing clusters. It's established as part of JBoss but comes with very little attached(used to anyway). Not sure it ticks all the boxes, but worth a check.

like image 140
Nitsan Wakart Avatar answered Oct 04 '22 00:10

Nitsan Wakart


JGroups cannot use HTTP connections; it manages clustering on an IP level by UDP (by multicast) or TCP (by one of several methods, including gossip and relay). Use one of the TCP methods to use JGroups over a WAN.

like image 36
william.berg Avatar answered Oct 03 '22 23:10

william.berg