Merge branch 'cassandra-2.0' into trunk
Conflicts:
src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
src/java/org/apache/cassandra/db/ColumnFamilyStore.java
tools/stress/src/org/apache/cassandra/stress/Session.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d8e9bf17
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d8e9bf17
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d8e9bf17
Branch: refs/heads/trunk
Commit: d8e9bf172f459caed01fadd90be40a9f0857d60b
Parents: 4b54b8a f6a7a5b
Author: Jason Brown <[email protected]>
Authored: Fri Jan 31 05:46:23 2014 -0800
Committer: Jason Brown <[email protected]>
Committed: Fri Jan 31 05:46:23 2014 -0800
----------------------------------------------------------------------
.rat-excludes | 2 +-
CHANGES.txt | 5 +-
doc/cql3/CQL.textile | 10 +-
.../org/apache/cassandra/cli/CliOptions.java | 45 ++++++-
.../cql3/statements/BatchStatement.java | 5 +-
.../cql3/statements/ModificationStatement.java | 6 +-
.../cql3/statements/SelectStatement.java | 11 +-
.../apache/cassandra/db/ColumnFamilyStore.java | 32 ++++-
.../apache/cassandra/io/sstable/Descriptor.java | 20 ++-
.../apache/cassandra/io/sstable/SSTable.java | 2 +-
.../org/apache/cassandra/io/util/FileUtils.java | 2 +-
.../cassandra/streaming/StreamLockfile.java | 121 +++++++++++++++++++
.../cassandra/streaming/StreamReader.java | 5 +-
.../cassandra/streaming/StreamReceiveTask.java | 72 ++++++++---
.../cassandra/streaming/StreamSession.java | 27 ++++-
.../cassandra/streaming/StreamTransferTask.java | 10 +-
.../compress/CompressedStreamReader.java | 4 +-
.../streaming/messages/FileMessage.java | 112 -----------------
.../streaming/messages/IncomingFileMessage.java | 78 ++++++++++++
.../streaming/messages/OutgoingFileMessage.java | 92 ++++++++++++++
.../streaming/messages/StreamMessage.java | 18 ++-
.../cassandra/db/BatchlogManagerTest.java | 17 +++
22 files changed, 528 insertions(+), 168 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/doc/cql3/CQL.textile
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 540f1ce,8750026..76772f4
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -74,6 -67,8 +75,9 @@@ import org.apache.cassandra.io.util.Fil
import org.apache.cassandra.metrics.ColumnFamilyMetrics;
import org.apache.cassandra.service.CacheService;
import org.apache.cassandra.service.StorageService;
++
+ import org.apache.cassandra.streaming.StreamLockfile;
+ import org.apache.cassandra.thrift.IndexExpression;
import org.apache.cassandra.tracing.Tracing;
import org.apache.cassandra.utils.*;
@@@ -460,11 -424,35 +464,35 @@@ public class ColumnFamilyStore implemen
* Removes unnecessary files from the cf directory at startup: these
include temp files, orphans, zero-length files
* and compacted sstables. Files that cannot be recognized will be
ignored.
*/
- public static void scrubDataDirectories(String keyspaceName, String
columnFamily)
+ public static void scrubDataDirectories(CFMetaData metadata)
{
- logger.debug("Removing compacted SSTable files from {} (see
http://wiki.apache.org/cassandra/MemtableSSTable)", metadata.cfName);
-
- Directories directories = Directories.create(keyspaceName,
columnFamily);
+ Directories directories = new Directories(metadata);
+
+ // remove any left-behind SSTables from failed/stalled streaming
+ FileFilter filter = new FileFilter()
+ {
+ public boolean accept(File pathname)
+ {
+ return pathname.toString().endsWith(StreamLockfile.FILE_EXT);
+ }
+ };
+ for (File dir : directories.getCFDirectories())
+ {
+ File[] lockfiles = dir.listFiles(filter);
+ if (lockfiles.length == 0)
+ continue;
+ logger.info("Removing SSTables from failed streaming session.
Found {} files to cleanup.", lockfiles.length);
+
+ for (File lockfile : lockfiles)
+ {
+ StreamLockfile streamLockfile = new StreamLockfile(lockfile);
+ streamLockfile.cleanup();
+ streamLockfile.delete();
+ }
+ }
+
+ logger.debug("Removing compacted SSTable files from {} (see
http://wiki.apache.org/cassandra/MemtableSSTable)", columnFamily);
+
for (Map.Entry<Descriptor,Set<Component>> sstableFiles :
directories.sstableLister().list().entrySet())
{
Descriptor desc = sstableFiles.getKey();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/src/java/org/apache/cassandra/io/sstable/Descriptor.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/src/java/org/apache/cassandra/io/sstable/SSTable.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/src/java/org/apache/cassandra/io/util/FileUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/src/java/org/apache/cassandra/streaming/StreamSession.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8e9bf17/test/unit/org/apache/cassandra/db/BatchlogManagerTest.java
----------------------------------------------------------------------