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

Provide generated and reflection-based class (de)serializers

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    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

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          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

                Slack

                  Issue deployment