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

Rajeshbabu Chintaguntla commented on PHOENIX-4215:
--------------------------------------------------

The reason for the partial index rebuilding not moving forward  because 
PhoenixRuntime#getTableNoCache always get the index from the server cache but 
not scanned from system catalog directly and one more thing is for updating 
disable timestamp wit HRegion#checkAndPut which doesn't invalidate the cache 
and server so we always see the same disable timestamp for index. Because of 
this scanBeginTime and scanEndTime for index rebuild are same in each iterator 
that's why we won't move forward and after some time of threshold we go ahead 
and disable the index permanently. 
{noformat}
                    PTable indexPTable = PhoenixRuntime.getTableNoCache(conn, 
indexTableFullName);
{noformat}
{noformat}
        private static boolean updateDisableTimestamp(PhoenixConnection conn, 
String indexTableName,
                long disabledTimestamp, HTableInterface metaTable, long 
expectedDisabledTimestamp) throws IOException {
                byte[] indexTableKey = 
SchemaUtil.getTableKeyFromFullName(indexTableName);
                Put put = new Put(indexTableKey);
                put.addColumn(PhoenixDatabaseMetaData.TABLE_FAMILY_BYTES, 
PhoenixDatabaseMetaData.INDEX_DISABLE_TIMESTAMP_BYTES,
                                PLong.INSTANCE.toBytes(disabledTimestamp));
                return metaTable.checkAndPut(indexTableKey, 
PhoenixDatabaseMetaData.TABLE_FAMILY_BYTES,
                                
PhoenixDatabaseMetaData.INDEX_DISABLE_TIMESTAMP_BYTES, CompareOp.EQUAL, 
PLong.INSTANCE.toBytes(expectedDisabledTimestamp),
                                put);
        }
{noformat}

> Partial index rebuild never complete after PHOENIX-3525 when rebuild period 
> is configured
> -----------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-4215
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4215
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Rajeshbabu Chintaguntla
>            Assignee: Rajeshbabu Chintaguntla
>             Fix For: 4.12.0
>
>         Attachments: PHOENIX-4215_testcase.patch
>
>
> Currently the default value of phoenix.index.failure.handling.rebuild.period 
> is long max. When we configure it some thing like an hour or day then partial 
> index rebuild never complete and the index is never usable until recreate it. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to