Postgres for OpenVMS

Поиск
Список
Период
Сортировка
От Jim Jennis
Тема Postgres for OpenVMS
Дата
Msg-id 3.0.5.32.20000817180548.0081c150@pop.shentel.net
обсуждение исходный текст
Ответы Re: Postgres for OpenVMS  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
Hi Postgresql Developers!

A few weeks ago I posted a message on the pgsql-general list asking about a
possible port of Postgresql to OpenVMS. 

Bruce Momjian (who has a lot of VMS experience) wrote me back explaining
the difficulties involved in such a port.

Well, since Bruce's note, I have been poking aroung in the VMS community
and lo and behold, one of my VMS colleagues (David Mathog at Caltech) had
actually begun to look at this in conjunction with my efforts.

I had an email exchange with David today and I have attached it below. I
hope the Postgresql team may have an opportunity to look it over and
(perhaps) consider revisiting the possibility of a "VMS port" of Postgresql
or at least maybe a "VMS team".

Here is a condensed synopsis of my emails with Dave.

Best Regards (and THANKS FOR A DYNAMITE DATABASE!!!),

Jim
....................................................... I've been looking for an affordable database system for our
OpenVMSsystem,so far, with no luck.  In that quest I've examined some of the freewaredatabase systems.  I couldn't make
headsor tails of MySql or Interbase(especially their build procedures).  But a recent slashdot thread on theexcellent
performanceof Postgresql convinced me to give it a try.I only allowed myself one workday for this - if it didn't all
fallsubstantiallyinto place by then I wasn't going to pursue it. And it didn'tget far enough for me to go on within
thattime limit but somebody elsemay want to pick up the pieces (which will at least save them from having to start
totallyfrom scratch).  The distribution is here:
ftp://seqaxp.bio.caltech.edu/software/pgsql_vms_partial_port.zip(It'sbig - 16872 blocks!)  Look at
aaa_vms_port_notes.txtin the topdirectory, and then to do the partial build do $ set def [.src]$ set ver$ @make_vmsThe
partialport is based on an edited log of a build on Linux/Intel. It ispretty depressingly for those of us who hope that
OpenVMShas a future towatch a large package like this build without a hitch on Linux/Intel, andto compile at roughly
100xthe rate that is obtained on OpenVMS (dueentirely to the file IO wrapped up in the 100 or so #include
operationstypicalfor each module - and the current lack of an effective file cachingsystem on OpenVMS.)  Anyway, the
Linuxbuild supplied enough information toput together most (not all) of an OpenVMS build procedure. The good news is
thatmost of the code seems to be pretty well written - for Unix code.  By that I mean that while it doesn't conform to
anyoneC language standard, the vast majority of it compiled with some combinationof defined language standards, and the
restcould be built with/standard=relaxed so long as they didn't also require some Unix API notpresent on VMS.  (Just
don'texpect /warn=(enable=all) to be silent, eventhough it flies through gcc -Wall on linux quietly.)  In short,
somethinglike95% of it could be compiled cleanly "out of the box", and most of the rest of that 5% were routines that
needto be replaced anyway.  That's a lot better than most packages I see.  (See aaa_vms_port_notes.txtfor some of the
potentialbugs I saw - none of which were resolved.)The bad news is that the entire IPC section needs to be rewritten to
usenativeVMS APIs - but that does also open up the opportunity to make itmore "cluster" aware.  (Thanks to Dan O'Reilly
foridentifying the "UNIXdomain sockets" pieces, which I'd never seen before.)   Those few of you who know your way
aroundthe innards of multithreaded OpenVMS web serversmay be able to make quick work of the rest of the port - the
issuesleftunresolved by my work are those already resolved in such servers.
 

After looking at the Postgresql code it looks like a  review their codefor missing ifdefs, especially HAVE_SYS_PARAM_H
mayhelp. Those sorts of
 
things are set up by "configure" but I found numerous instances where the
code did not apply the appropriate #ifdef and I had to put it in.  I think
it also would be good have a look at my port notes as the VMS compiler
flagged a bunch of things that were either outright bugs or were done in a
nonportable manner.  

For instance   if(foo == -1) when foo (at least on OpenVMS) is an unsigned int.The build procedure for this is the
posterchild for the speed limitations currently built into VMS systems.  It took forever to chunk through this pile of
codeon my DS10, and something like a minute to do it on RH 5.2/Intel on a 400 Mhz PII.  (But if you do some line like
$cc.... source.cand  $ cc..../preproc source.c  $ cc....         source.iyou'll find that the compilation of the .i
fileis about 6 times faster than that of the .c, ie, it's all file access time grinding through the includes.)Anyway,
goodluck to whoever wants to have a shot at this next.
 


,-,-.     ,-,-.     ,-,-.     ,-,-.     ,-
/ / \ \   / / \ \   / / \ \   / / \ \   / /    \ \ / /   \ \ / /   \ \ / /   \ \ / /      `-'-'     `-'-'     `-'-'
`-'-' 
 
--------------------------------------------------------
FSC - Building Better Information Technology Solutions-     From the Production Floor to the Customer's Door.
--------------------------------------------------------

Jim Jennis, Technical Director, Commercial Systems
Fuentez Systems Concepts, Inc.
1 Discovery Place, Suite 2
Martinsburg, WV. 25401 USA.

Phone: +001 (304) 263-0163 ext 235
FAX:   +001 (304) 263-0702

Email: jjennis@fuentez.com      jhjennis@shentel.net
Web:   http://www.discovery.fuentez.com/
---------------------------------------------------                   



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Ben Adida
Дата:
Сообщение: Re: Inserting a select statement result into another table
Следующее
От: Chris Bitmead
Дата:
Сообщение: Re: Inserting a select statement result into another table