cancel
Showing results for 
Search instead for 
Did you mean: 

Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.

Node property contents and Query ram utilization

I've looked everywhere, and can't find an answer, or a clean way to test.

In the following scenario, would the Query result in more RAM usage after adding data to the Nodes?

Setup

UNWIND range(1,5) AS i
MERGE (t:Test {id: i, name: "test " + i})
MERGE (t2:Test {id: (i+2), name: "test " + (i+2)})
MERGE (t)-[:REL]->(t2)

Query in question

MATCH (t:Test)-[]-(u)
WHERE u.id > 3 AND t.id < 3
RETURN t.id, t.name

Add data

MATCH (t:Test)
SET t.data = [x IN range(1,5) | "Long text to signify large volume of complex properties "+x]

Questions

  1. Would adding that data increase the RAM utilization of the query?
  2. What if we changed the the query to RETURN t ?
  3. When would the contents of the data property affect RAM utilization in the query?
1 ACCEPTED SOLUTION

Not sure I understand all.

The large text property will only affect ram usage if it's loaded (i.e. accessed) if it's not loaded then only small properties (numbers, booleans, short texts) will be pull into memory if you access these properties

if you return t then the large property is loaded too.

You should be able to use the memory usage of operators in 4.1.x in the PROFILE of your query see

View solution in original post

4 REPLIES 4

@michael.hunger, can you answer this one? I'm at a critical turning point, and a time-sensitive stage in my project. While I can certainly roll with it either way, and just use more RAM, I'd rather know the impact of what I'm building.

Not sure I understand all.

The large text property will only affect ram usage if it's loaded (i.e. accessed) if it's not loaded then only small properties (numbers, booleans, short texts) will be pull into memory if you access these properties

if you return t then the large property is loaded too.

You should be able to use the memory usage of operators in 4.1.x in the PROFILE of your query see

So then...

  • Would adding that data increase the RAM utilization of the query?
    • Not the example query, which only RETURN t.id, t.name
  • What if we changed the the query to RETURN t ?
    • The large property is loaded too, so it would affect memory.
  • When would the contents of the data property affect RAM utilization in the query?
    • Any time the property is accessed (including returning the whole node.

Profiling my example query never included any memory usage data.

...but, it turns out I was just using an older version of the Browser. The newer one includes memory utilization. And the results were exactly what you were describing.