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 2011/01/19 17:37:22 UTC
svn commit: r1060854 - in /cassandra/branches/cassandra-0.7:
src/java/org/apache/cassandra/db/
src/java/org/apache/cassandra/db/columniterator/
src/java/org/apache/cassandra/db/filter/
src/java/org/apache/cassandra/io/sstable/ src/java/org/apache/cassa...
Author: jbellis
Date: Wed Jan 19 16:37:21 2011
New Revision: 1060854
URL: http://svn.apache.org/viewvc?rev=1060854&view=rev
Log:
move read methods from FBU to BBU
patch by slebresne; reviewed by jbellis for CASSANDRA-2009
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnSerializer.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Row.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutation.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceByNamesReadCommand.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceFromReadCommand.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SuperColumn.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/WriteResponse.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/columniterator/SSTableSliceIterator.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/io/sstable/IndexHelper.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/KeyIterator.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/utils/ByteBufferUtil.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/FBUtilities.java
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/TableTest.java
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnSerializer.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnSerializer.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnSerializer.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/ColumnSerializer.java Wed Jan 19 16:37:21 2011
@@ -31,7 +31,6 @@ import org.slf4j.LoggerFactory;
import org.apache.cassandra.io.ICompactSerializer2;
import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.FBUtilities;
public class ColumnSerializer implements ICompactSerializer2<IColumn>
{
@@ -64,7 +63,7 @@ public class ColumnSerializer implements
public Column deserialize(DataInput dis) throws IOException
{
- ByteBuffer name = FBUtilities.readShortByteArray(dis);
+ ByteBuffer name = ByteBufferUtil.readWithShortLength(dis);
if (name.remaining() <= 0)
throw new CorruptColumnException("invalid column name length " + name.remaining());
@@ -74,7 +73,7 @@ public class ColumnSerializer implements
int ttl = dis.readInt();
int expiration = dis.readInt();
long ts = dis.readLong();
- ByteBuffer value = FBUtilities.readByteArray(dis);
+ ByteBuffer value = ByteBufferUtil.readWithLength(dis);
if ((int) (System.currentTimeMillis() / 1000 ) > expiration)
{
// the column is now expired, we can safely return a simple
@@ -92,7 +91,7 @@ public class ColumnSerializer implements
else
{
long ts = dis.readLong();
- ByteBuffer value = FBUtilities.readByteArray(dis);
+ ByteBuffer value = ByteBufferUtil.readWithLength(dis);
return (b & DELETION_MASK) == 0
? new Column(name, value, ts)
: new DeletedColumn(name, value, ts);
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Row.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Row.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Row.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/Row.java Wed Jan 19 16:37:21 2011
@@ -28,7 +28,6 @@ import org.slf4j.LoggerFactory;
import org.apache.cassandra.io.ICompactSerializer;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.FBUtilities;
public class Row
{
@@ -71,7 +70,7 @@ class RowSerializer implements ICompactS
public Row deserialize(DataInputStream dis) throws IOException
{
- return new Row(StorageService.getPartitioner().decorateKey(FBUtilities.readShortByteArray(dis)),
+ return new Row(StorageService.getPartitioner().decorateKey(ByteBufferUtil.readWithShortLength(dis)),
ColumnFamily.serializer().deserialize(dis));
}
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutation.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutation.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutation.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutation.java Wed Jan 19 16:37:21 2011
@@ -392,7 +392,7 @@ class RowMutationSerializer implements I
public RowMutation deserialize(DataInputStream dis) throws IOException
{
String table = dis.readUTF();
- ByteBuffer key = FBUtilities.readShortByteArray(dis);
+ ByteBuffer key = ByteBufferUtil.readWithShortLength(dis);
Map<Integer, ColumnFamily> modifications = defreezeTheMaps(dis);
return new RowMutation(table, key, modifications);
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java Wed Jan 19 16:37:21 2011
@@ -59,7 +59,7 @@ public class RowMutationVerbHandler impl
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(hintedBytes));
while (dis.available() > 0)
{
- ByteBuffer addressBytes = FBUtilities.readShortByteArray(dis);
+ ByteBuffer addressBytes = ByteBufferUtil.readWithShortLength(dis);
if (logger_.isDebugEnabled())
logger_.debug("Adding hint for " + InetAddress.getByName(ByteBufferUtil.string(addressBytes, Charsets.UTF_8)));
RowMutation hintedMutation = new RowMutation(Table.SYSTEM_TABLE, addressBytes);
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceByNamesReadCommand.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceByNamesReadCommand.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceByNamesReadCommand.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceByNamesReadCommand.java Wed Jan 19 16:37:21 2011
@@ -99,14 +99,14 @@ class SliceByNamesReadCommandSerializer
{
boolean isDigest = dis.readBoolean();
String table = dis.readUTF();
- ByteBuffer key = FBUtilities.readShortByteArray(dis);
+ ByteBuffer key = ByteBufferUtil.readWithShortLength(dis);
QueryPath columnParent = QueryPath.deserialize(dis);
int size = dis.readInt();
List<ByteBuffer> columns = new ArrayList<ByteBuffer>();
for (int i = 0; i < size; ++i)
{
- columns.add(FBUtilities.readShortByteArray(dis));
+ columns.add(ByteBufferUtil.readWithShortLength(dis));
}
SliceByNamesReadCommand rm = new SliceByNamesReadCommand(table, key, columnParent, columns);
rm.setDigestQuery(isDigest);
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceFromReadCommand.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceFromReadCommand.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceFromReadCommand.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SliceFromReadCommand.java Wed Jan 19 16:37:21 2011
@@ -100,10 +100,10 @@ class SliceFromReadCommandSerializer ext
{
boolean isDigest = dis.readBoolean();
SliceFromReadCommand rm = new SliceFromReadCommand(dis.readUTF(),
- FBUtilities.readShortByteArray(dis),
+ ByteBufferUtil.readWithShortLength(dis),
QueryPath.deserialize(dis),
- FBUtilities.readShortByteArray(dis),
- FBUtilities.readShortByteArray(dis),
+ ByteBufferUtil.readWithShortLength(dis),
+ ByteBufferUtil.readWithShortLength(dis),
dis.readBoolean(),
dis.readInt());
rm.setDigestQuery(isDigest);
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SuperColumn.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SuperColumn.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SuperColumn.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/SuperColumn.java Wed Jan 19 16:37:21 2011
@@ -351,7 +351,7 @@ class SuperColumnSerializer implements I
public IColumn deserialize(DataInput dis) throws IOException
{
- ByteBuffer name = FBUtilities.readShortByteArray(dis);
+ ByteBuffer name = ByteBufferUtil.readWithShortLength(dis);
int localDeleteTime = dis.readInt();
if (localDeleteTime != Integer.MIN_VALUE && localDeleteTime <= 0)
{
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/WriteResponse.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/WriteResponse.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/WriteResponse.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/WriteResponse.java Wed Jan 19 16:37:21 2011
@@ -89,7 +89,7 @@ public class WriteResponse
public WriteResponse deserialize(DataInputStream dis) throws IOException
{
String table = dis.readUTF();
- ByteBuffer key = FBUtilities.readShortByteArray(dis);
+ ByteBuffer key = ByteBufferUtil.readWithShortLength(dis);
boolean status = dis.readBoolean();
return new WriteResponse(table, key, status);
}
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=1060854&r1=1060853&r2=1060854&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 Wed Jan 19 16:37:21 2011
@@ -39,8 +39,8 @@ import org.apache.cassandra.io.sstable.S
import org.apache.cassandra.io.util.FileDataInput;
import org.apache.cassandra.io.util.FileMark;
import org.apache.cassandra.io.util.FileUtils;
+import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.Filter;
-import org.apache.cassandra.utils.FBUtilities;
public class SSTableNamesIterator extends SimpleAbstractColumnIterator implements IColumnIterator
{
@@ -65,7 +65,7 @@ public class SSTableNamesIterator extend
{
DecoratedKey keyInDisk = SSTableReader.decodeKey(sstable.partitioner,
sstable.descriptor,
- FBUtilities.readShortByteArray(file));
+ ByteBufferUtil.readWithShortLength(file));
assert keyInDisk.equals(key) : String.format("%s != %s in %s", keyInDisk, key, file.getPath());
SSTableReader.readRowSize(file, sstable.descriptor);
read(sstable, file);
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableSliceIterator.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableSliceIterator.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableSliceIterator.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/columniterator/SSTableSliceIterator.java Wed Jan 19 16:37:21 2011
@@ -32,7 +32,7 @@ import org.apache.cassandra.db.Decorated
import org.apache.cassandra.db.IColumn;
import org.apache.cassandra.io.sstable.SSTableReader;
import org.apache.cassandra.io.util.FileDataInput;
-import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.ByteBufferUtil;
/**
* A Column Iterator over SSTable
@@ -54,7 +54,7 @@ public class SSTableSliceIterator implem
{
DecoratedKey keyInDisk = SSTableReader.decodeKey(sstable.partitioner,
sstable.descriptor,
- FBUtilities.readShortByteArray(fileToClose));
+ ByteBufferUtil.readWithShortLength(fileToClose));
assert keyInDisk.equals(key)
: String.format("%s != %s in %s", keyInDisk, key, fileToClose.getPath());
SSTableReader.readRowSize(fileToClose, sstable.descriptor);
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=1060854&r1=1060853&r2=1060854&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 Wed Jan 19 16:37:21 2011
@@ -29,7 +29,6 @@ import java.nio.ByteBuffer;
import org.apache.cassandra.thrift.ColumnParent;
import org.apache.cassandra.thrift.ColumnPath;
import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.FBUtilities;
public class QueryPath
{
@@ -92,8 +91,8 @@ public class QueryPath
public static QueryPath deserialize(DataInputStream din) throws IOException
{
String cfName = din.readUTF();
- ByteBuffer scName = FBUtilities.readShortByteArray(din);
- ByteBuffer cName = FBUtilities.readShortByteArray(din);
+ ByteBuffer scName = ByteBufferUtil.readWithShortLength(din);
+ ByteBuffer cName = ByteBufferUtil.readWithShortLength(din);
return new QueryPath(cfName.isEmpty() ? null : cfName,
scName.remaining() == 0 ? null : scName,
cName.remaining() == 0 ? null : cName);
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/IndexHelper.java Wed Jan 19 16:37:21 2011
@@ -178,7 +178,7 @@ public class IndexHelper
public static IndexInfo deserialize(FileDataInput dis) throws IOException
{
- return new IndexInfo(FBUtilities.readShortByteArray(dis), FBUtilities.readShortByteArray(dis), dis.readLong(), dis.readLong());
+ return new IndexInfo(ByteBufferUtil.readWithShortLength(dis), ByteBufferUtil.readWithShortLength(dis), dis.readLong(), dis.readLong());
}
}
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/KeyIterator.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/KeyIterator.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/KeyIterator.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/KeyIterator.java Wed Jan 19 16:37:21 2011
@@ -32,7 +32,7 @@ import com.google.common.collect.Abstrac
import org.apache.cassandra.db.DecoratedKey;
import org.apache.cassandra.io.util.BufferedRandomAccessFile;
import org.apache.cassandra.service.StorageService;
-import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.ByteBufferUtil;
public class KeyIterator extends AbstractIterator<DecoratedKey> implements Iterator<DecoratedKey>, Closeable
{
@@ -61,7 +61,7 @@ public class KeyIterator extends Abstrac
{
if (in.isEOF())
return endOfData();
- DecoratedKey key = SSTableReader.decodeKey(StorageService.getPartitioner(), desc, FBUtilities.readShortByteArray(in));
+ DecoratedKey key = SSTableReader.decodeKey(StorageService.getPartitioner(), desc, ByteBufferUtil.readWithShortLength(in));
in.readLong(); // skip data position
return key;
}
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=1060854&r1=1060853&r2=1060854&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 Wed Jan 19 16:37:21 2011
@@ -34,8 +34,8 @@ import org.apache.cassandra.config.CFMet
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.io.util.BufferedRandomAccessFile;
import org.apache.cassandra.io.util.FileUtils;
+import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.EstimatedHistogram;
-import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.Pair;
/**
@@ -209,7 +209,7 @@ public abstract class SSTable
while (dataPosition < BYTES_CAP && keys < SAMPLES_CAP)
{
dfile.seek(dataPosition);
- FBUtilities.skipShortByteArray(dfile);
+ ByteBufferUtil.skipShortLength(dfile);
long dataSize = SSTableReader.readRowSize(dfile, desc);
dataPosition = dfile.getFilePointer() + dataSize;
keys++;
@@ -226,7 +226,7 @@ public abstract class SSTable
int keys = 0;
while (ifile.getFilePointer() < BYTES_CAP && keys < SAMPLES_CAP)
{
- FBUtilities.skipShortByteArray(ifile);
+ ByteBufferUtil.skipShortLength(ifile);
ifile.skipBytes(8);
keys++;
}
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=1060854&r1=1060853&r2=1060854&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 Wed Jan 19 16:37:21 2011
@@ -296,8 +296,8 @@ public class SSTableReader extends SSTab
boolean shouldAddEntry = indexSummary.shouldAddEntry();
ByteBuffer key = (ByteBuffer) ((shouldAddEntry || cacheLoading || recreatebloom)
- ? FBUtilities.readShortByteArray(input)
- : FBUtilities.skipShortByteArray(input));
+ ? ByteBufferUtil.readWithShortLength(input)
+ : ByteBufferUtil.skipShortLength(input));
long dataPosition = input.readLong();
if (key != null)
{
@@ -469,7 +469,7 @@ public class SSTableReader extends SSTab
while (!input.isEOF())
{
// read key & data position from index entry
- DecoratedKey indexDecoratedKey = decodeKey(partitioner, descriptor, FBUtilities.readShortByteArray(input));
+ DecoratedKey indexDecoratedKey = decodeKey(partitioner, descriptor, ByteBufferUtil.readWithShortLength(input));
long dataPosition = input.readLong();
int comparison = indexDecoratedKey.compareTo(decoratedKey);
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=1060854&r1=1060853&r2=1060854&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 Wed Jan 19 16:37:21 2011
@@ -33,7 +33,7 @@ import org.apache.cassandra.db.Decorated
import org.apache.cassandra.db.columniterator.IColumnIterator;
import org.apache.cassandra.db.filter.QueryFilter;
import org.apache.cassandra.io.util.BufferedRandomAccessFile;
-import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.ByteBufferUtil;
public class SSTableScanner implements Iterator<IColumnIterator>, Closeable
@@ -169,7 +169,7 @@ public class SSTableScanner implements I
DecoratedKey key = SSTableReader.decodeKey(sstable.partitioner,
sstable.descriptor,
- FBUtilities.readShortByteArray(file));
+ ByteBufferUtil.readWithShortLength(file));
long dataSize = SSTableReader.readRowSize(file, sstable.descriptor);
long dataStart = file.getFilePointer();
finishedAt = dataStart + dataSize;
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=1060854&r1=1060853&r2=1060854&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 Wed Jan 19 16:37:21 2011
@@ -288,7 +288,7 @@ public class SSTableWriter extends SSTab
long rowPosition = 0;
while (rowPosition < dfile.length())
{
- key = SSTableReader.decodeKey(StorageService.getPartitioner(), desc, FBUtilities.readShortByteArray(dfile));
+ key = SSTableReader.decodeKey(StorageService.getPartitioner(), desc, ByteBufferUtil.readWithShortLength(dfile));
iwriter.afterAppend(key, rowPosition);
long dataSize = SSTableReader.readRowSize(dfile, desc);
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java Wed Jan 19 16:37:21 2011
@@ -18,13 +18,16 @@
*/
package org.apache.cassandra.utils;
+import java.io.DataInput;
import java.io.DataOutput;
+import java.io.EOFException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.Arrays;
+import org.apache.cassandra.io.util.FileDataInput;
import org.apache.commons.lang.ArrayUtils;
/**
@@ -268,6 +271,68 @@ public class ByteBufferUtil
}
}
+ public static ByteBuffer readWithLength(DataInput in) throws IOException
+ {
+ int length = in.readInt();
+ if (length < 0)
+ {
+ throw new IOException("Corrupt (negative) value length encountered");
+ }
+
+ return ByteBufferUtil.read(in, length);
+ }
+
+ /* @return An unsigned short in an integer. */
+ private static int readShortLength(DataInput in) throws IOException
+ {
+ int length = (in.readByte() & 0xFF) << 8;
+ return length | (in.readByte() & 0xFF);
+ }
+
+ /**
+ * @param in data input
+ * @return An unsigned short in an integer.
+ * @throws IOException if an I/O error occurs.
+ */
+ public static ByteBuffer readWithShortLength(DataInput in) throws IOException
+ {
+ return ByteBufferUtil.read(in, readShortLength(in));
+ }
+
+ /**
+ * @param in data input
+ * @return null
+ * @throws IOException if an I/O error occurs.
+ */
+ public static void skipShortLength(DataInput in) throws IOException
+ {
+ int skip = readShortLength(in);
+ while (skip > 0)
+ {
+ int skipped = in.skipBytes(skip);
+ if (skipped == 0) throw new EOFException();
+ skip -= skipped;
+ }
+ }
+
+ private static ByteBuffer read(DataInput in, int length) throws IOException
+ {
+ ByteBuffer array;
+
+ if (in instanceof FileDataInput)
+ {
+ array = ((FileDataInput) in).readBytes(length);
+ }
+ else
+ {
+ byte[] buff = new byte[length];
+ in.readFully(buff);
+ array = ByteBuffer.wrap(buff);
+ }
+
+ return array;
+ }
+
/**
* Convert a byte buffer to an integer.
* Does not change the byte buffer position.
@@ -289,4 +354,5 @@ public class ByteBufferUtil
{
return ByteBuffer.allocate(8).putLong(0, n);
}
+
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/FBUtilities.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/FBUtilities.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/FBUtilities.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/FBUtilities.java Wed Jan 19 16:37:21 2011
@@ -37,7 +37,6 @@ import java.util.concurrent.atomic.Atomi
import com.google.common.base.Charsets;
import com.google.common.base.Joiner;
-import org.apache.cassandra.io.util.FileDataInput;
import org.apache.commons.collections.iterators.CollatingIterator;
import org.apache.commons.lang.ArrayUtils;
import org.slf4j.Logger;
@@ -237,51 +236,6 @@ public class FBUtilities
return result;
}
- public static ByteBuffer readByteArray(DataInput in) throws IOException
- {
- int length = in.readInt();
- if (length < 0)
- {
- throw new IOException("Corrupt (negative) value length encountered");
- }
-
- return readDataBytes(in, length);
- }
-
- /* @return An unsigned short in an integer. */
- private static int readShortLength(DataInput in) throws IOException
- {
- int length = (in.readByte() & 0xFF) << 8;
- return length | (in.readByte() & 0xFF);
- }
-
- /**
- * @param in data input
- * @return An unsigned short in an integer.
- * @throws IOException if an I/O error occurs.
- */
- public static ByteBuffer readShortByteArray(DataInput in) throws IOException
- {
- return readDataBytes(in, readShortLength(in));
- }
-
- /**
- * @param in data input
- * @return null
- * @throws IOException if an I/O error occurs.
- */
- public static byte[] skipShortByteArray(DataInput in) throws IOException
- {
- int skip = readShortLength(in);
- while (skip > 0)
- {
- int skipped = in.skipBytes(skip);
- if (skipped == 0) throw new EOFException();
- skip -= skipped;
- }
- return null;
- }
-
public static byte[] hexToBytes(String str)
{
if (str.length() % 2 == 1)
@@ -637,24 +591,6 @@ public class FBUtilities
return field;
}
- private static ByteBuffer readDataBytes(DataInput in, int length) throws IOException
- {
- ByteBuffer array;
-
- if (in instanceof FileDataInput)
- {
- array = ((FileDataInput) in).readBytes(length);
- }
- else
- {
- byte[] buff = new byte[length];
- in.readFully(buff);
- array = ByteBuffer.wrap(buff);
- }
-
- return array;
- }
-
public static InputStream inputStream(ByteBuffer bytes)
{
final ByteBuffer copy = ByteBufferUtil.clone(bytes);
Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/TableTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/TableTest.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/TableTest.java (original)
+++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/TableTest.java Wed Jan 19 16:37:21 2011
@@ -42,7 +42,6 @@ import org.apache.cassandra.db.marshal.L
import org.apache.cassandra.io.sstable.IndexHelper;
import org.apache.cassandra.io.sstable.SSTableReader;
import org.apache.cassandra.io.util.BufferedRandomAccessFile;
-import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.ByteBufferUtil;
@@ -405,7 +404,7 @@ public class TableTest extends CleanupHe
long position = sstable.getPosition(key, SSTableReader.Operator.EQ);
BufferedRandomAccessFile file = new BufferedRandomAccessFile(sstable.getFilename(), "r");
file.seek(position);
- assert FBUtilities.readShortByteArray(file).equals(key.key);
+ assert ByteBufferUtil.readWithShortLength(file).equals(key.key);
SSTableReader.readRowSize(file, sstable.descriptor);
IndexHelper.skipBloomFilter(file);
ArrayList<IndexHelper.IndexInfo> indexes = IndexHelper.deserializeIndex(file);
Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java (original)
+++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java Wed Jan 19 16:37:21 2011
@@ -39,7 +39,6 @@ import org.apache.cassandra.io.util.File
import org.apache.cassandra.io.util.MmappedSegmentedFile;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.Pair;
import org.apache.cassandra.Util;
@@ -120,7 +119,7 @@ public class SSTableReaderTest extends C
FileDataInput file = sstable.getFileDataInput(dk, DatabaseDescriptor.getIndexedReadBufferSizeInKB() * 1024);
DecoratedKey keyInDisk = SSTableReader.decodeKey(sstable.partitioner,
sstable.descriptor,
- FBUtilities.readShortByteArray(file));
+ ByteBufferUtil.readWithShortLength(file));
assert keyInDisk.equals(dk) : String.format("%s != %s in %s", keyInDisk, dk, file.getPath());
}
Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java?rev=1060854&r1=1060853&r2=1060854&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java (original)
+++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/sstable/SSTableTest.java Wed Jan 19 16:37:21 2011
@@ -27,7 +27,7 @@ import org.junit.Test;
import org.apache.cassandra.CleanupHelper;
import org.apache.cassandra.io.util.BufferedRandomAccessFile;
-import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.ByteBufferUtil;
public class SSTableTest extends CleanupHelper
{
@@ -52,7 +52,7 @@ public class SSTableTest extends Cleanup
{
BufferedRandomAccessFile file = new BufferedRandomAccessFile(sstable.getFilename(), "r");
file.seek(sstable.getPosition(sstable.partitioner.decorateKey(key), SSTableReader.Operator.EQ));
- assert key.equals(FBUtilities.readShortByteArray(file));
+ assert key.equals(ByteBufferUtil.readWithShortLength(file));
int size = (int)SSTableReader.readRowSize(file, sstable.descriptor);
byte[] bytes2 = new byte[size];
file.readFully(bytes2);
@@ -84,7 +84,7 @@ public class SSTableTest extends Cleanup
for (ByteBuffer key : keys)
{
file.seek(sstable.getPosition(sstable.partitioner.decorateKey(key), SSTableReader.Operator.EQ));
- assert key.equals( FBUtilities.readShortByteArray(file));
+ assert key.equals( ByteBufferUtil.readWithShortLength(file));
int size = (int)SSTableReader.readRowSize(file, sstable.descriptor);
byte[] bytes2 = new byte[size];
file.readFully(bytes2);