I am trying to load data to a cube in many parallel threads using RunTI.
Each parallel thread is hitting a different portion of the cube.
But before loading data, we do some master data check to make sure elements exists in dimensions and we also lookup some values from other cubes.
For some reason my threads are hitting contention lock and do roll back and once they roll back, they all execute in order not in parallel. They keep waiting each other.
Below is a sample tm1server.log record describing the lock contention.
Code: Select all
17956   [c78]   DEBUG   2019-06-24 18:22:40.383   application_name.Lock.Exception   CommitActionLog::Rollback: Called for thread '17956' of user 'CAMID("CognosEx:u:uid=runti_user")' executing function 'ProcessExecuteEx'.
20180   [c96]   DEBUG   2019-06-24 18:23:00.137   application_name.Lock.Exception   Contention encountered attempting to acquire lock (0x000000000BE7ACD8) on object [Dimension "DimX", addr=0x000000000BE7AC10, index=R-1639] in IX mode at ..\application_name_r7s\DimensionData.cpp:1732 during function 'ProcessExecuteEx'. Entering wait state 'IXC'.
Blocked by the following 1 thread:
Thread 22000 holds the lock in IX mode
Any help will be appreciated. Thanks in advance.
Regards,
