ALTER SYSTEM
is an advanced system performance tuning feature for configuring and retrieving system settings for your peer-to-peer mesh network.
For information on specific configs supported via
ALTER SYSTEM
reach out to the Ditto team member.ALTER SYSTEM
Ditto Query Language (DQL) statement, as well as instructions on how to use it, once offered, to set, reset, and query peer-to-peer system settings.
Tasks Overview
The following table provides an overview of the various tasks you can perform with theALTER SYSTEM
statement:
Task | Query |
---|---|
Retrieve current system settings for all configurations. (Retrieving Values) | SHOW ALL |
Retrieve current system settings for a specific configuration. (Retrieving Values) | SHOW |
Change a specific system setting. (Modifying Values) | ALTER SYSTEM SET |
Reset system settings to default configurations. (Resetting Values to Default) | ALTER SYSTEM RESET |
Retrieving Values
Fetch current setting values for either the entire mesh network or a specific setting:- To return system-wide configurations, use a
SHOW ALL
statement:
- To return only the value for a specific setting, pass the setting you want to retrieve a value for in a
SHOW
statement. For example:
Executing SHOW and SHOW ALL
To invoke your statement, call the Execute API method on theditto.store
namespace:
For example, in Swift:
Swift
Modifying Values
To modify a system setting, useALTER SYSTEM SET
:
Similar to PostgresSQL, DQL supports both the
=
and TO
syntax for setting system configurations.Regardless of the syntax you use in your ALTER SYSTEM SET
query, the documents Ditto returns contain the current value of the setting, identified by the setting name.Executing SET
Similar to the execution pattern recommended when configuring transports in your app, invoke your statement modifying system configurations immediately after initializing theditto
object. (See Customizing Transports Configurations)
Ditto stores configuration settings modified by
ALTER SYSTEM
in memory rather than persisting them to disk.So, while you can execute your statement to modify a setting at any point during your app’s lifecycle, changing certain settings within your app may not result in immediate effects.SET
statement, add a call to the Execute API method on the ditto.store
namespace. For example, in Swift:
Swift
Resetting Values to Default
To return peer-to-peer system configuration settings to default values, do either of the following:- To reset all configuration settings: For example:
- To reset a specific configuration setting:
Troubleshooting
Ditto throws an error when anALTER SYSTEM
query operation fails to execute due to various issues, including:
- Syntax mistakes, such as a typo, causing parsing of the DQL statement to fail.
- Using an unrecognized setting name in the query (often due to a typo).
- Attempting to set a value outside the acceptable bounds for a setting in an
ALTER SYSTEM SET
query. - An internal error occurred while processing the query.