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

Fix remaining issues with Long viewIndexIds

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 4.15.0, 5.1.0
    • Fix Version/s: 4.15.0, 5.1.0
    • Component/s: None
    • Labels:
      None

      Description

      Update: Since I uncovered more problems here, I changed the title.
      This fixes the following three issues:
      1. PHOENIX-5550, local index is not correctly built when data existed in the data table.
      2. Index ids are correctly generated on the client, so that index updates for different indexes are written into the same index.
      3. Stale boundary cache is not correctly detected in some cases (namely when the scan already was in the second daughter region and that daugthter region is the last region.)

      All of these happen when short view index ids are used (which is the default). The included test covers all three scenarios.

      Was: 

      phoenix: CREATE TABLE test (pk INTEGER PRIMARY KEY, v1 INTEGER, v2 integer);
      No rows affected (1.389 seconds)
      phoenix: create local index l1 on test(v1);
      1 row affected (11.343 seconds)
      phoenix: create local index l2 on test(v1);
      1 row affected (5.107 seconds)
      phoenix: UPSERT INTO test VALUES(2,2,2);
      1 row affected (0.037 seconds)
      
      hbase: scan 'TEST'
      ROW                                     COLUMN+CELL                                                                                                       
       \x00\x00\xC1\x03\x00\x80\x00\x00\x02   column=L#0:\x00\x00\x00\x00, timestamp=1572842063925, value=x                                                     
       \x80\x00\x00\x02                       column=0:\x00\x00\x00\x00, timestamp=1572842063925, value=x                                                       
       \x80\x00\x00\x02                       column=0:\x80\x0B, timestamp=1572842063925, value=\x80\x00\x00\x02                                                
       \x80\x00\x00\x02                       column=0:\x80\x0C, timestamp=1572842063925, value=\x80\x00\x00\x02                                                
      2 row(s) in 0.0190 seconds

      There should be two index rows.

      And in fact there are with phoenix.index.longViewIndex.enabled set to true, there are correctly two different index entries for both of the local indexes.

      Geoffrey Jacoby Rajeshbabu Chintaguntla

        Attachments

        1. 5559-test.txt
          4 kB
          Lars Hofhansl
        2. 5559-4.x-HBase-1.5.txt
          26 kB
          Lars Hofhansl
        3. 5559-4.x-HBase-1.5.txt
          26 kB
          Lars Hofhansl
        4. 5559-4.x-HBase-1.5-v2.txt
          27 kB
          Lars Hofhansl
        5. 5559-4.x-HBase-1.5-v3.txt
          28 kB
          Lars Hofhansl
        6. 5559-4.x-HBase-1.5-v5.txt
          31 kB
          Lars Hofhansl

          Issue Links

            Activity

              People

              • Assignee:
                larsh Lars Hofhansl
                Reporter:
                larsh Lars Hofhansl
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 4h 10m
                  4h 10m