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

Extend MvPartitionStorage read API with write intent resolution capabilities

    XMLWordPrintableJSON

Details

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

    Description

      Commit of RW transaction is not instantaneous. RO transaction might require reads of data that's in the process of being committed. Current API doesn't support such scenario.

      RO API in partition storage has only two methods: read and scan.

      Read

      This one is pretty simple. It should return pair of binaryRow and txId. After that, caller can check the state of the transaction and either return the value or repeat the call.

      There must be a way to hint read method that uncommitted data must be skipped.

      An interesting way of reading data might be required: it there's a write intent, but we see a commit done after the timestamp, we can safely proceed with reading.

      Unfortunately, such optimization may be heavy on the storage read operations, because it requires a "deep" look-ahead request. So, whether or not we implement this depends on one thing - how often do we have write intent resolution in real RO transactions?

      API is to be defined.

      For scans see https://issues.apache.org/jira/browse/IGNITE-17720

      Attachments

        Issue Links

          Activity

            People

              sdanilov Semyon Danilov
              ibessonov Ivan Bessonov
              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 - 2h 50m
                  2h 50m