Ugh, just finally figured the "header" bit of my question out. Mega lame. :\
> On Oct 18, 2016, at 9:17 AM, Michael Kjellman <mkjell...@internalcircle.com> > wrote: > > I'm working on writing Birch for trunk and I noticed the following: > > https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/columniterator/AbstractSSTableIterator.java#L503 > > Prior to 3.0 the offset was the literal offset into the data file, yet now we > seem to be doing the position encoded with the key (for all rows regardless > of if they're > 64kb and thus have an index component) plus the serialized > offset. I also see there is now a a "header" offset. > > In RowIndexEntry there is: > > > /** > * @return the offset to the start of the header information for this row. > * For some formats this may not be the start of the row. > */ > public long headerOffset() > { > return 0; > } > > /** > * The length of the row header (partition key, partition deletion and static > row). > * This value is only provided for indexed entries and this method will throw > * {@code UnsupportedOperationException} if {@code !isIndexed()}. > */ > public long headerLength() > { > throw new UnsupportedOperationException(); > } > > > In 2.1 we stored the partition key, deletion, but not static row -- but we > didn't need or use this so I'm guessing this is actually just to support > static rows? Is there any further documentation around the header in other > classes that I just haven't come across yet? Any thoughts on position + > offset and why this behavior changed? Thanks > > best, > kjellman