[
https://issues.apache.org/jira/browse/CASSANDRA-8464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14250202#comment-14250202
]
Branimir Lambov commented on CASSANDRA-8464:
--------------------------------------------
It is fine with me if you proceed with the current structure.
On the other hand, we probably do need to change the way throttling is done: it
appears that it would be doing the wrong thing in the mmapped case (and perhaps
generally in the compressed case as it's counting uncompressed data); I wonder
if it is safe to use memory-mapped readers for throttled compaction at all. As
to the changes to {{open()}} users, there should not be any as this factory
method is the natural place to choose the type of reader to create.
> Support direct buffer decompression for reads
> ---------------------------------------------
>
> Key: CASSANDRA-8464
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8464
> Project: Cassandra
> Issue Type: Improvement
> Reporter: T Jake Luciani
> Assignee: T Jake Luciani
> Labels: performance
> Fix For: 3.0
>
>
> Currently when we read a compressed sstable we copy the data on heap then
> send it to be de-compressed to another on heap buffer (albeit pooled).
> But now both snappy and lz4 (with CASSANDRA-7039) allow decompression of
> direct byte buffers. This lets us mmap the data and decompress completely
> off heap (and avoids moving bytes over JNI).
> One issue is performing the checksum offheap but the Adler32 does support in
> java 8 (it's also in java 7 but marked private?!)
> This change yields a > 10% boost in read performance on cstar. Locally I see
> upto 30% improvement.
> http://cstar.datastax.com/graph?stats=5ebcdd70-816b-11e4-aed6-42010af0688f&metric=op_rate&operation=2_read&smoothing=1&show_aggregates=true&xmin=0&xmax=200.09&ymin=0&ymax=135908.3
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)