Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-6160

Simplifying concurrent mutation handling for global Indexes

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

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.0.0, 4.15.0
    • 5.1.0, 4.16.0
    • None
    • None

    Description

      Please see the attached design document for the proposed simplification. The proposed design is simpler to understand and does not require a special handling of partial concurrent updates without indexed columns.

      One of the desired features for global indexes is to support atomic operations (ON_DUPLICATE_KEY statements). We have found that it is quite difficult to build such a feature on the current design as we need to add more case handling to the current design to handle data table update ordering issues. The proposed design does not require us to do changes on concurrent mutation handling for such features.

      The proposed design almost eliminates unverified index rows due to concurrent mutations. The index rows are left unverified only when batches fail to complete the data table updates. This leads to read performance improvement as repairing unverified rows is costly and each row repair adds several tens of milliseconds to the overall scan latency.

      Attachments

        Activity

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

          People

            kozdemir Kadir OZDEMIR
            kozdemir Kadir OZDEMIR
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment