apache / apache/inlong

[Improve][SDK] Fix non-atomic worker selection in getWorker in the DataProxy Go SDK

Open
#12,198 0 comments 0 reactions 0 assignees View on GitHub
type/improve
Dominant language
Java
Stars
1.5k
Forks
572
Avg merge
22h 7m
Merged PRs (30d)
8

Description

### Description

In the Dataproxy Go SDK, concurrent Send calls can start the round-robin scan from the same worker index, so the load is not evenly distributed across workers under high concurrency.

### InLong Component

InLong SDK

### Are you willing to submit PR?

- [x] Yes, I am willing to submit a PR!

### Code of Conduct

- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

Contributor guide

Open the contributing guide

Research direction

Locate getWorker in the Dataproxy Go SDK and trace how concurrent Send calls choose a worker. Reproduce the behavior with concurrent sends, then verify that worker selection is atomic and distributes calls evenly under high concurrency.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.