DataStax Graph (DSG) traversal performance settings

dev mode

Use the dev traversal source while you are experimenting in early DSG use and design. It allows you to query without creating any indexing, a distinct advantage for exploring your data and data model.

Graph traversal with() options

Use the with() traversal options to finetune the performance of graph queries. At various stages of using DSG, different options are more or less useful. For instance, similar to CQL, an option to allow-filtering can be useful early in design, but harmful when large datasets are inserted into the database. Familiarize yourself with the capabilities of the options available.

Timeouts

Timeout settings can cause failure of DSG in a variety of ways, both client-side and server-side. On the client-side, commands from the Gremlin console can time out before reaching the Gremlin server. Issuing the command :remote config timeout none in the Gremlin console allows the default maximum timeout of 3 minutes to be overridden with no time limit. Any request typed into the Gremlin console is sent to the Gremlin Server, and the console waits for a response before it aborts the request and returns control to the user. If the timeout is changed to none, the request will never timeout. This can be useful if the time to send a request to the server and get a return is taking longer than the default timeout, for complex traversals or large datasets.

On the server-side, the cluster-wide timeout settings, realtime_evaluation_timeout_in_seconds (default: 30 seconds) or analytic_evaluation_timeout_in_minutes(default: 1008 minutes), are the maximum time to wait for a traversal to evaluate for OLTP or OLAP traversals, respectively. These settings are found in the dse.yaml file. If the timeout behavior for traversal evaluation needs to be overridden for a particular graph, evaluation_timeout can be set on a graph-by-graph basis, to override either the OLTP or OLAP traversal evaluation timeout. If complex traversals are timing out during execution, changing an appropriate timeout setting should fix the error.

An additional server-side setting that can be adjusted in the dse.yaml file is schema_agreement_timeout_in_ms (30 seconds), the maximum time to wait for schema versions to agree across a cluster when making schema changes. If a large schema is submitted to a cluster, especially with indexes defined, this setting may need adjustment before data is submitted to the graph.

Finally, in the dse.yaml file, system_evaluation_timeout_in_seconds (default: 180 seconds) is defined as the maximum time to wait for a graph system request to evaluate. Creating or dropping a graph is a system request affected by this setting, which does not interact with the other timeout options.

[[cols="16,10,21"]]

Timeout Default Impact

:remote config timeout none

3 minutes

Lengthen if command transit from Gremlin console to Gremlin Server is timing out.

realtime_evaluation_timeout_in_seconds

30 seconds

Lengthen if the OLTP traversal evaluation is timing out.

analytic_evaluation_timeout_in_minutes

1008 minutes

Lengthen if the OLAP traversal evaluation is timing out.

evaluation_timeout

N/A

Set per-graph to override OLTP or OLAP traversal evaluation timeout.

schema_agreement_timeout_in_ms

30 seconds

Lengthen if a large schema is submitted, especially with indexes.

system_evaluation_timeout_in_seconds

180 seconds

Lengthen if graph system requests are not completing.

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2024 DataStax | Privacy policy | Terms of use

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com