[ 
https://issues.apache.org/jira/browse/ASTERIXDB-1147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Young-Seok Kim updated ASTERIXDB-1147:
--------------------------------------
    Assignee: Till Westmann

> 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
>            Assignee: Till Westmann
>
> 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