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)