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)

Reply via email to