Workload Management through Node Roles

Using node roles, you can configure where certain types of workloads are processed on your Tableau Server installation. The node roles features allows you to dedicate and scale resources to specific workloads. You can configure node roles for Backgrounder and File Store.

The Backgrounder node role specifies the type of background tasks that should run on a node, whereas the File Store node role specifies the type extract workload that should run on a node. Both node roles are specified at a node level. Although these node roles can work independently to optimize selected workload, the two node roles in combination can be used to specialize server nodes to preferentially execute selected workloads to optimize performance extract heavy workloads. This combination is discussed in more detail later in the File Store node roles section.

Backgrounder node roles

The Backgrounder process runs Tableau Server tasks, including extract refreshes, subscriptions, flow tasks, ‘Run Now’ tasks, and tasks initiated from tabcmd. Running all these tasks can use a lot of machine resources. If you have more than one Backgrounder node in your cluster, you can manage your Backgrounder workload by specifying the type of tasks a Backgrounder can run on a node using the Backgrounder node role feature.

This configuration option is currently available only through TSM CLI commands and is only useful on multi-node clusters. If you have only one node, the Backgrounder is set to run all tasks by default and that cannot be changed.

Using Backgrounder node roles

The Backgrounder node role feature is intended to give you more control and governance over where certain type of Backgrounder workloads are processed in your Tableau Server installation and allows you to dedicate and scale resources to specific workloads.

For example, if your deployment is heavy on extract and users are running a lot of extract refreshes or encryption jobs, it could be beneficial to dedicate a node to extract refreshes. Similarly, in the case of subscriptions, if your Tableau Server installation processes a lot of subscriptions and you want to ensure that other jobs do not take resources from subscriptions, then you can dedicate a node to subscriptions. In these cases, you would also want to dedicate other backgrounder nodes to workloads other than extract refreshes or subscriptions.

To support high availability, Tableau recommends having multiple nodes that are dedicated towards a specific workload. For example, if you dedicate a node to extract refreshes, you should also configure a second node to process extract refresh workload. This way if a node dedicated to extract refreshes becomes unavailable, extract refreshes can still be processed by the other node.

Configuration options

Configuration Jobs
all-jobs (default) All Tableau Server jobs
flows Flow run jobs.
no-flows All jobs except flows.
extract-refreshes

Jobs that are created for:

Incremental refreshes, full refreshes, encryption and decryption of all extracts including extracts that flow outputs create.

subscriptions Subscription jobs
system System maintenance jobs that interact with other Tableau Server processes. For example, cleaning crashed jobs, reaping database events, and synching Active Directory.
extract-refreshes-and-subscriptions Extract-refreshes, encryption and decryption of all extracts including extracts that flow outputs generate, and subscription jobs.
no-extract-refreshes All jobs except extract-refreshes, extract encryption and decryption of all extracts including extracts created from flow outputs.
no-subscriptions All jobs except subscriptions.
no-extract-refreshes-and-subscriptions All jobs except extract-refreshes, encryption and decryption of all extracts including extracts created from flow outputs, and subscriptions.
no-system All jobs except system maintenance jobs.

For more information on how to use the tsm commands to set the node role, see tsm topology.

Note: Making configurations to node roles require a restart of the server and will require some downtime. For more information, see tsm pending-changes.

License requirements

Configuring a node to do only a specific type of tasks, like, flows, extract refreshes, and subscriptions, you must have one of the following licenses activated on your Tableau Server:

  • To configure a node to run flows, you must have a valid Data Management license activated on your server, and have Tableau Prep Conductor running on that node. To learn more about Tableau Prep Conductor, see Tableau Prep Conductor.

  • To configure a node to run extract refreshes, subscriptions, and any combination related to extract refreshes and subscriptions you must haveAdvanced Management capabilities enabled on your Tableau Server. If the license expires or is deactivated, you will see an error any time you make a change to the Server configuration. For more information on Advanced Management. see About Tableau Advanced Management on Tableau Server.

Important!
While flows, extract refreshes, and subscriptions can be expensive and resource heavy, they are not the only jobs that may require dedicated resources. In the all jobs group, there are a variety of System jobs that the Backgrounder executes, such as thumbnail generation for workbooks. Make sure that the nodes that run jobs other than extract refreshes, subscriptions, or flows have enough machine resources.

For more information on configuring node roles using TSM commands, see tsm topology set-node-role.

Considerations

There are some rules you must consider when configuring Backgrounder node roles, which are listed below:

  • Only one node role configuration can be set for a node at a time. You cannot configure multiple node roles on a node.

  • To configure a node role, there must be at least one Backgrounder process on that node.

  • If you have only one Backgrounder node, you must configure this node to run all jobs. This is the default configuration and does not require additional licensing.

  • If you have more than one Backgrounder node, combined, they must be configured to handle all jobs. This can be achieved in the following ways:

    • Configure one of the nodes to run all jobs using the all jobs option. This is the easiest and most straightforward way.

    • Using one of the exception configurations on one of the nodes:

      • no-flows
      • no-subscriptions
      • no-extract-refreshes
      • no-extract-refreshes-and-subscriptions

