You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Sergey Soldatov (JIRA)" <ji...@apache.org> on 2016/06/22 01:06:57 UTC

[jira] [Updated] (PHOENIX-3015) Any metadata changes may cause unpredictable result when local indexes are using

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

Sergey Soldatov updated PHOENIX-3015:
-------------------------------------
    Attachment: PHOENIX-3015.patch

Fixed as suggested. Also changed PhoenixIndexFailurePolicy.java in the same way since we are getting indexes from PTable there as well. 



> Any metadata changes may cause unpredictable result when local indexes are using
> --------------------------------------------------------------------------------
>
>                 Key: PHOENIX-3015
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3015
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Sergey Soldatov
>            Priority: Critical
>         Attachments: PHOENIX-3015.patch
>
>
> The problem code is in IndexHalfStoreFileReaderGenerator#preStoreFileReaderOpen:
> {noformat}
>                 conn = QueryUtil.getConnection(ctx.getEnvironment().getConfiguration()).unwrap(
>                             PhoenixConnection.class);
>                 PTable dataTable = PhoenixRuntime.getTable(conn, tableName.getNameAsString());
> {noformat}
> Use case:
> 1. create table & local index. Load some data.
> 2. Call split. 
> 3a. Add new local index. 
> 3b. Drop local index and recreate it.
> 4. Call split.
> When the earlier mentioned code is executed during (2) it caches table into ConnectionQueryServicesImpl#latestMetaData . When it is executed during (4)  dataTable is getting from cache and doesn't reflect information after (3a) or (3b). As the result the data for last created index will be lost during the split because of absence of index maintainer.
> After looking into ConnectionQueryServicesImpl I don't understand how the cache was supposed to be updated, so any suggestions/comments are really appreciated. 
> [~jamestaylor], [~rajeshbabu] FYI



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)