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

Table access public API.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-alpha2
    • None
    • Docs Required, Release Notes Required

    Description

      Motivation.

      Some users may want to use Key-value (KV) pair to store their data, some would like to have a single Record class for the same purpose.
      Both approaches are reasonable and perfectly maps to the row layout described in IEP. The only difference is separate key and value classes vs a single record class.
      Also, we must provide lower-level TableView to access data via BinaryObject analogs (like keepBinary() projection does in ignite 2.x) because ones may not have classes on the server-side.

      Description.

      Create table access API (incl. Record and KV concepts).
      Cover the next cases with Examples of how API can be used:

      • Simple Record case. (Row mapped to a single user class)
      • Simple KV case. (Row mapped to key-value pair of user classes)
      • Binary row case.
      • Binary KV case.
      • Truncated classes. (Value\Record class that covers a part of value columns.)
      • Custom class field->columns mapping.
      • Conditional serialization.
      • Inheritance mapping single table strategy (wide table schema vs conditional serialization)
      • Transition from "schemaless" (pure binary KV case) to schema-powered.

      Serializer\marshaller, schema management, schema versioning, underlying storage are out-of-scope and may be stubbed if needed.

      Attachments

        Issue Links

          Activity

            People

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