Fix concurrency in old Druid classes
- Dominant language
- Java
- Stars
- 14.1k
- Forks
- 3.8k
- Avg merge
- 2d 58m
- Merged PRs (30d)
- 233
Description
This issue is a description of this project: https://github.com/apache/incubator-druid/projects/4.
It's suggested to take old Druid classes with concurrency (containing `synchronized`, `volatile`, Executors, ConcurrentHashMaps, etc.) one by one and review them using [this checklist](https://medium.com/@leventov/code-review-checklist-java-concurrency-49398c326154). This way many concurrency bugs can be found. Absolutely all old Druid classes with concurrency can be improved, because none of them has sufficient concurrent control flow, data flow, and threading model documentation, and doesn't justify the use of concurrency (see section 2 in the checklist).
#7038 is an example of such PR that I did myself.
If somebody wants to pick up a particular class to review and improve, please create a PR (or an issue first, if you want to ensure that nobody else works on the same class) and ping me (@leventov) in the PR or the issue description. I'll add it to the project. I'm also committed to review the PRs that belong to this project.
When picking a class to review and improve one can check the [project dashboard](https://github.com/apache/incubator-druid/projects/4) to see if some class hasn't been already reviewed.
Contributor guide
Research direction
Select a specific unreveiwed old class from the project dashboard, then read the linked Java concurrency checklist and the example in #7038. Review that class's concurrency controls and threading documentation, and consider the work done when the class has a focused improvement submitted as a PR and the issue or PR identifies the class reviewed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases, distributed-systems
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100