Lock on Dimension

Post Reply
eliza_jane
Posts: 1
Joined: Thu Dec 12, 2019 3:19 pm
OLAP Product: IBM PA
Version: 2.0
Excel Version: 2016

Lock on Dimension

Post by eliza_jane »

I'm pretty new to the TM1 world and am currently working on parallelizing a few TI processes.

To begin with I'm trying to identify the locks being created and came across one that I'm trying hard to understand:

This has to do with metadata updates and I know I shouldn't be running them in parallel and in my solution don't intend to but the below question is more for my understanding.

I have 2 processes that all call the same sub-process.

This sub-process just updates a dimension that is passed in as a parameter from the calling process - adds an element to the dimension name passed, nothing else happening in this process.

The 2 processes pass 2 different measure dimensions to the sub-process. These measure dimensions do not intersect in any cube and there are no rules in any of the cubes in the entire application that reference the cubes using these measure dimensions.

So the measure dimensions and the cubes referencing them are pretty stand alone but when they are run in parallel the first process say P1 runs, calls the sub-process, sub-process finishes and the rest of the process continues on. Process 2 say P2 kicks of at the same time, calls sub-process and gets locked out by P1.

The log mentions a contention being created on a different dimension Period that is being shared across all cubes and the lock is trying to be acquired in an IX mode on the period dimension.

I'm of the assumption that the dimension update will lock the dimension and the cubes using the dimension.
So why would a read only lock on Period cause a lock-out on the sub-process? Why is the sub-process trying to acquire an IX mode lock on Period?
EvgenyT
Community Contributor
Posts: 324
Joined: Mon Jul 02, 2012 9:39 pm
OLAP Product: TM1
Version: PAL 2.0.8
Excel Version: 2016
Location: Sydney, Australia

Re: Lock on Dimension

Post by EvgenyT »

Hi,

IX is not a read only lock, its an intent-to-write lock, which can only be acquired by one thread at the time. Hence the lock.
Are you creating any subsets, views etc that may share the same name? It would cause a contention, but then again its only one of a few cases that may cause locking.

Share your code please then members of this forum can provide more definitive suggestions

Thanks

Evgeny
Post Reply