apache / apache/ignite

Concurrent upsert causes deadlock. Is it normal?

Open
#12,366 6 comments 0 reactions 0 assignees View on GitHub
ignite-3
Dominant language
Java
Stars
5.1k
Forks
1.9k
Avg merge
3d 2h
Merged PRs (30d)
46

Description

Hello everyone!
I conduct small perftest on my local deplyment of ignite3, with 2 threads making 50% upsert and 50% get operations on random index:
```
public static void main(String[] args) throws Exception
{
String[] addresses = {
"localhost:10800",
"localhost:10801",
"localhost:10802"
};
try (IgniteClient client = IgniteClient.builder()
.addresses(addresses)
.connectTimeout(30000)
.build()) {

Runnable runnable = new Runnable() {
@Override
public void run() {
Random randomOp = new Random();
Random randomIndex = new Random();
Table perftest =client.tables().table("perftest");
long start = System.currentTimeMillis();
int N = 70000;
for (int i=0;i

Contributor guide

Open the contributing guide

Research direction

Start with the provided Java reproducer using IgniteClient against the three local nodes, combining recordView().upsert and recordView().get on random keys. Trace the lock acquisition and deadlock error, then determine whether this behavior is expected and what the supported prevention or correction should be.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.