[
https://issues.apache.org/jira/browse/GEODE-6166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jacob S. Barrett updated GEODE-6166:
------------------------------------
Labels: performance pull-request-available (was: pull-request-available)
> Reduce garbage production in put operation path
> -----------------------------------------------
>
> Key: GEODE-6166
> URL: https://issues.apache.org/jira/browse/GEODE-6166
> Project: Geode
> Issue Type: Improvement
> Components: core
> Reporter: Jacob S. Barrett
> Priority: Major
> Labels: performance, pull-request-available
> Fix For: 1.9.0
>
> Time Spent: 1h
> Remaining Estimate: 0h
>
> While debugging another issue I notice a less than optimal path for
> serializing \{{Operation}} objects during puts and destroys. The class is
> java.io.Serializable so it goes through several checks to see if it can be
> serialized another way before falling back to Java serialization. One of
> these checks creates a few objects that are not necessary until later I the
> function but after it would short circuit for {{Operation}}. Additionally,
> the only member in the class that is non-transient is a byte field indicating
> the ordinal. This results in a 64 byte Java serialization to transmit a byte.
> Converting to DataSerializableFixedID poses a challenge with backwards
> compatibility when deserializing a message sent as Java serializable. It also
> costs about 4 bytes for a single byte [DSCODE (byte) + FIXED-ID (short) +
> VALUE (byte)]. Writing a single byte to the message part costs a single byte
> and makes detecting old clients sending objects trivial.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)