[
https://issues.apache.org/jira/browse/CASSANDRA-19158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alex Petrov updated CASSANDRA-19158:
------------------------------------
Fix Version/s: 5.1-alpha1
Source Control Link:
https://github.com/apache/cassandra/commit/2e05cd4c8dd22e458eb1d2dad9cd34936b470266
Resolution: Fixed
Status: Resolved (was: Ready to Commit)
> Reuse native transport-driven futures in Debounce
> -------------------------------------------------
>
> Key: CASSANDRA-19158
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19158
> Project: Cassandra
> Issue Type: Improvement
> Components: Transactional Cluster Metadata
> Reporter: Alex Petrov
> Assignee: Alex Petrov
> Priority: Normal
> Fix For: 5.1-alpha1
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary.html
>
> Time Spent: 1h
> Remaining Estimate: 0h
>
> Currently, we create a future in Debounce, then create one more future in
> RemoteProcessor#sendWithCallback. This is further exacerbated by chaining
> calls, when we first attempt to catch up from peer, and then from CMS.
> First of all, we should always only use a native transport timeout driven
> futures returned from sendWithCallback, since they implement reasonable
> retries under the hood, and are easy to bulk-configure (ie you can simply
> change timeout in yaml and have all futures change their behaviour).
> Second, we should _chain_ futures and use map or andThen for fallback
> operations such as trying to catch up from CMS after an unsuccesful attemp to
> catch up from peer.
> This should significantly simplify the code and number of blocked/waiting
> threads.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]