cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Blake Eggleston (JIRA)" <j...@apache.org>
Subject [jira] [Issue Comment Deleted] (CASSANDRA-10726) Read repair inserts should not be blocking
Date Wed, 27 Jun 2018 18:01:02 GMT

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

Blake Eggleston updated CASSANDRA-10726:
----------------------------------------
    Comment: was deleted

(was: Github user tedcarroll commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/94#discussion_r198575430
  
    --- Diff: src/java/org/apache/cassandra/service/DataResolver.java ---
    @@ -40,18 +40,26 @@
     import org.apache.cassandra.exceptions.ReadTimeoutException;
     import org.apache.cassandra.net.*;
     import org.apache.cassandra.tracing.Tracing;
    -import org.apache.cassandra.utils.FBUtilities;
    +import org.apache.cassandra.utils.Pair;
     
     public class DataResolver extends ResponseResolver
     {
    -    @VisibleForTesting
    -    final List<AsyncOneResponse> repairResults = Collections.synchronizedList(new
ArrayList<>());
    +    private final Map<AsyncOneResponse, Pair<MessageOut, InetAddress>> repairResponseRequestMap
= new HashMap<>();
    --- End diff --
    
    Should be a ConcurrentHashMap.
)

> Read repair inserts should not be blocking
> ------------------------------------------
>
>                 Key: CASSANDRA-10726
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10726
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Coordination
>            Reporter: Richard Low
>            Assignee: Blake Eggleston
>            Priority: Major
>             Fix For: 4.x
>
>
> Today, if there’s a digest mismatch in a foreground read repair, the insert to update
out of date replicas is blocking. This means, if it fails, the read fails with a timeout.
If a node is dropping writes (maybe it is overloaded or the mutation stage is backed up for
some other reason), all reads to a replica set could fail. Further, replicas dropping writes
get more out of sync so will require more read repair.
> The comment on the code for why the writes are blocking is:
> {code}
> // wait for the repair writes to be acknowledged, to minimize impact on any replica that's
> // behind on writes in case the out-of-sync row is read multiple times in quick succession
> {code}
> but the bad side effect is that reads timeout. Either the writes should not be blocking
or we should return success for the read even if the write times out.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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


Mime
View raw message