ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Setrakyan <dsetrak...@apache.org>
Subject snapshot transaction isolation
Date Wed, 03 Feb 2016 22:27:48 GMT
Igniters,

I keep hearing questions from users about the snapshot isolation. Currently
ignite provides Optimistic and Pessimistic
<https://apacheignite.readme.io/docs/transactions#optimistic-and-pessimistic>
transactions [1]. This modes ensure that transactional values are
consistent with each other on 1st access of each value.

However, some use cases require that transactional values are consistent
with each other not at 1st access, but at transaction start time. After
giving it some thought, I think we can support it with minimal effort, if
we add a few restrictions. For example, we can easily support it if users
specify all the keys at the beginning of the transaction, for example

   1. User tells Ignite which keys he/she plans to transact on
   2. Ignite preemptively acquires locks on all these keys
   3. After locks are acquired, user has assurance that values will not
   change outside of this transaction and are consistent with teacher.
   4. Locks are released upon commit

The above algorithm will also perform better, as the initial looks will be
acquired in bulk, and not individually.

Thoughts?

[1]
https://apacheignite.readme.io/docs/transactions#optimistic-and-pessimistic

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message