You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Mashenkov (Jira)" <ji...@apache.org> on 2021/01/13 12:18:00 UTC

[jira] [Commented] (IGNITE-13618) Provide generated and reflection-based class (de)serializers

    [ https://issues.apache.org/jira/browse/IGNITE-13618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17264112#comment-17264112 ] 

Andrey Mashenkov commented on IGNITE-13618:
-------------------------------------------

So, Janino serializer doesn't fit our needs. 
JDK serializer requires tools.jar and compilation takes 10-12 times slow.

I've reworked generated serializer with using prestodb-bytecode.
Now it works as fast as Janino and supports varhandles.

> Provide generated and reflection-based class (de)serializers
> ------------------------------------------------------------
>
>                 Key: IGNITE-13618
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13618
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Alexey Goncharuk
>            Assignee: Andrey Mashenkov
>            Priority: Major
>              Labels: iep-54, ignite-3
>         Attachments: benchmark-results.txt
>
>
> Let's prototype object serializer for type-system described in IEP-54, and benchmark them to check if generated code approach is a better one.
>  * For reflection-based serializer we can use Unsafe (see GridUnsafe class) which works fine for previour versions of Ignite.
>  * To keep focus on the ticket needs mainly, we can use Janino project for code generator.
>  * In addition, reflection-based serialized could have a version using Java9+ VanHandles and it's could be hidden under 'java-9+' maven-profile.
> Hints:
> Javapoet can be used as codegenerator, Janino as a compiler, class loader. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)