EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB483679: How do cubes and caches synchronize in a clustered environment?


Flynn Zhang

Scrum Master • MicroStrategy


This article explains how a cube and its cache become synchronized in a clustered environment. 

In a clustered environment, each node in a cluster must share its result caches and intelligent cubes with the other nodes, so all clustered machines have the latest cache information. For example, for a project, result caches on each node that has loaded the project are shared among other nodes in the cluster that have also loaded the project. But how is this information synchronized across all nodes?
To understand the cube and cache synchronization workflow, you must first understand the files used by an intelligent cube and result cache.

Files Used by an Intelligent Cube and Result Cache


There are four files that interact with an intelligence cube and cache:

  • Cube Lookup Index: This file stores general cube information such as the cube version ID, definition ID, and resolution ID. The Intelligence Server first checks this file to find the cube.
  • Cube Pool: This file stores cube load information such as the number of cubes loaded on a current node, what kinds of cubes are in the node, and which cubes are published. The Intelligence Server checks this file to load the cubes.
  • Cube Info: This file stores detailed information about the cube, like when the last time the cube was published, the job ID, the cube size, hit count, location, hit time, and more.
  • Cube Data: This file stores the actual cube data.
ka02R000000g5O7QAI_0EM2R000000mDNj.jpeg

Where are these files stored?


These files are stored in two locations:

In-Memory


Once the cube is published, these four files are loaded in-memory on the Intelligence Server. Based on performance concerns, the Intelligence Server will also save other remote cluster node's cube lookup indexes in-memory.

Disk


Once the cube is published, the Intelligence Server where the cube was published will back up the cube files on a disk. This behavior is controlled by the "Backup frequency (Minutes)" setting in the Server Configuration Editor.
For more information on the Backup frequency (Minutes) setting, see Configuring Result Cache Settings. 

How do cubes get synchronized after being republished?


The following workflow details how a cube becomes synchronized after it is republished. In this example, we are using a two-node cluster. The cube is published in node A.

  1. On the node B server, a user republishes a cube. When the cube is republished, two things occur:
    • The Cube Lookup index, Cube Pool, Cube Info, and Cube Data are removed and updated with the latest cube information on a disk and in-memory.
    • The node B server  broadcasts the republish message and the cube info to all other clustered nodes.
  2. On the node A server, the Intelligence Server receives the broadcast message. When it receives this message, two things occur:
    • In-memory: The Cube Lookup index, Cube Pool, and Cube Info are updated with the latest cube information. Cube data is loaded from node B's disk if the setting "Load intelligence cubes into Intelligence Server memory upon publication" is enabled. This is why, in a localized cube configuration cluster, each Intelligence Server needs access to the other node's cube directory.
    • Disk: The Cube Lookup index and Cube Pool are updated with the latest cube information. Cube Info and Cube Data are removed to make sure there is only one backup for the cube.

Show me the Workflow

How do cubes get synchronized while an offline Intelligence Server rejoins the cluster?


The following workflow details how cubes get synchronized again after the Intelligence Server rejoins the cluster. This example is using a two-node cluster.
Say cube 1 is published on node A. If node A's server goes down, cube 1 is republished on node B and a new cube, cube 2, is published on node B.
On node B's server, before server A rejoins the cluster, there are now duplicate cube instances for cube 1 listed in the cube monitor. However, only the latest cube 1 instance will be hit. Once server A has completely rejoined the cluster, the duplicate cube instance of cube 1 will be removed from the server memory.
After node A has rejoined the cluster, the old cube instance of cube 1 will be removed from both the server memory and disk of node A. Then, the newly published cube instance from cube 1 and cube 2 will be loaded into node A's server memory. Now, both servers have the same cube instance loaded.
Note: Only the cache list created by the current Intelligence Server will appear in the cache monitor. As such, there will be no duplicate cache observed in this scenario. 
For more information, see Synchronizing Cached Information Across Nodes in a Cluster.


Comment

0 comments

Details

Knowledge Article

Published:

September 30, 2019

Last Updated:

December 20, 2019