Possibly provide an interpreter to isolate blocking jdbc ops into a thread pool
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 2.2k
- Forks
- 379
- Avg merge
- 14m
- Merged PRs (30d)
- 8
Description
This is a tentative idea inspired heavily by what slick does. In particular, the point would be able to create an interpreter that takes two ExecutionContexts, one for the main thread pool (or whatever thread pool should be given the final results), and one ThreadPoolExecutor, that is better suited for blocking JDBC ops to give the feeling of ✨ asynchrony ✨
This idea might be self defeating in that the overhead of isolation of operations could be large enough that it's faster to leave as-is, but it's definitely worth investigating, particularly for applications such as Http servers wherein work-stealing pools can suffer greatly from hard-blockers like JDBC
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading Slick's linked slick/util/AsyncExecutor.scala and compare its approach with the issue's proposed pair of ExecutionContexts and a ThreadPoolExecutor. Investigate whether isolating blocking JDBC operations provides enough benefit to justify its overhead, and consider the work done when the performance trade-off is established.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100