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;