[ https://issues.apache.org/jira/browse/CASSANDRA-11623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15253910#comment-15253910 ]
Marcus Eriksson commented on CASSANDRA-11623: --------------------------------------------- Nice catch! It looks like we could just use the [chunkOffset|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java#L143] directly instead though? Old getOnDiskFilePointer() should always be [exactly the same|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java#L104] as the chunkOffset > Compactions w/ Short Rows Spending Time in getOnDiskFilePointer > --------------------------------------------------------------- > > Key: CASSANDRA-11623 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11623 > Project: Cassandra > Issue Type: Improvement > Reporter: Tom Petracca > Priority: Minor > Attachments: compactiontask_profile.png > > > Been doing some performance tuning and profiling of my cassandra cluster and > noticed that compaction speeds for my tables that I know to have very short > rows were going particularly slowly. Profiling shows a ton of time being > spent in BigTableWriter.getOnDiskFilePointer(), and attaching strace to a > CompactionTask shows that a majority of time is being spent lseek (called by > getOnDiskFilePointer), and not read or write. > Going deeper it looks like we call getOnDiskFilePointer each row (sometimes > multiple times per row) in order to see if we've reached our expected sstable > size and should start a new writer. This is pretty unnecessary. -- This message was sent by Atlassian JIRA (v6.3.4#6332)