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

Blake Eggleston updated CASSANDRA-18004:
----------------------------------------
    Test and Documentation Plan: circle
                         Status: Patch Available  (was: Open)

[accord|https://github.com/bdeggleston/cassandra-accord/tree/async-chain]
[cassandra|https://github.com/bdeggleston/cassandra/tree/async-chain]

As agreed in another PR, this replaces the single consumer uses of future with 
AsyncChain. This saves some work, and requires callbacks are supplied _before_ 
starting an async computation, but still offers the safeguards provided by 
futures. The initial AsyncChain implementation was suggested and supplied by 
[~benedict], and is mostly intact here, with some additional bells and whistles.

There were some places where async chain didn't make sense, specifically places 
where we didn't know all of the listeners up front and/or there were multiple 
listeners. Since we still don't need everything offered by Future in those 
cases, and In the interest of removing accord's dependency on C*, I added 
AsyncNotifier, which supports subscribing to notifications from an async 
process after it's been started, like a future, but without cancellation or 
blocking get, etc.

C* integration of AsyncChain was pretty minimal, but for consistency I'l also 
updated the integration to use AsyncNotifier, which touched a lot more. The 
functional changes and member/method renaming are in 2 commits to make 
reviewing a bit easier.

> CEP-15: (C*/Accord) - remove futures
> ------------------------------------
>
>                 Key: CASSANDRA-18004
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18004
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Accord
>            Reporter: Blake Eggleston
>            Assignee: Blake Eggleston
>            Priority: Normal
>
> Remove futures in favor of async chain



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to