Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apache Ignite Deadlock Error on Continuous Select and Update Operations #11884

Open
joice1910 opened this issue Feb 18, 2025 · 0 comments
Open
Labels

Comments

@joice1910
Copy link

Hi team,

I am using Apache Ignite version 3.0.0 and have created a table with the following schema:

CREATE TABLE INSTANT_CDR (
MSISDN VARCHAR PRIMARY KEY,
RECHARGE_AMOUNT DOUBLE,
VOICE_AMOUNT DOUBLE,
LAST_NAME VARCHAR,
BALANCE DOUBLE
);

I have a JDBC Java program that performs SELECT and UPDATE operations on the table. The select query is:

SELECT * FROM INSTANT_CDR WHERE MSISDN='123456789'

And the update query is:

UPDATE INSTANT_CDR SET RECHARGE_AMOUNT=RECHARGE_AMOUNT+1, VOICE_AMOUNT=VOICE_AMOUNT+1 WHERE MSISDN='123456789'

However, when I perform continuous inserts and updates on rows, I am encountering the following error on the Ignite side:

Caused by: org.apache.ignite.internal.tx.LockException: IGN-TX-4 TraceId:b5f06ecc-1378-4315-96d9-e25d9ff70e6f Failed to acquire a lock due to a possible deadlock [locker=0195176a-f0ce-000b-e5f1-efe300000001, holder=0195176a-f0ce-000b-e5f1-efe300000001]
at org.apache.ignite.internal.tx.impl.HeapLockManager.lockException(HeapLockManager.java:424)
at org.apache.ignite.internal.tx.impl.HeapLockManager$LockState.isWaiterReadyToNotify(HeapLockManager.java:931)
at org.apache.ignite.internal.tx.impl.HeapLockManager$LockState.tryAcquire(HeapLockManager.java:851)
at org.apache.ignite.internal.tx.impl.HeapLockManager.acquire(HeapLockManager.java:216)
... 20 more

How does Apache Ignite handle concurrent SELECT and UPDATE operations? I am concerned about potential deadlocks due to continuous row updates and queries. Could anyone provide suggestions or configurations to resolve this issue and improve concurrent transaction handling in Ignite?

Thank you in advance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants