Kadir Ozdemir created PHOENIX-7408:
--------------------------------------

             Summary: Improve throughput and reliability delete operations on 
tables with indexes
                 Key: PHOENIX-7408
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7408
             Project: Phoenix
          Issue Type: Improvement
            Reporter: Kadir Ozdemir


Server side delete queries are executed by first UngroupAggregateRegionObserver 
(UARO) to identify the row keys of the data table rows to be deleted and then 
the delete mutations are processed by IndexRegionObserve (IRO).

When a delete query is executed on the data table, the data table rows are read 
twice, one for the delete query by UARO and the other for generating index 
mutations by IRO. 

Both the delete query on the data table and the delete operations can be 
executed by the same coproc and thus the double read of the rows can be 
eliminated. This will improve the throughput of the delete operations.

Delete queries and operations are executed in parallel over table regions. If 
any of these executions fails, the delete query will fail too but the other 
executions in progress will continue to make progress. To make sure that these 
executions will not have side effects on the new mutations, we can use snapshot 
isolation for the delete query, more specifically, set the end time for the 
delete scans. This means that delete queries will not include the new mutations 
arrive after the delete query starts executing.  This will improve the 
reliability of the delete operations. This will also further improve the 
throughput and efficiency of the delete operations as they do not need to go 
through Phoenix level row locking and concurrency handling within IRO.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to