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

Historical iterator for atomic group should transfer few more rows than required

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.10
    • None
    • Docs Required, Release Notes Required

    Description

      On a historical rebalance some updates move from one node to another wherein this update may have various order in nodes. Reordering can happen in smell interval, but it cannot avoid at all in current implementation atomic protocol.

      This mean we will reduce a probably of loosing update if we make a margin from initial counter for the historical iterator on atomic cache.

      The final algorithm of choosing correct WAL pointer for atomic cache with the margin is:
      1) Find a checkpoint which contains a counter, that necessary for history rebalance (just like a transactional cache)
      2) If the checkpoint starts with a counter less than which is necessary with margin, we are taking it.
      3) If we are going out of WAL reservation, we are taking current.
      4) Otherwise we are looking of a previous checkpoint and taking it if it starts from a counter less than next checkpoint (from the point 2).
      5) Else we are still taking the checkpoint from the point 2.

      Other words (points 3-5) the algorithm tries to check only one previous checkpoint and takes it if that has different counter.

      UPD:
      After a discussion I found a bug connected with using a WAL which was not reserved before for preloading.
      I added an explicitly checking this and an appropriate test.

      Attachments

        Issue Links

          Activity

            People

              v.pyatkov Vladislav Pyatkov
              v.pyatkov Vladislav Pyatkov
              Alexey Scherbakov Alexey Scherbakov
              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 - 3h 50m
                  3h 50m