[
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)