You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2016/01/18 15:27:40 UTC

[01/10] cassandra git commit: Make UUID LSB unique per-process

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 79b949236 -> 47e8ef9e9
  refs/heads/cassandra-3.0 a3360afa8 -> 2445ea77e
  refs/heads/cassandra-3.3 a6170ef80 -> bf917cbd9
  refs/heads/trunk 22f02fe60 -> ee5aec2d2


Make UUID LSB unique per-process

patch by slebresne; reviewed by benedict for CASSANDRA-7925


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

Branch: refs/heads/cassandra-2.2
Commit: 47e8ef9e9ce70c54115681f854f483a53992c988
Parents: 79b9492
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Fri Jan 15 15:25:03 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:24:50 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2bfba80..f571c29 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.5
+ * Make UUID LSB unique per process (CASSANDRA-7925)
  * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
  * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
  * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StartupChecks.java b/src/java/org/apache/cassandra/service/StartupChecks.java
index 19f32b6..34bc824 100644
--- a/src/java/org/apache/cassandra/service/StartupChecks.java
+++ b/src/java/org/apache/cassandra/service/StartupChecks.java
@@ -195,7 +195,7 @@ public class StartupChecks
     {
         public void execute()
         {
-            new SigarLibrary().warnIfRunningInDegradedMode();
+            SigarLibrary.instance.warnIfRunningInDegradedMode();
         }
     };
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/utils/SigarLibrary.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/SigarLibrary.java b/src/java/org/apache/cassandra/utils/SigarLibrary.java
index 7cf4d71..0312204 100644
--- a/src/java/org/apache/cassandra/utils/SigarLibrary.java
+++ b/src/java/org/apache/cassandra/utils/SigarLibrary.java
@@ -25,6 +25,8 @@ public class SigarLibrary
 {
     private Logger logger = LoggerFactory.getLogger(SigarLibrary.class);
 
+    public static final SigarLibrary instance = new SigarLibrary();
+
     private Sigar sigar;
     private FileSystemMap mounts = null;
     private boolean initialized = false;
@@ -37,7 +39,7 @@ public class SigarLibrary
     // TODO: Determine if file system is remote or local
     // TODO: Determine if disk latency is within acceptable limits
 
-    public SigarLibrary()
+    private SigarLibrary()
     {
         logger.info("Initializing SIGAR library");
         try
@@ -154,6 +156,11 @@ public class SigarLibrary
         }
     }
 
