Yes, this is a bug.  Patch attached to
https://issues.apache.org/jira/browse/CASSANDRA-1056

On Wed, May 5, 2010 at 2:09 AM, Anty <anty....@gmail.com> 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
>



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com

Reply via email to