[ 
https://issues.apache.org/jira/browse/IGNITE-27676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mikhail Petrov updated IGNITE-27676:
------------------------------------
    Labels: ise  (was: )

> FULL_SYNC mode guarantee may be broken for ATOMIC caches in case any update 
> errors on primary node
> --------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-27676
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27676
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Mikhail Petrov
>            Priority: Major
>              Labels: ise
>
> Consider the following scenario:
> Consider cluster with 3 nodes - node0, node1, node2
> ATOMIC, FULL_SYNC, 1 backup cache.
> 1. node0 accepts putAll request, maps all keys to corresponding primary nodes 
> and sends GridNearAtomicFullUpdateRequest to node1 and node2.
> 2. node1 manages to successfully update only some of the entries. Update of 
> others failed with exception (e.g. user defined cache interceptor threw an 
> exception). Lets say that entries with keys 1, 2 were successfully updated 
> and key 3 failed.
> 3. node1 sends  GridDhtAtomicUpdateRequest with successfully updated entries 
> (1, 2) to backup node(node2)
> 4. node1 sends GridNearAtomicUpdateResponse with failed keys (3) to node0 
> (near)
> 5. as soon as node0 receives GridNearAtomicUpdateResponse, it will complete 
> putAll operation with CachePartialUpdateException that will contain all 
> failed entries (3) from GridNearAtomicUpdateResponse and message that user 
> should retry insert operation for them (see 
> GridNearAtomicUpdateFuture#onPrimaryResponse)
> Therefore, if node0 receives GridNearAtomicUpdateResponse before entries 1 
> and 2, successfully updated on the primary node, are processed on the backup 
> node (node2), putAll operation will complete with exception only that key 3 
> failed to be processed. This behavior violates FULL_SYNC guarantee for 
> entries 1 and 2. 



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

Reply via email to