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)