You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/06/16 17:27:17 UTC
svn commit: r955268 - in /cassandra/trunk:
src/java/org/apache/cassandra/db/filter/ src/java/org/apache/cassandra/io/
src/java/org/apache/cassandra/io/sstable/
test/unit/org/apache/cassandra/db/ test/unit/org/apache/cassandra/io/
test/unit/org/apache/c...
Author: jbellis
Date: Wed Jun 16 15:27:17 2010
New Revision: 955268
URL: http://svn.apache.org/viewvc?rev=955268&view=rev
Log:
make row size 64 bits
patch by jbellis; reviewed by Stu Hood for CASSANDRA-16
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableNamesIterator.java
cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableSliceIterator.java
cassandra/trunk/src/java/org/apache/cassandra/io/LazilyCompactedRow.java
cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
cassandra/trunk/test/unit/org/apache/cassandra/db/TableTest.java
cassandra/trunk/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java
cassandra/trunk/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableNamesIterator.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableNamesIterator.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableNamesIterator.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableNamesIterator.java Wed Jun 16 15:27:17 2010
@@ -71,8 +71,8 @@ public class SSTableNamesIterator extend
return;
DecoratedKey keyInDisk = ssTable.getPartitioner().convertFromDiskFormat(FBUtilities.readShortByteArray(file));
assert keyInDisk.equals(decoratedKey)
- : String.format("%s != %s in %s", keyInDisk, decoratedKey, file.getPath());
- file.readInt(); // data size
+ : String.format("%s != %s in %s", keyInDisk, decoratedKey, file.getPath());
+ SSTableReader.readRowSize(file, ssTable.getDescriptor());
}
// read the requested columns into `cf`
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableSliceIterator.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableSliceIterator.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableSliceIterator.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/filter/SSTableSliceIterator.java Wed Jun 16 15:27:17 2010
@@ -90,7 +90,7 @@ class SSTableSliceIterator extends Abstr
DecoratedKey keyInDisk = ssTable.getPartitioner().convertFromDiskFormat(FBUtilities.readShortByteArray(file));
assert keyInDisk.equals(decoratedKey)
: String.format("%s != %s in %s", keyInDisk, decoratedKey, file.getPath());
- file.readInt(); // row size
+ SSTableReader.readRowSize(file, ssTable.getDescriptor());
}
catch (IOException e)
{
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/LazilyCompactedRow.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/LazilyCompactedRow.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/LazilyCompactedRow.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/LazilyCompactedRow.java Wed Jun 16 15:27:17 2010
@@ -71,7 +71,7 @@ public class LazilyCompactedRow extends
if (rows.size() == 1 && !major)
{
SSTableIdentityIterator row = rows.get(0);
- out.writeInt(row.getDataSize());
+ out.writeLong(row.getDataSize());
row.echoData(out);
return;
}
@@ -79,7 +79,7 @@ public class LazilyCompactedRow extends
DataOutputBuffer clockOut = new DataOutputBuffer();
ColumnFamily.serializer().serializeCFInfo(emptyColumnFamily, clockOut);
- out.writeInt((int)(headerBuffer.getLength() + clockOut.getLength() + columnSerializedSize));
+ out.writeLong(headerBuffer.getLength() + clockOut.getLength() + columnSerializedSize);
out.write(headerBuffer.getData(), 0, headerBuffer.getLength());
out.write(clockOut.getData(), 0, clockOut.getLength());
out.writeInt(columnCount);
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/PrecompactedRow.java Wed Jun 16 15:27:17 2010
@@ -79,7 +79,7 @@ public class PrecompactedRow extends Abs
public void write(DataOutput out) throws IOException
{
- out.writeInt(buffer.getLength());
+ out.writeLong(buffer.getLength());
out.write(buffer.getData(), 0, buffer.getLength());
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java Wed Jun 16 15:27:17 2010
@@ -210,7 +210,7 @@ public abstract class SSTable
public static class Descriptor
{
public static final String LEGACY_VERSION = "a";
- public static final String CURRENT_VERSION = "c";
+ public static final String CURRENT_VERSION = "d";
public final File directory;
public final String version;
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java Wed Jun 16 15:27:17 2010
@@ -37,7 +37,7 @@ public class SSTableIdentityIterator imp
private final BufferedRandomAccessFile file;
private SSTableReader sstable;
private long dataStart;
- private final int dataSize;
+ private final long dataSize;
/**
* Used to iterate through the columns of a row.
@@ -48,7 +48,7 @@ public class SSTableIdentityIterator imp
* @param dataSize length of row data
* @throws IOException
*/
- public SSTableIdentityIterator(SSTableReader sstable, BufferedRandomAccessFile file, DecoratedKey key, long dataStart, int dataSize)
+ public SSTableIdentityIterator(SSTableReader sstable, BufferedRandomAccessFile file, DecoratedKey key, long dataStart, long dataSize)
throws IOException
{
this.sstable = sstable;
@@ -69,7 +69,7 @@ public class SSTableIdentityIterator imp
return file.getPath();
}
- public int getDataSize()
+ public long getDataSize()
{
return dataSize;
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableReader.java Wed Jun 16 15:27:17 2010
@@ -546,4 +546,11 @@ public class SSTableReader extends SSTab
{
return maxDataAge > age;
}
+
+ public static long readRowSize(DataInput in, Descriptor d) throws IOException
+ {
+ if (d.versionCompareTo("d") < 0)
+ return in.readInt();
+ return in.readLong();
+ }
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java Wed Jun 16 15:27:17 2010
@@ -169,7 +169,7 @@ public class SSTableScanner implements I
assert !file.isEOF();
DecoratedKey key = StorageService.getPartitioner().convertFromDiskFormat(FBUtilities.readShortByteArray(file));
- int dataSize = file.readInt();
+ long dataSize = SSTableReader.readRowSize(file, sstable.getDescriptor());
dataStart = file.getFilePointer();
finishedAt = dataStart + dataSize;
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java Wed Jun 16 15:27:17 2010
@@ -126,7 +126,7 @@ public class SSTableWriter extends SSTab
FBUtilities.writeShortByteArray(partitioner.convertToDiskFormat(decoratedKey), dataFile);
int length = buffer.getLength();
assert length > 0;
- dataFile.writeInt(length);
+ dataFile.writeLong(length);
dataFile.write(buffer.getData(), 0, length);
afterAppend(decoratedKey, currentPosition);
}
@@ -136,7 +136,7 @@ public class SSTableWriter extends SSTab
long currentPosition = beforeAppend(decoratedKey);
FBUtilities.writeShortByteArray(partitioner.convertToDiskFormat(decoratedKey), dataFile);
assert value.length > 0;
- dataFile.writeInt(value.length);
+ dataFile.writeLong(value.length);
dataFile.write(value);
afterAppend(decoratedKey, currentPosition);
}
Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/TableTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/TableTest.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/db/TableTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/db/TableTest.java Wed Jun 16 15:27:17 2010
@@ -435,7 +435,7 @@ public class TableTest extends CleanupHe
BufferedRandomAccessFile file = new BufferedRandomAccessFile(sstable.getFilename(), "r");
file.seek(position);
assert Arrays.equals(FBUtilities.readShortByteArray(file), key.key);
- file.readInt();
+ SSTableReader.readRowSize(file, sstable.getDescriptor());
IndexHelper.skipBloomFilter(file);
ArrayList<IndexHelper.IndexInfo> indexes = IndexHelper.deserializeIndex(file);
assert indexes.size() > 2;
Modified: cassandra/trunk/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java Wed Jun 16 15:27:17 2010
@@ -55,10 +55,10 @@ public class LazilyCompactedRowTest exte
// key isn't part of what CompactedRow writes, that's done by SSTW.append
// row size can differ b/c of bloom filter counts being different
- int rowSize1 = in1.readInt();
- int rowSize2 = in2.readInt();
- assertEquals(out1.getLength(), rowSize1 + 4);
- assertEquals(out2.getLength(), rowSize2 + 4);
+ long rowSize1 = SSTableReader.readRowSize(in1, sstables.iterator().next().getDescriptor());
+ long rowSize2 = SSTableReader.readRowSize(in2, sstables.iterator().next().getDescriptor());
+ assertEquals(out1.getLength(), rowSize1 + 8);
+ assertEquals(out2.getLength(), rowSize2 + 8);
// bloom filter
IndexHelper.defreezeBloomFilter(in1);
IndexHelper.defreezeBloomFilter(in2);
Modified: cassandra/trunk/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java?rev=955268&r1=955267&r2=955268&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java Wed Jun 16 15:27:17 2010
@@ -52,7 +52,7 @@ public class SSTableTest extends Cleanup
BufferedRandomAccessFile file = new BufferedRandomAccessFile(sstable.getFilename(), "r");
file.seek(sstable.getPosition(sstable.partitioner.decorateKey(key)));
assert Arrays.equals(key, FBUtilities.readShortByteArray(file));
- int size = file.readInt();
+ int size = (int)SSTableReader.readRowSize(file, sstable.getDescriptor());
byte[] bytes2 = new byte[size];
file.readFully(bytes2);
assert Arrays.equals(bytes2, bytes);
@@ -84,7 +84,7 @@ public class SSTableTest extends Cleanup
{
file.seek(sstable.getPosition(sstable.partitioner.decorateKey(key)));
assert Arrays.equals(key, FBUtilities.readShortByteArray(file));
- int size = file.readInt();
+ int size = (int)SSTableReader.readRowSize(file, sstable.getDescriptor());
byte[] bytes2 = new byte[size];
file.readFully(bytes2);
assert Arrays.equals(bytes2, map.get(key));