phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vincent Poon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-4531) Delete on a table with a global mutable index can issue client-side deletes against the index
Date Fri, 19 Jan 2018 02:13:00 GMT

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

Vincent Poon commented on PHOENIX-4531:
---------------------------------------

[~jamestaylor] The hint was not using the data table because the optimizer chooses the smaller
table (fewest non-pk columns), which is generally the index.  It also turns out that the
logic was flipped for interpreting the hint.

I attached a v3 patch that has your patch plus:
 * -Changes to QueryOptimizer that resolves the above.  I only compare table size for queries
that don't have a DATA_OVER_INDEX hint.  The rest of the logic stays the same such that a
WHERE clause would cause the index to still be used.
 * Added a test in QueryOptimizerTest
 * Added my test in PartialIndexRebuilderIT to test that the index gets disabled properly
when there's a write failure to the index when issuing deletes.

> Delete on a table with a global mutable index can issue client-side deletes against the
index
> ---------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-4531
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4531
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.13.0
>         Environment:  
>            Reporter: Vincent Poon
>            Assignee: Vincent Poon
>            Priority: Major
>         Attachments: PHOENIX-4531.v1.master.patch, PHOENIX-4531.v3.master.patch, PHOENIX-4531_v1.patch,
PHOENIX-4531_v2.patch, PartialIndexRebuilderIT.java
>
>
> For a table with a global mutable index, I found the following result in client-side
deletes against both the data table and index table.
> "DELETE FROM data_table" 
> "DELETE FROM data_table WHERE indexed_col='v'"
> We only need the delete to be issued against the data table, because
> 1) It's redundant since a delete against the index will be issued on the server side
when we process the delete of the data table row
> 2) Deletes issued from the client-side won't have the index failure policy



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message