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)