The projected graph stores the following:
- A node as the Neo4j internal identifier (id(n))
- Relationships as a pair of node IDs
- Properties, if requested, as floating-point numbers (8 bytes)
This means that the memory requirements can be estimated as soon as we know how many nodes, relationships, and properties the projected graph is about to contain by using the following query:
CALL gds.graph.create.estimate('*', '*', {
nodeCount: 10000,
relationshipCount: 2000
})
The mapView field looks as follows:
{ "name": "HugeGraph", "components": [ { "name": "this.instance", "memoryUsage": "72 Bytes" }, { "name": "nodeIdMap", "components": [ ... ], "memoryUsage": "175 KiB" }, { "name": "adjacency list for 'RelationshipType{name='__ALL__'...