Number of open files

GNU/Linux and Mac OS operating systems impose an upper limit on the number of concurrent files a user may have open. This article covers how to configure the number of open files on GNU/Linux that use systemd or sysvinitd. For… 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:  


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:  


Why did I get the “Kernel API returned non-existent relationship type: -1” exception?

In rare situations, the Neo4j Bolt driver throws an IllegalStateException. The top part of the stack appears as: java.lang.IllegalStateException: Kernel API returned non-existent relationship type: -1 at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.getRelationshipTypeById(GraphDatabaseFacade.java:991) Under the covers, this is what happens. The getRelationshipTypeById(int type) method is… Read more →

Explore:  


Solve dependency issues

There are multiple ways to include neo4j artifacts. In this article, we will focus on maven based on different scenarios or errors. The most common issue is setting up the dependencies properly in pom.xml. Verify that you have the right… 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:  


Recommendations for recovery upon Out Of Memory error

It is possible to configure the JVM (Java Virtual Machine) such that upon encountering an OOM (Out-Of-Memory) error it will force an exception and crash or simply shut down the application. Taking action upon first OOM occurrence can help in… Read more →

Explore:  


Setup Neo4j Service to run with different service ID

By default when neo4j is installed as an RPM via yum or apt-get, it creates a user neo4j and group neo4j and runs as neo4j user. However it might be required to run Neo4j service as another service id other… Read more →

Explore:  


Fulltext search in Neo4j

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. Fulltext search in Neo4j is supported by means of fulltext schema indexes. Fulltext schema indexes… Read more →

Explore:  


Why do my deleted property keys appear?

When using the Neo4j Browser and selecting the left frame and top icon entitled Database Information or using the built in stored procedure db.propertyKeys() you may see property keys which are no longer associated with any nodes. This is expected.… Read more →

Explore:  


Installing Neo4j Database on Debian or Ubuntu fails with “The following packages have unmet dependencies”

Installing Neo4j Database on Debian or Ubuntu fails with the error: The following packages have unmet dependencies: neo4j-enterprise : Depends: cypher-shell (< 1.2.0) but it is not going to be installed E: Unable to correct problems, you have held broken… 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:  


How to properly shutdown a Neo4j database after receiving the message took more than 120 seconds to stop

The neo4j script under the bin/ directory of any standard Neo4j install is the primary means of shutting down a running Neo4j instance. That script accepts a stop argument that will try to shutdown the running instance by sending a… Read more →

Explore:  


Explanation of start failure “java.lang.NoClassDefFoundError: org/neo4j/kernel/impl/logging/LogService”

Upon starting Neo4j 3.5 if one encounters the following error in the logs/neo4j.log Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component ‘org.neo4j.kernel.extension.GlobalKernelExtensions@14c16d’ failed to initialize. Please see the attached cause exception “org.neo4j.kernel.impl.logging.LogService”. at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:434) at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:66) at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:102) at org.neo4j.graphdb.facade.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:203) … 9 more Caused… Read more →

Explore:  


How to configure off-heap transaction state

Warning This feature is experimental in 3.5, on by default in 4.0. Commencing with Neo4j 3.5, it is possible to store some of transactions’ data in off-heap memory. This can help to reduce GC pressure and/or prevent OOM crashes in… Read more →

Explore:  


How do I view the column headers of a CSV file with LOAD CSV

If one has a CSV file with the following content id,name,dob,addr1,addr2,city,state,country 1,Joe Smith,04/23/1971,121 Main Street,San Mateo,CA,USA 2,Bill Williams,09/21/2008,43 Overlook St,San Mateo,CA, USA and one simply wants to run a LOAD CSV command to have the column headers returned, the following… Read more →

Explore:  


How to avoid costly traversals with join hints

When matching a pattern using Cypher, the number of possible paths to evaluate often correlates with query execution time. When there is a supernode in the path (a node with a high number of relationships whose type are included in… Read more →

Explore:  


Properly escaping input data for neo4j-import

Note neo4j-import is intended to populate a new, empty database. It cannot be used to import into an existing database. When importing data using neo4j-import, make sure to review the required CSV file structure and considerations before moving on. http://neo4j.com/docs/stable/import-tool.html… Read more →

Explore:  


Importing CSV Files: Neo4j Desktop and Sandbox

Loading various kinds of files into Neo4j requires different locations depending on the tool you are using. Import methods we will cover: 1. Neo4j Desktop 2. Neo4j Sandbox Neo4j Desktop Filepath for Neo4j Desktop will vary based on your operating… Read more →

Explore:  


Recreating Indexes and Constraints on 3.5

This article describes the process to drop and recreate all indexes and constraints on 3.5.x. This is a recommended step after upgrading from versions earlier then 3.5 so that all indexes and constraints can be rebuilt with the latest index… Read more →

Explore:  


Neo4j’s commit process explained

This article will try to guide you through Neo4j’s commit and replication processes both for single instances and causal clusters.   Single Instance When you call tx.commit(), the transaction will go through the Storage Engine which will transform that transaction… Read more →

Explore:  


Limiting MATCH results per row

Since LIMIT applies to the total number of rows of the query, it can’t be used in cases when matching from multiple nodes where the limit must be on match results per row. Take an example case using the Movies… Read more →

Explore:  


Startup failure due to misconfigured unmanaged extensions or plugins

Occasionally, following upgrades, one might encounter Neo4j server initialisation failure due to an exception similar to: 2019-11-14 12:57:40.446+0000 ERROR Failed to start Neo4j: Starting Neo4j failed: Component ‘org.neo4j.server.AbstractNeoServer$ServerComponentsLifecycleAdapter@7f7eeaaf’ was successfully initialized, but failed to start. Please see the attached cause… 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:  


Limiting Bolt Threads vs Connections

Given high levels of read/write transaction requests, some ingress transactions may be rejected by the Neo4j server and the below error may be reported in the Neo4j debug.log: ERROR [o.n.b.r.MetricsReportingBoltConnection] Unable to schedule bolt session <session_id> for execution since there… Read more →

Explore: