Neo4j Guide

The embedded Neo4j database is located at <MANTA_HOME>/server/manta-dataflow-server-dir/data/neo4j. This location is later referred to as <NEO4J_HOME>.

The selected Neo4j config options can be updated in Manta Admin GUI > Configuration > Server > Common > Neo4j Configuration. Other Neo4j config options can be configured in <MANTA_HOME>/server/manta-dataflow-server-dir/conf/neo4j.properties (create the file if it does not exist). See the https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/ for the list of all config options.

Bolt Port

The embedded Neo4j uses Bolt Protocol for client-server communication. The default port is 7687. The port can be updated in Manta Admin GUI > Configuration > Server > Repository Configuration > Neo4j Bolt Protocol URI. The format of this configuration value must be bolt://localhost:<port>. The selected port number must be unused; otherwise, Manta Server will not start successfully.

Page Cache Memory

The page cache memory is used to cache the Neo4j data and indexes from the disk. The caching of graph data and indexes into memory helps to avoid costly disk access and results in optimal read performance.

The page cache memory location is off-heap. Off-heap memory needs to be counted towards total server memory calculations.

During server startup, the page cache memory is warmed up with the most used data (determined by Neo4j usage metrics). If the database size on the disk is larger than the page cache memory size, the entire page cache memory is used immediately.

The default size is 4G. Empty value means that Neo4j sets it heuristically to 50% of RAM minus the JVM heap size (min 32M, max 20G). The size can be updated in Manta Admin GUI > Configuration > Server > Common > Neo4j Configuration > Advanced > dbms.memory.pagecache.size.

Neo4j recommends setting the page cache memory size to the entire database store size + expected growth + 10%. The database store is located at <NEO4J_HOME>/data/databases.

For more details, see:

Transaction State Memory

The transaction state memory is used to hold data that hasn't been committed yet, the result, and intermediate states of the queries in memory when executing a transaction.

As of R42.1, the transaction state memory is on-heap which means that it is not configurable and it is allocated within Manta Flow Server java process heap memory.

Prior R42.1, the transaction state memory location can be either on-heap or off-heap. The default location was off-heap. Off-heap memory needs to be counted towards total server memory calculations.

For more details, see:

Transaction Log

The transaction log is located at <NEO4J_HOME>/data/transactions.

The transaction log records all write operations in the database. The transaction log is the "source of truth" in scenarios where the database needs to be recovered.

Manta Flow Server uses the default transaction log set to a minimum value so that all data is stored in the database as quickly as possible.

During very large write operations (e.g., a merge), multiple transaction log files can exist temporarily until Neo4j catches up with the changes, safely stores them, and rotates the transaction log files.

The directory with the transaction log should not be deleted; otherwise, Neo4j will refuse to start. It’s possible to force Neo4j to start without an existing transaction log, but the integrity of the database might be compromised.

For more details, see:

Neo4j Debug Logs

Product support uses Neo4j debug logs when doing advanced investigation with Neo4j. The name of the debug log file is debug.log.

The default location is <NEO4J_HOME>/logs. The location can be updated in Manta Admin GUI > Configuration > Server > Common > Repository Configuration > Neo4j Logs Directory.