Hi,
I am currently facing some performance problems when loading nodes using an indexed UUID. My use case is the following:
- I initiate a search query in Apache Solr which returns a list of 200 UUID (max)
- I load the 200 nodes corresponding to the uuid with the following cypher:
unwind {uuidList} as uuid
match(node : FOLDER { oid : uuid}) return node
The uuidList is a query param containing the list of UUID (string)
When the query has no page fault, it takes about 10-20ms to load the 200 nodes. But when some page faults appears in the query log, the query time can take up to 4 seconds. I understand that some nodes have to be loaded directly from the disk, but for 200 nodes, it looks very slow to me.
The FOLDER nodes are organized like folders in a filesystem and are attached together with a 'PARENT' relationship. The only folder that does not have any parent is the root folder.
Environment specs are:
- 300M nodes
- 600M relationships
- 110M nodes with the label 'FOLDER'
- all FOLDER nodes have a property 'oid' which index is online
- the graph.db directory is about 125g (without transaction logs)
- neo4j enterprise 3.2.6 and java driver 1.4.4
- 8g of Heap
- 32g of page cache
- no SSD
Any hints for improving performances ?
Thank you
Vincent