Merge branch 'cassandra-2.1' into cassandra-2.2

Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/14d7a63b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/14d7a63b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/14d7a63b

Branch: refs/heads/cassandra-2.2
Commit: 14d7a63b8a29b15831d035182d12cfacc7518687
Parents: 2a4ab87 8a56868
Author: Robert Stupp <sn...@snazy.de>
Authored: Sun Jun 28 10:36:54 2015 +0200
Committer: Robert Stupp <sn...@snazy.de>
Committed: Sun Jun 28 10:36:54 2015 +0200

----------------------------------------------------------------------
 CHANGES.txt                                     |  3 +++
 .../apache/cassandra/net/MessagingService.java  |  2 +-
 .../cassandra/net/OutboundTcpConnection.java    |  2 +-
 .../cassandra/service/AbstractReadExecutor.java | 12 ++++++++++++
 .../apache/cassandra/service/ReadCallback.java  | 20 ++++++++++++++++++--
 .../cassandra/service/RowDataResolver.java      |  2 ++
 6 files changed, 37 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/14d7a63b/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 811e955,3e4fd36..8f4f752
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,30 -1,14 +1,33 @@@
 -2.1.8
 +2.2
 + * Allow JMX over SSL directly from nodetool (CASSANDRA-9090)
 + * Update cqlsh for UDFs (CASSANDRA-7556)
 + * Change Windows kernel default timer resolution (CASSANDRA-9634)
 + * Deprected sstable2json and json2sstable (CASSANDRA-9618)
 + * Allow native functions in user-defined aggregates (CASSANDRA-9542)
 + * Don't repair system_distributed by default (CASSANDRA-9621)
 + * Fix mixing min, max, and count aggregates for blob type (CASSANRA-9622)
 + * Rename class for DATE type in Java driver (CASSANDRA-9563)
 + * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475)
 + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576)
 + * Mlockall before opening system sstables & remove boot_without_jna option 
(CASSANDRA-9573)
 + * Add functions to convert timeuuid to date or time, deprecate dateOf and 
unixTimestampOf (CASSANDRA-9229)
 + * Make sure we cancel non-compacting sstables from LifecycleTransaction 
(CASSANDRA-9566)
 + * Fix deprecated repair JMX API (CASSANDRA-9570)
 + * Add logback metrics (CASSANDRA-9378)
 + * Update and refactor ant test/test-compression to run the tests in parallel 
(CASSANDRA-9583)
 +Merged from 2.1:
   * Fix IndexOutOfBoundsException when inserting tuple with too many
     elements using the string literal notation (CASSANDRA-9559)
 - * Allow JMX over SSL directly from nodetool (CASSANDRA-9090)
 - * Fix incorrect result for IN queries where column not found (CASSANDRA-9540)
   * Enable describe on indices (CASSANDRA-7814)
 + * Fix incorrect result for IN queries where column not found (CASSANDRA-9540)
   * ColumnFamilyStore.selectAndReference may block during compaction 
(CASSANDRA-9637)
 + * Fix bug in cardinality check when compacting (CASSANDRA-9580)
 + * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour 
(CASSANDRA-9549)
 + * Make rebuild only run one at a time (CASSANDRA-9119)
  Merged from 2.0
+  * Improve trace messages for RR (CASSANDRA-9479)
+  * Fix suboptimal secondary index selection when restricted
+    clustering column is also indexed (CASSANDRA-9631)
   * (cqlsh) Add min_threshold to DTCS option autocomplete (CASSANDRA-9385)
   * Fix error message when attempting to create an index on a column
     in a COMPACT STORAGE table with clustering columns (CASSANDRA-9527)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/14d7a63b/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/net/MessagingService.java
index 293a27c,1820c5c..83bc337
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@@ -745,12 -728,15 +745,12 @@@ public final class MessagingService imp
      {
          TraceState state = Tracing.instance.initializeFromMessage(message);
          if (state != null)
-             state.trace("Message received from {}", message.from);
+             state.trace("{} message received from {}", message.verb, 
message.from);
  
 -        Verb verb = message.verb;
 -        message = SinkManager.processInboundMessage(message, id);
 -        if (message == null)
 -        {
 -            incrementRejectedMessages(verb);
 -            return;
 -        }
 +        // message sinks are a testing hook
 +        for (IMessageSink ms : messageSinks)
 +            if (!ms.allowIncomingMessage(message, id))
 +                return;
  
          Runnable runnable = new MessageDeliveryTask(message, id, timestamp);
          TracingAwareExecutorService stage = 
StageManager.getStage(message.getMessageType());

http://git-wip-us.apache.org/repos/asf/cassandra/blob/14d7a63b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/14d7a63b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/AbstractReadExecutor.java
index ec96d81,2d02e34..3aab12f
--- a/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
+++ b/src/java/org/apache/cassandra/service/AbstractReadExecutor.java
@@@ -67,7 -69,8 +70,8 @@@ public abstract class AbstractReadExecu
      {
          this.command = command;
          this.targetReplicas = targetReplicas;
 -        resolver = new RowDigestResolver(command.ksName, command.key);
 +        resolver = new RowDigestResolver(command.ksName, command.key, 
targetReplicas.size());
+         traceState = Tracing.instance.get();
          handler = new ReadCallback<>(resolver, consistencyLevel, command, 
targetReplicas);
      }
  
@@@ -153,8 -159,16 +160,11 @@@
          // Throw UAE early if we don't have enough replicas.
          consistencyLevel.assureSufficientLiveNodes(keyspace, targetReplicas);
  
 -        // Fat client. Speculating read executors need access to cfs metrics 
and sampled latency, and fat clients
 -        // can't provide that. So, for now, fat clients will always use 
NeverSpeculatingReadExecutor.
 -        if (StorageService.instance.isClientMode())
 -            return new NeverSpeculatingReadExecutor(command, 
consistencyLevel, targetReplicas);
 -
          if (repairDecision != ReadRepairDecision.NONE)
+         {
+             Tracing.trace("Read-repair {}", repairDecision);
              ReadRepairMetrics.attempted.mark();
+         }
  
          ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(command.cfName);
          RetryType retryType = cfs.metadata.getSpeculativeRetry().type;
@@@ -272,8 -286,10 +282,10 @@@
                      retryCommand = command.copy().setIsDigestQuery(true);
  
                  InetAddress extraReplica = Iterables.getLast(targetReplicas);
+                 if (traceState != null)
+                     traceState.trace("speculating read retry on {}", 
extraReplica);
                  logger.trace("speculating read retry on {}", extraReplica);
 -                
MessagingService.instance().sendRR(retryCommand.createMessage(), extraReplica, 
handler);
 +                
MessagingService.instance().sendRRWithFailure(retryCommand.createMessage(), 
extraReplica, handler);
                  speculated = true;
  
                  cfs.metric.speculativeRetries.inc();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/14d7a63b/src/java/org/apache/cassandra/service/ReadCallback.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/14d7a63b/src/java/org/apache/cassandra/service/RowDataResolver.java
----------------------------------------------------------------------

Reply via email to