[
https://issues.apache.org/jira/browse/CASSANDRA-2988?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-2988:
--------------------------------------
Attachment: 2988-2-cleaned.txt
-cleaned patch attached reformatted and some typos fixed.
Using histogram information for a more accurate key count is a good idea.
I don't see any substantial difference between the IndexFileUtil and
RandomAccessReader (aka BRAF) with skipCache=false. In particular the comment
that "When we read from RandomAccessReader, data is copied one byte after
another out of the internal buffer" is incorrect; RAF uses System.arrayCopy for
readFully, which is the same thing ByteBuffer.get invokes in IFU.
> Improve SSTableReader.load() when loading index files
> -----------------------------------------------------
>
> Key: CASSANDRA-2988
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2988
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Melvin Wang
> Assignee: Melvin Wang
> Priority: Minor
> Fix For: 1.0.2
>
> Attachments: 2988-2-cleaned.txt, 2988-parallel-v2.txt, c2988-2-v2,
> c2988-modified-buffer.patch, c2988-parallel-load-sstables.patch
>
>
> * when we create BufferredRandomAccessFile, we pass skipCache=true. This
> hurts the read performance because we always process the index files
> sequentially. Simple fix would be set it to false.
> * multiple index files of a single column family can be loaded in parallel.
> This buys a lot when you have multiple super large index files.
> * we may also change how we buffer. By using BufferredRandomAccessFile, for
> every read, we need bunch of checking like
> - do we need to rebuffer?
> - isEOF()?
> - assertions
> These can be simplified to some extent. We can blindly buffer the index
> file by chunks and process the buffer until a key lies across boundary of a
> chunk. Then we rebuffer and start from the beginning of the partially read
> key. Conceptually, this is same as what BRAF does but w/o the overhead in the
> read**() methods in BRAF.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira