public void executeAsync() { // if CL + RR result in covering all replicas, getReadExecutor forces AlwaysSpeculating. So we know // that the last replica in our list is "extra." List<InetAddress> initialReplicas = targetReplicas.subList(0, targetReplicas.size() - 1); if (handler.blockfor < initialReplicas.size()) { // We're hitting additional targets for read repair. Since our "extra" replica is the least- // preferred by the snitch, we do an extra data read to start with against a replica more // likely to reply; better to let RR fail than the entire query. makeDataRequests(initialReplicas.subList(0, 2)); if (initialReplicas.size() > 2) makeDigestRequests(initialReplicas.subList(2, initialReplicas.size())); } else { // not doing read repair; all replies are important, so it doesn't matter which nodes we // perform data reads against vs digest. makeDataRequests(initialReplicas.subList(0, 1)); if (initialReplicas.size() > 1) makeDigestRequests(initialReplicas.subList(1, initialReplicas.size())); } }
return new AlwaysSpeculatingReadExecutor(keyspace, cfs, command, consistencyLevel, targetReplicas, queryStartNanoTime); else // PERCENTILE or CUSTOM. return new SpeculatingReadExecutor(keyspace, cfs, command, consistencyLevel, targetReplicas, queryStartNanoTime);
return new AlwaysSpeculatingReadExecutor(cfs, command, consistencyLevel, targetReplicas); else // PERCENTILE or CUSTOM. return new SpeculatingReadExecutor(cfs, command, consistencyLevel, targetReplicas);
return new AlwaysSpeculatingReadExecutor(keyspace, cfs, command, consistencyLevel, targetReplicas, queryStartNanoTime); else // PERCENTILE or CUSTOM. return new SpeculatingReadExecutor(keyspace, cfs, command, consistencyLevel, targetReplicas, queryStartNanoTime);
return new AlwaysSpeculatingReadExecutor(keyspace, cfs, command, consistencyLevel, targetReplicas, queryStartNanoTime); else // PERCENTILE or CUSTOM. return new SpeculatingReadExecutor(keyspace, cfs, command, consistencyLevel, targetReplicas, queryStartNanoTime);
public void executeAsync() { // if CL + RR result in covering all replicas, getReadExecutor forces AlwaysSpeculating. So we know // that the last replica in our list is "extra." List<InetAddress> initialReplicas = targetReplicas.subList(0, targetReplicas.size() - 1); if (handler.blockfor < initialReplicas.size()) { // We're hitting additional targets for read repair. Since our "extra" replica is the least- // preferred by the snitch, we do an extra data read to start with against a replica more // likely to reply; better to let RR fail than the entire query. makeDataRequests(initialReplicas.subList(0, 2)); if (initialReplicas.size() > 2) makeDigestRequests(initialReplicas.subList(2, initialReplicas.size())); } else { // not doing read repair; all replies are important, so it doesn't matter which nodes we // perform data reads against vs digest. makeDataRequests(initialReplicas.subList(0, 1)); if (initialReplicas.size() > 1) makeDigestRequests(initialReplicas.subList(1, initialReplicas.size())); } }
public void executeAsync() { // if CL + RR result in covering all replicas, getReadExecutor forces AlwaysSpeculating. So we know // that the last replica in our list is "extra." List<InetAddress> initialReplicas = targetReplicas.subList(0, targetReplicas.size() - 1); if (handler.blockfor < initialReplicas.size()) { // We're hitting additional targets for read repair. Since our "extra" replica is the least- // preferred by the snitch, we do an extra data read to start with against a replica more // likely to reply; better to let RR fail than the entire query. makeDataRequests(initialReplicas.subList(0, 2)); if (initialReplicas.size() > 2) makeDigestRequests(initialReplicas.subList(2, initialReplicas.size())); } else { // not doing read repair; all replies are important, so it doesn't matter which nodes we // perform data reads against vs digest. makeDataRequests(initialReplicas.subList(0, 1)); if (initialReplicas.size() > 1) makeDigestRequests(initialReplicas.subList(1, initialReplicas.size())); } }
public void executeAsync() { // if CL + RR result in covering all replicas, getReadExecutor forces AlwaysSpeculating. So we know // that the last replica in our list is "extra." List<InetAddress> initialReplicas = targetReplicas.subList(0, targetReplicas.size() - 1); if (handler.blockfor < initialReplicas.size()) { // We're hitting additional targets for read repair. Since our "extra" replica is the least- // preferred by the snitch, we do an extra data read to start with against a replica more // likely to reply; better to let RR fail than the entire query. makeDataRequests(initialReplicas.subList(0, 2)); if (initialReplicas.size() > 2) makeDigestRequests(initialReplicas.subList(2, initialReplicas.size())); } else { // not doing read repair; all replies are important, so it doesn't matter which nodes we // perform data reads against vs digest. makeDataRequests(initialReplicas.subList(0, 1)); if (initialReplicas.size() > 1) makeDigestRequests(initialReplicas.subList(1, initialReplicas.size())); } }