Support step-up without resetting all the cursors

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Layered Tables
    • None
    • Storage Engines - Foundations
    • 552.627
    • None
    • 8

      Currently we request to reset all the cursors before the step up. One of the reasons for this (I don't know if there are others) is that on a follower we open the stable table as a checkpointed btree but for leader we should always open it as a live btree to be able to serve writes to the stable table.

      Currently we don't have a safe way to reopen a table in all the possible cases (see 
      __clayered_can_advance_stable). One example could be when the cursor is positioned:
       

      // start as a follower
      cursor.search() // positioned on the stable
      // step-up
      cursor.update() // __clayered_can_advance_stable returns false since we are positioned on the cursor, and we try to write to a checkpointed btree 

      It might be a part of our job that should be done to rework layered cursors and prepare them for async step-up/step-down

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Ivan Kochin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: