You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Roman Kondakov (JIRA)" <ji...@apache.org> on 2018/11/16 15:46:00 UTC

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

Roman Kondakov created IGNITE-10302:
---------------------------------------

             Summary: 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


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
(v7.6.3#76005)