MicroStrategy ONE

Configure Caches in a Cluster

You can configure caches in one of two ways:

Configure Caches in a Cluster on Windows

Use one of the procedures below to share cache files among the nodes in your cluster. For a detailed explanation of the two methods of cache sharing, see Synchronizing Cached Information Across Nodes in a Cluster.

Configure Cache Sharing Using Multiple Local Cache Files

  1. Open the Project Configuration Editor for the project.
  2. Select Caching > Result Caches > Storage.
  3. In the Cache file directory box, type:

    Copy
    .\Caches\ServerDefinition

    where ServerDefinition is the name of the server definition.

    This tells the other clustered nodes to search for caches in the following path on all machines in the cluster:

    <Intelligence Server Application Folder>\Caches\ServerDefinition

  4. Click OK.
  5. On each machine in the cluster, open Windows Explorer and navigate to the cache file folder. The default location is:

    C:\Program Files (x86)\MicroStrategy\Intelligence Server\Caches\ServerDefinition

    where ServerDefinition is the name of the server definition.

  6. Right-click the cache file folder, and select Sharing.

  7. On the Sharing tab, select the Shared as option. In Share Name, delete the existing text and enter ClusterCaches.

  8. Click OK.
  9. Select Intelligent Cubes > General.
  10. In Intelligent Cube File directory, enter:

    Copy
    .\Cube\ServerDefinition

    Where ServerDefinition is the name of the server definition.

    This tells the other clustered nodes to search for caches in the following path on all machines in the cluster:

    <Intelligence Server Application Folder>\Cube\ServerDefinition

  11. Click OK.
  12. On each machine in the cluster, open Windows Explorer and navigate to the cache file folder. The default location is:

    C:\Program Files (x86)\MicroStrategy\Intelligence Server\Cube\ServerDefinition

    where ServerDefinition is the name of the server definition.

  13. Right-click the cache file folder and select Sharing.

  14. Select the Shared as option and in Share name, delete the existing text and enter ClusterCube.

  15. Click OK.

  16. Restart the server. If the other cluster servers are running during the configuration, restart them as well.

Configure Cache Sharing Using a Centralized Cache File

  1. Open the Project Configuration Editor for the project.
  2. Select Caching > Result Caches > Storage.
  3. In Cache file directory, enter:

    Copy
    \\<Machine Name>\<Shared Folder Name>\Caches

    or

    Copy
    \\<IP Address>\<Shared Folder Name>\Caches

    For example, \\My_File_Server\My_Cache_Directory\Caches.

  4. Click OK.
  5. Select Intelligent Cubes > General.
  6. In Intelligent Cube File directory, enter:

    Copy
    \\<Machine Name>\<Shared Folder Name>\Cube

    or

    Copy
    \\<IP Address>\<Shared Folder Name>\Cube

    For example, \\My_File_Server\My_Cache_Directory\Cube.

  7. On the machine that is storing the centralized cache, create the file folder that will be used as the shared folder. The file folder name must be identical to the name you specified earlier in Cache file directory. This is shown as the Shared Folder Name above.

  8. Restart the server. If the other cluster servers are running during the configuration, restart them as well.

    Make sure this cache directory is writable to the network account under which Intelligence server is running. Each Intelligence server creates its own subdirectory.

Configure History List Sharing Using Multiple Local Cache Files

If you are using a file-based history list, you can set up history lists to use multiple local disk backups on each node in the cluster, using a procedure similar to the procedure above, Configure Cache Sharing Using Multiple Local Cache Files. The history list messages are stored in the History folder. To locate this folder, in the Intelligence Server Configuration Editor, expand History settings and select General.

The History List location is .\Inbox\ServerDefinition, where Server Definition is the name of the folder containing the history lists. This folder must be shared with the share name "ClusterInBox" because this is the share name used by Intelligence server to look for history lists on other nodes.

Configure Caches in a Cluster on Linux

To configure a cluster of Intelligence servers in a Linux environment, all servers must have access to each others' caches and inbox (history list) files. Both cache and history list files are referred to generally as cache files throughout this section. An Intelligence server looks for cache files from other nodes in the cluster by machine name. For an explanation and diagrams of general cache synchronization setup, see Synchronizing Cached Information Across Nodes in a Cluster.

The cache and Inbox folders must be named as follows:

/<machine_name>/ClusterCaches

/<machine_name>/ClusterInBox

For example, a two-node cluster with Intelligence servers is running on UNIX1 and UNIX2 machines. Intelligence server running on UNIX1 looks for caches of the other Intelligence server only on /UNIX2/ClusterCaches.

