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

Stu Hood commented on CASSANDRA-1117:
-------------------------------------

> this patch adds complexity (and poor performance - creating BRAFs is not 
> free) to the non-mmap'd case by creating BRAF segments
This patch isn't supposed to create any more BRAFs than trunk does: in the 
non-mmap case, a SegmentedFile with one "null" segment should be created, which 
should result in a BRAF being created for every getSegment/getFileDataInput 
call. I think this is equivalent to the current code.

> It looks like a single row has to fit in 2GB here, which isn't going to be 
> acceptable.
The segment building support (look at SegmentedFile.addPotentialBoundary) 
attempts to create segments that are just barely smaller than the 2GB, but 
failing that, it will create a segment larger than 2GB. The segment which is 
larger than 2GB will be a 'null' segment, meaning that getFileDataInput calls 
for that segment will use a BRAF.

> I'd say looking up index segment by navigablemap instead of % is the cause of 
> most of the lost performance (in mmap mode).
Agreed... it may be possible to optimize this lookup somehow, but I think it 
might be worth eating the cost.

> Clean up MMAP support
> ---------------------
>
>                 Key: CASSANDRA-1117
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1117
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Stu Hood
>            Assignee: Gary Dusbabek
>             Fix For: 0.7
>
>         Attachments: 0001-Use-factory-functions-for-RowIndexedReader.patch, 
> 0002-Add-SegmentedFile-to-abstract-opening-FileDataInputs.patch, 
> 0003-Replace-mmap-file-abstraction-with-SegmentedFile.patch, 
> 0004-Rename-SSTableReaderTest-to-SegmentedFileTest.patch, 
> 0005-Remove-filename-munging.patch
>
>
> Awareness of MMAP is currently embedded into the SSTableReader implementation 
> and IndexSummary. A good number of bugs experienced recently have been due to 
> this lack of separation, so it is ripe for abstraction. Additionally, the 
> current implementation does not provide a good method for iterating over the 
> segments of a file, which is useful for range queries, and lays more stable 
> groundwork for #998.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to