During Server load, TM1 establishes cube dependencies based on feeder statements in rule files. Feeder statements that have data dependent cube references or rules files containing ATTRN or ATTRS functions will not establish Cube Dependencies during server load – rather they will be established during a first time query or data update invoking these cross-cube rules .
The result can be that a query or Turbo Integrator Process could trigger a cube dependency where the system goes out and evaluates what the dependencies are required before giving results. If this happens during periods of user activity, this could block objects and cause contention issues for concurrent readers and writers. So, the user will complain the system is slow!
To address this issue, consider creating a Turbo Integrator Process that uses the AddCubeDependency function. This will establish potential cube dependencies in the model for each cube dependent relationship established by rules. This function is only available in Turbo Integrator. This function can be set in anywhere in the Turbo Integrator Advanced tab:
CubeA = Name of base Cube
CubeB = Name of the Dependent Cube
Cube B relies on a rule that is dependent on Cube A.
The TI containing these explicit Cube Dependency functions should be executed immediately following a TM1 Server Startup, after rule file changes, and following dimension maintenance. This activity will quickly establish server-wide cube dependencies and eliminate the possibility that a long running query or TI process will trigger a cube dependency during periods of user activity that will block objects and cause contention issues for concurrent readers and writers.
Cube dependencies can be determined by looking at the log files in Server Explorer or scanning rules files for DB statements and ATTRN and ATTRS functions. An ATTRN/S function will create a dependency on the base cube’s corresponding element attribute cube.