virajjasani opened a new pull request, #2008:
URL: https://github.com/apache/phoenix/pull/2008

   Jira: PHOENIX-7434
   
   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 is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to