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:  


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:  


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:  


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:  


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 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:  


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:  


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:  


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 use the BI Connector on the Command Line

This article describes how to use the BI Connector integration with SQLLine. 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 respectively. Building SQLLine Build… Read more →

Explore:  


How do I pass parameters when calling apoc.cypher.runFile

APOC allows one to have a stored procedure, apoc.cypher.runFile, to then run the contents of the file to the Cypher engine. To allow the reading of the file in the conf/neo4j.conf one needs to define apoc.import.file.enabled=true and then if one… Read more →

Explore:  


Long GC Pauses caused by application code calling System.gc()

When investigating the cause of long garbage collection cycles, it is often useful to enable GC logging. You can do so by following the product documentation. Once this is enabled, you can look through the GC log file for signs… Read more →

Explore:  


Post-UNION processing

Cypher does not allow further processing of UNION or UNION ALL results, since RETURN is required in all queries of the union. Here are some workarounds. Post-UNION processing in Neo4j 4.0 With Neo4j 4.0, post-UNION processing is now possible via… 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:  


Explanation of lucene-1.0: Too many open files error

If one encounters a ‘Too many open files’ error in their $NEO4J_HOME/logs/debug.log similar to Caused by: java.nio.file.FileSystemException: /data/neo4j/db/schema/index/lucene_native-2.0/1612/lucene-1.0: Too many open files at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91) at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:427) at java.nio.file.Files.newDirectoryStream(Files.java:457) this can be addressed by setting in your… Read more →

Explore:  


How Neo4j Browser uses bolt+routing

There are two kinds of Bolt drivers specified by URI scheme: the bolt:// scheme is used to create a direct driver and the bolt+routing:// scheme is used to create a routing driver. Neo4j Browser will always: Use a direct driver… 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:  


Explanation of error “Cannot merge node using null property value for”

When running a MERGE, which is a combination of MATCH and/or CREATE one may encounter an error of Cannot merge node using null property value for if the MERGE is performing a MATCH against a null property. For example, when… Read more →

Explore:  


Load CSV data in Neo4j from CSV files on Amazon S3 Bucket

Neo4j provides LOAD CSV cypher command to load data from CSV files into Neo4j or access CSV files via HTTPS, HTTP and FTP. But how do you load data from CSV files available on AWS S3 bucket as access to… Read more →

Explore:  


Using apt to download a specific Neo4j debian package

By default, using apt-get to install Neo4j allows you to grab the current and previous stable releases. However, if you would like to install an older version, you can specify that. For reference, the Debian repo is located here: http://debian.neo4j.org/… 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:  


Neo4j current transaction commit process order

Transactions in Neo4j use a read-committed isolation level, which means they will see data as soon as it has been committed and will not see data in other transactions that have not yet been committed. This type of isolation is… Read more →

Explore: