+ om>
+Mime-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"; format=flowed
+Precedence: bulk
+Status: OR
+
+At 14:57 02/02/01 -0500, Alex Pilosov wrote:
+>On Fri, 2 Feb 2001, tomasz konefal wrote:
+>
+> > could someone please clarify what "Allow Java
+> > server-side programming" actually means? what are the
+> > limitations of using java and jdbc with pgsql?
+>
+>It means to embed Java interpreter inside postgres, and allow writing
+>stored procedures and triggers in Java.
+
+Thats correct. Basically you are talking of something like PL/Java. The
+Java side would be simple, but its linking the JVM to the backend that's
+the problem.
+
+It's been a while since I delved into the backend, but unless it's changed
+from fork() to threading, I don't really see this happening, unless someone
+who knows C that well knows of a portable way of communicating between two
+processes - other than RMI. If that could be solved, then you could use JNI
+to interface the JVM.
+
+I know some people think this would slow the backend down, but it's only
+the instanciation of the JVM thats slow, hence the other reason fork() is
+holding this back. Ideally you would want the JVM to be running with
+PostMaster, and then each backend can then use the JVM as and when necessary.
+
+Obviously you wouldn't want a JVM in every installation, but there are a
+lot of good reasons to have this capability. For example, as part of the
+course I did this week, we used Tomcat (Servlet/JSP/Web server). Now
+there's no reason why Tomcat could run within the same JVM. JBoss is
+another good example (EJB Server). The JBoss team have actually got Tomcat
+to run within the same JVM. Doesn't hinder performance at all, but does
+reduce the memory footprint.
+
+This is a good future thing to look into (why not for 8.0 ;-) ). If we
+could find an _optional_ way of hooking the backend direct into the JVM, we
+could get PostgreSQL into a lot of new areas. It also would make things
+like CORBA etc a doddle.
+
+PS: I'm writing down notes of the course to go onto the JDBC web site this
+weekend, so there's some nice things for EJB, RMI, Corba etc.
+
+More later, Peter
+
+
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id LAA13446
+ for
; Sat, 3 Feb 2001 11:54:12 -0500 (EST)
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f13GrZq17345;
+ Sat, 3 Feb 2001 11:53:35 -0500 (EST)
+Received: from mailout04.sul.t-online.com (mailout04.sul.t-online.com [194.25.134.18])
+ by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f13GnZq17000
+ for
; Sat, 3 Feb 2001 11:49:37 -0500 (EST)
+Received: from fwd06.sul.t-online.com
+ by mailout04.sul.t-online.com with smtp
+ id 14P5rE-0000zq-00; Sat, 03 Feb 2001 17:48:16 +0100
+Received: from peter.localdomain (520083510237-0001@[212.185.245.12]) by fmrl06.sul.t-online.com
+ with esmtp id 14P5r6-0YvD60C; Sat, 3 Feb 2001 17:48:08 +0100
+Date: Sat, 3 Feb 2001 17:56:33 +0100 (CET)
+cc: Alex Pilosov
, tomasz konefal ,
+Subject: Re: [HACKERS] TODO list: Allow Java server-side programming
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Status: OR
+
+Peter Mount writes:
+
+> Thats correct. Basically you are talking of something like PL/Java. The
+> Java side would be simple, but its linking the JVM to the backend that's
+> the problem.
+
+I've tried that recently, here's how it looks as far as Linux JVMs go:
+
+* Kaffe has a very polluted name space. Calls to its own functions get
+resolved to PostgreSQL, and vice versa. Crash and burn result. The Kaffe
+folks have admitted that this should be fixed but I didn't look farther
+yet.
+
+* The Sun/Blackdown JVM didn't work at all (not even 'java -version')
+until I upgraded my libc. Then a simple test run crashes with an "error
+external to JVM"; at first it looked like a segfault when referencing a
+string constant. In gdb I saw myself faced with about 10 threads running
+when nothing was going on yet, at which point I was too exhausted to
+proceed.
+
+* IBM's offering didn't work at all. I don't recall the problem anymore
+but I think it didn't even link correctly.
+
+So currently I don't see how this could become a mainstream project, let
+alone across platforms.
+
+> I know some people think this would slow the backend down, but it's only
+> the instanciation of the JVM thats slow, hence the other reason fork() is
+> holding this back. Ideally you would want the JVM to be running with
+> PostMaster, and then each backend can then use the JVM as and when necessary.
+
+But how do the other languages cope? Starting up a new Perl for each
+backend can't be so cheap either.
+
+--
+
+
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id MAA00813
+ for
; Sat, 3 Feb 2001 12:37:01 -0500 (EST)
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f13Haiq21225;
+ Sat, 3 Feb 2001 12:36:44 -0500 (EST)
+Received: from spider.pilosoft.com (p55-222.acedsl.com [160.79.55.222])
+ by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f13HX9q20913
+ for
; Sat, 3 Feb 2001 12:33:09 -0500 (EST)
+Received: from localhost (alexmail@localhost)
+ by spider.pilosoft.com (8.9.3/8.9.3) with ESMTP id MAA09231;
+ Sat, 3 Feb 2001 12:36:01 -0500 (EST)
+Date: Sat, 3 Feb 2001 12:36:01 -0500 (EST)
+cc: Alex Pilosov
, tomasz konefal ,
+Subject: Re: [HACKERS] TODO list: Allow Java server-side programming
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Status: OR
+
+On Sat, 3 Feb 2001, Peter Mount wrote:
+
+> It's been a while since I delved into the backend, but unless it's
+> changed from fork() to threading, I don't really see this happening,
+> unless someone who knows C that well knows of a portable way of
+> communicating between two processes - other than RMI. If that could be
+> solved, then you could use JNI to interface the JVM.
+There are many ways one can do this:
+a) each backend will have a JVM linked in (shared object). This is the
+way perl/tcl/ruby is embedded, and it works pretty nice. But, Java
+['s memory requirement] sucks, therefore, this may not be the optimal
+way.
+
+> I know some people think this would slow the backend down, but it's
+> only the instanciation of the JVM thats slow, hence the other reason
+> fork() is holding this back. Ideally you would want the JVM to be
+> running with PostMaster, and then each backend can then use the JVM as
+> and when necessary.
+b) since JVM is threaded, it may be more efficient to have a dedicated
+process running JVM, and accepting some sort of IPC connections from
+postgres processes. The biggest problem here is SPI, there aren't a good
+way for that JVM to talk back to database.
+
+c) temporarily, to have quick working code, you can reach java using hacks
+using programming languages already built into postgres. Both TCL (tcl
+blend) and Perl (JPL and another hack which name escapes me) are able to
+execute java code. SPI is possible, I think both of these bindings are
+two-way (you can go perl-java-perl-java). Might be worth a quick try?
+-alex
+
+
+
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id EAA04260
+ for
; Sun, 4 Feb 2001 04:23:41 -0500 (EST)
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f149Nhx75443;
+ Sun, 4 Feb 2001 04:23:43 -0500 (EST)
+Received: from me.tm.ee (adsl895.estpak.ee [213.168.23.133])
+ by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f149Mgx75338
+ for
; Sun, 4 Feb 2001 04:22:42 -0500 (EST)
+ by me.tm.ee (8.9.3/8.9.3) with ESMTP id LAA01488;
+ Sun, 4 Feb 2001 11:18:09 +0200
+Date: Sun, 04 Feb 2001 11:18:09 +0200
+From: Hannu Krosing
+X-Mailer: Mozilla 4.72 [en] (X11; U; Linux 2.2.17 i686)
+X-Accept-Language: en
+MIME-Version: 1.0
+CC: Alex Pilosov
, tomasz konefal ,
+Subject: Re: [HACKERS] TODO list: Allow Java server-side programming
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 7bit
+Precedence: bulk
+Status: OR
+
+Peter Mount wrote:
+>
+> At 14:57 02/02/01 -0500, Alex Pilosov wrote:
+> >On Fri, 2 Feb 2001, tomasz konefal wrote:
+> >
+> > > could someone please clarify what "Allow Java
+> > > server-side programming" actually means? what are the
+> > > limitations of using java and jdbc with pgsql?
+> >
+> >It means to embed Java interpreter inside postgres, and allow writing
+> >stored procedures and triggers in Java.
+>
+> Thats correct. Basically you are talking of something like PL/Java. The
+> Java side would be simple, but its linking the JVM to the backend that's
+> the problem.
+>
+> It's been a while since I delved into the backend, but unless it's changed
+> from fork() to threading,
+
+Someone posted here recently his port/tweaks of backend so that it used
+threads instead of fork(). IIRC it was done to be used inside a java
+client in an embedded system.
+
+----------------
+Hannu
+
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id GAA19741
+ for
; Sun, 4 Feb 2001 06:54:26 -0500 (EST)
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f14BsOx83329;
+ Sun, 4 Feb 2001 06:54:24 -0500 (EST)
+Received: from mail.retep.org.uk ([216.126.85.184])
+ by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f14Bs9x83240
+ for
; Sun, 4 Feb 2001 06:54:09 -0500 (EST)
+Received: from heather.retep.org.uk ([193.113.241.180])
+ (authenticated)
+ by mail.retep.org.uk (8.11.1/8.11.1) with ESMTP id f14BqkR83161;
+ Sun, 4 Feb 2001 06:52:46 -0500 (EST)
+X-Mailer: QUALCOMM Windows Eudora Version 5.0.2
+Date: Sun, 04 Feb 2001 11:51:21 +0000
+Subject: Re: [HACKERS] TODO list: Allow Java server-side programming
+Cc: Alex Pilosov
, tomasz konefal ,
+Mime-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"; format=flowed
+Precedence: bulk
+Status: OR
+
+At 17:56 03/02/01 +0100, Peter Eisentraut wrote:
+>Peter Mount writes:
+>
+> > Thats correct. Basically you are talking of something like PL/Java. The
+> > Java side would be simple, but its linking the JVM to the backend that's
+> > the problem.
+>
+>I've tried that recently, here's how it looks as far as Linux JVMs go:
+
+[snip]
+
+
+>So currently I don't see how this could become a mainstream project, let
+>alone across platforms.
+
+I don't think it would be, but it would be a good side-project. Over time
+the various JVM's should become better to interface with.
+
+
+> > I know some people think this would slow the backend down, but it's only
+> > the instanciation of the JVM thats slow, hence the other reason fork() is
+> > holding this back. Ideally you would want the JVM to be running with
+> > PostMaster, and then each backend can then use the JVM as and when
+> necessary.
+>
+>But how do the other languages cope? Starting up a new Perl for each
+>backend can't be so cheap either.
+
+But a lot cheaper than Java.
+
+Peter
+
+
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id GAA19817
+ for
; Sun, 4 Feb 2001 06:57:23 -0500 (EST)
+Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f14BvLx83711;
+ Sun, 4 Feb 2001 06:57:21 -0500 (EST)
+Received: from mail.retep.org.uk ([216.126.85.184])
+ by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f14Bv7x83611
+ for
; Sun, 4 Feb 2001 06:57:07 -0500 (EST)
+Received: from heather.retep.org.uk ([193.113.241.180])
+ (authenticated)
+ by mail.retep.org.uk (8.11.1/8.11.1) with ESMTP id f14BtjR83557;
+ Sun, 4 Feb 2001 06:55:45 -0500 (EST)
+X-Mailer: QUALCOMM Windows Eudora Version 5.0.2
+Date: Sun, 04 Feb 2001 11:54:20 +0000
+Subject: Re: [HACKERS] TODO list: Allow Java server-side programming
+Cc: Alex Pilosov
, tomasz konefal ,
+In-Reply-To:
+ com>
+Mime-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"; format=flowed
+Precedence: bulk
+Status: OR
+
+At 12:36 03/02/01 -0500, Alex Pilosov wrote:
+>On Sat, 3 Feb 2001, Peter Mount wrote:
+
+[snip]
+
+
+> > I know some people think this would slow the backend down, but it's
+> > only the instanciation of the JVM thats slow, hence the other reason
+> > fork() is holding this back. Ideally you would want the JVM to be
+> > running with PostMaster, and then each backend can then use the JVM as
+> > and when necessary.
+>b) since JVM is threaded, it may be more efficient to have a dedicated
+>process running JVM, and accepting some sort of IPC connections from
+>postgres processes. The biggest problem here is SPI, there aren't a good
+>way for that JVM to talk back to database.
+
+That was my other idea, but it is the IPC thats problematical. You would
+still need to do some native api to implement some messaging system between
+the two.
+
+However, at the other extreme there is RPC, which is possible now, but
+would be a lot slower.
+
+
+>c) temporarily, to have quick working code, you can reach java using hacks
+>using programming languages already built into postgres. Both TCL (tcl
+>blend) and Perl (JPL and another hack which name escapes me) are able to
+>execute java code. SPI is possible, I think both of these bindings are
+>two-way (you can go perl-java-perl-java). Might be worth a quick try?
+
+Might be one way to go...
+
+Peter
+
+>-alex
+>
+
+