Thomas Hallgren wrote:
Other than that fear, though, the JNI approach seems to have pretty considerable advantages. You listed startup time as the main disadvantage, but perhaps that could be worked around. Suppose the postmaster started a JVM --- would that state inherit correctly into subsequently forked backends?
That's an interesting thougth. The postmaster just forks. It never exec's right? Is this true for win32 as well? I've never tried it but it might be worth pursuing. Sun's new Java 1.5 jvm does this albeit a bit differently. An initializer process starts up and persists its state. Subsequent JVM's then reuse that state. I definitely plan for Pl/Java_JNI to take advantage of that.
Unfortunately, WIN32 has no fork(), and we have to exec the backend, in effect. You would need to handle both scenarios (#ifdef EXEC_BACKEND). For Unix this could be nice, though , and eliminate most of the disadvantage of your approach.
cheers
andrew
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend