Knowledge Base

Articles tagged as operations

A light weight approach to validating network port connectivity

If it becomes necessary to validate, particularly in a clustered environment whether Causal Cluster or High Availability, whether or not 1 instance can talk to another instance on a given…

Read more

A lightweight approach to testing the Neo4j REST API with Authentication

This article will show examples of how to test the Neo4j REST API for authentication via: Google Chrome Advanced REST Client Linux curl command The Neo4j REST API describes each…

Read more

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…

Read more

An approach to parsing the query.log

When one has enabled query.log through Neo4j Enterprise parameter dbms.logs.query.enabled the included bash shell script can be used to quickly parse the log and identify the top 10 most expensive…

Read more

An explanation of entries in query.log

This document aims to provide descriptions of components of the query.log logfile located at $NEO4J_HOME/logs. Note that the following configs in conf/neo4j.conf need to be uncommented for the query log…

Read more

An overview of the system database

Neo4j 4.0 and higher versions support the management of multiple databases within the same DBMS. All these databases are controlled through a special database called the system database. This article…

Read more

Analyzing a java heap dump

The purpose of this article is to help you go through the acquired heapdump with Eclipse MAT. It covers how to parse a large heap files and what to look…

Read more

Assign or restrict CPU cores to Neo4j process

Operating system run performance-critical applications on multi-core processors using something called "processor affinity" or "CPU pinning". This feature "binds" a running process to particular CPU core(s), which can be beneficial…

Read more

Backup Failed. Unexpected error: Base directory for SSL policy with name 'default' does not exist.

This article is based on a defect report with a suggested workaround until a fix becomes available. When running backup (full or incremental) you may encounter the following error in…

Read more

Throttling Bolt Requests

When large amounts of data are sent between a Neo4j database and a client (typically large query results, from server to client), there are a few hidden throttling mechanisms that…

Read more

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…

Read more

Capacity Planning Example

Here is a back of the napkin example of capacity planning for a Neo4j workload for the following list of requirements: Requirements Analysis 1) Estimating an initial database size of…

Read more

Change logging levels in Neo4j Embedded

In order to change the default logging levels in a Neo4j embedded instance, you must edit/define the configuration file, which is XML. In particular the file is neo4j-logback.xml. The neo4j-logback.xml…

Read more

Changes to metrics.csv reporting from 2.x to 3.x

Metrics reporting is an Enterprise feature which upon enablement allows for the creation of .csv files at a specified interval to record key metrics. This is described in detail at…

Read more

Retired: Changing your Garbage Collection Method to G1

When to Use G1: By default, Neo4j versions 2.2 and earlier use Concurrent Mark and Sweep (CMS) for garbage collection. Customers with large heaps or who are seeing unacceptable garbage…

Read more

Checkpointing and Log Pruning interactions

Overview Checkpointing is the process of flushing all pending page updates from the page cache to the store files. This is necessary for ensuring that the number of transactions that…

Read more

Example of using the Command Expansion on Windows

The Command Expansion feature, introduced in Neo4j 4.2, is a security feature to avoid having configuration parameters being written in the neo4j.conf file in plain text. The commands are executed…

Read more

Configure Neo4j to authenticate users from different OUs using the Active Directory attribute samAccountName

Beginning with Neo4j version 3.2.2, it is possible to authenticate using the Active Directory attribute samAccountName as opposed to the LDAP Display Name attribute. This is described in detail in…

Read more

Configuring Neo4j to operate on privileged ports

In some environments, users are required to run Neo4j on ports lower than 1024 due to corporate policies. The following is a sample configuration showing how to configure Neo4j 3.5…

Read more

Configuring Remote JMX monitoring

In order to enable JMX Remote monitoring, edit the neo4j-wrapper.conf file in Neo4j 3.0.x versions or neo4j.conf file in Neo4j 3.1.x versions and uncomment the following lines: After uncommenting the…

Read more

Control number of file handles created per Lucene Index

In the more recent Neo4j versions (3.4 onwards), the number of file handles opened by Neo4j may seem to increase compared with that in older versions. Native indexes require a…

Read more

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…

Read more

How to diagnose locking issues

Since Neo4j 3.4 it’s possible to better understand locking issues caused by concurrent query. This KB article will not detail the basics of locking in Neo4j. We assume a situation…

Read more

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…

Read more

Displaying Query CPU Utilization and Allocated Bytes in Query log

In Neo4j 3.3 and prior versions, when query logging is enabled with the following configuration parameters: The log is written with output as shown below: Note that it displays CPU…

Read more

Docker "Permission Denied" Error

When a docker instance is started, one could get a permission denied error such as and may fail to start. Docker used to run as root and now has been…

Read more

Dump the Contents of a Transaction Log

If there is a need to look through the transaction logs, particularly to see if/when a node or relationship (or property) with a given ID was touched, you will need…

Read more

Enabling GC Logging

What is Garbage collection and why enabling it? A garbage collection event is a complete pause of the java application (ie: neo4j-server). It can be identified in the debug.log as…

Read more

Enabling TLSv1.2 with IBM JDK9

Neo4j 3.4.0 only supports TLSv1.2 by default. IBM JDK9 uses the TLSv1 protocol by default. When attempting to run cypher-shell, users will be unable to connect to Neo4j. To enable…

Read more

Explanation of data/log/console.log error of 'TLS certificate error occurred, unable to start server: Neither RSA, DSA nor EC worked…​'

On bin/neo4j start the data/log/console.log may log an error similar to Neo4j allows for the configuration of HTTPS certificates via the parameters in conf/neo4j-server.properties. The following are the default values:…

Read more

Explanation of error "Database constraints have changed (txId=xxxxx) after this transaction (txId=yyyyy) started, which is not yet supported"

The following error, via bin/neo4j-shell: or as logged in log/debug.log (3.x) or graph.db/messages.log (2.3.x): can be explained by the following scenario: where the exception is thrown at Oct-19-2012 09:05 by…

Read more

Explanation of Error: db fails to start with Caused by: org.neo4j.token.api.NonUniqueTokenException: The PropertyKey NamedToken

When attempting to start Neo4j and one is running a Neo4j 4.0.x release and where x is ⇐2 the following error may be encountered and logged in logs\debg.log This error…

Read more

Explanation of error "DeadlockDetectedException: ForsetiClient[0] can’t acquire ExclusiveLock…​ …​"

Under specific scenarios a DeadlockDetectedException may be encountered and the behavior is described at https://neo4j.com/docs/java-reference/current/transaction-management/#transactions-deadlocks. When a DeadlockDetected is encountered one option is to simply retry the statement. As a…

Read more

Explanation of error NoClassDefFoundError: org/neo4j/kernel/impl/util/JobScheduler

Upon upgrading to Neo4j 3.3, if you were previously using APOC, and did not download and install the version of APOC for 3.3 bin\neo4j start will fail. The contents of…

Read more

Explanation of error: procedure is not available due to having restricted access rights, check configuration

Commencing with Neo4j 3.2 when running a stored procedure, for example this may error with The cause of this error is as a result of not configuring the security extensions.…

Read more

Explanation of error "Record id 65536 is out of range [0, 65535]"

When running a Cypher statement that creates a new relationship type, for example one may encounter an error which is logged in the $NEO4J_HOME/logs/debug.log as and they key part from…

Read more

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 This error may occur as a result of the transactions expiration date/time being…

Read more

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 this can be addressed by setting in your $NEO4J_HOME/conf/neo4j.conf and parameter Without this parameter for each…

Read more

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 this is usually indicative of a incompatible APOC jar file installed into $NEO4J_HOME/plugins. With Neo4j 3.5.0 the…

Read more

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…

Read more

Getting a JVM heap dump

This document provides the process of creating a heap-dump on a java machine to investigate potential memory leaks. Although a heap dump will be auto generated when OutOfMemoryError is thrown…

Read more

Helpful Commands When Supporting Neo4j

Top 50 Slowest queries from Query log: Find Longest GC Pauses in debug or messages log: Strip all comments / empty lines of neo4j.conf file: Find a class within a…

Read more

Retired: How can I skip Consistency Check during Backup?

Backups in Neo4j automatically run a consistency check against the backed-up store. The backup itself does not take overly long, but the consistency check can take much more time to…

Read more

How deletes work in Neo4j

Neo4j uses logical deletes to delete from the database to achieve maximum performance and scalability. To understand how this might appear to an operator of the database, lets take a…

Read more

How do I allow for authentication using Active Directory attribute samAccountName

Commencing with Neo4j 3.2.2, it is now possible to authenticate using Active Directory attribute samAccountName as opposed to the LDAP Display Name attribute. The following conf/neo4j.conf parameters must be enabled…

Read more

How do I authenticate with cypher-shell without specifying the username and password on the command line

When using $NEO4J_HOME/bin/cypher-shell at the command line and authentication is enabled via the setting $NEO4J_HOME/conf/neo4j.conf: a username and password can be provided on the command line using the parameters -u…

Read more

How do I automate the copy of auth files in a clustered environment

In a clustered Neo4j implementation, user authentication files are recorded in each instance at $NEO4J_HOME/data/dbms. Since this defined per each instance in the cluster if for example you change the…

Read more

How do I configure init and max java heap when running bin/neo4j-backup

When running $NEO4J_HOME/bin/neo4j-backup if a Java out of heap/memory error occurs you may want define the init and max Java heap to be used by neo4j-backup. The default behavior is…

Read more

How do i configure Neo4j so that data/graph.db/messages.log is automatically rotated

As tested and verified with Neo4j 2.3.0, the data/graph.db/messages.log, its size and number of rotated archives is governed by the following parameters in the conf/neo4j.properties file With the above default…

Read more

How do I convert Neo4j logs from base UTC to local timezone

With the introduction of Neo4j 3.3.1 it is possible to represent date timestamps in your $NEO4J_HOME/logs/* in either UTC or SYSTEM timezone through the implementation of dbms.logs.timezone However for prior…

Read more

How do I display date and time of when neo4j was started and other metrics

The following Cypher will utilize the JMX metrics as part of 3.1 Enterprise and display the date/time when Neo4j was started. which will produce output similar to: In the above…

Read more

How do I enable Java Flight Recorder and view the Results

Java Flight Recorder can be used to capture low level Java properties and run-time data about Java processes, for example Neo4j. Per https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr002.html To enable the Java Flight Recorder the…

Read more

How do I enable remote HTTPS access with Neo4j 3.0.x

With 3.0.x to enabled remote clients to connect to a HTTPS enabled browser the following parameters in the $NEO4J_HOME/conf/neo4j.conf need to be changed from the default of to The change…

Read more

How do I log parameter values into the query.log file

Neo4j 3.0 introduces the ability to log the value of query parameters in the log/query.log file. The settings to control this feature are located in the conf/neo4j.conf file. To enable…

Read more

How do I quickly identify long gc pauses via the messages or debug logs

Java Garbage Collection (gc) pauses are monitored by the MonitorGc process in Neo4j, and recorded in the $NEO4J_HOME/logs/debug.log ( or $NEO4J_HOME/data/graph.db/messages.log for Neo4j v2.3.x and prior). To quickly find the…

Read more

How do I quickly switch between multiple graphs without modifying neo4j.conf?

If you have multiple graphs set up and want to quickly switch between each without modifying dbms.active_database in conf/neo4j.conf, you can accomplish this with a neo4j restart and with the…

Read more

How do I run Consistency Check Manually?

If you skip the Consistency Check part of neo4j-backup, or you want to check that all is well with a data store, you can run the tool against an offline…

Read more

How do I recover from No space left on device

If one does not routinely monitor the disk space usage on a Neo4j server one may encounter a 'No space left on device' (for linux implementation) or a 'Low Disk…

Read more

How to avoid using excessive memory on deletes involving dense nodes

In situations where you know you need to delete a bunch of nodes (and by rule their relationships as well), it can be tempting to simply use DETACH DELETE and…

Read more

How to configure mixed-mode security (native and LDAP) in Neo4j

For environments where you need both LDAP authentication as well as some native user accounts, there is a way to allow this in Neo4j 3.1 and newer. Use the configuration…

Read more

How to configure off-heap transaction state

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 a limited…

Read more

How to estimate initial memory configuration

The initial and eventual memory configuration parameters can be a moving target, based on how your store changes in size and how your workload increases or changes over time. This…

Read more

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 )…

Read more

How to generate sysinfo output from Cypher

If you need to generate the equivalent output from command :sysinfo as run from the Neo4j Browser at http://localhost:7474 this can be achieved by running the following Cypher To which…

Read more

How to logrotate neo4j.log file

The neo4j.log file is a redirection to STDOUT. When you implement a default logrotate strategy, Neo4j will not be able to write to that file anymore after a rotation. Solution…

Read more

Retired: How to manually clear the Node and Relationship Cache

When troubleshooting transient issues or testing out queries on warm vs. cold cache, you may want to try clearing out the cache without necessarily restarting the Neo4j database. To achieve…

Read more

How to monitor Neo4j with Prometheus

Commencing with the release of Neo4j Enterprise 3.4, one can now use the open source monitoring tool Prometheus to monitor Neo4j. The following article details a basic Prometheus implementation to…

Read more

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…

Read more

How to Setup Neo4j Backup Wrapper Script

For operators of Neo4j looking to implement regular hot backups of a Neo4j database using automated job scheduling, applying this wrapper around neo4j-admin backup will make your job easier. Simply…

Read more

How to Setup Neo4j to Startup on Linux Server Reboot

If you want to emulate the Neo4j RPM service with a tar installation on Linux systems, do the following steps: As root: Copy the $NEO4J_HOME/bin/neo4j script file to /etc/init.d Edit…

Read more

Solving the "Store copy failed due to store ID mismatch" error

It is possible that after seeding a cluster or restoring from a backup, you may encounter the following error while starting your cluster: In most of the cases, this issue…

Read more

How to Use the Debug Log Parser Script

For analysis of the Neo4j debug.log, read this guide for using the debugInfo.sh parser script. What is the this script? The debug.log is quite verbose and contains a lot of…

Read more

Index limitations and workarounds

In this article we discuss index providers and what limitations and workarounds there are. There are two index types in Neo4j, btree and full-text. This article target btree indexes, up…

Read more

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: Why is this happening? The apt package manager is not handling multiple versions of a package, in this case…

Read more

Large Delete Transaction Best Practices in Neo4j

In order to achieve the best performance, and avoid negative effects on the rest of the system, consider these best practices when processing large deletes. Start by identifying which situation…

Read more

Linkurious bolt configuration

Default Linkurious configuration contains the following snippet in the production.json configuration file: With the documentation stating the following: Where the URL can be set to http/https/bolt/bolt+routing. However, using the above…

Read more

Lock Manager Differences Explained

Work in Progress Community: uses Java intrinsic locks, i.e. ’synchronized’. this might not perform that well on multiprocessor machines uses Thread.sleep() and Thread.interrupt() to wait for locks. this involves context…

Read more

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,…

Read more

Manually Merging neo4j-wrapper.conf into neo4j.conf in Neo4j 3.1

Neo4j 3.1 takes the configuration changes made in Neo4j 3.0 a step further, and ships with a single configuration file: conf/neo4j.conf. This is the result of merging the contents of…

Read more

Manually Migrating Configuration Settings from Neo4j 2.x to Neo4j 3.x

One of the major changes in Neo4j 3.0 was the reworking of configuration files and the individual configuration setting naming convention to make it more consitent and managable going forward.…

Read more

How do I establish a simple HTTP Server local to my Neo4j Instance to serve CSV files

When using LOAD CSV one can define the source file to be either at a local file system (i.e load csv from 'file:///…​' ) or a webserver ( i.e. load…

Read more

Retired: Modifying the http.log Format on Neo4j 2.x

Prior to Neo4j 3.0, the http.log format was controlled by neo4j-http-logging.xml. The default format works fine, except when you need to diagnose problematic long-running queries. The HTTP requests to the…

Read more

Run multiple Causal Clusters locally using Docker

It’s rather easy to run multiple causal clusters on the same server or machine. You need to ensure: Each cluster needs to run on its own Docker network Overlapping port…

Read more

neo4j-admin load causes "Not a valid Neo4j archive"

When using neo4j-admin load for loading a .dump file, following error is observerd: Sometimes this has nothing to do with the formatting of the .dump file as indicate by Not…

Read more

Neo4j behaviour when running out of disk space (3.4+)

Following the improvements on the recovery process after an instance runs out of disk space introduced in v3.4.0, this article aims to offer a view on the behaviour of Neo4j…

Read more

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…

Read more

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…

Read more

Neo4j Desktop password change failure

This document provides info and resolution for the error message on a clean install of Desktop 1.0.2x, Neo4j DB version 3.3.x mentioning "Database failed to create: Error: Could not change…

Read more

Bulk Import / Backups into running 4.0 instances

Neo4j 4.0 allows for multiple running databases. You can use neo4j-admin import or neo4j-admin restore to import or restore a database into a new database on a running 4.0 instance.…

Read more

Neo4j Security Benchmark

Overview: This document, Neo4j Security Benchmark, provides prescriptive guidance for establishing a secure configuration posture for Neo4j Enterprise Edition versions 3.5.0 and higher. This guide was tested against Neo4j 3.5.0…

Read more

Neo4j specific http request user agent strings

For those APOC commands that retrieve data using HTTP/HTTPS, and or running Cypher LOAD CSV the request will be sent with Neo4j specific user-agent/browser identifiers. Below is an example log…

Read more

Neo4j Streams - Kafka Integration - List of Must Gather for Troubleshooting

When troubleshooting issues on Neo4j Streams, use the below list of must gather information points to help investigating. Which Plugin/Module are you using? Neo4j Streams Source Neo4j Streams Sink Neo4j…

Read more

Getting "Permission Denied" errors after using neo4j-admin commands

If you have leveraged Debian or RPM Packages to install Neo4j on Linux (or used one of the Public Cloud Marketplace offerings), you need to be careful of file and…

Read more

Preserving the Neo4j pagecache across database restarts

Commencing with Neo4j 3.4 and as a result of PR 10957, and when using Neo4j Enterprise the Neo4j pagecache will be preserved across database restarts and as such a need…

Read more

Query to kill transactions that take longer than X seconds and doesn’t contain certain keywords

In Neo4j we currently have the configuration property referred to as execution guard: that can be set automatically to kill transactions that take more than “x” seconds (x is equal…

Read more

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…

Read more

Redirect Neo4j logs to sysout (using rsyslog)

Sometimes - due to organizational requirements, security, indexing or plain convenience - we want to output all of our application logs to Linux’s sysout. While Neo4j doesn’t offer this feature,…

Read more

Requirement makes database unavailable: Database available --- INITIALIZED diagnostics START ---

When running neo4j-admin backup, the debug.log shows a message that appears to indicate that the database restarted; however, this is not the case. Let’s explain why this message is showing…

Read more

Sending Neo4j messages to a Slack channel

Although not specific to Neo4j and this knowledge base document is provided as a convenience, if your environment has a Slack implementation, then Slack provides an API to allow you…

Read more

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…

Read more

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: This exception is usually thrown in following situations: When the plugins directory (by default…

Read more

Stopping the Neo4j docker image in order to restore from a backup

In a neo4j docker installation, the neo4j-admin restore requires the neo4j service to be stopped as one can’t do a restore on a running database. Subsequently, running as a docker…

Read more

Store Format Versions Reference Guide

In some situations, you may see a log message or exception that refers to a store format version, and it is not clear which Neo4j store format it is referring…

Read more

Understanding Database Growth

The easiest way to determine the size of your graph is through the filesystem and summing up the size of the files named *store.db*. For example on linux implementations one…

Read more

Understanding logical logs and effects of parameters keep_logical_logs and logical_log_rotation_threshold

Neo4j maintains logical logs for incremental backup and cluster consistency. The logical logs are named as follows: When one runs a database backup, via bin/neo4j-backup, if the -to <target directory>…

Read more

Understanding memory configurations for neo4j-admin backup

When using bin\neo4j-admin backup to backup a Neo4j database, Neo4j Support recommends explicitly defining the JVM heap size and pagecache memory to be used by the backup JVM process. If…

Read more

Understanding transaction and lock timeouts

One way to handle runaway queries is to impose a time limit that will terminate a query when exceeded. There are some subtleties here that need to be understood to…

Read more

Upgrading to Neo4j 3.0 Enterprise Step-by-Step - Linux

Neo4j 3.0 is a major release that includes both a directory structure reorganization and a configuration file/parameter name overhaul. This means that upgrading to it requires some additional consideration and…

Read more

Use Java Runtime 11 with Neo4J 3.5.x

Neo4j 3.5.x supports Java 11 as runtime, however custom code should still be compiled against Java 8. As a best practice, it is recommended to maintain your infrastructure environment on…

Read more

Useful Cypher statements for suspending and reactivating users

Commencing with Neo4j 3.1 and implementaion of native database users it is possible to suspend a user, thus preventing the user from further authenticating in. To view all suspended users…

Read more

Using AWS CLI to upload/download files to Amazon S3 bucket

If one has installed the AWS CLI To download a file from a S3 bucket anonymously run: and/or to upload to a Neo4j S3 buck anonymously run: replacing <AWS Instance…

Read more

Using Cypher and APOC to move a property value to a label

Commencing with Neo4j 3.0 and the introduction of stored procedures as well as APOC one can utilize the stored procedure apoc.create.addLabels to move a property to a label with Cypher…

Read more

Using Cypher to generate Cypher statements to recreate Users and Roles

The following can be used to extract user and role definitions from an existing database and the resultant output can be played back on another Neo4j database. The resultant output…

Read more

Access to the neo4j-shell in NEO4J CE 3.x

From Neo4j 3.0 access to neo4j-shell is no longer possible from the desktop-installers for Windows and OSX. To use neo4j-shell, you have to download the TAR/ZIP distribution from: http://neo4j.com/download/other-releases/ For…

Read more

Warm the cache to improve performance from cold start

Note: For 3.5.x forward the details below are no longer applicable as Neo4j will keep record of what is in the pagecache at all times and upon restart of Neo4j…

Read more

Where is my neo4j.log in Ubuntu Linux?

In most Neo4j server environments, all logs will be found in NEO4J_HOME/logs. However, when Neo4j is running as a service on a Ubuntu (debian) Linux environment, usually installed via apt-get…

Read more

Why does my CREATE CONSTRAINT take so long to complete

When creating a constraint, for example this will require a lock on all nodes with the label the constraint is being created for, in this case ZipCode If you have…

Read more

Will execution_guard_enabled work in my release of Neo4j?

Background From the beginning, the execution guard was never meant to be used by the general public. However, the feature was there in the product, though undocumented, and it did…

Read more