In PESSIMISTIC/REPEATABLE_READ transaction (which is the default one) any operation with a particular key will lock this key until the transaction is committed or rolled back. So in your case the second thread will block on get() and wait for the first transaction to finish. It will then get v2 only if the transaction was successfully committed. For more details about transactions refer to this page: https://apacheignite.readme.io/docs/transactions
-Val -- View this message in context: http://apache-ignite-users.70518.x6.nabble.com/How-to-perform-lazy-write-to-database-tp4002p4076.html Sent from the Apache Ignite Users mailing list archive at Nabble.com.