You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2014/04/08 21:34:36 UTC

[01/10] git commit: Schedule schema pull in onChange.

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-1.2 514ce33bc -> 1755f65a6
  refs/heads/cassandra-2.0 c6ec5d5b2 -> a421551d1
  refs/heads/cassandra-2.1 db3935e4c -> ffc8dae6d
  refs/heads/trunk cd74a6d0d -> 05a457574


Schedule schema pull in onChange.

Patch by brandonwilliams, reviewed by Russ Hatch for CASSANDRA-6971


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

Branch: refs/heads/cassandra-1.2
Commit: 1755f65a647da1816e2bd8229ba656a26cfcff1d
Parents: 514ce33
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:28:58 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:28:58 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b3a794f..dc8e6e0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,7 @@
  * Fix BatchlogManager#deleteBatch() use of millisecond timsestamps
    (CASSANDRA-6822)
  * Continue assassinating even if the endpoint vanishes (CASSANDRA-6787)
+ * Schedule schema pulls on change (CASSANDRA-6971)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/src/java/org/apache/cassandra/service/MigrationManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java
index 9f6113c..09caeb1 100644
--- a/src/java/org/apache/cassandra/service/MigrationManager.java
+++ b/src/java/org/apache/cassandra/service/MigrationManager.java
@@ -91,11 +91,15 @@ public class MigrationManager
     private static void maybeScheduleSchemaPull(final UUID theirVersion, final InetAddress endpoint)
     {
         if ((Schema.instance.getVersion() != null && Schema.instance.getVersion().equals(theirVersion)) || !shouldPullSchemaFrom(endpoint))
+        {
+            logger.debug("Not pulling schema because versions match or shouldPullSchemaFrom returned false");
             return;
+        }
 
         if (Schema.emptyVersion.equals(Schema.instance.getVersion()) || runtimeMXBean.getUptime() < MIGRATION_DELAY_IN_MS)
         {
             // If we think we may be bootstrapping or have recently started, submit MigrationTask immediately
+            logger.debug("Submitting migration task for {}", endpoint);
             submitMigrationTask(endpoint);
         }
         else
@@ -109,12 +113,18 @@ public class MigrationManager
                     // grab the latest version of the schema since it may have changed again since the initial scheduling
                     EndpointState epState = Gossiper.instance.getEndpointStateForEndpoint(endpoint);
                     if (epState == null)
+                    {
+                        logger.debug("epState vanished for {}, not submitting migration task", endpoint);
                         return;
+                    }
                     VersionedValue value = epState.getApplicationState(ApplicationState.SCHEMA);
                     UUID currentVersion = UUID.fromString(value.value);
                     if (Schema.instance.getVersion().equals(currentVersion))
+                    {
+                        logger.debug("not submitting migration task for {} because our versions match", endpoint);
                         return;
-
+                    }
+                    logger.debug("submitting migration task for {}", endpoint);
                     submitMigrationTask(endpoint);
                 }
             };

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/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 d5b7bb5..473ef49 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1377,6 +1377,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                 case HOST_ID:
                     SystemTable.updatePeerInfo(endpoint, "host_id", value.value);
                     break;
+                case SCHEMA:
+                    MigrationManager.instance.scheduleSchemaPull(endpoint, epState);
             }
         }
     }


[05/10] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

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


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

Branch: refs/heads/cassandra-2.1
Commit: a421551d1db7abe59b76cc7af93bacf282fb81c1
Parents: c6ec5d5 1755f65
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:30:11 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:30:11 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a421551d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 430e02c,dc8e6e0..a024427
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -55,50 -2,17 +55,51 @@@ Merged from 1.2
   * Fix BatchlogManager#deleteBatch() use of millisecond timsestamps
     (CASSANDRA-6822)
   * Continue assassinating even if the endpoint vanishes (CASSANDRA-6787)
+  * Schedule schema pulls on change (CASSANDRA-6971)
  
  
 -1.2.16
 - * Add UNLOGGED, COUNTER options to BATCH documentation (CASSANDRA-6816)
 - * add extra SSL cipher suites (CASSANDRA-6613)
 - * fix nodetool getsstables for blob PK (CASSANDRA-6803)
 +2.0.6
 + * Avoid race-prone second "scrub" of system keyspace (CASSANDRA-6797)
 + * Pool CqlRecordWriter clients by inetaddress rather than Range 
 +   (CASSANDRA-6665)
 + * Fix compaction_history timestamps (CASSANDRA-6784)
 + * Compare scores of full replica ordering in DES (CASSANDRA-6883)
 + * fix CME in SessionInfo updateProgress affecting netstats (CASSANDRA-6577)
 + * Allow repairing between specific replicas (CASSANDRA-6440)
 + * Allow per-dc enabling of hints (CASSANDRA-6157)
 + * Add compatibility for Hadoop 0.2.x (CASSANDRA-5201)
 + * Fix EstimatedHistogram races (CASSANDRA-6682)
 + * Failure detector correctly converts initial value to nanos (CASSANDRA-6658)
 + * Add nodetool taketoken to relocate vnodes (CASSANDRA-4445)
 + * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
 + * Improve nodetool cfhistograms formatting (CASSANDRA-6360)
 + * Expose bulk loading progress over JMX (CASSANDRA-4757)
 + * Correctly handle null with IF conditions and TTL (CASSANDRA-6623)
 + * Account for range/row tombstones in tombstone drop
 +   time histogram (CASSANDRA-6522)
 + * Stop CommitLogSegment.close() from calling sync() (CASSANDRA-6652)
 + * Make commitlog failure handling configurable (CASSANDRA-6364)
 + * Avoid overlaps in LCS (CASSANDRA-6688)
 + * Improve support for paginating over composites (CASSANDRA-4851)
 + * Fix count(*) queries in a mixed cluster (CASSANDRA-6707)
 + * Improve repair tasks(snapshot, differencing) concurrency (CASSANDRA-6566)
 + * Fix replaying pre-2.0 commit logs (CASSANDRA-6714)
 + * Add static columns to CQL3 (CASSANDRA-6561)
 + * Optimize single partition batch statements (CASSANDRA-6737)
 + * Disallow post-query re-ordering when paging (CASSANDRA-6722)
 + * Fix potential paging bug with deleted columns (CASSANDRA-6748)
 + * Fix NPE on BulkLoader caused by losing StreamEvent (CASSANDRA-6636)
 + * Fix truncating compression metadata (CASSANDRA-6791)
 + * Fix UPDATE updating PRIMARY KEY columns implicitly (CASSANDRA-6782)
 + * Fix IllegalArgumentException when updating from 1.2 with SuperColumns
 +   (CASSANDRA-6733)
 + * FBUtilities.singleton() should use the CF comparator (CASSANDRA-6778)
 + * Fix CQLSStableWriter.addRow(Map<String, Object>) (CASSANDRA-6526)
 + * Fix HSHA server introducing corrupt data (CASSANDRA-6285)
 + * Fix CAS conditions for COMPACT STORAGE tables (CASSANDRA-6813)
 +Merged from 1.2:
   * Add CMSClassUnloadingEnabled JVM option (CASSANDRA-6541)
   * Catch memtable flush exceptions during shutdown (CASSANDRA-6735)
 - * Don't attempt cross-dc forwarding in mixed-version cluster with 1.1 
 -   (CASSANDRA-6732)
   * Fix broken streams when replacing with same IP (CASSANDRA-6622)
   * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
   * Fix partition and range deletes not triggering flush (CASSANDRA-6655)

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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a421551d/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index 6ddfd80,473ef49..2406603
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -1380,23 -1360,25 +1380,25 @@@ public class StorageService extends Not
              switch (state)
              {
                  case RELEASE_VERSION:
 -                    SystemTable.updatePeerInfo(endpoint, "release_version", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "release_version", quote(value.value));
                      break;
                  case DC:
 -                    SystemTable.updatePeerInfo(endpoint, "data_center", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "data_center", quote(value.value));
                      break;
                  case RACK:
 -                    SystemTable.updatePeerInfo(endpoint, "rack", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "rack", quote(value.value));
                      break;
                  case RPC_ADDRESS:
 -                    SystemTable.updatePeerInfo(endpoint, "rpc_address", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "rpc_address", quote(value.value));
                      break;
                  case SCHEMA:
 -                    SystemTable.updatePeerInfo(endpoint, "schema_version", value.value);
 +                    SystemKeyspace.updatePeerInfo(endpoint, "schema_version", value.value);
                      break;
                  case HOST_ID:
 -                    SystemTable.updatePeerInfo(endpoint, "host_id", value.value);
 +                    SystemKeyspace.updatePeerInfo(endpoint, "host_id", value.value);
                      break;
+                 case SCHEMA:
+                     MigrationManager.instance.scheduleSchemaPull(endpoint, epState);
              }
          }
      }


