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