Cluster: org.neo4j.kernel.impl.transaction.log.NoSuchTransactionException: Unable to find transaction 1 in any of my logical logs: Couldn’t find any log containing 1

When operating a causal cluster, if “the store” (data/databases/graph.db) is removed from a server that was previously a member of the cluster we will get the following exception when that server is started: java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, /path/to/neo4j/data/databases/graph.db at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:209)… Read more →

Explore:  


Causal Cluster FAQ for heavy workloads

Lagging of follower instances and what causes it? The main reason for followers to fall behind is highly concurrent and continuous read/write workloads. This can cause the instances get overwhelmed which causes some extra latency in propagating the data to… Read more →

Explore:  


Are my cluster transactions/messages encrypted.

For all versions prior to 3.3, there is no encryption done specifically on the contents being transferred. Furthermore, since it doesn’t use REST or Bolt, there is no SSL/https configuration either. Transactions are propagated via transaction logs, which are a… Read more →

Explore:  


A demonstration of IntraCluster SSL Encryption

This document provides a step-by-step demonstration of the process to deploy a Self-Signed SSL Certificate, to member instances of a Causal Cluster, aimed at achieving intra-cluster encryption. The steps can be outlined as: Generate and install cryptographic objects Create an SSL… Read more →

Explore:  


Deploying Neo4j on AWS Using CloudFormation

This page describes how to use CloudFormation to deploy Neo4j clusters on AWS, using Virtual Machines. Basics The Neo4j CloudFormation templates allow deploying causal clusters of any size, with almost any machine type, as Virtual Machines on AWS. The templates… Read more →

Explore:  


An example of neo4j-import steps in a Causal Cluster environment

The following steps are provided to describe how to use neo4j-import in a Causal Cluster environment and was run from an environment of a single linux host with 3 copies for Neo4j 3.1.2 installed in the following paths ~/HA/ha1/neo4j-enterprise-3.1.2 ~/HA/ha2/neo4j-enterprise-3.1.2… Read more →

Explore:  


Understanding causal cluster quorum and cluster recovery

Several major causal cluster operations require a majority of cluster members to be online, a majority quorum. When a causal cluster loses majority quorum, it loses write capability as well as the ability to add or remove members of the… Read more →

Explore:  


Upstream strategy behaviour change

Starting with version 3.4, we changed in the behaviour of how instances sync with the Leader. This change can potentially affect the behaviour of your cluster when using strategy plugins, depending on your configuration. Pre-3.4 – on the context of… Read more →

Explore:  


Configure HAProxy to Send Write Requests to Leader Node Only

There are a few options regarding implementation of a proxy server to direct writes to a Master node and reads to the Slave nodes in a Neo4j cluster. Commonly, it is recommended to handle this logic in the application code.… Read more →

Explore:  


A Demonstration of Cluster Size at Formation and Runtime

Causal Clustering Minimum Core Size At Formation causal_clustering.minimum_core_cluster_size_at_formation is defined as the minimum number of Core machines initially required to form a cluster. The cluster will form when at least this many Core members have discovered each other. The following… Read more →

Explore:  


A demonstration of causal cluster routing

The following will demonstrate how to use cypher-shell to get a better understanding of a Neo4j Causal Cluster instance and its implementation of routing. The initial scenario is described with local cluster setup with 3 core instances, 1 LEADER and… Read more →

Explore:  


HA Proxy Configuration for Online Backup

What are we trying to achieve? Online backup should be scheduled to run periodically on a production cluster. You only need to run it on one instance, since each has its own full copy of the database. Because a full… Read more →

Explore:  


Setup Routing Policies for Different User Types To Direct them to Different Servers

Problem statement There is a Causal Cluster Setup with 3 Cores and 1 Read Replica. There are 2 user groups – OLTP users and OLAP users. OLTP user queries should only go to the 2 Followers and not to the… Read more →

Explore:  


A method to replicate a Causal Cluster to new hardware with minimum downtime

If the opportunity arises such that you are in need of replicating your existing Causal Cluster cluster to a new hardware setup, the following can be used to allow for minimal downtime. Let us first start with an existing 3… Read more →

Explore:  


How do I resolve inconsistency problems on an instance of a cluster

(if using version >= 3.1, please read Leader and Follower instead of Master and Slave respectively) Sometimes, when running a clustered Neo4j environment, a slave’s store may become inconsistent. On a normal day-to-day operation, if a slave becomes inconsistent, it… Read more →

Explore:  


When to use bookmarks

Bookmarks are part of a broader topic: Causal consistency. We recommend reading the introduction to Neo4j Causal Clustering and the lifecycle of a Neo4j Causal Cluster before reading further. Pay special attention to Causal Consistency explained. Bookmarks ensure than when… Read more →

Explore:  


When authentication is enabled in Neo4j, how do I call the HA Status REST API without a username/password

One can enable authentication for the Neo4j database by adding the following to the conf/neo4j-server.properties dbms.security.auth_enabled=true In doing so any connections to the database will need to provide a username/password. However for the REST endpoint for HA Status information a… Read more →

Explore:  


Comparing HA and Causal Clusters

The legacy HA cluster mode has been deprecated as of Neo4j version 3.5, and will be totally removed from the product in version 4.0, with 4.0 expected to be released near the end of 2019. Additionally, per Neo4j support terms,… Read more →

Explore:  


Mitigating Causal Cluster re-elections caused by high GCs

This article describes the effects of JVM stop-the-world GC pauses, on a causal cluster. A brief introduction to garbage collection, heap sizing and memory leak troubleshooting, is followed by a discussion on best practices and configurations to help mitigate the… Read more →

Explore:  


How to monitor if a follower is in sync with Leader (Causal Cluster)

To monitor if a Follower is in sync with its Leader, or know how much it is lagging behind, it is possible to check the Last Commited Transaction Id from Leader and Follower. Last Commited Transaction Id can be assessed… Read more →

Explore:  


Upgrading your Causal Cluster from 3.1.x to 3.2.x

This article outlines possible steps to upgrade your Neo4j 3.1.2+ Causal Cluster to 3.2.2. For this upgrade path, Neo4j does not support rolling upgrades, so downtime is required to complete the process. However, the following procedure tries to minimize the… Read more →

Explore:  


Add a Neo4j instance to a running embedded HA application

There are situations when we would like to use the Neo4j Browser to access an embedded HA cluster. The documented approach to accomplish that goal requires changing the embedded application code as described in the Neo4j documentation: Accessing Neo4j embedded… Read more →

Explore:  


Understanding causal cluster size scaling

The ability to safely scale down the size of a causal cluster affords us more robustness for instance failures, provided we maintain quorum as the failures take place. Prior to 3.4, we used a single config property to define both… Read more →

Explore:  


How do I display a hostname rather than IP address in the Causal Clustering Members section of sysinfo

Via the browser one can enter :sysinfo to display data about the Neo4j system. When Neo4j is configured as a causal cluster, the bottom-right corner of the `:sysinfo’ output will display the members in the cluster as depicted below: Each… Read more →

Explore:  


Explanation of error “Failed to obtain connection towards WRITE server. Known routing table is: Ttl…​”

In Neo4j 4.0, if you are logged into the READ_REPLICA of a Causal Cluster, and execute the following command to login into cypher-shell: $NEO4J_HOME/bin/cypher-shell -u neo4j -p mypwd You will encounter this error: Failed to obtain connection towards WRITE server.… Read more →

Explore: