Description
We need to develop locking protocol for SQL queries. Design considerations:
1) Use GridNeaLockRequest|Response as a template for new messages
2) Cover only queries which doesn't require reduce stage (see server-side DML optimization code, e.g. GridH2DmlRequest).
3) When next entry is found, try locking it. If it is already locked, then register current TX as candidate in MVCC manager and go to the next row. Other TXes will notify use when entries are released. Send a response when all entries are locked.
4) Read entry version before locking and after. If they doesn't match (i.e. concurrent modification occurred), then throw an exception.
Attachments
Attachments
Issue Links
- blocks
-
IGNITE-6937 SQL TX: Support SELECT FOR UPDATE
- Resolved
-
IGNITE-6936 SQL TX: Implement commit protocol
- Closed
- Is contained by
-
IGNITE-4191 SQL: support transactions
- Resolved
- relates to
-
IGNITE-7764 MVCC TX: make cache basic operations support Mvcc tx mode.
- Resolved