ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-1550) Optimize "direct" message serialization.
Date Fri, 25 Sep 2015 13:06:04 GMT
Vladimir Ozerov created IGNITE-1550:
---------------------------------------

             Summary: 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: Critical
             Fix For: ignite-1.5


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

Mime
View raw message