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

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

[~agoncharuk], I've done the implementation both serializers, and start with 
benchmark implementation.
Code can be found at ignite-13618 branch.

I'm not sure if it make sense to add VarHandle-based version right now?

What benchmark are you expect to be? 
I see next cases
 #  Key-val pairs of simple types:
 ** fixed-len, e.g. (long, long) as most popular cases or (uuid, uuid)?
 ** varlen string  (64,256, 1k), e.g. encoding may costs.
 ** varlen bytes (64,256, 1k ,4k, 16k? or more?), e.g. just cover large entries 
case.
 # Key-val pairs of simple object with single field:
 ** Same cases as above to verify the overhead? or may be just a part of them?
 # Key-val pairs of complex multi-fields objects. Varlen fields should be short:
 ** with non-null fields (for ommited null map)
 ** with no varlen fields (with ommited offset table)
 ** fix-len non-null fields (minimal overhead).
 ** any fields.

It look like a large task, may be it make sense to implement few of them 
especially there is no support for date-time, collection/arrays yet.
What framework can be used for this purpose? JMH or Jardstick? I doubt the last 
one will be easier.

 

> 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
>
> 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.



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

Reply via email to