Nodes with such a high degree are called super-nodes, and traversals that pass 
through them will likely experience degraded performance. Improving the 
performance in these cases is an active area of graph database research. Neo4j 
mitigates it a little bit by breaking the relationships of high-degree nodes 
into groups by relationship type. Traversal through high-cardinality groups is 
still going to be relatively slow, though, if you are only interested in a few 
specific relationships, and not all of a given type. Cypher is aware of this, 
and will use statistics to try and plan around it. I don't know how well it 
works in practice; it probably depends on the query and the structure of the 
data, as it usually does.

--
Chris Vest
System Engineer, Neo Technology


> On 30 Jan 2017, at 10.33, [email protected] wrote:
> 
> Hi,
> 
> I know Neo4j works well on large graphs, under assumption of nodes are 
> generally equally distributed. However, in most cases, graphs in the real 
> world follow a scale-free degree distribution. My question is, if 
> relationship types and node labels are the same respectively, are there any 
> ways to remain speedy when querying through nodes with really high degree, 
> like 100k neighbor nodes?
> 
> P.S. I also posted this on StackOverflow, except no one has answered yet: 
> http://stackoverflow.com/q/41832092/758413
> 
> ---
> BR,
> Todd Leo
> 
> -- 
> 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.

-- 
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.

Reply via email to