Can you split the graph database? If so, how?

I know that databases in general can scale horizontally using master / slave replication . This is a great strategy when the number of concurrent readings grows.

As the number of concurrent records or just the amount of data starts to grow, although master / slave replication does not give you anything, so you need to split your data .

This is great for scenarios with key values. A classic example for me is TinyURL / bit.ly; reading / writing data for a short url foo can be completely independent of reading / writing data for a short string url.

But what should you do if you are in a schedule script? More specifically, is it even possible to partition a graph database, such as Neo4j ? If so, how?

I can’t wrap my head around how you could break a graph without defeating the goal of using a graph database (efficient workarounds).

+4
source share
1 answer

You rarely go through the entire structure of the chart.

In addition, graph structures are rarely interconnected by all nodes.

With a little attention, you can find clusters of well-connected nodes, separated by a small number of connections to other clusters.

http://en.wikipedia.org/wiki/Cluster_analysis

If you partition based on clustering, then traversing within a cluster may be faster, but traversing another cluster will be slower.

The overall benefit of partitioning depends on the bypass ratio within the cluster compared to the round trips between the clusters.

+4
source

Source: https://habr.com/ru/post/1344165/


All Articles