Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-13618

Provide generated and reflection-based class (de)serializers

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.0.0-alpha2
    • Component/s: sql
    • Labels:
    • Ignite Flags:
      Docs Required, Release Notes Required

      Description

      Motivation.

      It may worth having generated serializer code for performance reasons. However, this should be proved with benchmarks.

      Description.

      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.

      • As we go with Java11 then VarHandles must be used instead of Unsafe.
      • For generated serializer we can use: JDK compiler + Javapoet project (Java code generator) or Janino compiler or even Prestodb-bytecode module of PrestoDB project

      UPD: JDK compile is too slow, Janino doesn't support Java9+ and VarHandles, Prestodb-bytecode has an unwanted Guava dependency.
      So, forking Prestodb without Guava looks like a preferable way.

        Attachments

        1. benchmark-results.txt
          12 kB
          Andrey Mashenkov

          Issue Links

            Activity

              People

              • Assignee:
                amashenkov Andrey Mashenkov
                Reporter:
                agoncharuk Alexey Goncharuk
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 10m
                  1h 10m