cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "T Jake Luciani (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-8449) Allow zero-copy reads again
Date Wed, 10 Dec 2014 14:51:13 GMT


T Jake Luciani commented on CASSANDRA-8449:

Hmm yeah, if there was a pause before serializing the message and compaction was running you
would still segfault.  I was going to initially try using reference queue and weak references
to track when the byte buffer but any .duplicate() would break that model.  [~benedict] perhaps
we can use CASSANDRA-7705 to manage this?


> Allow zero-copy reads again
> ---------------------------
>                 Key: CASSANDRA-8449
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: T Jake Luciani
>            Assignee: T Jake Luciani
>            Priority: Minor
>              Labels: performance
>             Fix For: 3.0
> We disabled zero-copy reads in CASSANDRA-3179 due to in flight reads accessing a ByteBuffer
when the data was unmapped by compaction.  Currently this code path is only used for uncompressed
> The actual bytes are in fact copied to the client output buffers for both netty and thrift
before being sent over the wire, so the only issue really is the time it takes to process
the read internally.  
> This patch adds a slow network read test and changes the tidy() method to actually delete
a sstable once the readTimeout has elapsed giving plenty of time to serialize the read.
> Removing this copy causes significantly less GC on the read path and improves the tail

This message was sent by Atlassian JIRA

View raw message