For example, in a cluster where there are three backgrounders, you could have one node configured to run flows, one to run subscriptions and extract refreshes, and one to run all jobs except flows, subscription and extract refreshes.

Note: The ability to specify node roles to run flows, or run all jobs except flows, or run all jobs was introduced in 2019.1.

File Store node roles

The Tableau Server File Store controls the storage of extracts. There are three broad categories of workloads that are extract dependent.

Extract Workload Execution Service
Refresh Backgrounder
Query Data Engine
Backup/Restore Backup/Restore

File Store node role management in combination with Backgrounder node role management gives server admins the ability to specialize server nodes to preferentially execute selected workloads to optimize performance of all categories of extract heavy workloads.

It is possible to specialize a node to execute extract query workloads through a topology that has only stand-alone Data Engine nodes. For more information, see Optimize for Extract Query-Heavy Environments. However, this is at the expense of extract refresh workloads, which are executed by Backgrounder nodes. With the topology-based isolation approach, extract refresh heavy Backgrounder workloads can get slower as none of the Backgrounder nodes have a File Store and thus all extract refresh traffic goes over the network.

With the File Store Node Role configuration option, it is possible to designate certain server nodes that process extract queries to be preferentially selected from the list of server nodes that can do so. This helps speed up workloads such as backup and extract refreshes by allowing server admins to enable File Store on Backgrounder server nodes, which prevents extract queries from running on these nodes. This feature is useful if you have an extract-heavy query workload and an extract-heavy refresh workload and want to achieve optimal extract query and refresh performance.

Guidelines to optimize for extract refresh and backup or restore workloads.

Start from a topology with specialized Data Engine nodes (see Optimize for Extract Query-Heavy Environments).

Note: In the below diagram and procedure, node 1 is Initial Node, node 2 is Additional Node 1, node 3 is Additional Node 2, and node 4 is Additional Node 3.

Topology 1 - Dedicated Data Engine NodesTopology 1 - Dedicated Data Engine Nodes

  1. Add File Store to Node 1.
    tsm topology set-process -n node1 -pr filestore -c 1
  2. Designate Node 3 and Node 4 to preferentially execute extract-query workloads
    tsm topology set-node-role -n node3, node4 -r extract-queries
  3. Designate Node 1 to preferentially execute extract-refresh workloads.
    tsm topology set-node-role -n node1 -r extract-refreshes
  4. Designate Node 2 to preferentially execute non-extract-refresh workloads.
    tsm topology set-node-role -n node2 -r no-extract-refreshes
  5. Apply pending changes.
    tsm pending-changes apply

Topology 2Topology 2 - Extra File Store Node

Note: In your Tableau Server deployment, adding File Store roles to existing nodes will temporarily increase network I/O between all File Store nodes while the new File Store is being synchronized. The duration of this operation is dependent on the volume of data on the File Store and the network bandwidth capacity. The status of synchronization can be monitored using the TSM Web GUI. If you are adding more than one File Store to your deployment, it is recommended to add them consecutively and wait for the initial synchronization to complete in between each File Store addition.

Fine tune extract query workload management

When extract queries for email subscriptions and metric alerts are running at the same time that users are interactively viewing extract-based visualizations, users may experience slower than normal viz load times. Use the following node roles to fine tune how these workloads are prioritized.

Node role to use Type of extract query workload Example
extract-queries scheduled email subscriptions and metric alerts
extract-queries-interactive interactive users viewing an extract-based visualization

If your server deployment is seeing growth in email subscriptions and metric alerts, you can add nodes and assign the extract-queries node role, which makes them more available to handle subscriptions and alerts.  

If your server deployment is seeing growth in users viewing extract-based visualizations, you can add nodes and assign the extract-queries-interactive node role, which makes them prioritize interactive extract queries to reduce extract-based viz load times. The extract-queries-interactive node role is a preference and not strict isolation. This means that queries will be routed to nodes that have the extract-queries-interactive node role assigned. If you have multiple nodes with the extract-queries-interactive role, queries will be routed based on node health.  

For example, add a node and designate it to preferentially execute extract-queries-interactive workloads.

  • tsm topology set-node-role -n node4 -r extract-queries-interactive

Configuration options

Configuration Jobs
all-jobs (default) All Tableau Server jobs
extract-queries Jobs that are created for extract queries. The nodes selected will run as all-jobs and will prioritize the processing of extract queries.
extract-queries-interactive Jobs that are created for extract queries. The nodes selected will run as all-jobs and will prioritize the processing of interactive extract queries, such as those that run when a user is looking at their screen and waiting for an extract-based dashboard to load. This is an advanced setting and it should only be used if the cluster has a heavy subscription and alert job workload that causes users to experience degraded performance on viz load times that run around the same time as scheduled loads.

For more information on configuring node roles using TSM commands, see tsm topology set-node-role.

License requirements

To configure a node to run extract queries you must have a valid Advanced Management license activated on your Tableau Server.

How to see node roles

Use the following command to see what node roles are currently configured on Tableau Server:
tsm topology list-nodes -v

Who can do this

Tableau Server Administrators can configure node roles and activate any required product keys.

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!