You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "Geoffrey Jacoby (Jira)" <ji...@apache.org> on 2019/10/01 22:01:00 UTC

[jira] [Commented] (PHOENIX-5502) ALTER INDEX REBUILD removes all rows from already valid/consistent index

    [ https://issues.apache.org/jira/browse/PHOENIX-5502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16942341#comment-16942341 ] 

Geoffrey Jacoby commented on PHOENIX-5502:
------------------------------------------

[~priyankporwal] - This appears to be by design (though I'm not sure I agree with the design). See MetadataClient lines 4008-4023 in 4.14.3. It's intentionally running a delete against the index first before doing the rebuild. It appears to also be deactivating the index and putting it in BUILDING state, so the end-user wouldn't notice a difference. 

> ALTER INDEX REBUILD removes all rows from already valid/consistent index
> ------------------------------------------------------------------------
>
>                 Key: PHOENIX-5502
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5502
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.1, 4.14.2, 4.14.3
>            Reporter: Priyank Porwal
>            Priority: Major
>             Fix For: 4.14.1, 4.14.2, 4.14.3
>
>
> Create Table & Indexes:
> CREATE TABLE DEMO2.PEOPLE (FNAME VARCHAR NOT NULL, LNAME VARCHAR, AGE TINYINT, ZIP INTEGER, CONSTRAINT pk PRIMARY KEY (FNAME, LNAME));
>  CREATE INDEX PEOPLE_BY_ZIP ON DEMO2.PEOPLE(ZIP);
>  CREATE INDEX PEOPLE_BY_AGE ON DEMO2.PEOPLE(AGE);
> Populate Data:
> UPSERT INTO DEMO2.PEOPLE VALUES ('Audi', 'Q5', 15, 65000);
> UPSERT INTO DEMO2.PEOPLE VALUES ('Volkswagon', 'Beetle', 10, 43130);
> UPSERT INTO DEMO2.PEOPLE VALUES ('BMW', 'X3', 4, 15030);
> Query Index:
> SELECT * FROM DEMO2.PEOPLE_BY_AGE;
> <3 rows show up>
> Rebuild Index:
> alter index people_by_age on DEMO2.people rebuild;
> Query Index Again:
> SELECT * FROM DEMO2.PEOPLE_BY_AGE;
> <No rows show up>
>  
> It seems that if the index is already consistent, then the rebuild command removes all the index rows. Above is the simpler repro, but I have noticed similar behavior where rebuild command does the right thing first time on an inconsistent index (caused by truncation of table using hbase shell), but second run of rebuild command removes all the rows.
>  



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