You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jm...@apache.org on 2015/11/13 15:50:43 UTC

[01/18] cassandra git commit: Fix missing host ID on hinted handoff write

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 582b66fbd -> e291382fd
  refs/heads/cassandra-2.2 bfbcca1bf -> 9f021823f
  refs/heads/cassandra-3.0 79bf03d4e -> ed424bdd6
  refs/heads/cassandra-3.1 421c41d57 -> d404362ad
  refs/heads/trunk ee06e78bb -> 9c5bdb261


Fix missing host ID on hinted handoff write

Patch by pauloricardomg; reviewed by aweisberg for CASSANDRA-10485


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

Branch: refs/heads/cassandra-2.1
Commit: e291382fd00e4c7fc9258116885267515da3c49c
Parents: 582b66f
Author: Paulo Motta <pa...@gmail.com>
Authored: Fri Nov 13 09:46:57 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:46:57 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
index 4fbdd27..0d3ef39 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -130,16 +130,14 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
      * Returns a mutation representing a Hint to be sent to <code>targetId</code>
      * as soon as it becomes available again.
      */
-    public Mutation hintFor(Mutation mutation, long now, int ttl, UUID targetId)
+    public Mutation hintFor(Mutation mutation, long now, int ttl, Pair<InetAddress, UUID> target)
     {
         assert ttl > 0;
 
-        InetAddress endpoint = StorageService.instance.getTokenMetadata().getEndpointForHostId(targetId);
-        // during tests we may not have a matching endpoint, but this would be unexpected in real clusters
-        if (endpoint != null)
-            metrics.incrCreatedHints(endpoint);
-        else
-            logger.warn("Unable to find matching endpoint for target {} when storing a hint", targetId);
+        InetAddress endpoint = target.left;
+        UUID targetId = target.right;
+
+        metrics.incrCreatedHints(endpoint);
 
         UUID hintId = UUIDGen.getTimeUUID();
         // serialize the hint with id and version as a composite column name

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 4f20ef0..b701015 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -983,14 +983,15 @@ public class StorageProxy implements StorageProxyMBean
     public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
     {
         assert ttl > 0;
+
         UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-        if (hostId == null)
+        if (hostId != null)
         {
-            logger.warn("Missing host Id for {}", target.getHostAddress());
-            throw new AssertionError("Missing host Id for " + target.getHostAddress());
+            HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+            StorageMetrics.totalHints.inc();
         }
-        HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-        StorageMetrics.totalHints.inc();
+        else
+            logger.debug("Discarding hint for endpoint not part of ring: {}", target);
     }
 
     private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index c29c08e..ad1e6cf 100644
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@ -35,6 +35,7 @@ import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
 import org.apache.cassandra.db.marshal.Int32Type;
 import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.utils.ByteBufferUtil;
+import org.apache.cassandra.utils.Pair;
 
 import static org.junit.Assert.assertEquals;
 import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@ -65,7 +66,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         // flush data to disk
@@ -106,7 +107,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         assert getNoOfHints() == 1;


[14/18] cassandra git commit: 10485-3.0 patch

Posted by jm...@apache.org.
10485-3.0 patch


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

Branch: refs/heads/cassandra-3.0
Commit: ed424bdd65ccf11742f2016ae5bc0b3ad5a99571
Parents: 2a12713
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:49:31 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:49:31 2015 -0500

----------------------------------------------------------------------
 .../apache/cassandra/service/StorageProxy.java  | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ed424bdd/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 6bcc2f8..63fa8cf 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -2476,10 +2476,22 @@ public class StorageProxy implements StorageProxyMBean
         {
             public void runMayThrow()
             {
-                logger.trace("Adding hints for {}", targets);
-                HintsService.instance.write(Iterables.transform(targets, StorageService.instance::getHostIdForEndpoint),
-                                            Hint.create(mutation, System.currentTimeMillis()));
-                targets.forEach(HintsService.instance.metrics::incrCreatedHints);
+                Set<InetAddress> validTargets = new HashSet<>(targets.size());
+                Set<UUID> hostIds = new HashSet<>(targets.size());
+                for (InetAddress target : targets)
+                {
+                    UUID hostId = StorageService.instance.getHostIdForEndpoint(target);
+                    if (hostId != null)
+                    {
+                        hostIds.add(hostId);
+                        validTargets.add(target);
+                    }
+                    else
+                        logger.debug("Discarding hint for endpoint not part of ring: {}", target);
+                }
+                logger.trace("Adding hints for {}", validTargets);
+                HintsService.instance.write(hostIds, Hint.create(mutation, System.currentTimeMillis()));
+                validTargets.forEach(HintsService.instance.metrics::incrCreatedHints);
                 // Notify the handler only for CL == ANY
                 if (responseHandler != null && responseHandler.consistencyLevel == ConsistencyLevel.ANY)
                     responseHandler.response(null);


[10/18] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by jm...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/cassandra-3.0
Commit: 2a1271382a65095941583935a5de3b4d2031b736
Parents: 79bf03d 9f02182
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:48:50 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:48:50 2015 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[03/18] cassandra git commit: Fix missing host ID on hinted handoff write

Posted by jm...@apache.org.
Fix missing host ID on hinted handoff write

Patch by pauloricardomg; reviewed by aweisberg for CASSANDRA-10485


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

Branch: refs/heads/cassandra-3.0
Commit: e291382fd00e4c7fc9258116885267515da3c49c
Parents: 582b66f
Author: Paulo Motta <pa...@gmail.com>
Authored: Fri Nov 13 09:46:57 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:46:57 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
index 4fbdd27..0d3ef39 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -130,16 +130,14 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
      * Returns a mutation representing a Hint to be sent to <code>targetId</code>
      * as soon as it becomes available again.
      */
-    public Mutation hintFor(Mutation mutation, long now, int ttl, UUID targetId)
+    public Mutation hintFor(Mutation mutation, long now, int ttl, Pair<InetAddress, UUID> target)
     {
         assert ttl > 0;
 
-        InetAddress endpoint = StorageService.instance.getTokenMetadata().getEndpointForHostId(targetId);
-        // during tests we may not have a matching endpoint, but this would be unexpected in real clusters
-        if (endpoint != null)
-            metrics.incrCreatedHints(endpoint);
-        else
-            logger.warn("Unable to find matching endpoint for target {} when storing a hint", targetId);
+        InetAddress endpoint = target.left;
+        UUID targetId = target.right;
+
+        metrics.incrCreatedHints(endpoint);
 
         UUID hintId = UUIDGen.getTimeUUID();
         // serialize the hint with id and version as a composite column name

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 4f20ef0..b701015 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -983,14 +983,15 @@ public class StorageProxy implements StorageProxyMBean
     public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
     {
         assert ttl > 0;
+
         UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-        if (hostId == null)
+        if (hostId != null)
         {
-            logger.warn("Missing host Id for {}", target.getHostAddress());
-            throw new AssertionError("Missing host Id for " + target.getHostAddress());
+            HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+            StorageMetrics.totalHints.inc();
         }
-        HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-        StorageMetrics.totalHints.inc();
+        else
+            logger.debug("Discarding hint for endpoint not part of ring: {}", target);
     }
 
     private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index c29c08e..ad1e6cf 100644
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@ -35,6 +35,7 @@ import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
 import org.apache.cassandra.db.marshal.Int32Type;
 import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.utils.ByteBufferUtil;
+import org.apache.cassandra.utils.Pair;
 
 import static org.junit.Assert.assertEquals;
 import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@ -65,7 +66,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         // flush data to disk
@@ -106,7 +107,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         assert getNoOfHints() == 1;


[04/18] cassandra git commit: Fix missing host ID on hinted handoff write

Posted by jm...@apache.org.
Fix missing host ID on hinted handoff write

Patch by pauloricardomg; reviewed by aweisberg for CASSANDRA-10485


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

Branch: refs/heads/cassandra-3.1
Commit: e291382fd00e4c7fc9258116885267515da3c49c
Parents: 582b66f
Author: Paulo Motta <pa...@gmail.com>
Authored: Fri Nov 13 09:46:57 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:46:57 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
index 4fbdd27..0d3ef39 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -130,16 +130,14 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
      * Returns a mutation representing a Hint to be sent to <code>targetId</code>
      * as soon as it becomes available again.
      */
-    public Mutation hintFor(Mutation mutation, long now, int ttl, UUID targetId)
+    public Mutation hintFor(Mutation mutation, long now, int ttl, Pair<InetAddress, UUID> target)
     {
         assert ttl > 0;
 
-        InetAddress endpoint = StorageService.instance.getTokenMetadata().getEndpointForHostId(targetId);
-        // during tests we may not have a matching endpoint, but this would be unexpected in real clusters
-        if (endpoint != null)
-            metrics.incrCreatedHints(endpoint);
-        else
-            logger.warn("Unable to find matching endpoint for target {} when storing a hint", targetId);
+        InetAddress endpoint = target.left;
+        UUID targetId = target.right;
+
+        metrics.incrCreatedHints(endpoint);
 
         UUID hintId = UUIDGen.getTimeUUID();
         // serialize the hint with id and version as a composite column name

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 4f20ef0..b701015 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -983,14 +983,15 @@ public class StorageProxy implements StorageProxyMBean
     public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
     {
         assert ttl > 0;
+
         UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-        if (hostId == null)
+        if (hostId != null)
         {
-            logger.warn("Missing host Id for {}", target.getHostAddress());
-            throw new AssertionError("Missing host Id for " + target.getHostAddress());
+            HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+            StorageMetrics.totalHints.inc();
         }
-        HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-        StorageMetrics.totalHints.inc();
+        else
+            logger.debug("Discarding hint for endpoint not part of ring: {}", target);
     }
 
     private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index c29c08e..ad1e6cf 100644
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@ -35,6 +35,7 @@ import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
 import org.apache.cassandra.db.marshal.Int32Type;
 import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.utils.ByteBufferUtil;
+import org.apache.cassandra.utils.Pair;
 
 import static org.junit.Assert.assertEquals;
 import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@ -65,7 +66,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         // flush data to disk
@@ -106,7 +107,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         assert getNoOfHints() == 1;


[16/18] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.1

Posted by jm...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.1


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

Branch: refs/heads/trunk
Commit: d404362adcca5bf62ab9c4bf24b0bd36eb13ab1c
Parents: 421c41d ed424bd
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:50:12 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:50:12 2015 -0500

----------------------------------------------------------------------
 .../apache/cassandra/service/StorageProxy.java  | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[15/18] cassandra git commit: 10485-3.0 patch

Posted by jm...@apache.org.
10485-3.0 patch


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

Branch: refs/heads/cassandra-3.1
Commit: ed424bdd65ccf11742f2016ae5bc0b3ad5a99571
Parents: 2a12713
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:49:31 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:49:31 2015 -0500

----------------------------------------------------------------------
 .../apache/cassandra/service/StorageProxy.java  | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ed424bdd/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 6bcc2f8..63fa8cf 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -2476,10 +2476,22 @@ public class StorageProxy implements StorageProxyMBean
         {
             public void runMayThrow()
             {
-                logger.trace("Adding hints for {}", targets);
-                HintsService.instance.write(Iterables.transform(targets, StorageService.instance::getHostIdForEndpoint),
-                                            Hint.create(mutation, System.currentTimeMillis()));
-                targets.forEach(HintsService.instance.metrics::incrCreatedHints);
+                Set<InetAddress> validTargets = new HashSet<>(targets.size());
+                Set<UUID> hostIds = new HashSet<>(targets.size());
+                for (InetAddress target : targets)
+                {
+                    UUID hostId = StorageService.instance.getHostIdForEndpoint(target);
+                    if (hostId != null)
+                    {
+                        hostIds.add(hostId);
+                        validTargets.add(target);
+                    }
+                    else
+                        logger.debug("Discarding hint for endpoint not part of ring: {}", target);
+                }
+                logger.trace("Adding hints for {}", validTargets);
+                HintsService.instance.write(hostIds, Hint.create(mutation, System.currentTimeMillis()));
+                validTargets.forEach(HintsService.instance.metrics::incrCreatedHints);
                 // Notify the handler only for CL == ANY
                 if (responseHandler != null && responseHandler.consistencyLevel == ConsistencyLevel.ANY)
                     responseHandler.response(null);


[06/18] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by jm...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2

Conflicts:
	test/unit/org/apache/cassandra/db/HintedHandOffTest.java


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

Branch: refs/heads/cassandra-3.0
Commit: 9f021823fe0403dd0e34280a08a84389ec981a85
Parents: bfbcca1 e291382
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:48:03 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:48:03 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageProxy.java
index 3a62640,b701015..5e4d912
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@@ -1012,19 -983,18 +1012,20 @@@ public class StorageProxy implements St
      public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
      {
          assert ttl > 0;
+ 
          UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-         if (hostId == null)
+         if (hostId != null)
          {
-             logger.warn("Missing host Id for {}", target.getHostAddress());
-             throw new AssertionError("Missing host Id for " + target.getHostAddress());
+             HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+             StorageMetrics.totalHints.inc();
          }
-         HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-         StorageMetrics.totalHints.inc();
+         else
+             logger.debug("Discarding hint for endpoint not part of ring: {}", target);
      }
  
 -    private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)
 +    private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message,
 +                                                 Collection<InetAddress> targets,
 +                                                 AbstractWriteResponseHandler<IMutation> handler)
      {
          Iterator<InetAddress> iter = targets.iterator();
          InetAddress target = iter.next();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index ce14c37,ad1e6cf..6bb6be2
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@@ -36,9 -34,8 +36,10 @@@ import org.apache.cassandra.cql3.Untype
  import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
  import org.apache.cassandra.db.marshal.Int32Type;
  import org.apache.cassandra.db.marshal.UUIDType;
 +import org.apache.cassandra.exceptions.ConfigurationException;
 +import org.apache.cassandra.locator.SimpleStrategy;
  import org.apache.cassandra.utils.ByteBufferUtil;
+ import org.apache.cassandra.utils.Pair;
  
  import static org.junit.Assert.assertEquals;
  import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@@ -79,8 -66,8 +80,8 @@@ public class HintedHandOffTes
          HintedHandOffManager.instance.hintFor(rm,
                                                System.currentTimeMillis(),
                                                HintedHandOffManager.calculateHintTTL(rm),
-                                               UUID.randomUUID())
+                                               Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
 -                                     .apply();
 +                                     .applyUnsafe();
  
          // flush data to disk
          hintStore.forceBlockingFlush();
@@@ -120,8 -107,8 +121,8 @@@
          HintedHandOffManager.instance.hintFor(rm,
                                                System.currentTimeMillis(),
                                                HintedHandOffManager.calculateHintTTL(rm),
-                                               UUID.randomUUID())
+                                               Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
 -                                     .apply();
 +                                     .applyUnsafe();
  
          assert getNoOfHints() == 1;
  


[09/18] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by jm...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2

Conflicts:
	test/unit/org/apache/cassandra/db/HintedHandOffTest.java


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

Branch: refs/heads/trunk
Commit: 9f021823fe0403dd0e34280a08a84389ec981a85
Parents: bfbcca1 e291382
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:48:03 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:48:03 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageProxy.java
index 3a62640,b701015..5e4d912
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@@ -1012,19 -983,18 +1012,20 @@@ public class StorageProxy implements St
      public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
      {
          assert ttl > 0;
+ 
          UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-         if (hostId == null)
+         if (hostId != null)
          {
-             logger.warn("Missing host Id for {}", target.getHostAddress());
-             throw new AssertionError("Missing host Id for " + target.getHostAddress());
+             HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+             StorageMetrics.totalHints.inc();
          }
-         HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-         StorageMetrics.totalHints.inc();
+         else
+             logger.debug("Discarding hint for endpoint not part of ring: {}", target);
      }
  
 -    private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)
 +    private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message,
 +                                                 Collection<InetAddress> targets,
 +                                                 AbstractWriteResponseHandler<IMutation> handler)
      {
          Iterator<InetAddress> iter = targets.iterator();
          InetAddress target = iter.next();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index ce14c37,ad1e6cf..6bb6be2
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@@ -36,9 -34,8 +36,10 @@@ import org.apache.cassandra.cql3.Untype
  import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
  import org.apache.cassandra.db.marshal.Int32Type;
  import org.apache.cassandra.db.marshal.UUIDType;
 +import org.apache.cassandra.exceptions.ConfigurationException;
 +import org.apache.cassandra.locator.SimpleStrategy;
  import org.apache.cassandra.utils.ByteBufferUtil;
+ import org.apache.cassandra.utils.Pair;
  
  import static org.junit.Assert.assertEquals;
  import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@@ -79,8 -66,8 +80,8 @@@ public class HintedHandOffTes
          HintedHandOffManager.instance.hintFor(rm,
                                                System.currentTimeMillis(),
                                                HintedHandOffManager.calculateHintTTL(rm),
-                                               UUID.randomUUID())
+                                               Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
 -                                     .apply();
 +                                     .applyUnsafe();
  
          // flush data to disk
          hintStore.forceBlockingFlush();
@@@ -120,8 -107,8 +121,8 @@@
          HintedHandOffManager.instance.hintFor(rm,
                                                System.currentTimeMillis(),
                                                HintedHandOffManager.calculateHintTTL(rm),
-                                               UUID.randomUUID())
+                                               Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
 -                                     .apply();
 +                                     .applyUnsafe();
  
          assert getNoOfHints() == 1;
  


[18/18] cassandra git commit: Merge branch 'cassandra-3.1' into trunk

Posted by jm...@apache.org.
Merge branch 'cassandra-3.1' into trunk


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

Branch: refs/heads/trunk
Commit: 9c5bdb26126d3965d350e068730a23e6848a18c4
Parents: ee06e78 d404362
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:50:26 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:50:26 2015 -0500

----------------------------------------------------------------------
 .../apache/cassandra/service/StorageProxy.java  | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c5bdb26/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------


[07/18] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by jm...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2

Conflicts:
	test/unit/org/apache/cassandra/db/HintedHandOffTest.java


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

Branch: refs/heads/cassandra-3.1
Commit: 9f021823fe0403dd0e34280a08a84389ec981a85
Parents: bfbcca1 e291382
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:48:03 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:48:03 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageProxy.java
index 3a62640,b701015..5e4d912
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@@ -1012,19 -983,18 +1012,20 @@@ public class StorageProxy implements St
      public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
      {
          assert ttl > 0;
+ 
          UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-         if (hostId == null)
+         if (hostId != null)
          {
-             logger.warn("Missing host Id for {}", target.getHostAddress());
-             throw new AssertionError("Missing host Id for " + target.getHostAddress());
+             HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+             StorageMetrics.totalHints.inc();
          }
-         HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-         StorageMetrics.totalHints.inc();
+         else
+             logger.debug("Discarding hint for endpoint not part of ring: {}", target);
      }
  
 -    private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)
 +    private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message,
 +                                                 Collection<InetAddress> targets,
 +                                                 AbstractWriteResponseHandler<IMutation> handler)
      {
          Iterator<InetAddress> iter = targets.iterator();
          InetAddress target = iter.next();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index ce14c37,ad1e6cf..6bb6be2
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@@ -36,9 -34,8 +36,10 @@@ import org.apache.cassandra.cql3.Untype
  import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
  import org.apache.cassandra.db.marshal.Int32Type;
  import org.apache.cassandra.db.marshal.UUIDType;
 +import org.apache.cassandra.exceptions.ConfigurationException;
 +import org.apache.cassandra.locator.SimpleStrategy;
  import org.apache.cassandra.utils.ByteBufferUtil;
+ import org.apache.cassandra.utils.Pair;
  
  import static org.junit.Assert.assertEquals;
  import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@@ -79,8 -66,8 +80,8 @@@ public class HintedHandOffTes
          HintedHandOffManager.instance.hintFor(rm,
                                                System.currentTimeMillis(),
                                                HintedHandOffManager.calculateHintTTL(rm),
-                                               UUID.randomUUID())
+                                               Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
 -                                     .apply();
 +                                     .applyUnsafe();
  
          // flush data to disk
          hintStore.forceBlockingFlush();
@@@ -120,8 -107,8 +121,8 @@@
          HintedHandOffManager.instance.hintFor(rm,
                                                System.currentTimeMillis(),
                                                HintedHandOffManager.calculateHintTTL(rm),
-                                               UUID.randomUUID())
+                                               Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
 -                                     .apply();
 +                                     .applyUnsafe();
  
          assert getNoOfHints() == 1;
  


[17/18] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.1

Posted by jm...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.1


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

Branch: refs/heads/cassandra-3.1
Commit: d404362adcca5bf62ab9c4bf24b0bd36eb13ab1c
Parents: 421c41d ed424bd
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:50:12 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:50:12 2015 -0500

----------------------------------------------------------------------
 .../apache/cassandra/service/StorageProxy.java  | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[08/18] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by jm...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2

Conflicts:
	test/unit/org/apache/cassandra/db/HintedHandOffTest.java


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

Branch: refs/heads/cassandra-2.2
Commit: 9f021823fe0403dd0e34280a08a84389ec981a85
Parents: bfbcca1 e291382
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:48:03 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:48:03 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageProxy.java
index 3a62640,b701015..5e4d912
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@@ -1012,19 -983,18 +1012,20 @@@ public class StorageProxy implements St
      public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
      {
          assert ttl > 0;
+ 
          UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-         if (hostId == null)
+         if (hostId != null)
          {
-             logger.warn("Missing host Id for {}", target.getHostAddress());
-             throw new AssertionError("Missing host Id for " + target.getHostAddress());
+             HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+             StorageMetrics.totalHints.inc();
          }
-         HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-         StorageMetrics.totalHints.inc();
+         else
+             logger.debug("Discarding hint for endpoint not part of ring: {}", target);
      }
  
 -    private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)
 +    private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message,
 +                                                 Collection<InetAddress> targets,
 +                                                 AbstractWriteResponseHandler<IMutation> handler)
      {
          Iterator<InetAddress> iter = targets.iterator();
          InetAddress target = iter.next();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9f021823/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index ce14c37,ad1e6cf..6bb6be2
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@@ -36,9 -34,8 +36,10 @@@ import org.apache.cassandra.cql3.Untype
  import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
  import org.apache.cassandra.db.marshal.Int32Type;
  import org.apache.cassandra.db.marshal.UUIDType;
 +import org.apache.cassandra.exceptions.ConfigurationException;
 +import org.apache.cassandra.locator.SimpleStrategy;
  import org.apache.cassandra.utils.ByteBufferUtil;
+ import org.apache.cassandra.utils.Pair;
  
  import static org.junit.Assert.assertEquals;
  import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@@ -79,8 -66,8 +80,8 @@@ public class HintedHandOffTes
          HintedHandOffManager.instance.hintFor(rm,
                                                System.currentTimeMillis(),
                                                HintedHandOffManager.calculateHintTTL(rm),
-                                               UUID.randomUUID())
+                                               Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
 -                                     .apply();
 +                                     .applyUnsafe();
  
          // flush data to disk
          hintStore.forceBlockingFlush();
@@@ -120,8 -107,8 +121,8 @@@
          HintedHandOffManager.instance.hintFor(rm,
                                                System.currentTimeMillis(),
                                                HintedHandOffManager.calculateHintTTL(rm),
-                                               UUID.randomUUID())
+                                               Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
 -                                     .apply();
 +                                     .applyUnsafe();
  
          assert getNoOfHints() == 1;
  


[05/18] cassandra git commit: Fix missing host ID on hinted handoff write

Posted by jm...@apache.org.
Fix missing host ID on hinted handoff write

Patch by pauloricardomg; reviewed by aweisberg for CASSANDRA-10485


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

Branch: refs/heads/trunk
Commit: e291382fd00e4c7fc9258116885267515da3c49c
Parents: 582b66f
Author: Paulo Motta <pa...@gmail.com>
Authored: Fri Nov 13 09:46:57 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:46:57 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
index 4fbdd27..0d3ef39 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -130,16 +130,14 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
      * Returns a mutation representing a Hint to be sent to <code>targetId</code>
      * as soon as it becomes available again.
      */
-    public Mutation hintFor(Mutation mutation, long now, int ttl, UUID targetId)
+    public Mutation hintFor(Mutation mutation, long now, int ttl, Pair<InetAddress, UUID> target)
     {
         assert ttl > 0;
 
-        InetAddress endpoint = StorageService.instance.getTokenMetadata().getEndpointForHostId(targetId);
-        // during tests we may not have a matching endpoint, but this would be unexpected in real clusters
-        if (endpoint != null)
-            metrics.incrCreatedHints(endpoint);
-        else
-            logger.warn("Unable to find matching endpoint for target {} when storing a hint", targetId);
+        InetAddress endpoint = target.left;
+        UUID targetId = target.right;
+
+        metrics.incrCreatedHints(endpoint);
 
         UUID hintId = UUIDGen.getTimeUUID();
         // serialize the hint with id and version as a composite column name

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 4f20ef0..b701015 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -983,14 +983,15 @@ public class StorageProxy implements StorageProxyMBean
     public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
     {
         assert ttl > 0;
+
         UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-        if (hostId == null)
+        if (hostId != null)
         {
-            logger.warn("Missing host Id for {}", target.getHostAddress());
-            throw new AssertionError("Missing host Id for " + target.getHostAddress());
+            HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+            StorageMetrics.totalHints.inc();
         }
-        HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-        StorageMetrics.totalHints.inc();
+        else
+            logger.debug("Discarding hint for endpoint not part of ring: {}", target);
     }
 
     private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index c29c08e..ad1e6cf 100644
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@ -35,6 +35,7 @@ import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
 import org.apache.cassandra.db.marshal.Int32Type;
 import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.utils.ByteBufferUtil;
+import org.apache.cassandra.utils.Pair;
 
 import static org.junit.Assert.assertEquals;
 import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@ -65,7 +66,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         // flush data to disk
@@ -106,7 +107,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         assert getNoOfHints() == 1;


[13/18] cassandra git commit: 10485-3.0 patch

Posted by jm...@apache.org.
10485-3.0 patch


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

Branch: refs/heads/trunk
Commit: ed424bdd65ccf11742f2016ae5bc0b3ad5a99571
Parents: 2a12713
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:49:31 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:49:31 2015 -0500

----------------------------------------------------------------------
 .../apache/cassandra/service/StorageProxy.java  | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ed424bdd/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 6bcc2f8..63fa8cf 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -2476,10 +2476,22 @@ public class StorageProxy implements StorageProxyMBean
         {
             public void runMayThrow()
             {
-                logger.trace("Adding hints for {}", targets);
-                HintsService.instance.write(Iterables.transform(targets, StorageService.instance::getHostIdForEndpoint),
-                                            Hint.create(mutation, System.currentTimeMillis()));
-                targets.forEach(HintsService.instance.metrics::incrCreatedHints);
+                Set<InetAddress> validTargets = new HashSet<>(targets.size());
+                Set<UUID> hostIds = new HashSet<>(targets.size());
+                for (InetAddress target : targets)
+                {
+                    UUID hostId = StorageService.instance.getHostIdForEndpoint(target);
+                    if (hostId != null)
+                    {
+                        hostIds.add(hostId);
+                        validTargets.add(target);
+                    }
+                    else
+                        logger.debug("Discarding hint for endpoint not part of ring: {}", target);
+                }
+                logger.trace("Adding hints for {}", validTargets);
+                HintsService.instance.write(hostIds, Hint.create(mutation, System.currentTimeMillis()));
+                validTargets.forEach(HintsService.instance.metrics::incrCreatedHints);
                 // Notify the handler only for CL == ANY
                 if (responseHandler != null && responseHandler.consistencyLevel == ConsistencyLevel.ANY)
                     responseHandler.response(null);


[12/18] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by jm...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/trunk
Commit: 2a1271382a65095941583935a5de3b4d2031b736
Parents: 79bf03d 9f02182
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:48:50 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:48:50 2015 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[11/18] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by jm...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/cassandra-3.1
Commit: 2a1271382a65095941583935a5de3b4d2031b736
Parents: 79bf03d 9f02182
Author: Joshua McKenzie <jm...@apache.org>
Authored: Fri Nov 13 09:48:50 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:48:50 2015 -0500

----------------------------------------------------------------------

----------------------------------------------------------------------



[02/18] cassandra git commit: Fix missing host ID on hinted handoff write

Posted by jm...@apache.org.
Fix missing host ID on hinted handoff write

Patch by pauloricardomg; reviewed by aweisberg for CASSANDRA-10485


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

Branch: refs/heads/cassandra-2.2
Commit: e291382fd00e4c7fc9258116885267515da3c49c
Parents: 582b66f
Author: Paulo Motta <pa...@gmail.com>
Authored: Fri Nov 13 09:46:57 2015 -0500
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Fri Nov 13 09:46:57 2015 -0500

----------------------------------------------------------------------
 .../org/apache/cassandra/db/HintedHandOffManager.java   | 12 +++++-------
 src/java/org/apache/cassandra/service/StorageProxy.java | 11 ++++++-----
 .../unit/org/apache/cassandra/db/HintedHandOffTest.java |  5 +++--
 3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
index 4fbdd27..0d3ef39 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -130,16 +130,14 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
      * Returns a mutation representing a Hint to be sent to <code>targetId</code>
      * as soon as it becomes available again.
      */
-    public Mutation hintFor(Mutation mutation, long now, int ttl, UUID targetId)
+    public Mutation hintFor(Mutation mutation, long now, int ttl, Pair<InetAddress, UUID> target)
     {
         assert ttl > 0;
 
-        InetAddress endpoint = StorageService.instance.getTokenMetadata().getEndpointForHostId(targetId);
-        // during tests we may not have a matching endpoint, but this would be unexpected in real clusters
-        if (endpoint != null)
-            metrics.incrCreatedHints(endpoint);
-        else
-            logger.warn("Unable to find matching endpoint for target {} when storing a hint", targetId);
+        InetAddress endpoint = target.left;
+        UUID targetId = target.right;
+
+        metrics.incrCreatedHints(endpoint);
 
         UUID hintId = UUIDGen.getTimeUUID();
         // serialize the hint with id and version as a composite column name

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 4f20ef0..b701015 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -983,14 +983,15 @@ public class StorageProxy implements StorageProxyMBean
     public static void writeHintForMutation(Mutation mutation, long now, int ttl, InetAddress target)
     {
         assert ttl > 0;
+
         UUID hostId = StorageService.instance.getTokenMetadata().getHostId(target);
-        if (hostId == null)
+        if (hostId != null)
         {
-            logger.warn("Missing host Id for {}", target.getHostAddress());
-            throw new AssertionError("Missing host Id for " + target.getHostAddress());
+            HintedHandOffManager.instance.hintFor(mutation, now, ttl, Pair.create(target, hostId)).apply();
+            StorageMetrics.totalHints.inc();
         }
-        HintedHandOffManager.instance.hintFor(mutation, now, ttl, hostId).apply();
-        StorageMetrics.totalHints.inc();
+        else
+            logger.debug("Discarding hint for endpoint not part of ring: {}", target);
     }
 
     private static void sendMessagesToNonlocalDC(MessageOut<? extends IMutation> message, Collection<InetAddress> targets, AbstractWriteResponseHandler handler)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e291382f/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
index c29c08e..ad1e6cf 100644
--- a/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
+++ b/test/unit/org/apache/cassandra/db/HintedHandOffTest.java
@@ -35,6 +35,7 @@ import org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy;
 import org.apache.cassandra.db.marshal.Int32Type;
 import org.apache.cassandra.db.marshal.UUIDType;
 import org.apache.cassandra.utils.ByteBufferUtil;
+import org.apache.cassandra.utils.Pair;
 
 import static org.junit.Assert.assertEquals;
 import static org.apache.cassandra.cql3.QueryProcessor.executeInternal;
@@ -65,7 +66,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         // flush data to disk
@@ -106,7 +107,7 @@ public class HintedHandOffTest extends SchemaLoader
         HintedHandOffManager.instance.hintFor(rm,
                                               System.currentTimeMillis(),
                                               HintedHandOffManager.calculateHintTTL(rm),
-                                              UUID.randomUUID())
+                                              Pair.create(InetAddress.getByName("127.0.0.1"), UUID.randomUUID()))
                                      .apply();
 
         assert getNoOfHints() == 1;