[ 
https://issues.apache.org/jira/browse/IGNITE-642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15214319#comment-15214319
 ] 

Yakov Zhdanov commented on IGNITE-642:
--------------------------------------

1. Agree with your point on interrupted exception.

4. 20-25% slower is pretty significant drop. However, to support this use case 
(which may be pretty rare) I would add "fair" flag. 

Vlad, I also realized that there may be one more issue (I missed during prev 
reviews) - onUpdate() is called in system thread and it is very unsafe to 
initiate any synchronous cache operation within this call. This may lead to 
starvation. Here is an issue currently in progress which should help you to get 
more understanding here - IGNITE-2004. If you agree that problem may affect 
lock & semaphore, I think it makes sense to wait until this gets released and 
try using it. You can ping Nikolay on dev list. To my knowledge Nikolay should 
finish with this shortly.

Thanks!



> Implement IgniteReentrantLock data structure
> --------------------------------------------
>
>                 Key: IGNITE-642
>                 URL: https://issues.apache.org/jira/browse/IGNITE-642
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: data structures
>    Affects Versions: 1.6
>            Reporter: Dmitriy Setrakyan
>            Assignee: Vladisav Jelisavcic
>              Labels: features
>             Fix For: 1.6
>
>
> We need to add {{IgniteReentrantLock}} data structure in addition to other 
> data structures provided by Ignite. {{IgniteReentrantLock}} should have 
> similar API to {{java.util.concurrent.locks.ReentrantLock}} class in JDK.
> As an example, you can see how 
> [IgniteCountDownLatch|https://github.com/apache/incubator-ignite/blob/master/modules/core/src/main/java/org/apache/ignite/IgniteCountDownLatch.java]
>  is implemented in 
> [GridCacheCountDownLatchImpl|https://github.com/apache/incubator-ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheCountDownLatchImpl.java]
>  class.
> In general we need to have an entity in ATOMIC cache storing lock-owner 
> identifier together with a queue of waiters.



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

Reply via email to