Alexey Scherbakov created IGNITE-23159:
------------------------------------------
Summary: Fix broken serializability
Key: IGNITE-23159
URL: https://issues.apache.org/jira/browse/IGNITE-23159
Project: Ignite
Issue Type: Bug
Reporter: Alexey Scherbakov
Fix For: 3.0
Let's assume a table:
{noformat}
Goods:
id int primary key
name: varchar
category: varchar, indexed with non-unique index
{noformat}
and the following scenario, where two transaction are executed concurrently on
nodes A and B:
A: tx1: insert (1, Apple, Fruits); // takes IX lock
B: tx2: scan(Fruits) // found nothing, locks nothing
B: tx1: insert(2, Peach, Fruits); // takes IX lock
A: tx2:scan(Fruits) // waits for IX lock release to take S lock
tx1:commit
A: tx2: unlocked and reads Apple by index and finished
Serializability is broken, because tx2 doesn't see Peach and ordered later.
This needs to be fixed by taking index locks both on nodes A and B.
The same issue is applied to sorted indexes.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)