diff --git a/site/content/arangodb/3.12/develop/http-api/graphs/named-graphs.md b/site/content/arangodb/3.12/develop/http-api/graphs/named-graphs.md index 88602a529a..a4a2f7f916 100644 --- a/site/content/arangodb/3.12/develop/http-api/graphs/named-graphs.md +++ b/site/content/arangodb/3.12/develop/http-api/graphs/named-graphs.md @@ -286,6 +286,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 default: false isDisjoint: @@ -301,7 +303,7 @@ paths: properties: smartGraphAttribute: description: | - Required to create a SmartGraph. + Setting this option creates a SmartGraph. The attribute name that is used to smartly shard the nodes of a graph. Every node in this SmartGraph has to have this attribute. diff --git a/site/content/arangodb/3.12/develop/operational-factors.md b/site/content/arangodb/3.12/develop/operational-factors.md index af53a0c96e..e0d261b146 100644 --- a/site/content/arangodb/3.12/develop/operational-factors.md +++ b/site/content/arangodb/3.12/develop/operational-factors.md @@ -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 - The SmartGraphs feature enables you to manage graphs at scale. It provides a vast performance benefit for all graphs sharded in an ArangoDB Cluster. @@ -234,8 +233,14 @@ graph into several smaller sub-graphs. Ideally these sub-graphs follow a that only connect nodes in the same subgraph and only have few edges connecting nodes 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 diff --git a/site/content/arangodb/3.12/graphs/enterprisegraphs/_index.md b/site/content/arangodb/3.12/graphs/enterprisegraphs/_index.md index 77dd78b27f..02fd936672 100644 --- a/site/content/arangodb/3.12/graphs/enterprisegraphs/_index.md +++ b/site/content/arangodb/3.12/graphs/enterprisegraphs/_index.md @@ -30,6 +30,7 @@ This is known as the `smartGraphAttribute`, a value that is stored in every node which ensures data co-location of all nodes sharing this attribute and their immediate edges. + EnterpriseGraphs come with a concept of "random sharding", meaning that the sharding key is randomly selected while ensuring that all nodes with the same sharding key and their adjacent edges are co-located on the same servers,