You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2011/02/20 23:18:03 UTC
svn commit: r1072774 - in
/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra: db/
db/columniterator/ db/filter/ io/sstable/ io/util/
Author: brandonwilliams
Date: Sun Feb 20 22:18:01 2011
New Revision: 1072774
URL: http://svn.apache.org/viewvc?rev=1072774&view=rev
Log:
Better error reporting for sstable problems.
Patch by Kjetil Valstadsve, reviewed by brandonwilliams for
CASSANDRA-2202.
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Table.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryFilter.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryPath.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTable.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/SegmentedFile.java
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Table.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Table.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Table.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Table.java Sun Feb 20 22:18:01 2011
@@ -699,4 +699,9 @@ public class Table
cfs.truncate().get();
logger.debug("Truncation done.");
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(name='" + name + "')";
+ }
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java Sun Feb 20 22:18:01 2011
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.*;
+import org.apache.cassandra.db.ColumnFamilySerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -108,7 +109,13 @@ public class SSTableNamesIterator extend
// we can stop early if bloom filter says none of the columns actually exist -- but,
// we can't stop before initializing the cf above, in case there's a relevant tombstone
- cf = ColumnFamily.serializer().deserializeFromSSTableNoColumns(ColumnFamily.create(sstable.metadata), file);
+ ColumnFamilySerializer serializer = ColumnFamily.serializer();
+ try {
+ cf = serializer.deserializeFromSSTableNoColumns(ColumnFamily.create(sstable.metadata), file);
+ } catch (Exception e) {
+ throw new IOException
+ (serializer + " failed to deserialize " + sstable.getColumnFamilyName() + " with " + sstable.metadata + " from " + file, e);
+ }
List<ByteBuffer> filteredColumnNames = new ArrayList<ByteBuffer>(columns.size());
for (ByteBuffer name : columns)
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryFilter.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryFilter.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryFilter.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryFilter.java Sun Feb 20 22:18:01 2011
@@ -210,4 +210,13 @@ public class QueryFilter
{
return new QueryFilter(key, path, new NamesQueryFilter(column));
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(key=" + key +
+ ", path=" + path +
+ (filter == null ? "" : ", filter=" + filter) +
+ (superFilter == null ? "" : ", superFilter=" + superFilter) +
+ ")";
+ }
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryPath.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryPath.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryPath.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/QueryPath.java Sun Feb 20 22:18:01 2011
@@ -71,7 +71,7 @@ public class QueryPath
@Override
public String toString()
{
- return "QueryPath(" +
+ return getClass().getSimpleName() + "(" +
"columnFamilyName='" + columnFamilyName + '\'' +
", superColumnName='" + superColumnName + '\'' +
", columnName='" + columnName + '\'' +
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/filter/SliceQueryFilter.java Sun Feb 20 22:18:01 2011
@@ -143,4 +143,13 @@ public class SliceQueryFilter implements
container.addColumn(column);
}
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(" +
+ "start=" + start +
+ ", finish=" + finish +
+ ", reversed=" + reversed +
+ ", count=" + count + "]";
+ }
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/Descriptor.java Sun Feb 20 22:18:01 2011
@@ -186,9 +186,20 @@ public class Descriptor
}
@Override
- public String toString()
- {
- return baseFilename();
+ public String toString() {
+ return "Descriptor(baseFilename=" + baseFilename() +
+ ", directory=" + directory +
+ ", ksname='" + ksname + '\'' +
+ ", cfname='" + cfname + '\'' +
+ ", version='" + version + '\'' +
+ ", generation=" + generation +
+ ", temporary=" + temporary +
+ ", usesOldBloomFilter=" + usesOldBloomFilter +
+ ", isLatestVersion=" + isLatestVersion +
+ ", hasStringsInBloomFilter=" + hasStringsInBloomFilter +
+ ", hasIntRowSize=" + hasIntRowSize +
+ ", hasEncodedKeys=" + hasEncodedKeys +
+ ")";
}
@Override
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=1072774&r1=1072773&r2=1072774&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 Sun Feb 20 22:18:01 2011
@@ -257,10 +257,15 @@ public abstract class SSTable
}
@Override
- public String toString()
- {
- return getClass().getName() + "(" +
- "path='" + getFilename() + '\'' +
- ')';
+ public String toString() {
+ return getClass().getSimpleName() + "(descriptor=" + descriptor +
+ ", path='" + getFilename() + '\'' +
+ ", metadata=" + metadata +
+ toSubString() +
+ ")";
+ }
+
+ protected String toSubString() {
+ return "";
}
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableReader.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableReader.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableReader.java Sun Feb 20 22:18:01 2011
@@ -97,7 +97,7 @@ public class SSTableReader extends SSTab
* maxDataAge is a timestamp in local server time (e.g. System.currentTimeMilli) which represents an uppper bound
* to the newest piece of data stored in the sstable. In other words, this sstable does not contain items created
* later than maxDataAge.
- *
+ *
* The field is not serialized to disk, so relying on it for more than what truncate does is not advised.
*
* When a new sstable is flushed, maxDataAge is set to the time of creation.
@@ -678,4 +678,11 @@ public class SSTableReader extends SSTab
{
return bloomFilterTracker.getRecentTruePositiveCount();
}
+
+ @Override
+ protected String toSubString() {
+ return ", ifile=" + ifile +
+ ", dfile=" + dfile +
+ ", maxDataAge=" + maxDataAge;
+ }
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java Sun Feb 20 22:18:01 2011
@@ -186,7 +186,7 @@ public class SSTableScanner implements I
}
catch (IOException e)
{
- throw new RuntimeException(e);
+ throw new RuntimeException(SSTableScanner.this + " failed to provide next columns from " + this, e);
}
}
@@ -194,5 +194,21 @@ public class SSTableScanner implements I
{
throw new UnsupportedOperationException();
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(" +
+ "finishedAt:" + finishedAt +
+ ")";
+ }
+}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(" +
+ "file=" + file +
+ " sstable=" + sstable +
+ " exhausted=" + exhausted +
+ ")";
}
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java Sun Feb 20 22:18:01 2011
@@ -230,6 +230,11 @@ public class SSTableWriter extends SSTab
return new Builder(desc);
}
+ @Override
+ protected String toSubString() {
+ return ", dataFile=" + dataFile;
+ }
+
/**
* Removes the given SSTable from temporary status and opens it, rebuilding the
* bloom filter and row index from the data file.
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java Sun Feb 20 22:18:01 2011
@@ -479,4 +479,12 @@ public class BufferedRandomAccessFile ex
this.pointer = pointer;
}
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(" +
+ "filePath='" + filePath + "'" +
+ ", length=" + fileLength +
+ ", skipCache=" + skipCache + ")";
+ }
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java Sun Feb 20 22:18:01 2011
@@ -157,4 +157,12 @@ public class MappedFileDataInput extends
this.position = position;
}
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(" +
+ "filename='" + filename + "'" +
+ ", position=" + position +
+ ")";
+ }
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/SegmentedFile.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/SegmentedFile.java?rev=1072774&r1=1072773&r2=1072774&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/SegmentedFile.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/SegmentedFile.java Sun Feb 20 22:18:01 2011
@@ -141,4 +141,11 @@ public abstract class SegmentedFile
public void remove() { throw new UnsupportedOperationException(); }
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "(path='" + path + "'" +
+ ", length=" + length +
+ ")";
+}
}