[ 
https://issues.apache.org/jira/browse/PHOENIX-5559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lars Hofhansl updated PHOENIX-5559:
-----------------------------------
    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: 
{code:java}
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{code}
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.

[~gjacoby] [~rajeshbabu]

  was:
 
{code:java}
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{code}
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.

[~gjacoby] [~rajeshbabu]


> Fix remaining issues with Long viewIndexIds
> -------------------------------------------
>
>                 Key: PHOENIX-5559
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5559
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 4.15.0, 5.1.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>            Priority: Blocker
>             Fix For: 4.15.0, 5.1.0
>
>         Attachments: 5559-4.x-HBase-1.5-v2.txt, 5559-4.x-HBase-1.5.txt, 
> 5559-4.x-HBase-1.5.txt, 5559-test.txt
>
>
> 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: 
> {code:java}
> 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{code}
> 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.
> [~gjacoby] [~rajeshbabu]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to