Free cookie consent management tool by TermsFeed

Configuring the Data Service

Beginning with Appian 25.4, all new versions of Appian will require containers managed by Kubernetes to run in a self-managed environment. Review the 24.4 release notes and frequently asked questions to learn more.

Overview

This page provides information for self-managed customers configuring the data service. The data service configuration is specified in data-server-cluster element in the appian-topology.xml file, located in both the <APPIAN_HOME>/ae/data-server/conf/ and <APPIAN_HOME>/ae/conf/ directories:

1
2
3
4
5
6
<topology>
    ...
    <data-server-cluster>
        <data-server host="machine1.example.com" port="5400" rts-count="2"/>
    </data-server-cluster>
</topology>

For a high availability configuration, specify three instances of the data service on different machines:

1
2
3
4
5
6
7
8
<topology>
    ...
    <data-server-cluster>
        <data-server host="machine1.example.com" port="5400" rts-count="2"/>
        <data-server host="machine2.example.com" port="5400" rts-count="2"/>
        <data-server host="machine3.example.com" port="5400" rts-count="2"/>
    </data-server-cluster>
</topology>

You must specify the data-server-cluster configuration in appian-topology.xml. Copy the appian-topology.xml file from <APPIAN_HOME>/conf/ into <APPIAN_HOME>/data-server/conf/ before starting the data service. Copies of the topology file in each location must always be in sync, irrespective of the configurations specified.

Node

A data-server node element must be present and must be structured similarly to the following:

1
<data-server host="machine3.example.com" port="5400" rts-count="2"/>

If there is no data-server node element specified, the following error is printed in watchdog.log:

"ERROR com.appian.data.server.Watchdog - At least one data-server node must be specified"

Host

Set the host attribute in the data-server element to the name of the machine hosting the data service. If the host is not specified, the following error is printed in watchdog.log:

"ERROR com.appian.data.server.Watchdog - data-server host must be specified"

Port

You can define the port attribute on both the data-server-cluster and the data-server elements. If the port attribute is defined on both, the data-server element takes precedence. If not supplied, the default port number is 5400.

Caution:  In order for the data service to function properly, make sure that you open all of the required ports. See Port Usage for more information.

Real-time store count

The rts-count attribute specifies the number of real-time stores in the data service. The real-time store component is responsible for processing queries to the data service, and each real-time store processes a single query at a time.

For self-managed customers, the rts-count is set to 2 by default, but can be increased as needed to support increased query throughput. The maximum supported rts-count varies based on the amount of memory available as shown below.

Available Memory Supported RTS Count
Less than 32GB 2
Between 32GB - 127GB 4
Between 128GB - 384GB 8
Greater than or equal to 384GB 12

Real-time store thread count

In addition to configuring the number of real-time stores, you can configure the number of threads that each real-time store uses when processing queries by setting rts.secondaryThreads.num in the custom properties file.

For self-managed customers, rts.secondaryThreads.num is set to 0 by default. Increasing the number of secondary threads will improve the performance of certain queries against synced record types, but will also result in increased CPU resource usage. The maximum supported value for rts.secondaryThreads.num varies based on the number of real-times stores configured in rts-count and number of CPU cores available. As a rule, the rts.secondaryThreads.num * rts-count must be less than the number of available CPU cores.

Note:  Setting the rts.secondaryThreads.num higher than 2 will not result in noticeable improvements in query performance.

Real-time store routing protocol

For sites where the rts-count is greater than 4, an optimized query routing configuration is available. This routing protocol is particularily effective for ensuring more consistent query performance during peak loads. For Appian Cloud sites, this routing protocol is automatically configured. However, self-managed customers will need to configure this routing protocol by setting the conf.ads.rts.connection.strategy.dedicated property in the custom properties file.

The conf.ads.rts.connection.strategy.dedicated property takes a comma separated list of application server hostnames, which can be found in the <server> elements of the topology.xml file.

Note:  Hostnames must be copied from the <server>element in the topology file. Using hostnames from the <data-server> element will result in failure to properly set the configuration.

Example single-node configuration: conf.ads.rts.connection.strategy.dedicated=hostname1.com Example HA configuration: conf.ads.rts.connection.strategy.dedicated=hostname1.com,hostname2.com,hostname3.com

Changing the topology

Topology changes can include:

  • Add or remove data service nodes.
  • Change the host name.
  • Change the port.
  • Change the real-time store count.

To make these changes, you'll need to make configuration changes to the data-server-cluster parameter and restart both the data service and the application server by following these steps:

  1. Stop the data service on all of the servers:
    • <APPIAN_HOME>/data-server/bin/stop.sh (.bat on Windows)
  2. Delete the <APPIAN_HOME>/ae/data-server/node/election directory from all the servers. This directory contains runtime data that needs to be deleted when certain topology changes are made.
  3. If adding nodes (for example, when migrating from a single node to High Availability), copy the <APPIAN_HOME>/ae/data-server/data directory to the new servers.
  4. Make the required topology change on all of the servers.
  5. Start the data service on all of the servers in any order:
    • <APPIAN_HOME>/data-server/bin/start.sh (.bat on Windows)
  6. Restart the application server on all servers:
    • To stop the server: <APPIAN_HOME>/tomcat/apache-tomcat/bin/stop-appserver.sh (.bat on Windows)
    • To start the server: <APPIAN_HOME>/tomcat/apache-tomcat/bin/start-appserver.sh (.bat on Windows)

Feedback