Concurrent upsert causes deadlock. Is it normal?
- 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
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