Skip to content

Improve description of EnterpriseGraphs #715

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions site/content/3.12/develop/operational-factors.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,20 +222,25 @@ a lot of performance on the table.
See [_Cluster Sharding_](../deploy/architecture/data-sharding.md)
for more information.

### SmartGraphs
### SmartGraphs and EnterpriseGraphs

SmartGraphs are an Enterprise Edition feature of ArangoDB. It enables you to
manage graphs at scale. It provides a vast performance benefit for all graphs
sharded in an ArangoDB Cluster.
The SmartGraphs feature enables you to manage graphs at scale.
It provides a vast performance benefit for all graphs sharded in an ArangoDB Cluster.

To add a SmartGraph you need a SmartGraph attribute that partitions your
graph into several smaller sub-graphs. Ideally these sub-graphs follow a
"natural" structure in your data. These subgraphs have a large amount of edges
that only connect vertices in the same subgraph and only have few edges
connecting vertices from other subgraphs.

All the usual considerations for sharding keys also apply for smart attributes,
for more information see [SmartGraphs](../graphs/smartgraphs/_index.md)
All the usual considerations for sharding keys also apply for smart attributes.
For more information, see [SmartGraphs](../graphs/smartgraphs/_index.md).

If there are no clear sub-graphs in the data and you therefore don't have a
SmartGraph attribute for partitioning, consider using EnterpriseGraphs as the
next best option. It distributes the graph data equally but places the incident
edges of a vertex in the same shard as the vertex. This partial data locality is
exploited to speed up graph traversals and path searches.

## Document and Transaction Sizes

Expand Down
1 change: 1 addition & 0 deletions site/content/3.12/graphs/enterprisegraphs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ This is known as the `smartGraphAttribute`, a value that is stored in every vert
which ensures data co-location of all vertices sharing this attribute and their
immediate edges.

<!-- TODO: Revise description. Inferior to SmartGraphs as only the incident edges are co-located to a vertex -->
EnterpriseGraphs come with a concept of "random sharding", meaning that the
sharding key is randomly selected while ensuring that all vertices with the
same sharding key and their adjacent edges are co-located on the same servers,
Expand Down