Skip to content

Commit e279647

Browse files
nerpaulaSimran-B
andauthored
DOC-491 | How to choose the right graph type (#258)
* how to choose the right graph type * moved content into First Steps page * Fix headline level * Simply ToC CSS, account for level 5 and 6 * remove one level of nesting --------- Co-authored-by: Simran Spiller <[email protected]>
1 parent 5f4477a commit e279647

File tree

7 files changed

+193
-27
lines changed

7 files changed

+193
-27
lines changed

site/content/3.10/graphs/first-steps.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ The following types of named graphs exist:
172172
- [EnterpriseGraphs](enterprisegraphs/_index.md)
173173
- [SatelliteGraphs](satellitegraphs/_index.md)
174174

175+
Selecting the optimal type of named graph in ArangoDB can help you achieve
176+
the best performance and scalability for your data-intensive applications.
177+
175178
Which collections are used within a named graph is defined via
176179
**edge definitions**. They describe which edge collections connect which
177180
vertex collections. This is defined separately for the *from* and the *to*
@@ -210,6 +213,61 @@ You can create and manage named graphs in the following ways:
210213
JavaScript API (see the above links of the named graph types)
211214
- Using the [Gharial HTTP API](../develop/http/graphs/named-graphs.md)
212215

216+
#### When to use General Graphs
217+
218+
The General Graph is the basic graph type in ArangoDB, suitable for small-scale
219+
graph use cases. Data in this type is randomly distributed across all configured
220+
machines, making it easy to set up. However, this approach may result in
221+
suboptimal query performance due to random data distribution.
222+
223+
{{< tip >}}
224+
General graphs are the easiest way to get started, no special configuration required.
225+
{{< /tip >}}
226+
227+
![General Graph Random Distribution](../../images/general-graph-distribution.png)
228+
229+
#### When to use SmartGraphs
230+
231+
The SmartGraphs further optimize data distribution by allowing you to define a
232+
property called `smartGraphAttribute`. This property leverages your application's
233+
knowledge about the graph's interconnected communities to improve data
234+
organization and query performance.
235+
236+
{{< tip >}}
237+
For the best query performance, especially in highly interconnected graph
238+
scenarios, use SmartGraphs. Organize your data efficiently using the
239+
`smartGraphAttribute`.
240+
{{< /tip >}}
241+
242+
![SmartGraph Distribution](../../images/smartgraph-distribution.png)
243+
244+
#### When to use EnterpriseGraphs
245+
246+
The EnterpriseGraphs are designed for large-scale graph use cases in enterprise
247+
environments. While data is also randomly sharded, this graph type ensures that
248+
all edges adjacent to a vertex are co-located on the same server. This
249+
optimization significantly improves query performance by reducing network hops.
250+
251+
{{< tip >}}
252+
If you need improved query execution without manual data distribution, consider
253+
using EnterpriseGraphs.
254+
{{< /tip >}}
255+
256+
![EnterpriseGraph Distribution](../../images/enterprisegraph-distribution.png)
257+
258+
#### When to use SatelliteGraphs
259+
260+
SatelliteGraphs replicate one or more graphs to all machines within a cluster
261+
so queries can be executed locally. All vertices and edges are available on
262+
every node for maximum data locality, therefore no network hops are required
263+
to traverse the graph.
264+
265+
{{< tip >}}
266+
When using SatelliteGraphs, expect slower write performance because the data is
267+
replicated across DB-Servers. For a more efficient option that doesn't replicate
268+
all graph data to every server in your cluster, consider SmartGraphs.
269+
{{< /tip >}}
270+
213271
### Anonymous graphs
214272

215273
An anonymous graph is the graph that your data implicitly defines by edges that

site/content/3.11/graphs/first-steps.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ The following types of named graphs exist:
172172
- [EnterpriseGraphs](enterprisegraphs/_index.md)
173173
- [SatelliteGraphs](satellitegraphs/_index.md)
174174

175+
Selecting the optimal type of named graph in ArangoDB can help you achieve
176+
the best performance and scalability for your data-intensive applications.
177+
175178
Which collections are used within a named graph is defined via
176179
**edge definitions**. They describe which edge collections connect which
177180
vertex collections. This is defined separately for the *from* and the *to*
@@ -210,6 +213,61 @@ You can create and manage named graphs in the following ways:
210213
JavaScript API (see the above links of the named graph types)
211214
- Using the [Gharial HTTP API](../develop/http/graphs/named-graphs.md)
212215

216+
#### When to use General Graphs
217+
218+
The General Graph is the basic graph type in ArangoDB, suitable for small-scale
219+
graph use cases. Data in this type is randomly distributed across all configured
220+
machines, making it easy to set up. However, this approach may result in
221+
suboptimal query performance due to random data distribution.
222+
223+
{{< tip >}}
224+
General graphs are the easiest way to get started, no special configuration required.
225+
{{< /tip >}}
226+
227+
![General Graph Random Distribution](../../images/general-graph-distribution.png)
228+
229+
#### When to use SmartGraphs
230+
231+
The SmartGraphs further optimize data distribution by allowing you to define a
232+
property called `smartGraphAttribute`. This property leverages your application's
233+
knowledge about the graph's interconnected communities to improve data
234+
organization and query performance.
235+
236+
{{< tip >}}
237+
For the best query performance, especially in highly interconnected graph
238+
scenarios, use SmartGraphs. Organize your data efficiently using the
239+
`smartGraphAttribute`.
240+
{{< /tip >}}
241+
242+
![SmartGraph Distribution](../../images/smartgraph-distribution.png)
243+
244+
#### When to use EnterpriseGraphs
245+
246+
The EnterpriseGraphs are designed for large-scale graph use cases in enterprise
247+
environments. While data is also randomly sharded, this graph type ensures that
248+
all edges adjacent to a vertex are co-located on the same server. This
249+
optimization significantly improves query performance by reducing network hops.
250+
251+
{{< tip >}}
252+
If you need improved query execution without manual data distribution, consider
253+
using EnterpriseGraphs.
254+
{{< /tip >}}
255+
256+
![EnterpriseGraph Distribution](../../images/enterprisegraph-distribution.png)
257+
258+
#### When to use SatelliteGraphs
259+
260+
SatelliteGraphs replicate one or more graphs to all machines within a cluster
261+
so queries can be executed locally. All vertices and edges are available on
262+
every node for maximum data locality, therefore no network hops are required
263+
to traverse the graph.
264+
265+
{{< tip >}}
266+
When using SatelliteGraphs, expect slower write performance because the data is
267+
replicated across DB-Servers. For a more efficient option that doesn't replicate
268+
all graph data to every server in your cluster, consider SmartGraphs.
269+
{{< /tip >}}
270+
213271
### Anonymous graphs
214272

215273
An anonymous graph is the graph that your data implicitly defines by edges that

site/content/3.12/graphs/first-steps.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ The following types of named graphs exist:
172172
- [EnterpriseGraphs](enterprisegraphs/_index.md)
173173
- [SatelliteGraphs](satellitegraphs/_index.md)
174174

175+
Selecting the optimal type of named graph in ArangoDB can help you achieve
176+
the best performance and scalability for your data-intensive applications.
177+
175178
Which collections are used within a named graph is defined via
176179
**edge definitions**. They describe which edge collections connect which
177180
vertex collections. This is defined separately for the *from* and the *to*
@@ -210,6 +213,61 @@ You can create and manage named graphs in the following ways:
210213
JavaScript API (see the above links of the named graph types)
211214
- Using the [Gharial HTTP API](../develop/http/graphs/named-graphs.md)
212215

216+
#### When to use General Graphs
217+
218+
The General Graph is the basic graph type in ArangoDB, suitable for small-scale
219+
graph use cases. Data in this type is randomly distributed across all configured
220+
machines, making it easy to set up. However, this approach may result in
221+
suboptimal query performance due to random data distribution.
222+
223+
{{< tip >}}
224+
General graphs are the easiest way to get started, no special configuration required.
225+
{{< /tip >}}
226+
227+
![General Graph Random Distribution](../../images/general-graph-distribution.png)
228+
229+
#### When to use SmartGraphs
230+
231+
The SmartGraphs further optimize data distribution by allowing you to define a
232+
property called `smartGraphAttribute`. This property leverages your application's
233+
knowledge about the graph's interconnected communities to improve data
234+
organization and query performance.
235+
236+
{{< tip >}}
237+
For the best query performance, especially in highly interconnected graph
238+
scenarios, use SmartGraphs. Organize your data efficiently using the
239+
`smartGraphAttribute`.
240+
{{< /tip >}}
241+
242+
![SmartGraph Distribution](../../images/smartgraph-distribution.png)
243+
244+
#### When to use EnterpriseGraphs
245+
246+
The EnterpriseGraphs are designed for large-scale graph use cases in enterprise
247+
environments. While data is also randomly sharded, this graph type ensures that
248+
all edges adjacent to a vertex are co-located on the same server. This
249+
optimization significantly improves query performance by reducing network hops.
250+
251+
{{< tip >}}
252+
If you need improved query execution without manual data distribution, consider
253+
using EnterpriseGraphs.
254+
{{< /tip >}}
255+
256+
![EnterpriseGraph Distribution](../../images/enterprisegraph-distribution.png)
257+
258+
#### When to use SatelliteGraphs
259+
260+
SatelliteGraphs replicate one or more graphs to all machines within a cluster
261+
so queries can be executed locally. All vertices and edges are available on
262+
every node for maximum data locality, therefore no network hops are required
263+
to traverse the graph.
264+
265+
{{< tip >}}
266+
When using SatelliteGraphs, expect slower write performance because the data is
267+
replicated across DB-Servers. For a more efficient option that doesn't replicate
268+
all graph data to every server in your cluster, consider SmartGraphs.
269+
{{< /tip >}}
270+
213271
### Anonymous graphs
214272

215273
An anonymous graph is the graph that your data implicitly defines by edges that
57.5 KB
Loading
44.7 KB
Loading
146 KB
Loading

site/themes/arangodb-docs-theme/static/css/theme.css

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,23 +1170,21 @@ header .logo {
11701170
}
11711171

11721172
.toc-header {
1173-
font-size: 20px;
1174-
font-weight: 500;
1173+
font-size: 15px;
1174+
font-weight: 700;
1175+
letter-spacing: 0;
11751176
margin-bottom: 16px;
11761177
}
1178+
11771179
.toc-header > p {
1178-
font-size: 15px;
11791180
line-height: 16px;
1180-
font-weight: bolder;
1181-
letter-spacing: 0;
1182-
margin: 0px 0px 0px 0px;
1181+
margin: 0;
11831182
}
11841183

11851184
.toc-content {
11861185
margin-bottom: 30px;
11871186
}
11881187

1189-
11901188
#TableOfContents {
11911189
margin-right: 1rem;
11921190
}
@@ -1197,43 +1195,36 @@ header .logo {
11971195

11981196
#TableOfContents ul {
11991197
list-style: none;
1200-
margin: 0 0 0 0;
1198+
margin: 0;
12011199
}
12021200

