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

Maxim Muzafarov updated IGNITE-10302:
-------------------------------------
    Fix Version/s: 2.8

> MVCC: Update backups asynchronously
> -----------------------------------
>
>                 Key: IGNITE-10302
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10302
>             Project: Ignite
>          Issue Type: Improvement
>          Components: mvcc
>            Reporter: Roman Kondakov
>            Priority: Major
>             Fix For: 2.8
>
>
> Currently we update backups synchronously. It means we should wait all backup 
> nodes apply transaction updates and send back acknowledgment for each 
> statement before proceed. Actually, we do not have to wait until backups 
> processed their updates. Instead we can update primary node, then 
> "fire-and-forget" update to backups and continue handling next transaction 
> statements. This approach eliminates waiting 2 extra network hops for each 
> statement (sending update to backup and receiving ack back). Points to 
> consider:
>  * Backup should transit to "prepare" phase only when all updates were 
> applied.
>  * "Small" transactions can send updated values in prepare message.
>  * "Big" transaction can stream batched updates to backups asynchronously. In 
> this case we need to provide some backpressure implementation to prevent 
> backup choke.
>  * This optimization is applicable only for partitioned caches. This is 
> because replicated caches may read data from backups and they should see 
> their own updates



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to