[ 
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)

Reply via email to