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

Transfer observable timestamp to read-only transaction

    XMLWordPrintableJSON

Details

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

    Description

      Motivation
      RO transaction has timestamp which determine a moment when data will be read. To avoid waiting, safe time is supposed to provide the timestamp in the past. The timestamp is determined by the observable timestamp and current time in order to be available to retrieve all data which is locally viewed.

      Implementation notes

      • The observable timestamp would be provided externally.
      • Read timestamp is determined as max(observableTs, now() - safeTimePropagationFrequency - maxClockSkew).
      • Add a new method to start read only transaction with specific observable timestamp:
        /**
         * Starts a readonly transaction with an observable timestamp.
         *
         * @param observableTs Observable timestamp.
         * @return Reade only transaction.
         */
        public ReadOnlyTransactionImpl begin(HybridTimestamp observableTs)
        

      Definition of done
      Internal API for RO transaction in past is implemented. The read transaction timestamp should evaluate by formula: max(observableTs, now() - safeTimePropagationFrequency) and available through ReadOnlyTransactionImpl .readTimestamp()

      Attachments

        Issue Links

          Activity

            People

              Denis Chudov Denis Chudov
              v.pyatkov Vladislav Pyatkov
              Vladislav Pyatkov Vladislav Pyatkov
              Votes:
              0 Vote for this issue
              Watchers:
              1 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 - 0.5h
                  0.5h