service/storage_proxy: Pass pending endpoints to send_to_endpoint()

This will allow us to minimize the number of mutation copies in
mutate_MV().

Signed-off-by: Duarte Nunes <duarte@scylladb.com>
Message-Id: <20180325121412.76844-1-duarte@scylladb.com>
This commit is contained in:
Duarte Nunes
2018-03-25 13:14:11 +01:00
committed by Avi Kivity
parent 389fb54a42
commit fb54c09e0b
4 changed files with 24 additions and 7 deletions

View File

@@ -845,7 +845,7 @@ void mutate_MV(const dht::token& base_token,
// FIXME: Temporary hack: send the write directly to paired_endpoint,
// without a batchlog, and without checking for success
// Note we don't wait for the asynchronous operation to complete
service::get_local_storage_proxy().send_to_endpoint(mut, *paired_endpoint, db::write_type::VIEW).handle_exception([paired_endpoint] (auto ep) {
service::get_local_storage_proxy().send_to_endpoint(mut, *paired_endpoint, { }, db::write_type::VIEW).handle_exception([paired_endpoint] (auto ep) {
vlogger.error("Error applying view update to {}: {}", *paired_endpoint, ep);
});;
}
@@ -855,7 +855,7 @@ void mutate_MV(const dht::token& base_token,
// the base replicas, but this is probably excessive - see
// See https://issues.apache.org/jira/browse/CASSANDRA-14262
for (auto&& pending : pending_endpoints) {
service::get_local_storage_proxy().send_to_endpoint(mut, pending, db::write_type::VIEW).handle_exception([pending] (auto ep) {
service::get_local_storage_proxy().send_to_endpoint(mut, pending, { }, db::write_type::VIEW).handle_exception([pending] (auto ep) {
vlogger.error("Error applying view update to pending endpoint {}: {}", pending, ep);
});;
}