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

Use consistent schema when converting data in KV/record views

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0
    • None

    Description

      Each operation in KV/record views looks like this:

      1. Convert input rows to BinaryRowEx (using some schema version V1)
      2. Execute an operation (which will use some schema version V2)
      3. Convert the operation output from BinaryRowEx (using some schema version V3)

      Steps 1 or 3 might be missing, but that's not the point.

      V1 and V3 are now obtained simply by looking at the latest schema version from the point of view of the node at the moment of conversion. V2 is obtained using transaction ts; the transaction might be started implicitly by InternalTable.

      The problem is that V1, V2, V3 might be different.

      We should fix some timestamp before the whole sequence and use it in all 3 steps to obtain schemas. As at step 2 the underlying machinery already uses transaction ts, we should create an implicit tx (if not present) at the level of KV/record views and then use its ts to obtain schema versions at steps 1 and 3 (at step 2 this will happen automatically).

      Attachments

        Issue Links

          Activity

            People

              rpuch Roman Puchkovskiy
              rpuch Roman Puchkovskiy
              Kirill Tkalenko Kirill Tkalenko
              Votes:
              0 Vote for this issue
              Watchers:
              2 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 - 3h 20m
                  3h 20m