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 2015/11/04 15:05:51 UTC

[1/4] cassandra git commit: Improve handling of dead nodes in gossip

Repository: cassandra
Updated Branches:
  refs/heads/trunk 81e1b15db -> 82189ee32


Improve handling of dead nodes in gossip

patch by Dikang Gu; reviewed by Stefania Alborghetti for CASSANDRA-10298


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

Branch: refs/heads/trunk
Commit: b6015fa4883182531d66527780fce34c9b125e46
Parents: dc73c0b
Author: Dikang Gu <di...@gmail.com>
Authored: Wed Nov 4 13:50:33 2015 +0000
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Nov 4 13:56:42 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 .../apache/cassandra/db/HintedHandOffManager.java    |  4 ++++
 .../org/apache/cassandra/service/StorageService.java | 15 ++++++++++++---
 3 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b6015fa4/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index fd6c8a1..5ceabb4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.12
+ * Improve handling of dead nodes in gossip (CASSANDRA-10298)
  * Fix logback-tools.xml incorrectly configured for outputing to System.err
    (CASSANDRA-9937)
  * Fix streaming to catch exception so retry not fail (CASSANDRA-10557)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b6015fa4/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 6f9d0b1..4fbdd27 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -213,7 +213,11 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
     {
         if (!StorageService.instance.getTokenMetadata().isMember(endpoint))
             return;
+
         UUID hostId = StorageService.instance.getTokenMetadata().getHostId(endpoint);
+        if (hostId == null)
+            return;
+
         ByteBuffer hostIdBytes = ByteBuffer.wrap(UUIDGen.decompose(hostId));
         final Mutation mutation = new Mutation(Keyspace.SYSTEM_KS, hostIdBytes);
         mutation.delete(SystemKeyspace.HINTS_CF, System.currentTimeMillis());

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b6015fa4/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 7e5b67b..d02a572 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1858,8 +1858,16 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     private void handleStateLeft(InetAddress endpoint, String[] pieces)
     {
         assert pieces.length >= 2;
-        Collection<Token> tokens;
-        tokens = getTokensFor(endpoint);
+        Collection<Token> tokens = null;
+        try
+        {
+            tokens = getTokensFor(endpoint);
+        }
+        catch (Throwable th)
+        {
+            JVMStabilityInspector.inspectThrowable(th);
+            logger.warn("Unable to calculate tokens for {}.", endpoint);
+        }
 
         if (logger.isDebugEnabled())
             logger.debug("Node {} state left, tokens {}", endpoint, tokens);
@@ -1948,7 +1956,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         HintedHandOffManager.instance.deleteHintsForEndpoint(endpoint);
         removeEndpoint(endpoint);
         tokenMetadata.removeEndpoint(endpoint);
-        tokenMetadata.removeBootstrapTokens(tokens);
+        if (tokens != null)
+            tokenMetadata.removeBootstrapTokens(tokens);
 
         if (!isClientMode)
         {


[4/4] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

Posted by al...@apache.org.
Merge branch 'cassandra-3.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/82189ee3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/82189ee3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/82189ee3

Branch: refs/heads/trunk
Commit: 82189ee3290c481da26f10b55ea73e4b47cc33a4
Parents: 81e1b15 8f98585
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Wed Nov 4 14:05:48 2015 +0000
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Nov 4 14:05:48 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/82189ee3/CHANGES.txt
----------------------------------------------------------------------


[3/4] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by al...@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/8f985852
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8f985852
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8f985852

Branch: refs/heads/trunk
Commit: 8f985852f11c9501137c150b0f25cfd0c17d3db8
Parents: 1492be0 5a2d529
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Wed Nov 4 14:05:00 2015 +0000
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Nov 4 14:05:00 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8f985852/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 61cc92e,60bf565..eb575e8
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,29 -1,12 +1,30 @@@
 -2.2.4
 - * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581)
 +3.0
 + * Guard batchlog replay against integer division by zero (CASSANDRA-9223)
 + * Fix bug when adding a column to thrift with the same name than a primary key (CASSANDRA-10608)
 + * Add client address argument to IAuthenticator::newSaslNegotiator (CASSANDRA-8068)
 + * Fix implementation of LegacyLayout.LegacyBoundComparator (CASSANDRA-10602)
 + * Don't use 'names query' read path for counters (CASSANDRA-10572)
 + * Fix backward compatibility for counters (CASSANDRA-10470)
 + * Remove memory_allocator paramter from cassandra.yaml (CASSANDRA-10581)
 + * Execute the metadata reload task of all registered indexes on CFS::reload (CASSANDRA-10604)
 + * Fix thrift cas operations with defined columns (CASSANDRA-10576)
 + * Fix PartitionUpdate.operationCount()for updates with static column operations (CASSANDRA-10606)
 + * Fix thrift get() queries with defined columns (CASSANDRA-10586)
 + * Fix marking of indexes as built and removed (CASSANDRA-10601)
 + * Skip initialization of non-registered 2i instances, remove Index::getIndexName (CASSANDRA-10595)
 + * Fix batches on multiple tables (CASSANDRA-10554)
 + * Ensure compaction options are validated when updating KeyspaceMetadata (CASSANDRA-10569)
 + * Flatten Iterator Transformation Hierarchy (CASSANDRA-9975)
 + * Remove token generator (CASSANDRA-5261)
 + * RolesCache should not be created for any authenticator that does not requireAuthentication (CASSANDRA-10562)
 + * Fix LogTransaction checking only a single directory for files (CASSANDRA-10421)
 + * Fix handling of range tombstones when reading old format sstables (CASSANDRA-10360)
 + * Aggregate with Initial Condition fails with C* 3.0 (CASSANDRA-10367)
 +Merged from 2.2:
   * Expose phi values from failure detector via JMX and tweak debug
     and trace logging (CASSANDRA-9526)
 - * Fix RangeNamesQueryPager (CASSANDRA-10509)
 - * Deprecate Pig support (CASSANDRA-10542)
 - * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
  Merged from 2.1:
+  * Improve handling of dead nodes in gossip (CASSANDRA-10298)
   * Fix logback-tools.xml incorrectly configured for outputing to System.err
     (CASSANDRA-9937)
   * Fix streaming to catch exception so retry not fail (CASSANDRA-10557)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8f985852/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index fb1edf6,45ed493..75c2fd9
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -2159,13 -2144,12 +2159,14 @@@ public class StorageService extends Not
      private void excise(Collection<Token> tokens, InetAddress endpoint)
      {
          logger.info("Removing tokens {} for {}", tokens, endpoint);
 -        HintedHandOffManager.instance.deleteHintsForEndpoint(endpoint);
 +
 +        if (tokenMetadata.isMember(endpoint))
 +            HintsService.instance.excise(tokenMetadata.getHostId(endpoint));
 +
          removeEndpoint(endpoint);
          tokenMetadata.removeEndpoint(endpoint);
-         tokenMetadata.removeBootstrapTokens(tokens);
+         if (tokens != null)
+             tokenMetadata.removeBootstrapTokens(tokens);
 -
          notifyLeft(endpoint);
          PendingRangeCalculatorService.instance.update();
      }


[2/4] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by al...@apache.org.
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/5a2d5298
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5a2d5298
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5a2d5298

Branch: refs/heads/trunk
Commit: 5a2d5298423dc4501fad0d53183e7ac93d83e76c
Parents: b4b2684 b6015fa
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Wed Nov 4 13:59:17 2015 +0000
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Nov 4 13:59:17 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 .../apache/cassandra/db/HintedHandOffManager.java    |  4 ++++
 .../org/apache/cassandra/service/StorageService.java | 15 ++++++++++++---
 3 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a2d5298/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index f25ac7e,5ceabb4..60bf565
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,11 -1,5 +1,12 @@@
 -2.1.12
 +2.2.4
 + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581)
 + * Expose phi values from failure detector via JMX and tweak debug
 +   and trace logging (CASSANDRA-9526)
 + * Fix RangeNamesQueryPager (CASSANDRA-10509)
 + * Deprecate Pig support (CASSANDRA-10542)
 + * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
 +Merged from 2.1:
+  * Improve handling of dead nodes in gossip (CASSANDRA-10298)
   * Fix logback-tools.xml incorrectly configured for outputing to System.err
     (CASSANDRA-9937)
   * Fix streaming to catch exception so retry not fail (CASSANDRA-10557)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a2d5298/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/HintedHandOffManager.java
index 179c611,4fbdd27..4ec5d62
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@@ -213,10 -213,14 +213,14 @@@ public class HintedHandOffManager imple
      {
          if (!StorageService.instance.getTokenMetadata().isMember(endpoint))
              return;
+ 
          UUID hostId = StorageService.instance.getTokenMetadata().getHostId(endpoint);
+         if (hostId == null)
+             return;
+ 
          ByteBuffer hostIdBytes = ByteBuffer.wrap(UUIDGen.decompose(hostId));
 -        final Mutation mutation = new Mutation(Keyspace.SYSTEM_KS, hostIdBytes);
 -        mutation.delete(SystemKeyspace.HINTS_CF, System.currentTimeMillis());
 +        final Mutation mutation = new Mutation(SystemKeyspace.NAME, hostIdBytes);
 +        mutation.delete(SystemKeyspace.HINTS, System.currentTimeMillis());
  
          // execute asynchronously to avoid blocking caller (which may be processing gossip)
          Runnable runnable = new Runnable()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a2d5298/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index f162f7c,d02a572..45ed493
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -2139,9 -1956,14 +2147,10 @@@ public class StorageService extends Not
          HintedHandOffManager.instance.deleteHintsForEndpoint(endpoint);
          removeEndpoint(endpoint);
          tokenMetadata.removeEndpoint(endpoint);
-         tokenMetadata.removeBootstrapTokens(tokens);
+         if (tokens != null)
+             tokenMetadata.removeBootstrapTokens(tokens);
  
 -        if (!isClientMode)
 -        {
 -            for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers)
 -                subscriber.onLeaveCluster(endpoint);
 -        }
 +        notifyLeft(endpoint);
          PendingRangeCalculatorService.instance.update();
      }