[ 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.