Hi, Two questions about transactionality and locking: 1) I've been looking at https://apacheignite.readme.io/docs/transactions and couldn't get a clear answer from the Ignite documentation so I hope to get an answer here. All of the caches we use are set to TRANSACTIONAL, as we will often need to do a logical operation on a group of caches. However, there are cases we want to have ATOMIC operations on a single cache to increase performance.
What I'm wondering is: if a cache is set to operate on a TRANSACTIONAL mode, does it always need to be operated inside the IgniteTransactions transactions = ignite.transactions(); Java transaction API? Would the changes simply not commit if we were to update the cache without surrounding it inside this IgniteTransactions context? 2) To increase performance of a ScanQuery over a test cache of ~1million entries, I have set up a ThreadPool of 10 threads to perform ScanQuery over each partition - where each thread would take over each partition - in a cluster that has a single server node. Each transaction had a commit size of 100k. However the entire operation failed because the threads could not acquire the lock for the transaction, and the transactions of other threads timed-out. What is the locking granularity for each transaction (seems like it locks the entire cache from what I've witnessed)? Is it possible to change the locking level so that I can set the transaction to lock on a partition or any other granularity? Thanks -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
