[
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: [email protected]
For additional commands, e-mail: [email protected]