+    public long getPid()
+    {
+        return initialized ? sigar.getPid() : -1;
+    }
+
     public void warnIfRunningInDegradedMode()
     {
         if (initialized)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/utils/UUIDGen.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/UUIDGen.java b/src/java/org/apache/cassandra/utils/UUIDGen.java
index a777a50..df07e1f 100644
--- a/src/java/org/apache/cassandra/utils/UUIDGen.java
+++ b/src/java/org/apache/cassandra/utils/UUIDGen.java
@@ -26,6 +26,7 @@ import java.util.Random;
 import java.util.UUID;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Charsets;
 
 
 /**
@@ -309,10 +310,21 @@ public class UUIDGen
     {
         try
         {
+            // Identify the host.
             MessageDigest messageDigest = MessageDigest.getInstance("MD5");
             for(InetAddress addr : data)
                 messageDigest.update(addr.getAddress());
 
+            // Identify the process on the load: we use both the PID and class loader hash.
+            long pid = SigarLibrary.instance.getPid();
+            if (pid < 0)
+                pid = new Random(System.currentTimeMillis()).nextLong();
+            FBUtilities.updateWithLong(messageDigest, pid);
+
+            ClassLoader loader = UUIDGen.class.getClassLoader();
+            int loaderId = loader != null ? System.identityHashCode(loader) : 0;
+            FBUtilities.updateWithInt(messageDigest, loaderId);
+
             return messageDigest.digest();
         }
         catch (NoSuchAlgorithmException nsae)


[02/10] cassandra git commit: Make UUID LSB unique per-process

Posted by sl...@apache.org.
Make UUID LSB unique per-process

patch by slebresne; reviewed by benedict for CASSANDRA-7925


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

Branch: refs/heads/cassandra-3.0
Commit: 47e8ef9e9ce70c54115681f854f483a53992c988
Parents: 79b9492
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Fri Jan 15 15:25:03 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:24:50 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2bfba80..f571c29 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.5
+ * Make UUID LSB unique per process (CASSANDRA-7925)
  * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
  * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
  * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StartupChecks.java b/src/java/org/apache/cassandra/service/StartupChecks.java
index 19f32b6..34bc824 100644
--- a/src/java/org/apache/cassandra/service/StartupChecks.java
+++ b/src/java/org/apache/cassandra/service/StartupChecks.java
@@ -195,7 +195,7 @@ public class StartupChecks
     {
         public void execute()
         {
-            new SigarLibrary().warnIfRunningInDegradedMode();
+            SigarLibrary.instance.warnIfRunningInDegradedMode();
         }
     };
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/utils/SigarLibrary.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/SigarLibrary.java b/src/java/org/apache/cassandra/utils/SigarLibrary.java
index 7cf4d71..0312204 100644
--- a/src/java/org/apache/cassandra/utils/SigarLibrary.java
+++ b/src/java/org/apache/cassandra/utils/SigarLibrary.java
@@ -25,6 +25,8 @@ public class SigarLibrary
 {
     private Logger logger = LoggerFactory.getLogger(SigarLibrary.class);
 
+    public static final SigarLibrary instance = new SigarLibrary();
+
     private Sigar sigar;
     private FileSystemMap mounts = null;
     private boolean initialized = false;
@@ -37,7 +39,7 @@ public class SigarLibrary
     // TODO: Determine if file system is remote or local
     // TODO: Determine if disk latency is within acceptable limits
 
-    public SigarLibrary()
+    private SigarLibrary()
     {
         logger.info("Initializing SIGAR library");
         try
@@ -154,6 +156,11 @@ public class SigarLibrary
         }
     }
 
+    public long getPid()
+    {
+        return initialized ? sigar.getPid() : -1;
+    }
+
     public void warnIfRunningInDegradedMode()
     {
         if (initialized)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/utils/UUIDGen.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/UUIDGen.java b/src/java/org/apache/cassandra/utils/UUIDGen.java
index a777a50..df07e1f 100644
--- a/src/java/org/apache/cassandra/utils/UUIDGen.java
+++ b/src/java/org/apache/cassandra/utils/UUIDGen.java
@@ -26,6 +26,7 @@ import java.util.Random;
 import java.util.UUID;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Charsets;
 
 
 /**
@@ -309,10 +310,21 @@ public class UUIDGen
     {
         try
         {
+            // Identify the host.
             MessageDigest messageDigest = MessageDigest.getInstance("MD5");
             for(InetAddress addr : data)
                 messageDigest.update(addr.getAddress());
 
+            // Identify the process on the load: we use both the PID and class loader hash.
+            long pid = SigarLibrary.instance.getPid();
+            if (pid < 0)
+                pid = new Random(System.currentTimeMillis()).nextLong();
+            FBUtilities.updateWithLong(messageDigest, pid);
+
+            ClassLoader loader = UUIDGen.class.getClassLoader();
+            int loaderId = loader != null ? System.identityHashCode(loader) : 0;
+            FBUtilities.updateWithInt(messageDigest, loaderId);
+
             return messageDigest.digest();
         }
         catch (NoSuchAlgorithmException nsae)


[09/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3

Posted by sl...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.3


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

Branch: refs/heads/trunk
Commit: bf917cbd90bcaa5be8b76e857e58561a00a82c8d
Parents: a6170ef 2445ea7
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Jan 18 15:25:51 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:25:51 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf917cbd/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index c7a5c23,41978ba..840c795
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -11,7 -7,18 +11,8 @@@ Merged from 3.0
     tombstone (CASSANDRA-10743)
   * MV should use the maximum timestamp of the primary key (CASSANDRA-10910)
   * Fix potential assertion error during compaction (CASSANDRA-10944)
 - * Fix counting of received sstables in streaming (CASSANDRA-10949)
 - * Implement hints compression (CASSANDRA-9428)
 - * Fix potential assertion error when reading static columns (CASSANDRA-10903)
 - * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711)
 - * Avoid building PartitionUpdate in toString (CASSANDRA-10897)
 - * Reduce heap spent when receiving many SSTables (CASSANDRA-10797)
 - * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873)
 - * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653)
 - * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837)
 - * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806)
  Merged from 2.2:
+  * Make UUID LSB unique per process (CASSANDRA-7925)
   * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
   * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
   * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf917cbd/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf917cbd/src/java/org/apache/cassandra/utils/UUIDGen.java
----------------------------------------------------------------------


[04/10] cassandra git commit: Make UUID LSB unique per-process

Posted by sl...@apache.org.
Make UUID LSB unique per-process

patch by slebresne; reviewed by benedict for CASSANDRA-7925


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

Branch: refs/heads/trunk
Commit: 47e8ef9e9ce70c54115681f854f483a53992c988
Parents: 79b9492
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Fri Jan 15 15:25:03 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:24:50 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2bfba80..f571c29 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.5
+ * Make UUID LSB unique per process (CASSANDRA-7925)
  * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
  * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
  * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StartupChecks.java b/src/java/org/apache/cassandra/service/StartupChecks.java
index 19f32b6..34bc824 100644
--- a/src/java/org/apache/cassandra/service/StartupChecks.java
+++ b/src/java/org/apache/cassandra/service/StartupChecks.java
@@ -195,7 +195,7 @@ public class StartupChecks
     {
         public void execute()
         {
-            new SigarLibrary().warnIfRunningInDegradedMode();
+            SigarLibrary.instance.warnIfRunningInDegradedMode();
         }
     };
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/utils/SigarLibrary.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/SigarLibrary.java b/src/java/org/apache/cassandra/utils/SigarLibrary.java
index 7cf4d71..0312204 100644
--- a/src/java/org/apache/cassandra/utils/SigarLibrary.java
+++ b/src/java/org/apache/cassandra/utils/SigarLibrary.java
@@ -25,6 +25,8 @@ public class SigarLibrary
 {
     private Logger logger = LoggerFactory.getLogger(SigarLibrary.class);
 
+    public static final SigarLibrary instance = new SigarLibrary();
+
     private Sigar sigar;
     private FileSystemMap mounts = null;
     private boolean initialized = false;
@@ -37,7 +39,7 @@ public class SigarLibrary
     // TODO: Determine if file system is remote or local
     // TODO: Determine if disk latency is within acceptable limits
 
-    public SigarLibrary()
+    private SigarLibrary()
     {
         logger.info("Initializing SIGAR library");
         try
@@ -154,6 +156,11 @@ public class SigarLibrary
         }
     }
 
+    public long getPid()
+    {
+        return initialized ? sigar.getPid() : -1;
+    }
+
     public void warnIfRunningInDegradedMode()
     {
         if (initialized)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/utils/UUIDGen.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/UUIDGen.java b/src/java/org/apache/cassandra/utils/UUIDGen.java
index a777a50..df07e1f 100644
--- a/src/java/org/apache/cassandra/utils/UUIDGen.java
+++ b/src/java/org/apache/cassandra/utils/UUIDGen.java
@@ -26,6 +26,7 @@ import java.util.Random;
 import java.util.UUID;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Charsets;
 
 
 /**
@@ -309,10 +310,21 @@ public class UUIDGen
     {
         try
         {
+            // Identify the host.
             MessageDigest messageDigest = MessageDigest.getInstance("MD5");
             for(InetAddress addr : data)
                 messageDigest.update(addr.getAddress());
 
+            // Identify the process on the load: we use both the PID and class loader hash.
+            long pid = SigarLibrary.instance.getPid();
+            if (pid < 0)
+                pid = new Random(System.currentTimeMillis()).nextLong();
+            FBUtilities.updateWithLong(messageDigest, pid);
+
+            ClassLoader loader = UUIDGen.class.getClassLoader();
+            int loaderId = loader != null ? System.identityHashCode(loader) : 0;
+            FBUtilities.updateWithInt(messageDigest, loaderId);
+
             return messageDigest.digest();
         }
         catch (NoSuchAlgorithmException nsae)


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

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

Branch: refs/heads/trunk
Commit: 2445ea77ec7951cf738db16be9b04fb793de73be
Parents: a3360af 47e8ef9
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Jan 18 15:25:38 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:25:38 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2445ea77/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 478fe08,f571c29..41978ba
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,23 -1,5 +1,24 @@@
 -2.2.5
 +3.0.3
 + * Remove checksum files after replaying hints (CASSANDRA-10947)
 + * Support passing base table metadata to custom 2i validation (CASSANDRA-10924)
 + * Ensure stale index entries are purged during reads (CASSANDRA-11013)
 + * Fix AssertionError when removing from list using UPDATE (CASSANDRA-10954)
 + * Fix UnsupportedOperationException when reading old sstable with range
 +   tombstone (CASSANDRA-10743)
 + * MV should use the maximum timestamp of the primary key (CASSANDRA-10910)
 + * Fix potential assertion error during compaction (CASSANDRA-10944)
 + * Fix counting of received sstables in streaming (CASSANDRA-10949)
 + * Implement hints compression (CASSANDRA-9428)
 + * Fix potential assertion error when reading static columns (CASSANDRA-10903)
 + * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711)
 + * Avoid building PartitionUpdate in toString (CASSANDRA-10897)
 + * Reduce heap spent when receiving many SSTables (CASSANDRA-10797)
 + * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873)
 + * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653)
 + * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837)
 + * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806)
 +Merged from 2.2:
+  * Make UUID LSB unique per process (CASSANDRA-7925)
   * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
   * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
   * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2445ea77/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------


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

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

Branch: refs/heads/cassandra-3.0
Commit: 2445ea77ec7951cf738db16be9b04fb793de73be
Parents: a3360af 47e8ef9
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Jan 18 15:25:38 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:25:38 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2445ea77/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 478fe08,f571c29..41978ba
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,23 -1,5 +1,24 @@@
 -2.2.5
 +3.0.3
 + * Remove checksum files after replaying hints (CASSANDRA-10947)
 + * Support passing base table metadata to custom 2i validation (CASSANDRA-10924)
 + * Ensure stale index entries are purged during reads (CASSANDRA-11013)
 + * Fix AssertionError when removing from list using UPDATE (CASSANDRA-10954)
 + * Fix UnsupportedOperationException when reading old sstable with range
 +   tombstone (CASSANDRA-10743)
 + * MV should use the maximum timestamp of the primary key (CASSANDRA-10910)
 + * Fix potential assertion error during compaction (CASSANDRA-10944)
 + * Fix counting of received sstables in streaming (CASSANDRA-10949)
 + * Implement hints compression (CASSANDRA-9428)
 + * Fix potential assertion error when reading static columns (CASSANDRA-10903)
 + * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711)
 + * Avoid building PartitionUpdate in toString (CASSANDRA-10897)
 + * Reduce heap spent when receiving many SSTables (CASSANDRA-10797)
 + * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873)
 + * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653)
 + * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837)
 + * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806)
 +Merged from 2.2:
+  * Make UUID LSB unique per process (CASSANDRA-7925)
   * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
   * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
   * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2445ea77/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------


[03/10] cassandra git commit: Make UUID LSB unique per-process

Posted by sl...@apache.org.
Make UUID LSB unique per-process

patch by slebresne; reviewed by benedict for CASSANDRA-7925


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

Branch: refs/heads/cassandra-3.3
Commit: 47e8ef9e9ce70c54115681f854f483a53992c988
Parents: 79b9492
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Fri Jan 15 15:25:03 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:24:50 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 2bfba80..f571c29 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.5
+ * Make UUID LSB unique per process (CASSANDRA-7925)
  * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
  * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
  * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StartupChecks.java b/src/java/org/apache/cassandra/service/StartupChecks.java
index 19f32b6..34bc824 100644
--- a/src/java/org/apache/cassandra/service/StartupChecks.java
+++ b/src/java/org/apache/cassandra/service/StartupChecks.java
@@ -195,7 +195,7 @@ public class StartupChecks
     {
         public void execute()
         {
-            new SigarLibrary().warnIfRunningInDegradedMode();
+            SigarLibrary.instance.warnIfRunningInDegradedMode();
         }
     };
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/utils/SigarLibrary.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/SigarLibrary.java b/src/java/org/apache/cassandra/utils/SigarLibrary.java
index 7cf4d71..0312204 100644
--- a/src/java/org/apache/cassandra/utils/SigarLibrary.java
+++ b/src/java/org/apache/cassandra/utils/SigarLibrary.java
@@ -25,6 +25,8 @@ public class SigarLibrary
 {
     private Logger logger = LoggerFactory.getLogger(SigarLibrary.class);
 
+    public static final SigarLibrary instance = new SigarLibrary();
+
     private Sigar sigar;
     private FileSystemMap mounts = null;
     private boolean initialized = false;
@@ -37,7 +39,7 @@ public class SigarLibrary
     // TODO: Determine if file system is remote or local
     // TODO: Determine if disk latency is within acceptable limits
 
-    public SigarLibrary()
+    private SigarLibrary()
     {
         logger.info("Initializing SIGAR library");
         try
@@ -154,6 +156,11 @@ public class SigarLibrary
         }
     }
 
+    public long getPid()
+    {
+        return initialized ? sigar.getPid() : -1;
+    }
+
     public void warnIfRunningInDegradedMode()
     {
         if (initialized)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/47e8ef9e/src/java/org/apache/cassandra/utils/UUIDGen.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/UUIDGen.java b/src/java/org/apache/cassandra/utils/UUIDGen.java
index a777a50..df07e1f 100644
--- a/src/java/org/apache/cassandra/utils/UUIDGen.java
+++ b/src/java/org/apache/cassandra/utils/UUIDGen.java
@@ -26,6 +26,7 @@ import java.util.Random;
 import java.util.UUID;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Charsets;
 
 
 /**
@@ -309,10 +310,21 @@ public class UUIDGen
     {
         try
         {
+            // Identify the host.
             MessageDigest messageDigest = MessageDigest.getInstance("MD5");
             for(InetAddress addr : data)
                 messageDigest.update(addr.getAddress());
 
+            // Identify the process on the load: we use both the PID and class loader hash.
+            long pid = SigarLibrary.instance.getPid();
+            if (pid < 0)
+                pid = new Random(System.currentTimeMillis()).nextLong();
+            FBUtilities.updateWithLong(messageDigest, pid);
+
+            ClassLoader loader = UUIDGen.class.getClassLoader();
+            int loaderId = loader != null ? System.identityHashCode(loader) : 0;
+            FBUtilities.updateWithInt(messageDigest, loaderId);
+
             return messageDigest.digest();
         }
         catch (NoSuchAlgorithmException nsae)


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

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

Branch: refs/heads/cassandra-3.3
Commit: 2445ea77ec7951cf738db16be9b04fb793de73be
Parents: a3360af 47e8ef9
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Jan 18 15:25:38 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:25:38 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2445ea77/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 478fe08,f571c29..41978ba
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,23 -1,5 +1,24 @@@
 -2.2.5
 +3.0.3
 + * Remove checksum files after replaying hints (CASSANDRA-10947)
 + * Support passing base table metadata to custom 2i validation (CASSANDRA-10924)
 + * Ensure stale index entries are purged during reads (CASSANDRA-11013)
 + * Fix AssertionError when removing from list using UPDATE (CASSANDRA-10954)
 + * Fix UnsupportedOperationException when reading old sstable with range
 +   tombstone (CASSANDRA-10743)
 + * MV should use the maximum timestamp of the primary key (CASSANDRA-10910)
 + * Fix potential assertion error during compaction (CASSANDRA-10944)
 + * Fix counting of received sstables in streaming (CASSANDRA-10949)
 + * Implement hints compression (CASSANDRA-9428)
 + * Fix potential assertion error when reading static columns (CASSANDRA-10903)
 + * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711)
 + * Avoid building PartitionUpdate in toString (CASSANDRA-10897)
 + * Reduce heap spent when receiving many SSTables (CASSANDRA-10797)
 + * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873)
 + * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653)
 + * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837)
 + * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806)
 +Merged from 2.2:
+  * Make UUID LSB unique per process (CASSANDRA-7925)
   * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
   * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
   * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2445ea77/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------


[08/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.3

Posted by sl...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.3


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

Branch: refs/heads/cassandra-3.3
Commit: bf917cbd90bcaa5be8b76e857e58561a00a82c8d
Parents: a6170ef 2445ea7
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Jan 18 15:25:51 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:25:51 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf917cbd/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index c7a5c23,41978ba..840c795
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -11,7 -7,18 +11,8 @@@ Merged from 3.0
     tombstone (CASSANDRA-10743)
   * MV should use the maximum timestamp of the primary key (CASSANDRA-10910)
   * Fix potential assertion error during compaction (CASSANDRA-10944)
 - * Fix counting of received sstables in streaming (CASSANDRA-10949)
 - * Implement hints compression (CASSANDRA-9428)
 - * Fix potential assertion error when reading static columns (CASSANDRA-10903)
 - * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711)
 - * Avoid building PartitionUpdate in toString (CASSANDRA-10897)
 - * Reduce heap spent when receiving many SSTables (CASSANDRA-10797)
 - * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873)
 - * Eliminate the dependency on jgrapht for UDT resolution (CASSANDRA-10653)
 - * (Hadoop) Close Clusters and Sessions in Hadoop Input/Output classes (CASSANDRA-10837)
 - * Fix sstableloader not working with upper case keyspace name (CASSANDRA-10806)
  Merged from 2.2:
+  * Make UUID LSB unique per process (CASSANDRA-7925)
   * Avoid NPE when performing sstable tasks (scrub etc.) (CASSANDRA-10980)
   * Make sure client gets tombstone overwhelmed warning (CASSANDRA-9465)
   * Fix error streaming section more than 2GB (CASSANDRA-10961)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf917cbd/src/java/org/apache/cassandra/service/StartupChecks.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bf917cbd/src/java/org/apache/cassandra/utils/UUIDGen.java
----------------------------------------------------------------------


[10/10] cassandra git commit: Merge branch 'cassandra-3.3' into trunk

Posted by sl...@apache.org.
Merge branch 'cassandra-3.3' into trunk


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

Branch: refs/heads/trunk
Commit: ee5aec2d2ed7795d64a052e191af4aec5c807dba
Parents: 22f02fe bf917cb
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Mon Jan 18 15:26:06 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Mon Jan 18 15:26:06 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/service/StartupChecks.java     |  2 +-
 src/java/org/apache/cassandra/utils/SigarLibrary.java   |  9 ++++++++-
 src/java/org/apache/cassandra/utils/UUIDGen.java        | 12 ++++++++++++
 4 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


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