Optimizing common data for multi-slot hosts

The transfer of common data can be optimized for environments that feature sessions running multiple SIMs on the same host.

Scope


Applicability

Details

Operating system

  • Windows

  • Linux

  • Solaris

Limitations

N/A


About common data and multi-slot hosts

When common data for a session is sent to compute hosts, Symphony, by default, sends one copy of the data to each SIM. In the case of one session running multiple SIMs on the same host, the same data will be sent multiple times. The potential drawback of having to send and maintain multiple copies of common data and common data updates is the burden it puts on host memory and network bandwidth.

Figure 1. Common data distribution, Symphony default model

Common data optimization

Symphony allows you to optimize the distribution of common data and common data updates so that only one copy of the data is sent to each host serving the same session. The single copy of common data is shared among all SIMs and SIs associated with the same session on the same host. Note that if all the SIMs on the host get unbound from the session, the common data is lost and must be sent to the host again if the SIMs get bound to that same session.

Common data is shared among the SIMs using a shared file system. When the first SIM for the session is started, it receives the common data and stores it in a shared file. When additional SIMs are assigned to the same session, they use the common data stored in the shared file. The same principle applies to common data updates, which are stored in a shared file at the same location as the common data.

Figure 2. Common data distribution, optimized

When to use common data optimization

Common data optimization is recommended for sessions that are likely to use multiple SIMs on the same host. Also, the impact of common data optimization is proportional to the size of the common data. The greater the common data size, the greater the benefit of optimization. For example, if the common data size is 100 MB and the compute host has four SIMs assigned to the session, the session round trip can be completed with an 80% savings in time when compared to optimization being disabled. On the other hand, if the common data size is very small or the compute host has enough memory to store the multiple copies of common data, optimization may not offer any benefit.

Configuring common data optimization

Common data optimization is configured by setting the enableCommonDataOptimization attribute at the session level in the application profile. For example:

<SessionTypes>
        <Type name="ShortRunningTasks" priority="1" recoverable="false"
              sessionRetryLimit="3" taskRetryLimit="3"
              abortSessionIfTaskFail="false" abortSessionIfClientDisconnect="true"
              suspendGracePeriod="100"  taskCleanupPeriod="100" enableCommonDataOptimization="true" />
    </SessionTypes>