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 3 commits 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
6 changes: 4 additions & 2 deletions site/content/3.12/develop/http-api/graphs/named-graphs.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,8 @@ paths:
isSmart:
description: |
Define if the created graph should be smart.
- Setting the `smartGraphAttribute` options creates a SmartGraph.
- Setting `isSmart` to `true` but no `smartGraphAttribute` creates an EnterpriseGraph.
type: boolean
isDisjoint:
description: |
Expand All @@ -294,8 +296,8 @@ paths:
properties:
smartGraphAttribute:
description: |
Required if `isSmart` is true.

Setting this option creates a SmartGraph.
The attribute name that is used to smartly shard the vertices of a graph.
Every vertex in this SmartGraph has to have this attribute.
Cannot be modified later.
Expand Down
13 changes: 9 additions & 4 deletions site/content/3.12/develop/operational-factors.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,8 @@ a lot of performance on the table.
See [_Cluster Sharding_](../deploy/architecture/data-sharding.md)
for more information.

### SmartGraphs
### SmartGraphs and EnterpriseGraphs

<!-- TODO: EnterpriseGraphs -->
The SmartGraphs feature enables you to manage graphs at scale.
It provides a vast performance benefit for all graphs sharded in an ArangoDB Cluster.

Expand All @@ -234,8 +233,14 @@ graph into several smaller sub-graphs. Ideally these sub-graphs follow a
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 @@ -30,6 +30,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