The procedures below demonstrates how to configure the caches on two servers, named UNIX1 and UNIX2. Use these steps as a guideline for configuring your own system.

You can choose to use either procedure below, depending on whether you want to use centralized or local caching. For a detailed description and diagrams of cache synchronization setup, see Synchronizing Cached Information Across Nodes in a Cluster.

Configure a Cluster with Multiple Local Cache Files

This procedure makes the following assumptions:

  • The Linux machines are called UNIX1 and UNIX2. Note that UNIX1 and UNIX2 are the hostnames, not the IP address.
  • Intelligence server is installed in MSTR_HOME_PATH on each machine.

Set Up the UNIX1 Machine

Mount the folders from UNIX2 on UNIX1.

Copy
mkdir /UNIX2
mount UNIX2:/<MSTR_HOME_PATH>/IntelligenceServer  /UNIX2

Set Up the UNIX2 Machine

Mount the folders from UNIX1 on UNIX2.

Copy
mkdir /UNIX1
mount UNIX1:/<MSTR_HOME_PATH>/IntelligenceServer  /UNIX1

Configure the Server Definition and Project

  1. Start Intelligence server on UNIX1.
  2. In Developer, create project sources pointing to UNIX1.
  3. Connect to UNIX1 using Developer.
  4. Right-click the project source of UNIX1 and select Configure Server.
  5. Select History Settings and General.
  6. Set the path to ./ClusterInBox and click OK.

  7. Right-click the project name and select Project Configuration.
  8. Select Caching > Result Caches > Storage.
  9. Set the path for the cache file directory to ./ClusterCaches.
  10. Select Intelligent Cubes > General > Intelligent Cube File directory.
  11. Set the path for the cube cache file directory to ./ClusterCube.
  12. Disconnect from the project source and restart both Intelligence servers.

Configure a Cluster with a Centralized Cache

This procedure assumes that the Linux machines are called UNIX1 and UNIX2.

Create the Cache Folder on the Shared Device

  1. Create the folders for caches on the shared device called UNIX3 as described in Prerequisites for Clustering Intelligence Servers

    Copy
    mkdir /sandbox
  2. On UNIX1, mount the folders from the shared device on UNIX1.

    Copy
    mkdir /sandbox
    mount UNIX3:/sandbox /sandbox
  3. On UNIX2, mount the folders from the shared device on UNIX2.

    Copy
    mkdir /sandbox
    mount UNIX3:/sandbox /sandbox

Configure the Server Definition and Project

  1. Start Intelligence server on UNIX1.
  2. In Developer, create project sources pointing to UNIX1.
  3. Connect to UNIX1 using Developer.
  4. Right-click the project source of UNIX1 and select Configure Server.
  5. Select History Settings and General.
  6. Set the path using the following convention:

    //<SharedLocation>/<InboxFolder>

    In this example, set it as //sandbox/Inbox.

  7. Right-click the project name and select Project Configuration.
  8. Select Caching > Result Caches > Storage.
  9. Following the convention, //<SharedLocation>/<CacheFolder>, set the path to //sandbox/Caches.

    For caches stored on Linux machines using Samba, set the path to \\<machine name>\<shared folder name>.

  10. Select Intelligent Cubes > General > Intelligent Cube File directory.

  11. Following the convention, //<SharedLocation>/<CubeFolder>, set the path to //sandbox/Cube.

    For caches stored on Linux machines using Samba, set the path to \\<machine name>\<shared folder name>.

  12. Disconnect from the project source and restart both Intelligence servers.

Configure History Lists in a Clustered Environment

MicroStrategy recommends that you enable user affinity clustering to reduce history list resource usage. User affinity clustering causes Intelligence server to connect all sessions for a user to the same node of the cluster. For background information about user affinity clustering, see Synchronizing Cached Information Across Nodes in a Cluster.

If you are not using user affinity clustering, MicroStrategy recommends that you set the cache backup frequency to 0 (zero) to ensure that history list messages are synchronized correctly between nodes. For more information about this setting, see Configuring Result Cache Settings.

Configure the History List Governing Settings for a Clustered Environment

  1. In Developer, log in to a project source. You must log in as a user that has administrative privileges.
  2. From the Administration menu, go to Server > Configure MicroStrategy Intelligence Server.
  3. Expand the Server Definition category and select Advanced.
  4. Do one of the following:
    • To enable user affinity clustering, select the User Affinity Cluster check box.
    • OR, if you do not want to enable user affinity clustering, in the Backup frequency (minutes) field, type 0 (zero).
  5. Click OK.
  6. Restart the Intelligence server.