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

Provide generated and reflection-based class (de)serializers

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-alpha2
    • sql
    • 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

              amashenkov Andrey Mashenkov
              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