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 Thu, 18 Jan 2018 23:43:00 GMT

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

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

[~jamestaylor] My understanding was that we would could run it on server side because we
trigger a scan over the data table, which then goes through UngroupedAggregateRegionObserver,
which then issues mutates against the data table, which then causes the index updates to be
issued via postBatchMutateIndispensably

That appears to be the case, because if you look at ServerSelectDeleteMutation, it uses the
dataPlan, not the optimized queryPlan (which would use the index).  When I try my patch which
makes runOnServer=true, it does the right thing.

I'm not sure which approach is the best, but I thought we wanted to do it server-side for
better parallelization, by issuing the delete scans in parallel with each table region concurrently
deleting its own rows.

> 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