cancel
Showing results for 
Search instead for 
Did you mean: 

Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.

Neo4j migrate from HA cluster to Casual cluster

Hi, We are using neo4j 2.3.12. Now we planning to upgrade, and the recommended upgrade path is 2.3.12 to 3.3.9. So once we upgrade to 3.3.9 (HA clustering) then, we want again to migrate to Casual clustering. So can I get some inputs?

1 ACCEPTED SOLUTION

https://neo4j.com/docs/operations-manual/3.3/upgrade/planning/#upgrade-planning-supported-upgrade-pa... describes the upgrade

Regarding conversion from HA to Causal there is not really so much a conversion. Rather you can simply take a running HA cluster, stop all members and then configure conf/neo4j.conf and disable HA and then enable Causal Cluster.

https://neo4j.com/docs/operations-manual/3.3/clustering/ describes enabling/configure of a Causal Cluster

View solution in original post

6 REPLIES 6

Why 3.3.9 which is a bit old. https://neo4j.com/release-notes/neo4j-3-3-9/ reports it was made available November 2, 2018. Upgrading from 2.3.12 is great since its even older but by going to 3.3.9 you are upgrading to a release that is 1.5 yrs old.

As to the upgrade I would suggest a 2 step process as follows
a. first upgrade to 3.3.9 ( or a newer release ) and remain on HA Clustering.
b. once you are satisfied the upgrade to 3.3.9 ( or a new release ) on HA Clustering is satisfactory then convert to Causal Clustering. The conversion from HA to Causal should only require changes to your conf/neo4j.conf. The contents of graph.db remain the same whether in HA or Causal.

Architecturally it should also be noted that HA is different than Causal in that HA has a Master and Slaves whereas Causal has Leader and Followers. Further under HA a write can be sent to any cluster member (though ideally it is sent to Master) but Causal can only accept writes at the Leader. Causal along with the Neo4j Bolt Drivers does allow for a connection with a url of bolt+routing://<Neo4jInstance>:7687 and when including +routing in the url rather than simply bolt://<Neo4jInstance>:7687 then when a write transaction is submitted it will automatically be routed to the cluster member which is the leader even if the leader is not at . For this to occur however the Cypher needs to be sent explicitly as a write transaction, i.e. session.writeTransaction().

Thank you for your suggestions. To Answer Why 3.3.9, We seeing that is only the possible upgrade path to next latest release after 2.3.12. We eventually upgrade it further as well.
Could you elaborate more about the conversion steps/changes from HA to Casual cluster or guide me to a documentation if available.

https://neo4j.com/docs/operations-manual/3.3/upgrade/planning/#upgrade-planning-supported-upgrade-pa... describes the upgrade

Regarding conversion from HA to Causal there is not really so much a conversion. Rather you can simply take a running HA cluster, stop all members and then configure conf/neo4j.conf and disable HA and then enable Causal Cluster.

https://neo4j.com/docs/operations-manual/3.3/clustering/ describes enabling/configure of a Causal Cluster

also one noticeable difference between HA and Causal Cluster is that unlike HA where one can simply swap out a graph.db with another with little impact, under Causal Clustering you can't entirely do the same unless you unbind the Causal Cluster instance via bin/neo4j-admin unbind

https://neo4j.com/docs/operations-manual/3.3/clustering/causal-clustering/seed-cluster/

Sure.
Could you clarify on below as well...
While migrating from HA to Casual, do we need to bring down the entire cluster?
Is Casual cluster having Arbiter kind of support like HA?(to understand, how can we handle if we have 2 servers only to work with)

Causal Cluster does not have the same as a Arbiter instance.
Regarding

While migrating from HA to Casual, do we need to bring down the entire cluster?

you could have a HA cluster up and operational and as it is running make all the necessary changes to neo4j.conf so as to support a Causal Cluster. Stop the cluster and then restart with HA disabled and Causal enabled and it should come up