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)