cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Branimir Lambov (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-8464) Support direct buffer decompression for reads
Date Wed, 17 Dec 2014 17:52:14 GMT


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

This message was sent by Atlassian JIRA

View raw message