[07/10] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

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


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

Branch: refs/heads/trunk
Commit: a421551d1db7abe59b76cc7af93bacf282fb81c1
Parents: c6ec5d5 1755f65
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:30:11 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:30:11 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a421551d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 430e02c,dc8e6e0..a024427
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -55,50 -2,17 +55,51 @@@ Merged from 1.2
   * Fix BatchlogManager#deleteBatch() use of millisecond timsestamps
     (CASSANDRA-6822)
   * Continue assassinating even if the endpoint vanishes (CASSANDRA-6787)
+  * Schedule schema pulls on change (CASSANDRA-6971)
  
  
 -1.2.16
 - * Add UNLOGGED, COUNTER options to BATCH documentation (CASSANDRA-6816)
 - * add extra SSL cipher suites (CASSANDRA-6613)
 - * fix nodetool getsstables for blob PK (CASSANDRA-6803)
 +2.0.6
 + * Avoid race-prone second "scrub" of system keyspace (CASSANDRA-6797)
 + * Pool CqlRecordWriter clients by inetaddress rather than Range 
 +   (CASSANDRA-6665)
 + * Fix compaction_history timestamps (CASSANDRA-6784)
 + * Compare scores of full replica ordering in DES (CASSANDRA-6883)
 + * fix CME in SessionInfo updateProgress affecting netstats (CASSANDRA-6577)
 + * Allow repairing between specific replicas (CASSANDRA-6440)
 + * Allow per-dc enabling of hints (CASSANDRA-6157)
 + * Add compatibility for Hadoop 0.2.x (CASSANDRA-5201)
 + * Fix EstimatedHistogram races (CASSANDRA-6682)
 + * Failure detector correctly converts initial value to nanos (CASSANDRA-6658)
 + * Add nodetool taketoken to relocate vnodes (CASSANDRA-4445)
 + * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
 + * Improve nodetool cfhistograms formatting (CASSANDRA-6360)
 + * Expose bulk loading progress over JMX (CASSANDRA-4757)
 + * Correctly handle null with IF conditions and TTL (CASSANDRA-6623)
 + * Account for range/row tombstones in tombstone drop
 +   time histogram (CASSANDRA-6522)
 + * Stop CommitLogSegment.close() from calling sync() (CASSANDRA-6652)
 + * Make commitlog failure handling configurable (CASSANDRA-6364)
 + * Avoid overlaps in LCS (CASSANDRA-6688)
 + * Improve support for paginating over composites (CASSANDRA-4851)
 + * Fix count(*) queries in a mixed cluster (CASSANDRA-6707)
 + * Improve repair tasks(snapshot, differencing) concurrency (CASSANDRA-6566)
 + * Fix replaying pre-2.0 commit logs (CASSANDRA-6714)
 + * Add static columns to CQL3 (CASSANDRA-6561)
 + * Optimize single partition batch statements (CASSANDRA-6737)
 + * Disallow post-query re-ordering when paging (CASSANDRA-6722)
 + * Fix potential paging bug with deleted columns (CASSANDRA-6748)
 + * Fix NPE on BulkLoader caused by losing StreamEvent (CASSANDRA-6636)
 + * Fix truncating compression metadata (CASSANDRA-6791)
 + * Fix UPDATE updating PRIMARY KEY columns implicitly (CASSANDRA-6782)
 + * Fix IllegalArgumentException when updating from 1.2 with SuperColumns
 +   (CASSANDRA-6733)
 + * FBUtilities.singleton() should use the CF comparator (CASSANDRA-6778)
 + * Fix CQLSStableWriter.addRow(Map<String, Object>) (CASSANDRA-6526)
 + * Fix HSHA server introducing corrupt data (CASSANDRA-6285)
 + * Fix CAS conditions for COMPACT STORAGE tables (CASSANDRA-6813)
 +Merged from 1.2:
   * Add CMSClassUnloadingEnabled JVM option (CASSANDRA-6541)
   * Catch memtable flush exceptions during shutdown (CASSANDRA-6735)
 - * Don't attempt cross-dc forwarding in mixed-version cluster with 1.1 
 -   (CASSANDRA-6732)
   * Fix broken streams when replacing with same IP (CASSANDRA-6622)
   * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
   * Fix partition and range deletes not triggering flush (CASSANDRA-6655)

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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a421551d/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index 6ddfd80,473ef49..2406603
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -1380,23 -1360,25 +1380,25 @@@ public class StorageService extends Not
              switch (state)
              {
                  case RELEASE_VERSION:
 -                    SystemTable.updatePeerInfo(endpoint, "release_version", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "release_version", quote(value.value));
                      break;
                  case DC:
 -                    SystemTable.updatePeerInfo(endpoint, "data_center", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "data_center", quote(value.value));
                      break;
                  case RACK:
 -                    SystemTable.updatePeerInfo(endpoint, "rack", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "rack", quote(value.value));
                      break;
                  case RPC_ADDRESS:
 -                    SystemTable.updatePeerInfo(endpoint, "rpc_address", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "rpc_address", quote(value.value));
                      break;
                  case SCHEMA:
 -                    SystemTable.updatePeerInfo(endpoint, "schema_version", value.value);
 +                    SystemKeyspace.updatePeerInfo(endpoint, "schema_version", value.value);
                      break;
                  case HOST_ID:
 -                    SystemTable.updatePeerInfo(endpoint, "host_id", value.value);
 +                    SystemKeyspace.updatePeerInfo(endpoint, "host_id", value.value);
                      break;
+                 case SCHEMA:
+                     MigrationManager.instance.scheduleSchemaPull(endpoint, epState);
              }
          }
      }


