You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksei Zotov (Jira)" <ji...@apache.org> on 2021/09/22 20:12:00 UTC

[jira] [Commented] (CASSANDRA-16924) Blocking Concurrency Primitives

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

Aleksei Zotov commented on CASSANDRA-16924:
-------------------------------------------

This one turned out to be much harder to review than the previous one. I posted some comments on the PR, please, check them and let me know if they make some sense to you. I was not familiar with most of the existing custom synchronization/concurrency classes in Cassandra. I did my best, but reviewing unknown multi-threading code is really hard, so I could overlook something :)

> Blocking Concurrency Primitives
> -------------------------------
>
>                 Key: CASSANDRA-16924
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16924
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Legacy/Core
>            Reporter: Benedict Elliott Smith
>            Assignee: Benedict Elliott Smith
>            Priority: Normal
>
> To support CEP-10 it is necessary to support alternative implementations of the blocking concurrency primitives we use on the project. At the same time, the project is very inconsistent in its usage of these APIs, so this work includes a number of improvements to the coherency of the codebase. 
> This ticket introduces new abstractions and standardises old ones, migrating all blocking concurrency operations besides Futures returned by Executors to these new APIs. This includes a migration of SimpleCondition to a new Conditioninterface, new CountDownLatch and Semaphore interfaces, and new static factory methods for creating these objects (as well as WaitQueue) that can be intercepted by byte weaving. Additionally the internal Netty Future implementation is improved to support more general use (though this is only fully realised in a later ticket), OpOrder is improved to more easily support mocking WaitQueue.
> Finally we standardise the propagation of InterruptedExecption, with the new UncheckedInterruptedException, so that simulations may be terminated cleanly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org