Young-Seok Kim created ASTERIXDB-1147:
-----------------------------------------

             Summary: ConcurrentLockManager's performance bug when there are 
many locks on a single resource, such as dataset level lock
                 Key: ASTERIXDB-1147
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1147
             Project: Apache AsterixDB
          Issue Type: Bug
            Reporter: Young-Seok Kim


If a query scan a dataset which includes 1M records, the scan operator acquires 
1M instantTryLocks. 
Internally, ConcurrentLockManager holds 1M tryLocks in dataset level and 1M 
instantTryLocks in entity level. In other words, 1M dataset level locks are not 
released until the job is over. 
If this situation happens, ConcurrentLockManager allocates 1M lockRequestSlots 
during lock acquiring phase and those slots are maintained in a linked list. 
Thus, when the job is over, those slots for the dataset level locks are 
released one at a time by searching each slot for each dataset level lock held 
by scanning the linked list. Thus, 1M slots of linked list is scanned 1M times. 
This is killing the scan performance. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to