On 03/27/2011 11:14 PM, Dave Cramer wrote:
> Adding to the list is statement timeout. I seem to recall the issue is
> we do not want to spawn a thread for each statement which seems to be
> the only way to do this. Alternatively we could use timers, but I
> presume they just spawn threads as well.
Timers can use one shared thread for all timers, either a generic timer
thread provided by the JVM or (IMO better in this case) one dedicated to
that timer pool. I think it'd be an ideal way to do it personally - the
JDBC driver has several issues that'd be solvable by adding a single
thread to use for various timers, etc.
If there are concerns about the driver spawning a thread, it wouldn't be
too tricky to make timer-requiring features conditional on a connection
param, so if no connections that were going to use timer-based features
were made, no thread would be spawned. Personally I don't think a single
shared thread is worth worrying about, though. Have you *seen* the
thread lists in a modern Java app? Threads are extremely low cost when
idle, and are already heavily used throughout Java and the JVM.
--
Craig Ringer