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.