public void append(DecoratedKey decoratedKey, ColumnFamily cf)
{
if (decoratedKey.getKey().remaining() > FBUtilities.MAX_UNSIGNED_SHORT)
{
logger.error("Key size {} exceeds maximum of {}, skipping row",
decoratedKey.getKey().remaining(),
FBUtilities.MAX_UNSIGNED_SHORT);
return;
}
long startPosition = beforeAppend(decoratedKey);
long endPosition;
try
{
RowIndexEntry entry = rawAppend(cf, startPosition, decoratedKey, dataFile.stream);
endPosition = dataFile.getFilePointer();
afterAppend(decoratedKey, endPosition, entry);
}
catch (IOException e)
{
throw new FSWriteError(e, dataFile.getPath());
}
long rowSize = endPosition - startPosition;
maybeLogLargePartitionWarning(decoratedKey, rowSize);
sstableMetadataCollector.update(rowSize, cf.getColumnStats());
}