Excellent progress Kevin!
I agree that it adding new low-level functionality functionality (such as new transport layer) and other optimizations to current JDBC code can be too difficult, making rewrite the only feasible way forward.
I like your usage of Netty as the IO layer. It really allows us to experiment in the future much more with the API we provide to applications. I also like the usage of the binary protocol whenever possible.
Some ideas I have had (in addition to the ones you have already implemented):
- create an asynchronous API for JDBC extensions with futures or asynchronous result row processing
- add pipelining to connections thus allowing better use of connections (works best with simple auto-commit queries)
- integrate async api to vert.x
- integrate async api to Akka
I will definitely have a more detailed look at the code.
-Mikko