apache / apache/druid

Fix concurrency in old Druid classes

Open
#7,061 3 comments 1 reaction 0 assignees View on GitHub
Contributions Welcome stale
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.