Java Virtual Threads and Pipelined Database Operations
summary
Claim: database pipelining makes a DB call return immediately so the client can enqueue more statements, and Oracle measures up to 90x speedups on high-latency networks and >100x for DML in internal tests. Implementation uses an Oracle JDBC reactive extension (mapped to Project Reactor) or synchronous code on Virtual Threads; the driver adds nonblocking I/O, replaces blocking locks to avoid thread pinning, and even pipelines JDBC batches under the hood so blocking on v-threads is practical.
AI-written summary · about
chapters (9)
- 0:00Introduction and context
- 3:36Database pipelining overview
- 8:00Reactive extensions in JDBC
- 13:22Reactive streams integration
- 17:16Java virtual threads
- 20:40Combining APIs for pipelining
- 23:23Standard batching techniques
- 25:20Oracle support and features
- 33:48Technical Q&A and wrap-up
related talks
42mVirtual Threads - what we won or lose using it.
39mUnlocking Data-Intensive Applications with Virtual Threads
57mJDK 19 Virtual Threads: Skip Reactive, Boost Throughput
41mServices Reloaded Increased Throughput with Project Loom Virtual Threads
26mReactive Java Programming: a new Asynchronous Database...
50mVirtual Threads, Structured Concurrency, Extent Locals: When to Use Them & How
57mButcher Virtual Threads like a pro!
12mThe code is back to the database with Oracle MLE (GraalVM)
