[ 
https://issues.apache.org/jira/browse/IGNITE-4285?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Semen Boikov resolved IGNITE-4285.
----------------------------------
    Resolution: Fixed

Implemented read locks optimization: for serializable txs lock candidate for 
'read' can be added in pedning queue without version check if before it there 
are only others 'read' lock candidates. Locks re-assignment marks as owners all 
ready 'read' candidates in the queue head.

> Optimize locks for read-only keys in optimistic/serializable transactions
> -------------------------------------------------------------------------
>
>                 Key: IGNITE-4285
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4285
>             Project: Ignite
>          Issue Type: Task
>          Components: cache
>            Reporter: Semen Boikov
>            Assignee: Semen Boikov
>             Fix For: 2,0
>
>
> Currently, when optimistic transaction acquires lock for key which is not 
> modified by any other tx, TransactionOptimisticException is still possible if 
> read lock has already been acquired by any other tx with higher tx version.
> Following optimization is possible to avoid TransactionOptimisticException 
> for mostly read keys: when tx tries to add lock for 'read' key, and there are 
> only 'read' locks in entry's queue, then lock can be acquired immediately 
> without tx version check. Standard version comparison should still take place 
> in case any writer is in queue which may result in optimistic exception.
> Having this implemented:
> # Ignite will not throw optimistic exception for read only keys
> # Ignite will be able to commit multiple transactions in parallel if these 
> transactions intersect only by their "reading" sets.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to