Still seeing the same issue in 2.8.1 unfortunately. I have a related question however.
Assuming I perform the following operation on node 1 of my 3 node cluster (All caches use CacheRebalanceMode.SYNC, CacheWriteSynchronizationMode.FULL_SYNC, CacheAtomicityMode.TRANSACTIONAL): try (Transaction tx = ignite.transactions().txStart( TransactionConcurrency.PESSIMISTIC, TransactionIsolation.READ_COMMITTED, transactionTimeout, igniteTransactionBatchSize)) { // write 1 record to cache A // write 11 records to cache B tx.commit() } How should I expect the updated A and B records to appear on some other node, e.g. node 2. I was expecting them to both become visible together at exactly the same time. I am using CacheMode.REPLICATED. On node 2, I am performing a scan query on A, and in the local listen for A, I am getting those 11 B records (using an SQLFieldsQuery) that were updated in the same transaction. However, they don't seem to always be visible until some time after the local listen for A has been entered. If I put a sleep in there and try again, I do get all the B's 2020-08-21 16:25:05,484 [callback-#192] DEBUG x.TableDataSelector [] - Executing SQL query SqlFieldsQuery [sql=SELECT * FROM B WHERE A_FK = 'TEST4', args=null, collocated=false, timeout=-1, enforceJoinOrder=false, distributedJoins=false, replicatedOnly=false, lazy=false, schema=null, updateBatchSize=1] 2020-08-21 16:25:05,486 [callback-#192] DEBUG x.TableDataSelector [] - Received 3 results 2020-08-21 16:25:05,486 [callback-#192] DEBUG x.TableDataSelector [] - Trying again in 5 seconds 2020-08-21 16:25:10,486 [callback-#192] DEBUG x.TableDataSelector [] - Received 11 results My local listen for A is annotated with @IgniteAsyncCallback incase that matters. Anything obviously wrong here? My requirement is that node 2 has access to A and all the updated B's that were written on node 1. -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/