[09/10] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1

Posted by br...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1


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

Branch: refs/heads/trunk
Commit: ffc8dae6d21b4766f15135bac7dccdcf99b630f0
Parents: db3935e a421551
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:30:29 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:30:29 2014 -0500

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


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

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

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


[02/10] git commit: Schedule schema pull in onChange.

Posted by br...@apache.org.
Schedule schema pull in onChange.

Patch by brandonwilliams, reviewed by Russ Hatch for CASSANDRA-6971


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

Branch: refs/heads/cassandra-2.0
Commit: 1755f65a647da1816e2bd8229ba656a26cfcff1d
Parents: 514ce33
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:28:58 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:28:58 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b3a794f..dc8e6e0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,7 @@
  * Fix BatchlogManager#deleteBatch() use of millisecond timsestamps
    (CASSANDRA-6822)
  * Continue assassinating even if the endpoint vanishes (CASSANDRA-6787)
+ * Schedule schema pulls on change (CASSANDRA-6971)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/src/java/org/apache/cassandra/service/MigrationManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java
index 9f6113c..09caeb1 100644
--- a/src/java/org/apache/cassandra/service/MigrationManager.java
+++ b/src/java/org/apache/cassandra/service/MigrationManager.java
@@ -91,11 +91,15 @@ public class MigrationManager
     private static void maybeScheduleSchemaPull(final UUID theirVersion, final InetAddress endpoint)
     {
         if ((Schema.instance.getVersion() != null && Schema.instance.getVersion().equals(theirVersion)) || !shouldPullSchemaFrom(endpoint))
+        {
+            logger.debug("Not pulling schema because versions match or shouldPullSchemaFrom returned false");
             return;
+        }
 
         if (Schema.emptyVersion.equals(Schema.instance.getVersion()) || runtimeMXBean.getUptime() < MIGRATION_DELAY_IN_MS)
         {
             // If we think we may be bootstrapping or have recently started, submit MigrationTask immediately
+            logger.debug("Submitting migration task for {}", endpoint);
             submitMigrationTask(endpoint);
         }
         else
@@ -109,12 +113,18 @@ public class MigrationManager
                     // grab the latest version of the schema since it may have changed again since the initial scheduling
                     EndpointState epState = Gossiper.instance.getEndpointStateForEndpoint(endpoint);
                     if (epState == null)
+                    {
+                        logger.debug("epState vanished for {}, not submitting migration task", endpoint);
                         return;
+                    }
                     VersionedValue value = epState.getApplicationState(ApplicationState.SCHEMA);
                     UUID currentVersion = UUID.fromString(value.value);
                     if (Schema.instance.getVersion().equals(currentVersion))
+                    {
+                        logger.debug("not submitting migration task for {} because our versions match", endpoint);
                         return;
-
+                    }
+                    logger.debug("submitting migration task for {}", endpoint);
                     submitMigrationTask(endpoint);
                 }
             };

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/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 d5b7bb5..473ef49 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1377,6 +1377,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                 case HOST_ID:
                     SystemTable.updatePeerInfo(endpoint, "host_id", value.value);
                     break;
