[
https://issues.apache.org/jira/browse/CASSANDRA-3333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-3333:
--------------------------------------
Attachment: 0002-reduce-copies.patch
0001-clean-up-Serializer-mess.patch
01 cleans up the serializer snafu we've been living with
02 actually does the optimization
Prior to this patch we had three generic serializers:
ICompactSerializer, which is used by Messages, and whose de/serialize methods
have version parameters
ICompactSerializer2, which does not have versions and whose methods have
DataInput/Output parameters instead of Input/OutputStreams. (The former is a
superset of the later.)
ICompactSerializer3, which extends ICS2 and adds serializedSize.
To do this optimization I'd need ICS4, since I want serializedSize AND
versioning.
Instead, I've replaced the three old interfaces with just ISerializer and
IVersionedSerializer. Both use DataInput/Output, and both have a
serializedSize method; the difference is that the former does not have a
version parameter. Implementers that don't care about precomputing size simply
implement as UnsupportedOperation.
A few serializers (in LegacyBloomFilter and MerkleTree) still needed a Stream
parameter because they are doing JDK serialization under the hood. None of that
code actually cares about using a generic Serializer interface, so I just made
them one-off classes and everything was happy.
> remove more copies from read/write network path
> -----------------------------------------------
>
> Key: CASSANDRA-3333
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3333
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Jonathan Ellis
> Assignee: Jonathan Ellis
> Priority: Minor
> Fix For: 1.0.1
>
> Attachments: 0001-clean-up-Serializer-mess.patch,
> 0002-reduce-copies.patch
>
>
> RowMutation.serializedBuffer and ReadVerbHandler both do an extra copy of the
> serialized data. We can avoid this be pre-computing the serialized size and
> allocating an appropriate buffer.
--
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