You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/02/13 17:34:41 UTC

[1/3] git commit: Use real node messaging versions for schema exchange decisions

Updated Branches:
  refs/heads/trunk 79c6ecccc -> 21de3328a


Use real node messaging versions for schema exchange decisions

patch by Aleksey Yeschenko; reviewed by Piotr Kołaczkowski for
CASSANDRA-6700


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

Branch: refs/heads/trunk
Commit: de72e7fc0a750fdb2fcd752092e5a07a7f47046e
Parents: b2dfaed
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Thu Feb 13 19:26:48 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Thu Feb 13 19:26:48 2014 +0300

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/net/IncomingTcpConnection.java    |  4 +--
 .../apache/cassandra/net/MessagingService.java  | 28 +++++++++++++-------
 .../cassandra/service/MigrationManager.java     |  4 +--
 4 files changed, 23 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/de72e7fc/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index de7c307..872934a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -6,6 +6,7 @@
  * Compact hints after partial replay to clean out tombstones (CASSANDRA-6666)
  * Log USING TTL/TIMESTAMP in a counter update warning (CASSANDRA-6649)
  * Don't exchange schema between nodes with different versions (CASSANDRA-6695)
+ * Use real node messaging versions for schema exchange decisions (CASSANDRA-6700)
 
 
 1.2.15

http://git-wip-us.apache.org/repos/asf/cassandra/blob/de72e7fc/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/IncomingTcpConnection.java b/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
index 3b24a7f..d0126c7 100644
--- a/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
+++ b/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
@@ -130,8 +130,8 @@ public class IncomingTcpConnection extends Thread
             logger.info("Received messages from newer protocol version {}. Ignoring", version);
             return;
         }
-        MessagingService.instance().setVersion(from, Math.min(MessagingService.current_version, maxVersion));
-        logger.debug("set version for {} to {}", from, Math.min(MessagingService.current_version, maxVersion));
+        MessagingService.instance().setVersion(from, maxVersion);
+        logger.debug("Set version for {} to {} (will use {})", from, maxVersion, Math.min(MessagingService.current_version, maxVersion));
         // outbound side will reconnect if necessary to upgrade version
 
         while (true)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/de72e7fc/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index bfc3957..09fa272 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -800,10 +800,10 @@ public final class MessagingService implements MessagingServiceMBean
     /**
      * @return the last version associated with address, or @param version if this is the first such version
      */
-    public int setVersion(InetAddress address, int version)
+    public int setVersion(InetAddress endpoint, int version)
     {
-        logger.debug("Setting version {} for {}", version, address);
-        Integer v = versions.put(address, version);
+        logger.debug("Setting version {} for {}", version, endpoint);
+        Integer v = versions.put(endpoint, version);
         return v == null ? version : v;
     }
 
@@ -813,27 +813,35 @@ public final class MessagingService implements MessagingServiceMBean
         versions.remove(endpoint);
     }
 
-    public Integer getVersion(InetAddress address)
+    public int getVersion(InetAddress endpoint)
     {
-        Integer v = versions.get(address);
+        Integer v = versions.get(endpoint);
         if (v == null)
         {
             // we don't know the version. assume current. we'll know soon enough if that was incorrect.
-            logger.trace("Assuming current protocol version for {}", address);
+            logger.trace("Assuming current protocol version for {}", endpoint);
             return MessagingService.current_version;
         }
         else
-            return v;
+            return Math.min(v, MessagingService.current_version);
     }
 
-    public int getVersion(String address) throws UnknownHostException
+    public int getVersion(String endpoint) throws UnknownHostException
     {
-        return getVersion(InetAddress.getByName(address));
+        return getVersion(InetAddress.getByName(endpoint));
+    }
+
+    public int getRawVersion(InetAddress endpoint)
+    {
+        Integer v = versions.get(endpoint);
+        if (v == null)
+            throw new IllegalStateException("getRawVersion() was called without checking knowsVersion() result first");
+        return v;
     }
 
     public boolean knowsVersion(InetAddress endpoint)
     {
-        return versions.get(endpoint) != null;
+        return versions.containsKey(endpoint);
     }
 
     public void incrementDroppedMessages(Verb verb)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/de72e7fc/src/java/org/apache/cassandra/service/MigrationManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java
index 68d0bad..584415d 100644
--- a/src/java/org/apache/cassandra/service/MigrationManager.java
+++ b/src/java/org/apache/cassandra/service/MigrationManager.java
@@ -138,7 +138,7 @@ public class MigrationManager
          * Don't request schema from fat clients
          */
         return MessagingService.instance().knowsVersion(endpoint)
-                && MessagingService.instance().getVersion(endpoint) == MessagingService.current_version
+                && MessagingService.instance().getRawVersion(endpoint) == MessagingService.current_version
                 && !Gossiper.instance.isFatClient(endpoint);
     }
 
@@ -292,7 +292,7 @@ public class MigrationManager
             // only push schema to nodes with known and equal versions
             if (!endpoint.equals(FBUtilities.getBroadcastAddress()) &&
                     MessagingService.instance().knowsVersion(endpoint) &&
-                    MessagingService.instance().getVersion(endpoint) == MessagingService.current_version)
+                    MessagingService.instance().getRawVersion(endpoint) == MessagingService.current_version)
                 pushSchemaMutation(endpoint, schema);
         }
 


[2/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by al...@apache.org.
Merge branch 'cassandra-1.2' into cassandra-2.0


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

Branch: refs/heads/trunk
Commit: 78df8a33caf864c51ba2a10cb04f77ac6b043bfc
Parents: 15ee948 de72e7f
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Thu Feb 13 19:32:03 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Thu Feb 13 19:32:03 2014 +0300

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/net/IncomingTcpConnection.java    |  4 +--
 .../apache/cassandra/net/MessagingService.java  | 28 +++++++++++++-------
 .../cassandra/service/MigrationManager.java     |  4 +--
 4 files changed, 23 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/78df8a33/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 9509a76,872934a..7425625
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -20,33 -6,24 +20,34 @@@ Merged from 1.2
   * Compact hints after partial replay to clean out tombstones (CASSANDRA-6666)
   * Log USING TTL/TIMESTAMP in a counter update warning (CASSANDRA-6649)
   * Don't exchange schema between nodes with different versions (CASSANDRA-6695)
+  * Use real node messaging versions for schema exchange decisions (CASSANDRA-6700)
  
 -
 -1.2.15
 - * Move handling of migration event source to solve bootstrap race (CASSANDRA-6648)
 - * Make sure compaction throughput value doesn't overflow with int math (CASSANDRA-6647)
 -
 -
 -1.2.14
 - * Reverted code to limit CQL prepared statement cache by size (CASSANDRA-6592)
 - * add cassandra.default_messaging_version property to allow easier
 -   upgrading from 1.1 (CASSANDRA-6619)
 - * Allow executing CREATE statements multiple times (CASSANDRA-6471)
 - * Don't send confusing info with timeouts (CASSANDRA-6491)
 - * Don't resubmit counter mutation runnables internally (CASSANDRA-6427)
 - * Don't drop local mutations without a hint (CASSANDRA-6510)
 - * Don't allow null max_hint_window_in_ms (CASSANDRA-6419)
 - * Validate SliceRange start and finish lengths (CASSANDRA-6521)
 +2.0.5
 + * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)
 + * Add ks.cf names to tombstone logging (CASSANDRA-6597)
 + * Use LOCAL_QUORUM for LWT operations at LOCAL_SERIAL (CASSANDRA-6495)
 + * Wait for gossip to settle before accepting client connections (CASSANDRA-4288)
 + * Delete unfinished compaction incrementally (CASSANDRA-6086)
 + * Allow specifying custom secondary index options in CQL3 (CASSANDRA-6480)
 + * Improve replica pinning for cache efficiency in DES (CASSANDRA-6485)
 + * Fix LOCAL_SERIAL from thrift (CASSANDRA-6584)
 + * Don't special case received counts in CAS timeout exceptions (CASSANDRA-6595)
 + * Add support for 2.1 global counter shards (CASSANDRA-6505)
 + * Fix NPE when streaming connection is not yet established (CASSANDRA-6210)
 + * Avoid rare duplicate read repair triggering (CASSANDRA-6606)
 + * Fix paging discardFirst (CASSANDRA-6555)
 + * Fix ArrayIndexOutOfBoundsException in 2ndary index query (CASSANDRA-6470)
 + * Release sstables upon rebuilding 2i (CASSANDRA-6635)
 + * Add AbstractCompactionStrategy.startup() method (CASSANDRA-6637)
 + * SSTableScanner may skip rows during cleanup (CASSANDRA-6638)
 + * sstables from stalled repair sessions can resurrect deleted data (CASSANDRA-6503)
 + * Switch stress to use ITransportFactory (CASSANDRA-6641)
 + * Fix IllegalArgumentException during prepare (CASSANDRA-6592)
 + * Fix possible loss of 2ndary index entries during compaction (CASSANDRA-6517)
 + * Fix direct Memory on architectures that do not support unaligned long access
 +   (CASSANDRA-6628)
 + * Let scrub optionally skip broken counter partitions (CASSANDRA-5930)
 +Merged from 1.2:
   * fsync compression metadata (CASSANDRA-6531)
   * Validate CF existence on execution for prepared statement (CASSANDRA-6535)
   * Add ability to throttle batchlog replay (CASSANDRA-6550)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/78df8a33/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/78df8a33/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/78df8a33/src/java/org/apache/cassandra/service/MigrationManager.java
----------------------------------------------------------------------


[3/3] git commit: Merge branch 'cassandra-2.0' into trunk

Posted by al...@apache.org.
Merge branch 'cassandra-2.0' into trunk


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

Branch: refs/heads/trunk
Commit: 21de3328aad87e10ad4301b1c198022e57fecaa8
Parents: 79c6ecc 78df8a3
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Thu Feb 13 19:34:31 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Thu Feb 13 19:34:31 2014 +0300

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/net/IncomingTcpConnection.java    |  4 +--
 .../apache/cassandra/net/MessagingService.java  | 28 +++++++++++++-------
 .../cassandra/service/MigrationManager.java     |  4 +--
 4 files changed, 23 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/21de3328/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 139eb06,7425625..0af5555
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -52,8 -20,8 +52,9 @@@ Merged from 1.2
   * Compact hints after partial replay to clean out tombstones (CASSANDRA-6666)
   * Log USING TTL/TIMESTAMP in a counter update warning (CASSANDRA-6649)
   * Don't exchange schema between nodes with different versions (CASSANDRA-6695)
+  * Use real node messaging versions for schema exchange decisions (CASSANDRA-6700)
  
 +
  2.0.5
   * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)
   * Add ks.cf names to tombstone logging (CASSANDRA-6597)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/21de3328/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/21de3328/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/21de3328/src/java/org/apache/cassandra/service/MigrationManager.java
----------------------------------------------------------------------