You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ja...@apache.org on 2013/06/27 18:51:17 UTC
git commit: Update scrub for single-pass compaction format patch by
jasobrown; reviewed by slebresne for CASSANDRA-5429
Updated Branches:
refs/heads/trunk 39355875f -> e22de4316
Update scrub for single-pass compaction format
patch by jasobrown; reviewed by slebresne for CASSANDRA-5429
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e22de431
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e22de431
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e22de431
Branch: refs/heads/trunk
Commit: e22de4316e05a6bb4ec5c1621904f55332b7371a
Parents: 3935587
Author: Jason Brown <ja...@gmail.com>
Authored: Wed Jun 26 14:54:10 2013 -0700
Committer: Jason Brown <ja...@gmail.com>
Committed: Thu Jun 27 09:46:51 2013 -0700
----------------------------------------------------------------------
.../cassandra/db/compaction/Scrubber.java | 25 ++++++++++++++++----
1 file changed, 20 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/e22de431/src/java/org/apache/cassandra/db/compaction/Scrubber.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/Scrubber.java b/src/java/org/apache/cassandra/db/compaction/Scrubber.java
index 5809741..d0503b9 100644
--- a/src/java/org/apache/cassandra/db/compaction/Scrubber.java
+++ b/src/java/org/apache/cassandra/db/compaction/Scrubber.java
@@ -127,8 +127,11 @@ public class Scrubber implements Closeable
try
{
key = sstable.partitioner.decorateKey(ByteBufferUtil.readWithShortLength(dataFile));
- dataSize = dataFile.readLong();
- outputHandler.debug(String.format("row %s is %s bytes", ByteBufferUtil.bytesToHex(key.key), dataSize));
+ if (sstable.descriptor.version.hasRowSizeAndColumnCount)
+ {
+ dataSize = dataFile.readLong();
+ outputHandler.debug(String.format("row %s is %s bytes", ByteBufferUtil.bytesToHex(key.key), dataSize));
+ }
}
catch (Throwable th)
{
@@ -155,11 +158,23 @@ public class Scrubber implements Closeable
long dataStart = dataFile.getFilePointer();
long dataStartFromIndex = currentIndexKey == null
? -1
- : rowStart + 2 + currentIndexKey.remaining() + 8;
+ : rowStart + 2 + currentIndexKey.remaining();
+ if (sstable.descriptor.version.hasRowSizeAndColumnCount)
+ dataStartFromIndex += 8;
long dataSizeFromIndex = nextRowPositionFromIndex - dataStartFromIndex;
+
+ if (!sstable.descriptor.version.hasRowSizeAndColumnCount)
+ {
+ dataSize = dataSizeFromIndex;
+ outputHandler.debug(String.format("row %s is %s bytes", ByteBufferUtil.bytesToHex(key.key), dataSize));
+ }
+ else
+ {
+ if (currentIndexKey != null)
+ outputHandler.debug(String.format("Index doublecheck: row %s is %s bytes", ByteBufferUtil.bytesToHex(currentIndexKey), dataSizeFromIndex));
+ }
+
assert currentIndexKey != null || indexFile.isEOF();
- if (currentIndexKey != null)
- outputHandler.debug(String.format("Index doublecheck: row %s is %s bytes", ByteBufferUtil.bytesToHex(currentIndexKey), dataSizeFromIndex));
writer.mark();
try