+                case SCHEMA:
+                    MigrationManager.instance.scheduleSchemaPull(endpoint, epState);
             }
         }
     }


[03/10] git commit: Schedule schema pull in onChange.

Posted by br...@apache.org.
Schedule schema pull in onChange.

Patch by brandonwilliams, reviewed by Russ Hatch for CASSANDRA-6971


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

Branch: refs/heads/cassandra-2.1
Commit: 1755f65a647da1816e2bd8229ba656a26cfcff1d
Parents: 514ce33
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:28:58 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:28:58 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b3a794f..dc8e6e0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,7 @@
  * Fix BatchlogManager#deleteBatch() use of millisecond timsestamps
    (CASSANDRA-6822)
  * Continue assassinating even if the endpoint vanishes (CASSANDRA-6787)
+ * Schedule schema pulls on change (CASSANDRA-6971)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/src/java/org/apache/cassandra/service/MigrationManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java
index 9f6113c..09caeb1 100644
--- a/src/java/org/apache/cassandra/service/MigrationManager.java
+++ b/src/java/org/apache/cassandra/service/MigrationManager.java
@@ -91,11 +91,15 @@ public class MigrationManager
     private static void maybeScheduleSchemaPull(final UUID theirVersion, final InetAddress endpoint)
     {
         if ((Schema.instance.getVersion() != null && Schema.instance.getVersion().equals(theirVersion)) || !shouldPullSchemaFrom(endpoint))
+        {
+            logger.debug("Not pulling schema because versions match or shouldPullSchemaFrom returned false");
             return;
+        }
 
         if (Schema.emptyVersion.equals(Schema.instance.getVersion()) || runtimeMXBean.getUptime() < MIGRATION_DELAY_IN_MS)
         {
             // If we think we may be bootstrapping or have recently started, submit MigrationTask immediately
+            logger.debug("Submitting migration task for {}", endpoint);
             submitMigrationTask(endpoint);
         }
         else
@@ -109,12 +113,18 @@ public class MigrationManager
                     // grab the latest version of the schema since it may have changed again since the initial scheduling
                     EndpointState epState = Gossiper.instance.getEndpointStateForEndpoint(endpoint);
                     if (epState == null)
+                    {
+                        logger.debug("epState vanished for {}, not submitting migration task", endpoint);
                         return;
+                    }
                     VersionedValue value = epState.getApplicationState(ApplicationState.SCHEMA);
                     UUID currentVersion = UUID.fromString(value.value);
                     if (Schema.instance.getVersion().equals(currentVersion))
+                    {
+                        logger.debug("not submitting migration task for {} because our versions match", endpoint);
                         return;
-
+                    }
+                    logger.debug("submitting migration task for {}", endpoint);
                     submitMigrationTask(endpoint);
                 }
             };

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/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 d5b7bb5..473ef49 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1377,6 +1377,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                 case HOST_ID:
                     SystemTable.updatePeerInfo(endpoint, "host_id", value.value);
                     break;
+                case SCHEMA:
+                    MigrationManager.instance.scheduleSchemaPull(endpoint, epState);
             }
         }
     }


[08/10] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1

Posted by br...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1


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

Branch: refs/heads/cassandra-2.1
Commit: ffc8dae6d21b4766f15135bac7dccdcf99b630f0
Parents: db3935e a421551
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:30:29 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:30:29 2014 -0500

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


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

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

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


[06/10] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

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


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

Branch: refs/heads/cassandra-2.0
Commit: a421551d1db7abe59b76cc7af93bacf282fb81c1
Parents: c6ec5d5 1755f65
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:30:11 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:30:11 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a421551d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 430e02c,dc8e6e0..a024427
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -55,50 -2,17 +55,51 @@@ Merged from 1.2
   * Fix BatchlogManager#deleteBatch() use of millisecond timsestamps
     (CASSANDRA-6822)
   * Continue assassinating even if the endpoint vanishes (CASSANDRA-6787)
