Author: jbellis
Date: Tue Mar 16 23:34:16 2010
New Revision: 924050
URL: http://svn.apache.org/viewvc?rev=924050&view=rev
Log:
merge from 0.6
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/bin/cassandra.bat
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
(props changed)
cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java
cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 16 23:34:16 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6:922689-923409
+/cassandra/branches/cassandra-0.6:922689-924049
/incubator/cassandra/branches/cassandra-0.3:774578-796573
/incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5:888872-915439
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=924050&r1=924049&r2=924050&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Tue Mar 16 23:34:16 2010
@@ -35,6 +35,8 @@ dev
* track row stats per CF at compaction time (CASSANDRA-870)
* disallow CommitLogDirectory matching a DataFileDirectory (CASSANDRA-888)
* default key cache size is 200k entries, changed from 10% (CASSANDRA-863)
+ * add -Dcassandra-foreground=yes to cassandra.bat
+ * exit if cluster name is changed unexpectedly (CASSANDRA-769)
0.6.0-beta1/beta2
Modified: cassandra/trunk/bin/cassandra.bat
URL:
http://svn.apache.org/viewvc/cassandra/trunk/bin/cassandra.bat?rev=924050&r1=924049&r2=924050&view=diff
==============================================================================
--- cassandra/trunk/bin/cassandra.bat (original)
+++ cassandra/trunk/bin/cassandra.bat Tue Mar 16 23:34:16 2010
@@ -59,7 +59,7 @@ goto :eof
:okClasspath
REM Include the build\classes directory so it works in development
set CASSANDRA_CLASSPATH=%CLASSPATH%;%CASSANDRA_HOME%\build\classes
-set CASSANDRA_PARAMS=-Dcassandra -Dstorage-config="%CASSANDRA_CONF%"
+set CASSANDRA_PARAMS=-Dcassandra -Dstorage-config="%CASSANDRA_CONF%"
-Dcassandra-foreground=yes
goto runDaemon
:runDaemon
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 16 23:34:16 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-923409
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-924049
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Cassandra.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Cassandra.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 16 23:34:16 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-923409
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-924049
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Column.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Column.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 16 23:34:16 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-923409
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-924049
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 16 23:34:16 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-923409
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-924049
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 16 23:34:16 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-923409
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-924049
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:888872-903502
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java?rev=924050&r1=924049&r2=924050&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java Tue Mar
16 23:34:16 2010
@@ -54,6 +54,7 @@ public class SystemTable
private static final byte[] BOOTSTRAP = utf8("B");
private static final byte[] TOKEN = utf8("Token");
private static final byte[] GENERATION = utf8("Generation");
+ private static final byte[] CLUSTERNAME = utf8("ClusterName");
private static StorageMetadata metadata;
private static byte[] utf8(String str)
@@ -128,6 +129,7 @@ public class SystemTable
SortedSet<byte[]> columns = new TreeSet<byte[]>(new BytesType());
columns.add(TOKEN);
columns.add(GENERATION);
+ columns.add(CLUSTERNAME);
QueryFilter filter = new NamesQueryFilter(LOCATION_KEY, new
QueryPath(STATUS_CF), columns);
ColumnFamily cf =
table.getColumnFamilyStore(STATUS_CF).getColumnFamily(filter);
@@ -147,13 +149,16 @@ public class SystemTable
// but it's as close as sanely possible
int generation = (int) (System.currentTimeMillis() / 1000);
+ logger.info("Saved ClusterName not found. Using " +
DatabaseDescriptor.getClusterName());
+
RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, LOCATION_KEY);
cf = ColumnFamily.create(Table.SYSTEM_TABLE,
SystemTable.STATUS_CF);
cf.addColumn(new Column(TOKEN,
p.getTokenFactory().toByteArray(token)));
cf.addColumn(new Column(GENERATION,
FBUtilities.toByteArray(generation)));
+ cf.addColumn(new Column(CLUSTERNAME,
DatabaseDescriptor.getClusterName().getBytes()));
rm.add(cf);
rm.apply();
- metadata = new StorageMetadata(token, generation);
+ metadata = new StorageMetadata(token, generation,
DatabaseDescriptor.getClusterName().getBytes());
return metadata;
}
@@ -168,14 +173,29 @@ public class SystemTable
IColumn generation = cf.getColumn(GENERATION);
assert generation != null : cf;
int gen = Math.max(FBUtilities.byteArrayToInt(generation.value()) + 1,
(int) (System.currentTimeMillis() / 1000));
-
+
+ IColumn cluster = cf.getColumn(CLUSTERNAME);
+
RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, LOCATION_KEY);
cf = ColumnFamily.create(Table.SYSTEM_TABLE, SystemTable.STATUS_CF);
Column generation2 = new Column(GENERATION,
FBUtilities.toByteArray(gen), generation.timestamp() + 1);
cf.addColumn(generation2);
+ byte[] cname;
+ if (cluster != null)
+ {
+ logger.info("Saved ClusterName found: " + new
String(cluster.value()));
+ cname = cluster.value();
+ }
+ else
+ {
+ Column clustername = new Column(CLUSTERNAME,
DatabaseDescriptor.getClusterName().getBytes());
+ cf.addColumn(clustername);
+ cname = DatabaseDescriptor.getClusterName().getBytes();
+ logger.info("Saved ClusterName not found. Using " +
DatabaseDescriptor.getClusterName());
+ }
rm.add(cf);
rm.apply();
- metadata = new StorageMetadata(token, gen);
+ metadata = new StorageMetadata(token, gen, cname);
return metadata;
}
@@ -247,11 +267,13 @@ public class SystemTable
{
private Token token;
private int generation;
+ private byte[] cluster;
- StorageMetadata(Token storageId, int generation)
+ StorageMetadata(Token storageId, int generation, byte[] clustername)
{
token = storageId;
this.generation = generation;
+ cluster = clustername;
}
public Token getToken()
@@ -268,5 +290,10 @@ public class SystemTable
{
return generation;
}
+
+ public byte[] getClusterName()
+ {
+ return cluster;
+ }
}
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java?rev=924050&r1=924049&r2=924050&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java Tue Mar 16
23:34:16 2010
@@ -892,6 +892,10 @@ public class Gossiper implements IFailur
{
Gossiper.instance.join(from);
}
+ else
+ {
+ logger_.warn("ClusterName mismatch from " + from + " " +
joinMessage.clusterId_ + "!=" + DatabaseDescriptor.getClusterName());
+ }
}
}
@@ -913,7 +917,10 @@ public class Gossiper implements IFailur
GossipDigestSynMessage gDigestMessage =
GossipDigestSynMessage.serializer().deserialize(dis);
/* If the message is from a different cluster throw it away. */
if (
!gDigestMessage.clusterId_.equals(DatabaseDescriptor.getClusterName()) )
+ {
+ logger_.warn("ClusterName mismatch from " + from + " " +
gDigestMessage.clusterId_ + "!=" + DatabaseDescriptor.getClusterName());
return;
+ }
List<GossipDigest> gDigestList =
gDigestMessage.getGossipDigests();
/* Notify the Failure Detector */
Modified:
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=924050&r1=924049&r2=924050&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
Tue Mar 16 23:34:16 2010
@@ -303,6 +303,15 @@ public class StorageService implements I
initialized = true;
isClientMode = false;
storageMetadata_ = SystemTable.initMetadata();
+
+ // be certain that the recorded clustername matches what the user
specified
+ if
(!(Arrays.equals(storageMetadata_.getClusterName(),DatabaseDescriptor.getClusterName().getBytes())))
+ {
+ logger_.error("ClusterName mismatch: " + new
String(storageMetadata_.getClusterName()) + " != " +
+ DatabaseDescriptor.getClusterName());
+ System.exit(3);
+ }
+
DatabaseDescriptor.createAllDirectories();
GCInspector.instance.start();
logger_.info("Starting up server gossip");
Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=924050&r1=924049&r2=924050&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java Tue Mar 16
23:34:16 2010
@@ -356,6 +356,10 @@ public class NodeCmd {
outs.println("\t\tRow cache: disabled");
}
+ outs.println("\t\tCompacted row minimum size: " +
cfstore.getMinRowCompactedSize());
+ outs.println("\t\tCompacted row maximum size: " +
cfstore.getMaxRowCompactedSize());
+ outs.println("\t\tCompacted row mean size: " +
cfstore.getMeanRowCompactedSize());
+
outs.println("");
}
outs.println("----------------");