[ 
https://issues.apache.org/jira/browse/CASSANDRA-10511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14978827#comment-14978827
 ] 

Ariel Weisberg commented on CASSANDRA-10511:
--------------------------------------------

I noticed that 
[SSTableReader.load()|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java#L725]
 can rebuild the index summary if it fails to load due to an exception. However 
it doesn't reconstruct the ibuilder and dbuilder which may be partially 
populated with readable boundaries from the fail index summary load. Kind of 
looks like a bug.

Fix for this looks straightforward. Extract the readable boundaries from the 
ifile and dfile segments and provide them to the SegmentedFile.Builders that 
are being used to downsample the summary. Working on a test now.

> Index summary downsampling prevents mmap access of large files after restart
> ----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-10511
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10511
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Benedict
>            Assignee: Ariel Weisberg
>             Fix For: 2.1.x, 2.2.x, 3.1
>
>
> {{SSTableReader.cloneWithNewSummarySampleLevel}} constructs a 
> {{SegmentedFile.Builder}} but never populates it with any boundaries. For 
> files larger than 2Gb, this will result in their being accessed via buffered 
> io after a restart.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to