phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (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 00:01:00 GMT

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

James Taylor commented on PHOENIX-4531:
---------------------------------------

The {{runOnServer}} variable gets set to false if the index table is chosen as the best table
to drive the delete from. If it was kept as true, then the data table would be used. If you
have a WHERE clause in the delete that turns into a range scan when the index is used, this
is certainly going to be better than doing a full table scan using the data table. The case
I'm not sure about is if there's no where clause (or the same number of rows would be scanned
for the index or data table). I'm not sure which is better (but probably using the data table
since as you mention the parallelization will be better). 

I think It needs further investigation as to why the hint didn't cause the data table to be
chosen as the best plan.

> 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_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