[ https://issues.apache.org/jira/browse/PHOENIX-7434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Viraj Jasani reassigned PHOENIX-7434: ------------------------------------- Assignee: Viraj Jasani > Extend atomic support to single row delete with condition on non-pk columns > --------------------------------------------------------------------------- > > Key: PHOENIX-7434 > URL: https://issues.apache.org/jira/browse/PHOENIX-7434 > Project: Phoenix > Issue Type: New Feature > Reporter: Viraj Jasani > Assignee: Viraj Jasani > Priority: Major > > PHOENIX-7411 introduces Atomic Delete support for the single row deletion. It > returns result (row) back to the client (using new API) only if the given > client initiated Delete operation deleted the row when the row was alive. In > the context of atomicity, this means that the delete operation is already > idempotent and will continue to be idempotent, however only the client that > was able to successfully delete the row by taking lock on the live row (row > without delete marker) is the only one that can return the old row result > back. > PHOENIX-7411 support includes only single row if the WHERE clause contains > only pk columns as single row point lookup plan. However, user can also add > additional non-pk columns in the WHERE clause in addition to all pk columns, > this also makes the Delete as single row delete only, but due to addition of > non-pk columns, server side delete plan is used with auto-commit connections. > The sever side delete plans goes from DeleteCompiler initiating the Scan with > attribute "_DeleteAgg" which allows UngroupedAggregateRegionObserver to > execute Delete Mutations on the rows read by the > UngroupedAggregateRegionScanner. This Mutation is used by IndexRegionObserver > to perform the mutation at the server side. > Given that IndexRegionObserver already has the support for atomic single row > delete as part of PHOENIX-7411, the proposal for this Jira is to introduce > single row delete with condition on non-pk columns such that atomic delete > returning the result can be used by UngroupedAggregateRegionObserver and then > sent back to DeleteCompiler which can later on be consumed by the > PhoenixStatement API similar to PHOENIX-7411. -- This message was sent by Atlassian Jira (v8.20.10#820010)