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

Prevent index from getting out of sync with data table under high concurrency

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.12.0
    • Component/s: None
    • Labels:

      Description

      Under high concurrency, we're still seeing the index get out of sync with the data table. It seems that the particular case is when the same Put occurs with the same time stamp from different clients, based on the locking we do, Phoenix thinks a different Put was the last one than HBase does, leading to inconsistencies.

      The solution is to timestamp the cells on the server-side after the lock has been taken. The new concurrent unit test passes 50x with this in place, while it otherwise fails 1/10 of the time (or more on HBase 1.3).

        Attachments

        1. PHOENIX_4089_v2.patch
          44 kB
          James R. Taylor
        2. PHOENIX_4089_v3.patch
          45 kB
          James R. Taylor
        3. PHOENIX-4089_4.x-HBase-0.98_v2.patch
          35 kB
          James R. Taylor
        4. PHOENIX-4089_4.x-HBase-0.98.patch
          22 kB
          James R. Taylor
        5. PHOENIX-4089_v1.patch
          33 kB
          James R. Taylor
        6. PHOENIX-4089_v4.patch
          54 kB
          James R. Taylor
        7. TestSecIndex.java
          7 kB
          Abhishek Talluri

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: