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