Thread: PostgreSQL port to pure Java?
Has this subject been discussed before? I did not find any references to it in the archives. I think that a co-bundle between an open source J2EE container like JBoss and a scalable database like PostgreSQL will be a blast. There are several well performing comercial Java dbs out there and there is Hypersonic which is free and fast, but supports only READ_UNCOMMITED and is build to grow up to ~200MB. Ivelin
On Tue, 9 Dec 2003 07:15:41 -0800 (PST) Ivelin Ivanov <ivelin@apache.org> wrote: > > Has this subject been discussed before? > I did not find any references to it in the archives. > > I think that a co-bundle between an open source J2EE > container like JBoss and a scalable database like > PostgreSQL will be a blast. > > There are several well performing comercial Java dbs > out there and there is Hypersonic which is free and > fast, but supports only READ_UNCOMMITED and is build > to grow up to ~200MB. This would be a huge undertaking, rewriting PostgreSQL entirely in Java. Not to mention it would kill PostgreSQL's current speedy performance! --------------------------------- Frank Wiles <frank@wiles.org> http://frank.wiles.org---------------------------------
Ivelin Ivanov <ivelin@apache.org> writes: > Has this subject been discussed before? > I did not find any references to it in the archives. I think the phrase "not gonna happen" was invented for this subject. :) -Doug
It would be interesting to have a JBoss, PostgreSQL and the JDBC driver for PostgreSQL all bundled together in a single installation script. Keith -----Original Message----- From: pgsql-hackers-owner@postgresql.org [mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Ivelin Ivanov Sent: Tuesday, December 09, 2003 9:16 AM To: pgsql-hackers@postgresql.org Subject: [HACKERS] PostgreSQL port to pure Java? Has this subject been discussed before? I did not find any references to it in the archives. I think that a co-bundle between an open source J2EE container like JBoss and a scalable database like PostgreSQL will be a blast. There are several well performing comercial Java dbs out there and there is Hypersonic which is free and fast, but supports only READ_UNCOMMITED and is build to grow up to ~200MB. Ivelin ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster
Frank Wiles wrote: >On Tue, 9 Dec 2003 07:15:41 -0800 (PST) >Ivelin Ivanov <ivelin@apache.org> wrote: > > > >>Has this subject been discussed before? >>I did not find any references to it in the archives. >> >>I think that a co-bundle between an open source J2EE >>container like JBoss and a scalable database like >>PostgreSQL will be a blast. >> >>There are several well performing comercial Java dbs >>out there and there is Hypersonic which is free and >>fast, but supports only READ_UNCOMMITED and is build >>to grow up to ~200MB. >> >> > > This would be a huge undertaking, rewriting PostgreSQL entirely > in Java. > Very true. I just did a rough count and founs about 510,000 lines of code in .c and .h files in the source distribution. >Not to mention it would kill PostgreSQL's current > speedy performance! > > > Maybe, maybe not. Modern JVMs have much better performance characteristics than was once the case. Also, some of the things that Java buys you (memory management, threading, for example) might actually enhance performance in some circumstances. A crude port wouldn't work, though - it would have to be done in such a way as to leverage the platform's strengths, just as we leverage the strengths of writing in C. The *big* problem would be keeping a Java port in sync with the base. That would make it almost impossible to do in a worthwhile way IMNSHO - the maintenance would be a nightmare. It would be an excellent student exercise, though :-) As a Java programmer, I do agree that having a pure Java RDBMS system would be a Good Thing (tm), and the PostgreSQL code base might be an excellent place to start creating such a monster :-). cheers andrew
Andrew Dunstan <andrew@dunslane.net> writes: > Frank Wiles wrote: >> Not to mention it would kill PostgreSQL's current speedy >> performance! > Maybe, maybe not. Modern JVMs have much better performance > characteristics than was once the case. Also, some of the things > that Java buys you (memory management, threading, for example) might > actually enhance performance in some circumstances. I'm pretty skeptical that Java's GC could get better performance than palloc. As for threading, ISTM Java doesn't offer anything we couldn't get through POSIX threads if we were going to contemplate a full-scale rewrite anyway (which I think everyone agrees that we aren't). > As a Java programmer, I do agree that having a pure Java RDBMS > system would be a Good Thing (tm) Are there any advantages that this would provide that we could get without investing so much effort? For example, PL/Java seems like a reasonable approach to Java & PG integration that doesn't involve rewriting hundreds of thousands of lines of code. -Neil P.S. While we're contemplating pies-in-the-sky, I'd personally love to rewrite PostgreSQL in Objective Caml.
On December 9, 2003 12:15 pm, Neil Conway wrote: > P.S. While we're contemplating pies-in-the-sky, I'd personally love to > rewrite PostgreSQL in Objective Caml. I vote for InterCal. :-) -- D'Arcy J.M. Cain <darcy@{druid|vex}.net> | Democracy is three wolves http://www.druid.net/darcy/ | and a sheep voting on +1 416 425 1212 (DoD#0082) (eNTP) | what's for dinner.
Neil Conway wrote: >Andrew Dunstan <andrew@dunslane.net> writes: > > >>As a Java programmer, I do agree that having a pure Java RDBMS >>system would be a Good Thing (tm) >> >> > >Are there any advantages that this would provide that we could get >without investing so much effort? For example, PL/Java seems like a >reasonable approach to Java & PG integration that doesn't involve >rewriting hundreds of thousands of lines of code. > > > 2 different things, ISTM. I don't think the PG group should touch a port to Java - it would be a huge distraction. If someone (say, Ivelin) wants to do it, good luck to them. PL/Java would be way cool, though, and have very significant appeal, and is very much worth doing, I believe. (Not that I have the time to do it.) cheers andrew
D'Arcy J.M. Cain wrote: >On December 9, 2003 12:15 pm, Neil Conway wrote: > > >>P.S. While we're contemplating pies-in-the-sky, I'd personally love to >>rewrite PostgreSQL in Objective Caml. >> >> > >I vote for InterCal. :-) > > > Pick your poison from this site: http://99-bottles-of-beer.ls-la.net/ (see especially the entry for "make" :-) ) Personally, I vote for Ada :-) cheers andrew
Have a look at Axion for a pure java db http://axion.tigris.org/ Not as full featured,but still useful. Dave On Tue, 2003-12-09 at 13:32, Andrew Dunstan wrote: > D'Arcy J.M. Cain wrote: > > >On December 9, 2003 12:15 pm, Neil Conway wrote: > > > > > >>P.S. While we're contemplating pies-in-the-sky, I'd personally love to > >>rewrite PostgreSQL in Objective Caml. > >> > >> > > > >I vote for InterCal. :-) > > > > > > > Pick your poison from this site: http://99-bottles-of-beer.ls-la.net/ > (see especially the entry for "make" :-) ) > > Personally, I vote for Ada :-) > > cheers > > andrew > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org > >
Hello, All due respect but this seems like a completely insane idea. Sincerely, Joshua Drake Ivelin Ivanov wrote: >Has this subject been discussed before? >I did not find any references to it in the archives. > >I think that a co-bundle between an open source J2EE >container like JBoss and a scalable database like >PostgreSQL will be a blast. > >There are several well performing comercial Java dbs >out there and there is Hypersonic which is free and >fast, but supports only READ_UNCOMMITED and is build >to grow up to ~200MB. > >Ivelin > > >---------------------------(end of broadcast)--------------------------- >TIP 4: Don't 'kill -9' the postmaster > > -- Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC Postgresql support, programming shared hosting and dedicated hosting. +1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com Mammoth PostgreSQL Replicator. Integrated Replication for PostgreSQL
Dave Cramer wrote: >Have a look at Axion for a pure java db > >http://axion.tigris.org/ > >Not as full featured,but still useful. > > > Er, I take it that "not as full featured" is an example of meiosis :-) Here's what the web page says: ---------------------------------------- Not (Yet) Supported Features * ALTER TABLE (other than add/drop constraint) * client/server mode * constraints/foreign keys (partial support is available) * GROUP BY/HAVING * stored procedures * sub-selects * triggers (note that default column values are supported) * user-level security ---------------------- This is basically a small embedded db engine, not an enterprise class RDBMS. cheers andrew
ivelin@apache.org (Ivelin Ivanov) writes: > Has this subject been discussed before? > I did not find any references to it in the archives. > > I think that a co-bundle between an open source J2EE > container like JBoss and a scalable database like > PostgreSQL will be a blast. > > There are several well performing comercial Java dbs > out there and there is Hypersonic which is free and > fast, but supports only READ_UNCOMMITED and is build > to grow up to ~200MB. I expect that the general reaction would be along the lines of "Shoot me now." Java does not run on many of the platforms that PostgreSQL runs on, so the pursuit of a rewrite in Java would make PostgreSQL a whole lot less widely usable. If you want to take PG and do a rewrite in Java, the license does permit that. Just don't expect to get a lot of assistance. Others have suggested OCaml as an alternative; I would suggest Standard ML to be preferable, since Moscow ML is available on somewhat more CPU platforms. I _think_ that both OCaml and Moscow ML run on more platforms than does Java. The strongly self-verifying nature of ML strikes me as a better idea than Java. Ada would offer similar benefits, at the cost of quantities of declarations that would make your eyes bleed. The more waggish proposal of Intercal is a _bit_ unfair as retort to ML, though it seems quite apropos for Java :-). I'll suggest SWI-Prolog, just to be troublesome :-). -- select 'cbbrowne' || '@' || 'acm.org'; http://www3.sympatico.ca/cbbrowne/spiritual.html The way to a man's heart is through the left ventricle.
We remain sceptical about writing an RDBMS in Java. The earlier version of TelegraphCQ was in Java and turned out to be a bit of a pain. Some more information: Mehul A. Shah, Samuel Madden, Michael J. Franklin, Joseph M. Hellerstein: Java Support for Data-Intensive Systems: Experiences Building the Telegraph Dataflow System. SIGMOD Record 30(4): 103-114 (2001) Apart from our group, the database research group in Wisconsin also rewrote their Niagara system from Java to C++. -- Pip-pip Sailesh http://www.cs.berkeley.edu/~sailesh
Andrew Dunstan kirjutas T, 09.12.2003 kell 22:07: > Dave Cramer wrote: > > >Have a look at Axion for a pure java db > > > >http://axion.tigris.org/ > > > >Not as full featured,but still useful. > > > > > > > > Er, I take it that "not as full featured" is an example of meiosis :-) > > Here's what the web page says: > ... > ---------------------- > > This is basically a small embedded db engine, not an enterprise class RDBMS. And a small (ok, maybe not small) embedded db engine is the only place I can see any benefit from a rewrite to java. The rewrite of early Postgres from LISP to C was probably done for good reason. OTOH, it could be cool to be able to run JavaPostgreSQL as a stored procedure inside Oracle ;) ------------- Hannu
On Tue, 2003-12-09 at 12:32, Andrew Dunstan wrote: > PL/Java would be way cool, though, and have > very significant appeal, and is very much worth doing, I believe. (Not > that I have the time to do it.) > http://pljava.sourceforge.net/ Someone did it but it didn't catch fire. Robert Treat -- Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL
That is the current status, but this is a very active project and I believe the cvs version is much better. You are correct though it is an embedded db, and as such is quite cool. The reason I suggested it was more of an academic exercise for folks who wanted to see the issues with doing this in java. Dave On Tue, 2003-12-09 at 15:07, Andrew Dunstan wrote: > Dave Cramer wrote: > > >Have a look at Axion for a pure java db > > > >http://axion.tigris.org/ > > > >Not as full featured,but still useful. > > > > > > > > Er, I take it that "not as full featured" is an example of meiosis :-) > > Here's what the web page says: > > ---------------------------------------- > > > Not (Yet) Supported Features > > * > > ALTER TABLE (other than add/drop constraint) > > * > > client/server mode > > * > > constraints/foreign keys (partial support is available) > > * > > GROUP BY/HAVING > > * > > stored procedures > > * > > sub-selects > > * > > triggers (note that default column values are supported) > > * > > user-level security > > ---------------------- > > This is basically a small embedded db engine, not an enterprise class RDBMS. > > cheers > > andrew > > > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > >
Robert Treat wrote: > Someone did it but it didn't catch fire. I think what will catch fire in a big way is plphp. Managers will like an all php platform that is extremely capable and productive. Developers will enjoy php's natural syntax and agnostic approach to programming. PHP5, when it becomes production ready, will offer high level language features that compete with Java, C#, and Object Pascal. Merlin
Andrew Dunstan wrote: >> Not to mention it would kill PostgreSQL's current speedy performance! >> >> > Maybe, maybe not. Modern JVMs have much better performance > characteristics than was once the case. Also, some of the things that > Java buys you (memory management, threading, for example) might actually > enhance performance in some circumstances. A crude port wouldn't work, > though - it would have to be done in such a way as to leverage the > platform's strengths, just as we leverage the strengths of writing in C. > > The *big* problem would be keeping a Java port in sync with the base. > That would make it almost impossible to do in a worthwhile way IMNSHO - > the maintenance would be a nightmare. > > It would be an excellent student exercise, though :-) Jokes and facts aside, I can't help it to think how better it would have been, if postgresql was in C++. We could easily plug multiple implementations of underlying subsystems without mucking much in base code.. Wild thought anyways.. Shridhar
Shridhar Daithankar <shridhar_daithankar@myrealbox.com> writes: > Jokes and facts aside, I can't help it to think how better it would > have been, if postgresql was in C++. We could easily plug multiple > implementations of underlying subsystems without mucking much in base > code.. That's easy to do in any language if your code is carefully designed for it (look at the Linux kernel for an example in C) and hard to do even in C++, if the design isn't suited. So your assertion that C++ would have magically enabled "pluggabilty" doesn't hold water. > Wild thought anyways.. Indeed. -Doug
My 2 cents... The C++ language is a horrible language from an OO perspective. Operator overloading, copy-constructors, templates, etc. can produce quite horrendous and inefficient results if used incorrectly. Having said that I must defend it some too. Using C++, you get inheritance, data-hiding, polymorphism, and namespaces. None of that is present in C. When used correctly, those mechanisms help greatly when creating safe, reusable, and pluggable code. Code that will become less error-prone than C code simply because it very effectively inhibits a huge number of errors that can (and almost always are) found in C code. No language provides magic pluggability in itself. But a language that supports OO semantics is a much better fit when such logic are designed than a language that doesn't. Pluggability implies interfaces. Interfaces are not intuitively created in C. I've been involved in quite huge C++ projects myself. One of the projects was actually to write an Object Oriented Operating System (embedded on M68K boards). C++ is excellent for this and I imagine the same would be true when writing a DB-engine. Some restrictions should be applied to make C++ "housebroken" such as: 1. Pass everything by pointer, never by &ref. This prevents accidental execution of copy-constructors. 2. Never ever allow operator overloading. Use true methods instead. Using op-overloading, the code might look elegant at first but after a while it degenerates and gets hard to undersand. 3. Refrain from macros as much as possible (it makes the code hard to understand and hard to debug.) Create inline methods instead if performance is an issue. Compare to Java where you actually have no preprocessor capabilities whatsoever. 4. Use templates very selectively, if indeed ever. 5. Have everything inherit from one common Object (so that collections etc. store a base type). - thomas -----Original Message----- From: pgsql-hackers-owner@postgresql.org [mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Doug McNaught Sent: Thursday, December 11, 2003 15:24 To: Shridhar Daithankar Cc: Postgresql Hackers Subject: Re: [HACKERS] PostgreSQL port to pure Java? Shridhar Daithankar <shridhar_daithankar@myrealbox.com> writes: > Jokes and facts aside, I can't help it to think how better it would > have been, if postgresql was in C++. We could easily plug multiple > implementations of underlying subsystems without mucking much in base > code.. That's easy to do in any language if your code is carefully designed for it (look at the Linux kernel for an example in C) and hard to do even in C++, if the design isn't suited. So your assertion that C++ would have magically enabled "pluggabilty" doesn't hold water. > Wild thought anyways.. Indeed. -Doug ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html "Doug McNaught" <doug@mcnaught.org> wrote in message news:87n09zqvph.fsf@asmodeus.mcnaught.org... > Shridhar Daithankar <shridhar_daithankar@myrealbox.com> writes: > > > Jokes and facts aside, I can't help it to think how better it would > > have been, if postgresql was in C++. We could easily plug multiple > > implementations of underlying subsystems without mucking much in base > > code.. > > That's easy to do in any language if your code is carefully designed > for it (look at the Linux kernel for an example in C) and hard to do > even in C++, if the design isn't suited. So your assertion that C++ > would have magically enabled "pluggabilty" doesn't hold water. > > > Wild thought anyways.. > > Indeed. > > -Doug > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faqs/FAQ.html >
Le Mardi 09 Décembre 2003 16:15, Ivelin Ivanov a écrit : > I think that a co-bundle between an open source J2EE > container like JBoss and a scalable database like > PostgreSQL will be a blast. Why not cut all trees on earth and replace them with plastic? Before that, we need to port mankind DNA to Windows 3.1 in order to improve speed.
Jean-Michel POURE said: > Le Mardi 09 Décembre 2003 16:15, Ivelin Ivanov a écrit : >> I think that a co-bundle between an open source J2EE >> container like JBoss and a scalable database like >> PostgreSQL will be a blast. > > Why not cut all trees on earth and replace them with plastic? Before > that, we need to port mankind DNA to Windows 3.1 in order to improve > speed. > So you like the idea, I take it? cheers, and compliments of the season andrew
Jean-Michel POURE wrote: >Le Mardi 09 Décembre 2003 16:15, Ivelin Ivanov a écrit : > > >>I think that a co-bundle between an open source J2EE >>container like JBoss and a scalable database like >>PostgreSQL will be a blast. >> >> > >Why not cut all trees on earth and replace them with plastic? Before that, we >need to port mankind DNA to Windows 3.1 in order to improve speed. > > > That seems a bit harsh. Personally I think porting PostgreSQL to java is silly but there is some argument to the benefit from his idea. If you are a java programmer. Sincerely, Joshua Drake >---------------------------(end of broadcast)--------------------------- >TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) > > -- Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC Postgresql support, programming shared hosting and dedicated hosting. +1-503-667-4564 - jd@commandprompt.com - http://www.commandprompt.com Mammoth PostgreSQL Replicator. Integrated Replication for PostgreSQL
That was uncalled for. Statements like this do not make the Postgres community any healthier. You don't have any benefit of pushing back Java users. Ivelin --- Jean-Michel POURE <jm@poure.com> wrote: > Le Mardi 09 D�cembre 2003 16:15, Ivelin Ivanov a > �crit : > > I think that a co-bundle between an open source > J2EE > > container like JBoss and a scalable database like > > PostgreSQL will be a blast. > > Why not cut all trees on earth and replace them with > plastic? Before that, we > need to port mankind DNA to Windows 3.1 in order to > improve speed. >
Ivelin Ivanov wrote: > That was uncalled for. > Statements like this do not make the Postgres > community any healthier. > You don't have any benefit of pushing back Java users. On the other hand, can you imagine the reaction of the Java camp to an idea like "why not rewrite JBoss in Tcl and PL/Tcl so that it fit's nicely together with PostgreSQL, that'd be a blast!". Tell you what, you'll get the finger ... and rightly so. Jan > > Ivelin > > > --- Jean-Michel POURE <jm@poure.com> wrote: >> Le Mardi 09 Décembre 2003 16:15, Ivelin Ivanov a >> écrit : >> > I think that a co-bundle between an open source >> J2EE >> > container like JBoss and a scalable database like >> > PostgreSQL will be a blast. >> >> Why not cut all trees on earth and replace them with >> plastic? Before that, we >> need to port mankind DNA to Windows 3.1 in order to >> improve speed. >> > > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com #
PostgreSQL runs beautifully together with JBoss (or any other J2EE platform) using its current JDBC driver so the idea of a co-bundle is not far fetched at all. I'm not an advocate for a backend rewrite to Java. I'm however a firm believer that Java and the J2EE platform will become (if it isn't already) the major development platform in the Open Source community. I think it's highly probable that PostgreSQL and Java will touch base in several areas in the future. I hope for a great future for PostgreSQL and I think that as it envolves it will support concepts that might be increasingly hard to write and maintain using plain C. A language with built-in support for OO semantics can be of great help. IMO it's better to keep an open mind regarding the future and the potential languages that might be used than to make remarks like the one Mr. Poure just made. Thomas Hallgren "Jean-Michel POURE" <jm@poure.com> wrote in message news:200312232303.22746.jm@poure.com... Le Mardi 09 D�cembre 2003 16:15, Ivelin Ivanov a �crit : > I think that a co-bundle between an open source J2EE > container like JBoss and a scalable database like > PostgreSQL will be a blast. Why not cut all trees on earth and replace them with plastic? Before that, we need to port mankind DNA to Windows 3.1 in order to improve speed. ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)