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

Create the correct index row mutations for out-of-order data mutations

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      Out-of-order processing of data rows during index maintenance causes mutable indexes to become out of sync with regard to the data table. Here's a simple example to illustrate the issue:

      1. Assume table T(K,V) and index X(V,K).
      2. Upsert T(A, 1) at t10. Index updates: Put X(1,A) at t10.
      3. Upsert T(A, 3) at t30. Index updates: Delete X(1,A) at t29, Put X(3,A) at t30.
      4. Upsert T(A,2) at t20. Index updates: Delete X(1,A) at t19, Put X(2,A) at t20, Delete X(2,A) at t29

      Ideally, we'd want to remove the Delete X(1,A) at t29 since this isn't correct in terms of timeline consistency, but we can't do that with HBase without support for deleting/undoing Delete markers.

      The above is not what is occurring. Instead, when T(A,2) comes in, the Put X(2,A) will occur at t20, but the Delete won't occur. This causes more index rows than data rows, essentially making it invalid.

      See PHOENIX-4051 as a workaround for fixing this issue.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jamestaylor James R. Taylor
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: