From a0fabc5d2b1451cd35bf151df28c6cedff494f46 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Sun, 14 Nov 2010 16:55:59 +0000 Subject: [PATCH] merge from 0.6 git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1035021 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 5 +- bin/clustertool.bat | 67 +++++++++++++++++++ bin/config-converter.bat | 67 +++++++++++++++++++ bin/schematool.bat | 67 +++++++++++++++++++ bin/sstablekeys.bat | 61 +++++++++++++++++ .../service/RangeSliceVerbHandler.java | 5 ++ 6 files changed, 271 insertions(+), 1 deletion(-) create mode 100644 bin/clustertool.bat create mode 100644 bin/config-converter.bat create mode 100644 bin/schematool.bat create mode 100644 bin/sstablekeys.bat diff --git a/CHANGES.txt b/CHANGES.txt index 08ccdfbcde..ea338b4b71 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,8 @@ dev +0.6.9 + * add clustertool, config-converter, sstablekeys, and schematool + Windows .bat files (CASSANDRA-1723) + * reject range queries received during bootstrap (CASSANDRA-1739) * Update windows .bat files to work outside of main Cassandra directory (CASSANDRA-1713) * log threshold causing memtable flush (CASSANDRA-1675) @@ -21,7 +25,6 @@ dev * add --skip-keys option to stress.py (CASSANDRA-1696) * improve cli handling of non-string keys and column names (CASSANDRA-1701, -1693) - * enable skipping bad rows on LazilyCompacted path (CASSANDRA-1702) * r/m extra subcomparator line in cli keyspaces output (CASSANDRA-1712) * add read repair chance to cli "show keyspaces" * upgrade to ConcurrentLinkedHashMap 1.1 (CASSANDRA-975) diff --git a/bin/clustertool.bat b/bin/clustertool.bat new file mode 100644 index 0000000000..06ca498ee8 --- /dev/null +++ b/bin/clustertool.bat @@ -0,0 +1,67 @@ +@REM +@REM Licensed to the Apache Software Foundation (ASF) under one or more +@REM contributor license agreements. See the NOTICE file distributed with +@REM this work for additional information regarding copyright ownership. +@REM The ASF licenses this file to You under the Apache License, Version 2.0 +@REM (the "License"); you may not use this file except in compliance with +@REM the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, software +@REM distributed under the License is distributed on an "AS IS" BASIS, +@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@REM See the License for the specific language governing permissions and +@REM limitations under the License. + +@echo off +if "%OS%" == "Windows_NT" setlocal + +if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%~dp0.. +if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF=%CASSANDRA_HOME%\conf +if NOT DEFINED CASSANDRA_MAIN set CASSANDRA_MAIN=org.apache.cassandra.tools.ClusterCmd +if NOT DEFINED JAVA_HOME goto err + +REM ***** JAVA options ***** +set JAVA_OPTS=^ + -Dlog4j.configuration=log4j-tools.properties + +REM ***** CLASSPATH library setting ***** + +REM Ensure that any user defined CLASSPATH variables are not used on startup +set CLASSPATH=%CASSANDRA_HOME%\conf + +REM For each jar in the CASSANDRA_HOME lib directory call append to build the CLASSPATH variable. +for %%i in (%CASSANDRA_HOME%\lib\*.jar) do call :append %%~fi +goto okClasspath + +:append +set CLASSPATH=%CLASSPATH%;%1%2 +goto :eof + +:okClasspath +REM Include the build\classes directory so it works in development +set CASSANDRA_CLASSPATH=%CLASSPATH%;%CASSANDRA_HOME%\build\classes;%CASSANDRA_CONF% + +set CASSANDRA_PARAMS= +set TOOLS_PARAMS= + +FOR %%A IN (%*) DO call :appendToolsParams %%A + +goto runTool + +:appendToolsParams +set TOOLS_PARAMS=%TOOLS_PARAMS% %1 +goto :eof + +:runTool +"%JAVA_HOME%\bin\java" %JAVA_OPTS% %CASSANDRA_PARAMS% -cp "%CASSANDRA_CLASSPATH%" "%CASSANDRA_MAIN%" %TOOLS_PARAMS% +goto finally + +:err +echo JAVA_HOME environment variable must be set! +pause + +:finally + +ENDLOCAL diff --git a/bin/config-converter.bat b/bin/config-converter.bat new file mode 100644 index 0000000000..e89096c02a --- /dev/null +++ b/bin/config-converter.bat @@ -0,0 +1,67 @@ +@REM +@REM Licensed to the Apache Software Foundation (ASF) under one or more +@REM contributor license agreements. See the NOTICE file distributed with +@REM this work for additional information regarding copyright ownership. +@REM The ASF licenses this file to You under the Apache License, Version 2.0 +@REM (the "License"); you may not use this file except in compliance with +@REM the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, software +@REM distributed under the License is distributed on an "AS IS" BASIS, +@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@REM See the License for the specific language governing permissions and +@REM limitations under the License. + +@echo off +if "%OS%" == "Windows_NT" setlocal + +if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%~dp0.. +if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF=%CASSANDRA_HOME%\conf +if NOT DEFINED CASSANDRA_MAIN set CASSANDRA_MAIN=org.apache.cassandra.config.Converter +if NOT DEFINED JAVA_HOME goto err + +REM ***** JAVA options ***** +set JAVA_OPTS=^ + -Dlog4j.configuration=log4j-tools.properties + +REM ***** CLASSPATH library setting ***** + +REM Ensure that any user defined CLASSPATH variables are not used on startup +set CLASSPATH=%CASSANDRA_HOME%\conf + +REM For each jar in the CASSANDRA_HOME lib directory call append to build the CLASSPATH variable. +for %%i in (%CASSANDRA_HOME%\lib\*.jar) do call :append %%~fi +goto okClasspath + +:append +set CLASSPATH=%CLASSPATH%;%1%2 +goto :eof + +:okClasspath +REM Include the build\classes directory so it works in development +set CASSANDRA_CLASSPATH=%CLASSPATH%;%CASSANDRA_HOME%\build\classes;%CASSANDRA_CONF% + +set CASSANDRA_PARAMS= +set TOOLS_PARAMS= + +FOR %%A IN (%*) DO call :appendToolsParams %%A + +goto runTool + +:appendToolsParams +set TOOLS_PARAMS=%TOOLS_PARAMS% %1 +goto :eof + +:runTool +"%JAVA_HOME%\bin\java" %JAVA_OPTS% %CASSANDRA_PARAMS% -cp "%CASSANDRA_CLASSPATH%" "%CASSANDRA_MAIN%" %TOOLS_PARAMS% +goto finally + +:err +echo JAVA_HOME environment variable must be set! +pause + +:finally + +ENDLOCAL diff --git a/bin/schematool.bat b/bin/schematool.bat new file mode 100644 index 0000000000..56f4393dda --- /dev/null +++ b/bin/schematool.bat @@ -0,0 +1,67 @@ +@REM +@REM Licensed to the Apache Software Foundation (ASF) under one or more +@REM contributor license agreements. See the NOTICE file distributed with +@REM this work for additional information regarding copyright ownership. +@REM The ASF licenses this file to You under the Apache License, Version 2.0 +@REM (the "License"); you may not use this file except in compliance with +@REM the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, software +@REM distributed under the License is distributed on an "AS IS" BASIS, +@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@REM See the License for the specific language governing permissions and +@REM limitations under the License. + +@echo off +if "%OS%" == "Windows_NT" setlocal + +if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%~dp0.. +if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF=%CASSANDRA_HOME%\conf +if NOT DEFINED CASSANDRA_MAIN set CASSANDRA_MAIN=org.apache.cassandra.tools.SchemaTool +if NOT DEFINED JAVA_HOME goto err + +REM ***** JAVA options ***** +set JAVA_OPTS=^ + -Dlog4j.configuration=log4j-tools.properties + +REM ***** CLASSPATH library setting ***** + +REM Ensure that any user defined CLASSPATH variables are not used on startup +set CLASSPATH=%CASSANDRA_HOME%\conf + +REM For each jar in the CASSANDRA_HOME lib directory call append to build the CLASSPATH variable. +for %%i in (%CASSANDRA_HOME%\lib\*.jar) do call :append %%~fi +goto okClasspath + +:append +set CLASSPATH=%CLASSPATH%;%1%2 +goto :eof + +:okClasspath +REM Include the build\classes directory so it works in development +set CASSANDRA_CLASSPATH=%CLASSPATH%;%CASSANDRA_HOME%\build\classes;%CASSANDRA_CONF% + +set CASSANDRA_PARAMS= +set TOOLS_PARAMS= + +FOR %%A IN (%*) DO call :appendToolsParams %%A + +goto runTool + +:appendToolsParams +set TOOLS_PARAMS=%TOOLS_PARAMS% %1 +goto :eof + +:runTool +"%JAVA_HOME%\bin\java" %JAVA_OPTS% %CASSANDRA_PARAMS% -cp "%CASSANDRA_CLASSPATH%" "%CASSANDRA_MAIN%" %TOOLS_PARAMS% +goto finally + +:err +echo JAVA_HOME environment variable must be set! +pause + +:finally + +ENDLOCAL diff --git a/bin/sstablekeys.bat b/bin/sstablekeys.bat new file mode 100644 index 0000000000..f2533f91d0 --- /dev/null +++ b/bin/sstablekeys.bat @@ -0,0 +1,61 @@ +@REM +@REM Licensed to the Apache Software Foundation (ASF) under one or more +@REM contributor license agreements. See the NOTICE file distributed with +@REM this work for additional information regarding copyright ownership. +@REM The ASF licenses this file to You under the Apache License, Version 2.0 +@REM (the "License"); you may not use this file except in compliance with +@REM the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, software +@REM distributed under the License is distributed on an "AS IS" BASIS, +@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@REM See the License for the specific language governing permissions and +@REM limitations under the License. + +@echo off +if "%OS%" == "Windows_NT" setlocal + +if NOT DEFINED CASSANDRA_HOME set CASSANDRA_HOME=%~dp0.. +if NOT DEFINED CASSANDRA_CONF set CASSANDRA_CONF=%CASSANDRA_HOME%\conf +if NOT DEFINED CASSANDRA_MAIN set CASSANDRA_MAIN=org.apache.cassandra.tools.SSTableExport +if NOT DEFINED JAVA_HOME goto err + +REM ***** JAVA options ***** +set JAVA_OPTS=^ + -Dlog4j.configuration=log4j-tools.properties + +REM ***** CLASSPATH library setting ***** + +REM Ensure that any user defined CLASSPATH variables are not used on startup +set CLASSPATH=%CASSANDRA_HOME%\conf + +REM For each jar in the CASSANDRA_HOME lib directory call append to build the CLASSPATH variable. +for %%i in (%CASSANDRA_HOME%\lib\*.jar) do call :append %%~fi +goto okClasspath + +:append +set CLASSPATH=%CLASSPATH%;%1%2 +goto :eof + +:okClasspath +REM Include the build\classes directory so it works in development +set CASSANDRA_CLASSPATH=%CLASSPATH%;%CASSANDRA_HOME%\build\classes;%CASSANDRA_CONF% + +set CASSANDRA_PARAMS= +set TOOLS_PARAMS= + +goto runTool + +:runTool +"%JAVA_HOME%\bin\java" %JAVA_OPTS% %CASSANDRA_PARAMS% -cp "%CASSANDRA_CLASSPATH%" "%CASSANDRA_MAIN%" %1 -e +goto finally + +:err +echo JAVA_HOME environment variable must be set! +pause + +:finally + +ENDLOCAL diff --git a/src/java/org/apache/cassandra/service/RangeSliceVerbHandler.java b/src/java/org/apache/cassandra/service/RangeSliceVerbHandler.java index 1d8a7e72ca..7b2014e281 100644 --- a/src/java/org/apache/cassandra/service/RangeSliceVerbHandler.java +++ b/src/java/org/apache/cassandra/service/RangeSliceVerbHandler.java @@ -38,6 +38,11 @@ public class RangeSliceVerbHandler implements IVerbHandler { try { + if (StorageService.instance.isBootstrapMode()) + { + /* Don't service reads! */ + throw new RuntimeException("Cannot service reads while bootstrapping!"); + } RangeSliceCommand command = RangeSliceCommand.read(message); ColumnFamilyStore cfs = Table.open(command.keyspace).getColumnFamilyStore(command.column_family); RangeSliceReply reply = new RangeSliceReply(cfs.getRangeSlice(command.super_column,