cancel
Showing results for 
Search instead for 
Did you mean: 

Multi standalone graphs in db and their performance?

jfang
Node

Hi, there,

I am new to neo4j, currently we are using mySQL to maintain some configurations of networking equipments in cloud environment, and the hierarchical configuration fits well with the node+ relationship model of neo4j hence we are considering migrating mySQL db to neo4j.

My question here is, we 'd like to have one db to maintain configurations from multiple tenants at the same time, there is no sharing/overlapping between those tenants, (so we can visualize them as multiple discontiguous graphs in the same db.).

In mySQL this is done by creating multiple tables. As graphdb has no concept of table, we are considering adding a label which has the tenant id information for every node created. Can you please share your thoughts on this approach?

A main question w.r.t to this approach is the performance, for example, if we try to access certain tenant's configuration, a match(N:tenantid) would theoretically search over all the nodes, what's the performance in this case comparing to SQL's select from certain table?

Thank you very much!
Jessica

3 REPLIES 3

sameer_gijare14
Graph Buddy

Hi Jessica

You need to pull the data from MySql backend into the intermediary graph store periodically. After fetching all the data necessary you need to apply transformations to the data as well as filter it based on need of project that you are undertaking.
One of the main advantages of graph DB is that it is lot more quicker to fetch the data.
Once all proper transformations are applied you can push the data into Neo4j for use by Data scientists.

In short you need a data migration engine that conforms to project specification.

Thanking you
Sameer Sudhir G

if match (N:tentant<ID>) ..... is effectively match (N:tenant123) ...... or match (N:tenant456)..... then this will only search over the N nodes which have a label of :tenant123 or :tenant456

Thanks, Dana,

" if match (N:tentant<ID>) ..... is effectively match (N:tenant123) ...... or match (N:tenant456)..... then this will only search over the N nodes which have a label of :tenant123 or :tenant456"

Yes, the query we have in mind will be focusing on one tenant at a time. So in this case we can assume the time needed for neo4j to identify all the nodes associate with this tenant is equivalent to the time needed to locate a given table in mySQL?

Regards
Jessica