Include [email protected]
On Wed, May 5, 2010 at 3:09 PM, Anty <[email protected]> wrote:
> HI:All
>
> In source code of 0.6.1 ,in SSTableWriter,
> private void afterAppend(DecoratedKey decoratedKey, long dataPosition, int
> dataSize) throws IOException
> {
> String diskKey = partitioner.convertToDiskFormat(decoratedKey);
> bf.add(diskKey);
> lastWrittenKey = decoratedKey;
> long indexPosition = indexFile.getFilePointer();
> indexFile.writeUTF(diskKey);
> indexFile.writeLong(dataPosition);
> if (logger.isTraceEnabled())
> logger.trace("wrote " + decoratedKey + " at " + dataPosition);
> if (logger.isTraceEnabled())
> logger.trace("wrote index of " + decoratedKey + " at " +
> indexPosition);
>
> indexSummary.maybeAddEntry(decoratedKey, dataPosition, dataSize,
> indexPosition, indexFile.getFilePointer());
> }
> the value of "dataSize" is the length of value( column family) ,not
> including the length of key.
>
> but in the method loadIndexFile() of SStableReader
> ...
> else
> {
> input.readUTF();
> nextDataPosition = input.readLong();
> input.seek(nextIndexPosition);
> }
> indexSummary.maybeAddEntry(decoratedKey, dataPosition,
> nextDataPosition
> - dataPosition, indexPosition, nextIndexPosition);
> }
> indexSummary.complete();
>
>
> the value of nextDataPosition - dataPosition is the length of key and
> value ,not just the length of value .
>
>
> the values above two are different, is it a bug?
>
> --
> Best Regards
> Anty Rao
>