+  * Schedule schema pulls on change (CASSANDRA-6971)
  
  
 -1.2.16
 - * Add UNLOGGED, COUNTER options to BATCH documentation (CASSANDRA-6816)
 - * add extra SSL cipher suites (CASSANDRA-6613)
 - * fix nodetool getsstables for blob PK (CASSANDRA-6803)
 +2.0.6
 + * Avoid race-prone second "scrub" of system keyspace (CASSANDRA-6797)
 + * Pool CqlRecordWriter clients by inetaddress rather than Range 
 +   (CASSANDRA-6665)
 + * Fix compaction_history timestamps (CASSANDRA-6784)
 + * Compare scores of full replica ordering in DES (CASSANDRA-6883)
 + * fix CME in SessionInfo updateProgress affecting netstats (CASSANDRA-6577)
 + * Allow repairing between specific replicas (CASSANDRA-6440)
 + * Allow per-dc enabling of hints (CASSANDRA-6157)
 + * Add compatibility for Hadoop 0.2.x (CASSANDRA-5201)
 + * Fix EstimatedHistogram races (CASSANDRA-6682)
 + * Failure detector correctly converts initial value to nanos (CASSANDRA-6658)
 + * Add nodetool taketoken to relocate vnodes (CASSANDRA-4445)
 + * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
 + * Improve nodetool cfhistograms formatting (CASSANDRA-6360)
 + * Expose bulk loading progress over JMX (CASSANDRA-4757)
 + * Correctly handle null with IF conditions and TTL (CASSANDRA-6623)
 + * Account for range/row tombstones in tombstone drop
 +   time histogram (CASSANDRA-6522)
 + * Stop CommitLogSegment.close() from calling sync() (CASSANDRA-6652)
 + * Make commitlog failure handling configurable (CASSANDRA-6364)
 + * Avoid overlaps in LCS (CASSANDRA-6688)
 + * Improve support for paginating over composites (CASSANDRA-4851)
 + * Fix count(*) queries in a mixed cluster (CASSANDRA-6707)
 + * Improve repair tasks(snapshot, differencing) concurrency (CASSANDRA-6566)
 + * Fix replaying pre-2.0 commit logs (CASSANDRA-6714)
 + * Add static columns to CQL3 (CASSANDRA-6561)
 + * Optimize single partition batch statements (CASSANDRA-6737)
 + * Disallow post-query re-ordering when paging (CASSANDRA-6722)
 + * Fix potential paging bug with deleted columns (CASSANDRA-6748)
 + * Fix NPE on BulkLoader caused by losing StreamEvent (CASSANDRA-6636)
 + * Fix truncating compression metadata (CASSANDRA-6791)
 + * Fix UPDATE updating PRIMARY KEY columns implicitly (CASSANDRA-6782)
 + * Fix IllegalArgumentException when updating from 1.2 with SuperColumns
 +   (CASSANDRA-6733)
 + * FBUtilities.singleton() should use the CF comparator (CASSANDRA-6778)
 + * Fix CQLSStableWriter.addRow(Map<String, Object>) (CASSANDRA-6526)
 + * Fix HSHA server introducing corrupt data (CASSANDRA-6285)
 + * Fix CAS conditions for COMPACT STORAGE tables (CASSANDRA-6813)
 +Merged from 1.2:
   * Add CMSClassUnloadingEnabled JVM option (CASSANDRA-6541)
   * Catch memtable flush exceptions during shutdown (CASSANDRA-6735)
 - * Don't attempt cross-dc forwarding in mixed-version cluster with 1.1 
 -   (CASSANDRA-6732)
   * Fix broken streams when replacing with same IP (CASSANDRA-6622)
   * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
   * Fix partition and range deletes not triggering flush (CASSANDRA-6655)

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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a421551d/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageService.java
index 6ddfd80,473ef49..2406603
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@@ -1380,23 -1360,25 +1380,25 @@@ public class StorageService extends Not
              switch (state)
              {
                  case RELEASE_VERSION:
 -                    SystemTable.updatePeerInfo(endpoint, "release_version", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "release_version", quote(value.value));
                      break;
                  case DC:
 -                    SystemTable.updatePeerInfo(endpoint, "data_center", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "data_center", quote(value.value));
                      break;
                  case RACK:
 -                    SystemTable.updatePeerInfo(endpoint, "rack", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "rack", quote(value.value));
                      break;
                  case RPC_ADDRESS:
 -                    SystemTable.updatePeerInfo(endpoint, "rpc_address", quote(value.value));
 +                    SystemKeyspace.updatePeerInfo(endpoint, "rpc_address", quote(value.value));
                      break;
                  case SCHEMA:
 -                    SystemTable.updatePeerInfo(endpoint, "schema_version", value.value);
 +                    SystemKeyspace.updatePeerInfo(endpoint, "schema_version", value.value);
                      break;
                  case HOST_ID:
 -                    SystemTable.updatePeerInfo(endpoint, "host_id", value.value);
 +                    SystemKeyspace.updatePeerInfo(endpoint, "host_id", value.value);
                      break;
+                 case SCHEMA:
+                     MigrationManager.instance.scheduleSchemaPull(endpoint, epState);
              }
          }
      }


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

