I think it depends of transaction type (optimistic / pessimistic).
Pessimistic transaction gets a lock from key at first attempt to access and
last operation (getAndPutIfAbsent) on this key will by able to perform after
commit previous transaction only.
At optimistic transaction all be occur as you say.
View this message in context:
Sent from the Apache Ignite Users mailing list archive at Nabble.com.