A typical deployment of Neo4j will use a cluster of 3 machines to provide fault-tolerance and read scalability. This setup is described in Section 25.6, “High Availability setup tutorial”.
While having at least 3 instances is necessary for failover to happen in case the master becomes unavailable, it is not required for all instances to run the full Neo4j stack, which includes the database engine. Instead, what is called arbiter instances can be deployed. They can be regarded as cluster participants in that their role is to take part in master elections with the single purpose of breaking ties in the election process. That makes possible a scenario where you have a cluster of 2 Neo4j database instances and an additional arbiter instance and still enjoy tolerance of a single failure of either of the 3 instances.
Arbiter instances are configured in neo4j.conf using the same settings as standard Neo4j HA members.
The instance is configured to be an arbiter by setting the dbms.mode
option to ARBITER
.
Settings that are not cluster specific are of course ignored, so you can easily start up an arbiter instance in place of a properly configured Neo4j instance.
To start the arbiter instance, run neo4j
as normal:
neo4j_home$ ./bin/neo4j start
You can also stop, install and remove it as a service and ask for its status in exactly the same way as for other Neo4j instances. See also Section 23.2, “Server Installation”.