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: pr-unsubscribe@cassandra.apache.org
For additional commands, e-mail: pr-help@cassandra.apache.org
|