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;


Reply via email to