Posted by br...@apache.org.
Merge branch 'cassandra-2.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/05a45757
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/05a45757
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/05a45757

Branch: refs/heads/trunk
Commit: 05a457574ccdc2309231e27bf864e3f990bde21a
Parents: cd74a6d ffc8dae
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:30:43 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:30:43 2014 -0500

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


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05a45757/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------


[04/10] git commit: Schedule schema pull in onChange.

Posted by br...@apache.org.
Schedule schema pull in onChange.

Patch by brandonwilliams, reviewed by Russ Hatch for CASSANDRA-6971


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

Branch: refs/heads/trunk
Commit: 1755f65a647da1816e2bd8229ba656a26cfcff1d
Parents: 514ce33
Author: Brandon Williams <br...@apache.org>
Authored: Tue Apr 8 14:28:58 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Apr 8 14:28:58 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b3a794f..dc8e6e0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -2,6 +2,7 @@
  * Fix BatchlogManager#deleteBatch() use of millisecond timsestamps
    (CASSANDRA-6822)
  * Continue assassinating even if the endpoint vanishes (CASSANDRA-6787)
+ * Schedule schema pulls on change (CASSANDRA-6971)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/src/java/org/apache/cassandra/service/MigrationManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/MigrationManager.java b/src/java/org/apache/cassandra/service/MigrationManager.java
index 9f6113c..09caeb1 100644
--- a/src/java/org/apache/cassandra/service/MigrationManager.java
+++ b/src/java/org/apache/cassandra/service/MigrationManager.java
@@ -91,11 +91,15 @@ public class MigrationManager
     private static void maybeScheduleSchemaPull(final UUID theirVersion, final InetAddress endpoint)
     {
         if ((Schema.instance.getVersion() != null && Schema.instance.getVersion().equals(theirVersion)) || !shouldPullSchemaFrom(endpoint))
+        {
+            logger.debug("Not pulling schema because versions match or shouldPullSchemaFrom returned false");
             return;
+        }
 
         if (Schema.emptyVersion.equals(Schema.instance.getVersion()) || runtimeMXBean.getUptime() < MIGRATION_DELAY_IN_MS)
         {
             // If we think we may be bootstrapping or have recently started, submit MigrationTask immediately
+            logger.debug("Submitting migration task for {}", endpoint);
             submitMigrationTask(endpoint);
         }
         else
@@ -109,12 +113,18 @@ public class MigrationManager
                     // grab the latest version of the schema since it may have changed again since the initial scheduling
                     EndpointState epState = Gossiper.instance.getEndpointStateForEndpoint(endpoint);
                     if (epState == null)
+                    {
+                        logger.debug("epState vanished for {}, not submitting migration task", endpoint);
                         return;
+                    }
                     VersionedValue value = epState.getApplicationState(ApplicationState.SCHEMA);
                     UUID currentVersion = UUID.fromString(value.value);
                     if (Schema.instance.getVersion().equals(currentVersion))
+                    {
+                        logger.debug("not submitting migration task for {} because our versions match", endpoint);
                         return;
-
+                    }
+                    logger.debug("submitting migration task for {}", endpoint);
                     submitMigrationTask(endpoint);
                 }
             };

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1755f65a/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 d5b7bb5..473ef49 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1377,6 +1377,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                 case HOST_ID:
                     SystemTable.updatePeerInfo(endpoint, "host_id", value.value);
                     break;
+                case SCHEMA:
+                    MigrationManager.instance.scheduleSchemaPull(endpoint, epState);
             }
         }
     }