12031201
#TableOfContents a {
12041202
display: inline-block;
1205-
padding: 0.25rem 0.5rem 0.25rem 0.5rem;
1203+
padding: 0.25rem 0.5rem;
12061204
text-decoration: none;
12071205
color: var(--TOC-ENTRY-COLOR);
1206+
font-size: 16px;
1207+
font-weight: 400;
12081208
}
12091209

12101210
#TableOfContents a:hover {
12111211
border-bottom: none;
12121212
}
12131213

1214-
1215-
#TableOfContents .level-1 > a {
1216-
font-size: 16px;
1217-
}
1218-
1219-
#TableOfContents .level-2 > a {
1220-
font-size: 16px;
1221-
font-weight: 400;
1222-
}
1223-
12241214
#TableOfContents .level-3 > a {
1225-
padding-left: 1em;
1226-
font-size: 16px;
1227-
font-weight: 400;
1215+
padding-left: 1.25rem;
12281216
}
12291217

12301218
#TableOfContents .level-4 > a {
1231-
padding-left: 2em;
1232-
font-size: 16px;
1233-
font-weight: 400;
1219+
padding-left: 2rem;
12341220
}
12351221

1236-
1222+
#TableOfContents .level-5 > a {
1223+
padding-left: 2.75rem;
1224+
}
1225+
#TableOfContents .level-6 > a {
1226+
padding-left: 3.5rem;
1227+
}
12371228

12381229
#TableOfContents .is-active > a {
12391230
color: #222222;
@@ -1243,7 +1234,8 @@ header .logo {
12431234
#TableOfContents .level-2:hover,
12441235
#TableOfContents .level-3:hover,
12451236
#TableOfContents .level-4:hover,
1246-
#TableOfContents .level-5:hover {
1237+
#TableOfContents .level-5:hover,
1238+
#TableOfContents .level-6:hover {
12471239
font-weight: bold;
12481240
--tw-bg-opacity: 0.2;
12491241
background-color: var(--gray-100);

0 commit comments

Comments
 (0)