[
https://issues.apache.org/jira/browse/IGNITE-1550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladimir Ozerov updated IGNITE-1550:
------------------------------------
Priority: Minor (was: Critical)
> Optimize "direct" message serialization.
> ----------------------------------------
>
> Key: IGNITE-1550
> URL: https://issues.apache.org/jira/browse/IGNITE-1550
> Project: Ignite
> Issue Type: Task
> Components: general
> Affects Versions: 1.1.4
> Reporter: Vladimir Ozerov
> Priority: Minor
>
> *Overview*
> Ignite use "direct" serialization to speed up marshalling of internal classes
> avoiding byte array copying.
> This mechanism can be improved significantly on class-by-class basis reducing
> message size by 10-30% in different cases.
> *Implementation*
> 1) Definte the list of possible optimizations. At the very least it includes:
> - Var-length integer encoding;
> - Special cases (constants, positive-only values, low amount of significant
> bits, etc.);
> - Efficient writes of "nulls";
> - Write groups of relates fields with boolean switch if they are either null
> or not-null at the same time.
> 2) Determine what to optimize. This can be done on class-by-class basis for
> each of ~180 messages. Better approach will be to enable tracking of written
> values inside DirectMessageWriter. Then we should run Ignite with differnet
> payloads and identify fields which are good candidates for optimization.
> 3) Implement each optimziation.
> *Risks*
> Backward compatibility will be broken. We must either inform users about it,
> or support ability to use old non-optimized protocol version somehow.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)