Github user aweisberg commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/278#discussion_r223397323
  
    --- Diff: 
src/java/org/apache/cassandra/service/reads/repair/AbstractReadRepair.java ---
    @@ -102,12 +104,24 @@ void sendReadCommand(Replica to, ReadCallback 
readCallback, boolean speculative)
                 else type = to.isFull() ? "full" : "transient";
                 Tracing.trace("Enqueuing {} data read to {}", type, to);
             }
    -        MessageOut<ReadCommand> message = command.createMessage();
    -        // if enabled, request additional info about repaired data from 
any full replicas
    -        if (command.isTrackingRepairedStatus() && to.isFull())
    -            message = 
message.withParameter(ParameterType.TRACK_REPAIRED_DATA, 
MessagingService.ONE_BYTE);
     
    -        MessagingService.instance().sendRRWithFailure(message, 
to.endpoint(), readCallback);
    +        if (to.isSelf())
    +        {
    +            try (ReadExecutionController executionController = 
command.executionController();
    --- End diff --
    
    Just asking the question, should this occur in this thread or the read 
stage?
    
    Is there a possibility of this operation succeeding if the local portion 
times out? If there is maybe it shouldn't be done synchronously in the request 
stage?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to