You're always helpful Val. Thanks!
I have a question regarding Optimistic Locking 1. The documentation here, https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Key-Value+Transactions+Architecture, states that locks, for optimistic locking, are acquired during the "prepare" phase. But the graphic depicted there and the tutorial here, https://www.gridgain.com/resources/blog/apache-ignite-transactions-architecture-concurrency-modes-and-isolation-levels, clearly indicate that locks are acquired during the commit phase; with a version information passed along with the key by the coordinator to the primary nodes. Can you please explain the discrepancy? And two questions regarding pages and page locking? 1. Does Ignite use a lock-free algorithm for its B+ tree structure? Looking at the source code and the use of a tag field to avoid the ABA problem suggests that. 2. Ignite documentation talks about entry-level locks and page locks. When exactly is a page locked and released? Also, when an entry is inserted/modified in a page, is the page locked, forbidding other threads from inserting other entries in the page, or only the entry's offset is locked allowing other threads to insert other entries in the page? 3. What is the the difference between a directCount and indirectCount for a page? Thanks On Mon, Feb 12, 2018 at 7:33 PM, vkulichenko <valentin.kuliche...@gmail.com> wrote: > Hi John, > > 1. True. > > 2. The blog actually provides the answer: > > When the Backup Nodes detect the failure, they will notify the Transaction > coordinator that they committed the transaction successfully. In this > scenario, there is no data loss because the data are backed up and can > still > be accessed and used by applications. > > In other words, if primary node fails, backups will not wait for a message, > but instead will commit right away and send an ack to the coordinator. Once > coordinator gets all required acs, transaction completes. > > -Val > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >