Can I use NFS as my filesystem or datastore storage?

The short answer is no. Although this may seem harmless, the reason for this is not performance related, but rather for control over locking files. NFS and other filesystems that don’t offer locking should not be used to install Neo4j… Read more →

Explore:  


Running Docker as Non-Root User

When running Neo4j Docker, it will run as neo4j user inside the container. But to run docker as a different user one can specify the –user argument. Documentation has a section for running as non-root user: https://neo4j.com/docs/operations-manual/3.4/installation/docker/#docker-user but would like… 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… Read more →

Explore:  


Explanation of error “Unrecognized transaction id. Transaction may have timed out and been rolled back”

When submitting a request via the Neo4j Transactional Cypher HTTP endpoint, one may encounter the following error Unrecognized transaction id. Transaction may have timed out and been rolled back This error may occur as a result of the transactions expiration… Read more →

Explore:  


Embed neo4j-enterprise within your java application

The Neo4j Java Reference Documentation generally describes how to embed Neo4j Community Edition within your Java application. If you are licensed for Neo4j Enterprise, this article will guide you through setting up the project to use Neo4j Enterprise embedded within… Read more →

Explore:  


Creating and working with linked lists in Cypher

At some point when working with a graph, you may want to create a linked list out of some nodes. If each of the nodes to be linked has its own variable, this is easy, you just do a CREATE… Read more →

Explore:  


How to specify a separate debug.log for the backup process?

When running neo4j-admin backup on a running Neo4j instance the backup logs are also written into the existing Neo4j instance debug.log and can get confusing as to which line items in the debug.log is part of backup process and those… 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:  


Linux Out of Memory killer

The Out Of Memory Killer or OOM Killer is a process that the linux kernel employs when the system is critically low on memory. This situation occurs because the linux kernel has over allocated memory to its processes. When a… Read more →

Explore:  


Diagnosing network latency in a Causal Cluster using MTR

MTR is a simple ICMP based test combining ping and traceroute. The following demonstrates usage of the MTR trace tool to diagnose network latency and packet loss in a Causal Cluster. The tool is commonly used on Windows via the… Read more →

Explore:  


What Works with the BI Connector

This article provides an overview of what third-party applications to expect the BI connector work with. Prerequisites Ensure that you are running Neo4j server 3.5.x or 4.x, and have installed at least version 3.5.0.9 or 4.0.0.4 of the APOC library… Read more →

Explore:  


Explanation of “Failed to update routing table with server” error

If you encounter a Failed to update routing table with server error in their $NEO4J_HOME/logs/debug.log similar to: ERROR 1 — [o4jDriverIO-5-2] LoadBalancer : Failed to update routing table. Current routing table: Ttl 1582554193442, currentTime 1582554193471, routers AddressSet=[], writers AddressSet=[], readers… Read more →

Explore:  


Using the ACTUAL data type with neo4j-import

When importing data using neo4j-admin import, make sure to review the required CSV file structure and considerations before moving on. https://neo4j.com/docs/operations-manual/current/tools/import/ ACTUAL vs. String (default) or Integer: Each node in the CSV must have an :ID, which can be in… Read more →

Explore:  


Diagnose storage performance issues

Slow storage can affect Neo4j performance, therefore we recommend using Solid State Drives in the product documentation. Benchmark your underlying system On Ubuntu or RedHat, you can use fio tool to benchmark your underlying storage. The command below will create… Read more →

Explore:  


Four ways to check the consistency of a Neo4j graph

When it comes checking the inconsistencies in your graph, there are four methods to do. This article describes them below: 1. The easiest approach is it to utilize the check-consistency=true option with the backup command. With this approach your graph… Read more →

Explore:  


Database was successfully initialized, but failed to start

Sometimes when the database does not start it could be something as simple as unnecessary characters in the neo4j.conf file. For example if you add space and/or tab characters to below setting: dbms.ssl.policy.client_policy.private_key=/var/lib/neo4j/certificates/client_policy/neo4j.key The database will fail to start and… Read more →

Explore:  


A note on OPTIONAL MATCHes

An OPTIONAL MATCH matches patterns against your graph database, just like a MATCH does. The difference is that if no matches are found, OPTIONAL MATCH will use a null for missing parts of the pattern. OPTIONAL MATCH could be considered… Read more →

Explore:  


How to check for time range overlap in Cypher

Neo4j 3.4 introduced temporal types into Cypher, so now we have dates, dateTimes, and their local versions, too, as well as durations. While we don’t have a type for time ranges, we can use two temporal instants as the start… Read more →

Explore:  


Achieving longestPath Using Cypher

While Cypher is optimized for finding the shortest path between two nodes, with such functionality as shortestPath(), it does not have the same sort of function for longest path. In some cases, you may want this, and not the shortest… Read more →

Explore:  


Resolve TLS certificate errors

TLS encryption is required everywhere. This is a compilation of few errors you can expect while configuring your server. openssl command is required to diagnose or manipulate the certificates. Check the permission on the folder neo4j might run as a… 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:  


Using explicit indexes for text search

Note Please note that in Neo4j 3.5 FullText search is available in Neo4j as part of Cypher stored procedures. More documentation is found here: https://neo4j.com/docs/cypher-manual/3.5/schema/index/#schema-index-fulltext-search. As of Neo4j 3.4.x, the schema index is optimal for indexing exact property values, but… Read more →

Explore:  


Using supervisord to manage Neo4j process

In general, running the neo4j process directly is the most common way to start and stop the neo4j server. However, if you use supervisord to manage processes, this has worked for others. Things to keep in mind: supervisord can only… Read more →

Explore:  


Using Amazon CloudWatch to monitor Neo4j logs

This article describes how to set up Amazon CloudWatch. Amazon CloudWatch Logs allows you to monitor, store, and access your Neo4j log files from Amazon EC2 instances, AWS CloudTrail, or other sources. You can then retrieve the associated log data… Read more →

Explore:  


How to fix “Cannot close the PageCache while files are still mapped”

Incorrect file permissions on store files It is common to start the database as different users, this can leave store files owned by other user ids. ( e.g. root ) In such case, you might want to fix the store… Read more →

Explore: