You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maxim Muzafarov (Jira)" <ji...@apache.org> on 2019/10/10 13:12:07 UTC

[jira] [Updated] (IGNITE-10302) MVCC: Update backups asynchronously

     [ 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)