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

Perform read before executing the Upsert operation

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • None

    Description

      If a transaction was committed/aborted, but for any reason the cleanup operation was not performed on a node, the write intent entries would still be present in the storage.

      When an RO transaction sees write intents, no matter on primary or on any other node, it performs write intent resolution and returns the correct result.

      When an RW transaction sees write intents (happens on primary only), it also performs write intent resolution and cleanup (done in IGNITE-20395, IGNITE-20445), so we are safe.

      But it works only for those RW transactions that perform READ operation before making any changes. This is not the case for Upsert. So we need to change it to read data (hence write intent resolution and cleanup).

      Definition of Done

      Upsert operation execution should result in write intent resolution and cleanup if the affected rows still contain write intents of a finished transaction.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ksizov  Kirill Sizov
            ksizov  Kirill Sizov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment