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 2011/07/15 22:54:34 UTC
svn commit: r1147316 - in /cassandra/branches/cassandra-0.8: ./ contrib/
interface/thrift/gen-java/org/apache/cassandra/thrift/
src/java/org/apache/cassandra/cli/ src/java/org/apache/cassandra/config/
src/java/org/apache/cassandra/service/ src/java/org...
Author: brandonwilliams
Date: Fri Jul 15 20:54:32 2011
New Revision: 1147316
URL: http://svn.apache.org/viewvc?rev=1147316&view=rev
Log:
Merge from 0.7
Modified:
cassandra/branches/cassandra-0.8/ (props changed)
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/contrib/ (props changed)
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed)
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed)
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed)
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed)
cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed)
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageServiceMBean.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java
Propchange: cassandra/branches/cassandra-0.8/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 15 20:54:32 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7:1026516-1144407
+/cassandra/branches/cassandra-0.7:1026516-1147315
/cassandra/branches/cassandra-0.7.0:1053690-1055654
/cassandra/branches/cassandra-0.8:1090934-1125013,1125041
/cassandra/branches/cassandra-0.8.0:1125021-1130369
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1147316&r1=1147315&r2=1147316&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Fri Jul 15 20:54:32 2011
@@ -25,6 +25,7 @@
* decrease HH page size (CASSANDRA-2832)
* reset cli keyspace after dropping the current one (CASSANDRA-2763)
* add KeyRange option to Hadoop inputformat (CASSANDRA-1125)
+ * support spaces in path to log4j configuration (CASSANDRA-2383)
0.8.1
Propchange: cassandra/branches/cassandra-0.8/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 15 20:54:32 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1144407
+/cassandra/branches/cassandra-0.7/contrib:1026516-1147315
/cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125041
/cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 15 20:54:32 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1144407
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1147315
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125041
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369
Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 15 20:54:32 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1144407
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1147315
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125041
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369
Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 15 20:54:32 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1144407
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1147315
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125041
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369
Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 15 20:54:32 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1144407
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1147315
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125041
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369
Propchange: cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jul 15 20:54:32 2011
@@ -1,5 +1,5 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1144407
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1147315
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125041
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java?rev=1147316&r1=1147315&r2=1147316&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cli/CliClient.java Fri Jul 15 20:54:32 2011
@@ -409,6 +409,12 @@ public class CliClient
: columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef);
// table.cf['key']['column']
+ assert columnTree != null;
+
+ byte[] columnNameBytes = (columnTree.getType() == CliParser.FUNCTION_CALL)
+ ? convertValueByFunction(columnTree, null, null).array()
+ : columnNameAsByteArray(CliCompiler.getColumn(columnFamilySpec, 0), cfDef);
+
if (isSuper)
superColumnName = columnNameBytes;
else
@@ -1226,7 +1232,7 @@ public class CliClient
cfDef.setKey_cache_save_period_in_seconds(Integer.parseInt(mValue));
break;
case DEFAULT_VALIDATION_CLASS:
- cfDef.setDefault_validation_class(mValue);
+ cfDef.setDefault_validation_class(CliUtils.unescapeSQLString(mValue));
break;
case MIN_COMPACTION_THRESHOLD:
cfDef.setMin_compaction_threshold(Integer.parseInt(mValue));
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1147316&r1=1147315&r2=1147316&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Fri Jul 15 20:54:32 2011
@@ -100,7 +100,7 @@ public class DatabaseDescriptor
try
{
url = new URL(configUrl);
- url.openStream(); // catches well-formed but bogus URLs
+ url.openStream().close(); // catches well-formed but bogus URLs
}
catch (Exception e)
{
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java?rev=1147316&r1=1147315&r2=1147316&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java Fri Jul 15 20:54:32 2011
@@ -74,12 +74,30 @@ public abstract class AbstractCassandraD
}
catch (MalformedURLException ex)
{
- // load from the classpath.
+ // then try loading from the classpath.
configLocation = AbstractCassandraDaemon.class.getClassLoader().getResource(config);
- if (configLocation == null)
- throw new RuntimeException("Couldn't figure out log4j configuration.");
}
- PropertyConfigurator.configureAndWatch(configLocation.getFile(), 10000);
+
+ if (configLocation == null)
+ throw new RuntimeException("Couldn't figure out log4j configuration: "+config);
+
+ // Now convert URL to a filename
+ String configFileName = null;
+ try
+ {
+ // first try URL.getFile() which works for opaque URLs (file:foo) and paths without spaces
+ configFileName = configLocation.getFile();
+ File configFile = new File(configFileName);
+ // then try alternative approach which works for all hierarchical URLs with or without spaces
+ if (!configFile.exists())
+ configFileName = new File(configLocation.toURI()).getCanonicalPath();
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Couldn't convert log4j configuration location to a valid file", e);
+ }
+
+ PropertyConfigurator.configureAndWatch(configFileName, 10000);
org.apache.log4j.Logger.getLogger(AbstractCassandraDaemon.class).info("Logging initialized");
}
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1147316&r1=1147315&r2=1147316&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Fri Jul 15 20:54:32 2011
@@ -1298,6 +1298,26 @@ public class StorageService implements I
return stringify(Gossiper.instance.getUnreachableMembers());
}
+ public String[] getAllDataFileLocations()
+ {
+ return DatabaseDescriptor.getAllDataFileLocations();
+ }
+
+ public String[] getAllDataFileLocationsForTable(String table)
+ {
+ return DatabaseDescriptor.getAllDataFileLocationsForTable(table);
+ }
+
+ public String getCommitLogLocation()
+ {
+ return DatabaseDescriptor.getCommitLogLocation();
+ }
+
+ public String getSavedCachesLocation()
+ {
+ return DatabaseDescriptor.getSavedCachesLocation();
+ }
+
private List<String> stringify(Iterable<InetAddress> endpoints)
{
List<String> stringEndpoints = new ArrayList<String>();
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageServiceMBean.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageServiceMBean.java?rev=1147316&r1=1147315&r2=1147316&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageServiceMBean.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageServiceMBean.java Fri Jul 15 20:54:32 2011
@@ -86,6 +86,31 @@ public interface StorageServiceMBean
public String getReleaseVersion();
/**
+ * Get the list of all data file locations from conf
+ * @return String array of all locations
+ */
+ public String[] getAllDataFileLocations();
+
+ /**
+ * Get the list of data file locations for a given keyspace
+ * @param keyspace the keyspace to get locatiosn for.
+ * @return String array of all locations
+ */
+ public String[] getAllDataFileLocationsForTable(String table);
+
+ /**
+ * Get location of the commit log
+ * @return a string path
+ */
+ public String getCommitLogLocation();
+
+ /**
+ * Get location of the saved caches dir
+ * @return a string path
+ */
+ public String getSavedCachesLocation();
+
+ /**
* Retrieve a map of range to end points that describe the ring topology
* of a Cassandra cluster.
*
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=1147316&r1=1147315&r2=1147316&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/tools/NodeCmd.java Fri Jul 15 20:54:32 2011
@@ -603,17 +603,19 @@ public class NodeCmd
switch (command)
{
- case RING : nodeCmd.printRing(System.out); break;
- case INFO : nodeCmd.printInfo(System.out); break;
- case CFSTATS : nodeCmd.printColumnFamilyStats(System.out); break;
- case DECOMMISSION : probe.decommission(); break;
- case TPSTATS : nodeCmd.printThreadPoolStats(System.out); break;
- case VERSION : nodeCmd.printReleaseVersion(System.out); break;
- case COMPACTIONSTATS : nodeCmd.printCompactionStats(System.out); break;
- case DISABLEGOSSIP : probe.stopGossiping(); break;
- case ENABLEGOSSIP : probe.startGossiping(); break;
- case DISABLETHRIFT : probe.stopThriftServer(); break;
- case ENABLETHRIFT : probe.startThriftServer(); break;
+ case RING : complainNonzeroArgs(arguments, command); nodeCmd.printRing(System.out); break;
+ case INFO : complainNonzeroArgs(arguments, command); nodeCmd.printInfo(System.out); break;
+ case CFSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printColumnFamilyStats(System.out); break;
+ case DECOMMISSION : complainNonzeroArgs(arguments, command); probe.decommission(); break;
+ case LOADBALANCE : complainNonzeroArgs(arguments, command); probe.loadBalance(); break;
+ case CLEARSNAPSHOT : complainNonzeroArgs(arguments, command); probe.clearSnapshot(); break;
+ case TPSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printThreadPoolStats(System.out); break;
+ case VERSION : complainNonzeroArgs(arguments, command); nodeCmd.printReleaseVersion(System.out); break;
+ case COMPACTIONSTATS : complainNonzeroArgs(arguments, command); nodeCmd.printCompactionStats(System.out); break;
+ case DISABLEGOSSIP : complainNonzeroArgs(arguments, command); probe.stopGossiping(); break;
+ case ENABLEGOSSIP : complainNonzeroArgs(arguments, command); probe.startGossiping(); break;
+ case DISABLETHRIFT : complainNonzeroArgs(arguments, command); probe.stopThriftServer(); break;
+ case ENABLETHRIFT : complainNonzeroArgs(arguments, command); probe.startThriftServer(); break;
case STATUSTHRIFT : nodeCmd.printIsThriftServerRunning(System.out); break;
case DRAIN :
@@ -721,24 +723,12 @@ public class NodeCmd
System.exit(3);
}
- private static void handleSnapshots(NodeCommand nc, String tag, String[] cmdArgs, NodeProbe probe) throws InterruptedException, IOException
+ private static void complainNonzeroArgs(String[] args, NodeCommand cmd)
{
- int length = cmdArgs.length > 1 ? cmdArgs.length - 1 : 0;
- String[] keyspaces = new String[length];
- for (int i = 0; i < keyspaces.length; i++)
- keyspaces[i] = cmdArgs[i + 1];
-
- switch (nc)
- {
- case SNAPSHOT :
- if (tag == null || tag.equals(""))
- tag = new Long(System.currentTimeMillis()).toString();
- probe.takeSnapshot(tag, keyspaces);
- System.out.println("Snapshot directory: " + tag);
- break;
- case CLEARSNAPSHOT :
- probe.clearSnapshot(tag, keyspaces);
- break;
+ if (args.length > 0) {
+ System.err.println("Too many arguments for command '"+cmd.toString()+"'.");
+ printUsage();
+ System.exit(1);
}
}