Reputation: 2349
I'm designing a solution that uses ArangoDB and will need to have single Edge Collections that connect to between 5 and 200 Vertex Collections.
Each Vertex Collection will have between 1 and 180 Edge Collections bound to them.
Each Edge Collection will have a Graph object created for it.
I'm new to ArangoDB and am interested if there are some key performance impacts that I need to be aware of.
Server hardware shouldn't be a problem, as it would be possible to utilise larger server instances on cloud providers.
I'm more interested in the performance of ArangoDB with Edge Collections referencing so many shared Vertex Collections, as well as any other issues aren't so obvious.
The current version of ArangoDB I'm using is 2.8.2.
Thanks!
Upvotes: 0
Views: 187
Reputation: 3267
For the performance side there are the following factors: Not Using Graphs:
Using Graphs: Whenever you delete a vertex through the graph API the following will happen:
edge definitions
and there through all from
and all to
definitions if the vertex is potentially connected here. If so it will do an index lookup for all edges to this vertex and remove them.So from my understanding the delete operation in your case will be extremely expensive. Insertion/Update/Lookup/Queries are not affected by the amount of connected collections.
However i think having so many graphs and so many collections seems to be a bit over engineered, but as i do not know details of your use-case i cannot judge if it is necessary or not.
Upvotes: 3