Hi, I searched for an answer for my problem but I couldn't find it, hope
you can help me. I use neo4j version 1.9.5.
In my application, I use a persistence layer that transforms automatically
neo4j nodes to application objects. Sometimes to have better performance I
do some operations through neo4j cypher queries instead of using the
persistence layer. In particular, I got some nodes in my application that
have a really large number of properties (right now something like ~60.000
properties, but it will tend to rise), so to optimize an insertion of new
data in this node I use the following query:
START record=node({record_id})
MATCH record-[:recordSummary]->rs
SET rs.childrenIds_$index$={child_id}
SET rs.childrenIds_$index$_persister="DefaultPersister"
SET rs.childrenIds_persister="ListPersister"
Initially the query was very fast, but now that the node (rs in the query)
is getting more and more properties it's getting really slow, right now I'm
measuring values of ~4 seconds to run it (measured with monitors in my
application), and considering I need to run it for a batch like ~500.000
times it's not feasible (considering that it gets slower the more data the
node gets).
Little consideration, the query uses dynamic property names (the $index$
part) so they usually don't get cached but considering that it gets slower
with the number of properties in the node and that the time for building
the query should be constant, it shouldn't be a problem.
I tried to set the property store cache dimensions so that the property
store is kept in memory, It seems performance got better but not better
enough.
Last I monitored the process and It doesn't do much garbage collection so
It shouldn't be a problem of memory size.
Can you give any suggestion, including eventual strategies to have less
node properties?
Thank you.
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.