Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Increments of GridCacheVersions is CAS operations from different threads. But the version is assigned to a transaction in non-atomic way. No guarantee that snpVersion  is greater than version of transaction created after fixing snpVersion. Ignite should track such transactions:
    1. With fair locking while creating and assigning version to transaction - possible performance degradation.
    2. With additional filter after preparing a snapshot (4.d) - now there are 3 steps for preparing snapshot.
  2. For case OPTIMISTIC + PRIMARY_SYNC we can miss backup transaction - looks like need additional sync process while restoring? TBD  
  3. Client and non-baseline nodes has a job to do: collecting of transactions, awaiting them finished, sending a response. It could be non-reliable, as client nodes can be short-lived:
    1. Also should handle special cases when transaction is committed after client node gone and there is no info about it actual version.
  4. No safe previous record to restore, if some incremental snapshots created. Need to filter all history.

...