Author: slebresne Date: Fri Jul 22 20:10:50 2011 New Revision: 1149716 URL: http://svn.apache.org/viewvc?rev=1149716&view=rev Log: Don't include tmp file as sstable when creating cfs patch by slebresne; reviewed by jbellis for CASSANDRA-2929
Modified: cassandra/branches/cassandra-0.7/CHANGES.txt cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTable.java Modified: cassandra/branches/cassandra-0.7/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1149716&r1=1149715&r2=1149716&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.7/CHANGES.txt Fri Jul 22 20:10:50 2011 @@ -1,3 +1,7 @@ +0.7.9 + * don't include tmp files as sstable when create cfs (CASSANDRA-2929) + + 0.7.8 * fix possibility of spurious UnavailableException for LOCAL_QUORUM reads with dynamic snitch + read repair disabled (CASSANDRA-2870) Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1149716&r1=1149715&r2=1149716&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Fri Jul 22 20:10:50 2011 @@ -225,7 +225,7 @@ public class ColumnFamilyStore implement ssTables = new SSTableTracker(table.name, columnFamilyName); Set<DecoratedKey> savedKeys = readSavedCache(DatabaseDescriptor.getSerializedKeyCachePath(table.name, columnFamilyName)); List<SSTableReader> sstables = new ArrayList<SSTableReader>(); - for (Map.Entry<Descriptor,Set<Component>> sstableFiles : files(table.name, columnFamilyName, false).entrySet()) + for (Map.Entry<Descriptor,Set<Component>> sstableFiles : files(table.name, columnFamilyName, false, false).entrySet()) { SSTableReader sstable; try @@ -499,7 +499,7 @@ public class ColumnFamilyStore implement */ public static void scrubDataDirectories(String table, String columnFamily) { - for (Map.Entry<Descriptor,Set<Component>> sstableFiles : files(table, columnFamily, true).entrySet()) + for (Map.Entry<Descriptor,Set<Component>> sstableFiles : files(table, columnFamily, true, true).entrySet()) { Descriptor desc = sstableFiles.getKey(); Set<Component> components = sstableFiles.getValue(); @@ -628,7 +628,7 @@ public class ColumnFamilyStore implement /** * Collects a map of sstable components. */ - private static Map<Descriptor,Set<Component>> files(String keyspace, final String columnFamily, final boolean includeCompacted) + private static Map<Descriptor,Set<Component>> files(String keyspace, final String columnFamily, final boolean includeCompacted, final boolean includeTemporary) { final Map<Descriptor,Set<Component>> sstables = new HashMap<Descriptor,Set<Component>>(); for (String directory : DatabaseDescriptor.getAllDataFileLocationsForTable(keyspace)) @@ -637,7 +637,8 @@ public class ColumnFamilyStore implement { if (component != null && component.left.cfname.equals(columnFamily)) { - if (includeCompacted || !new File(component.left.filenameFor(Component.COMPACTED_MARKER)).exists()) + if ((includeCompacted || !new File(component.left.filenameFor(Component.COMPACTED_MARKER)).exists()) + && (includeTemporary || !component.left.temporary)) { Set<Component> components = sstables.get(component.left); if (components == null) Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTable.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTable.java?rev=1149716&r1=1149715&r2=1149716&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTable.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTable.java Fri Jul 22 20:10:50 2011 @@ -230,7 +230,7 @@ public abstract class SSTable FileUtils.skipBytesFully(ifile, 8); keys++; } - assert keys > 0 && ifile.getFilePointer() > 0 && ifile.length() > 0; + assert keys > 0 && ifile.getFilePointer() > 0 && ifile.length() > 0 : "Unexpected empty index file: " + ifile; long estimatedRows = ifile.length() / (ifile.getFilePointer() / keys); ifile.seek(0); return estimatedRows;