[om-list] Re: development tools for our project

Mark Butler butlerm at middle.net
Mon Mar 26 11:11:42 EST 2001


I vote for PostgreSQL, primarily because it is a real database, particularly
in regard to ACID properties and recoverability.  MySQL is faster primarily
because it lacks these things, although they are working on basic transaction
support.  One key advantage PostgreSQL has is a multi-versioned read system
like Oracle, which makes it possible for large transactions to proceed without
blocking other readers for long periods.  The 8K row limit is being fixed.

I don't mind doing a reasonable amount of programming in Java.  However, if we
have common database platform, there is nothing that stops us from writing
standalone utilities in C++ or other languages.  Java is more than fast enough
for most client applications - in any case the overhead of relational database
access will far outweigh the difference between Java and C++ unless you copy
your entire working set of objects into memory, which isn't possible in the
general case.

I could set up a PostgreSQL database and make it available over the internet,
but you will find that due to cross-network packet latency it will be rather
slow to access from an application running anywhere else.  Doing remote Java
GUI development on my server with X will be nearly impossible for the same
reason.

The two forms of remote development without multiple databases that are
practical are web application server development with JServ/JSP, etc. or
accessing the database via a middle tier server that can handle complex
multi-class queries in one request and reply.  A current example of the latter
are servers that implement the various XML transaction protocols floating
around.

The other alternative is for everyone to get a Linux box and install their
own  database server.  Java development could then be done on whatever client
machine as is convenient.  We would have to make a key allocation scheme and
utilities to replicate data from one installation to the another.

I think a three tier system with Java clients is the best alternative, but we
could get started with two tier development if you are either very patient or
willing and able to run your own database server.

 - Mark


Luke Call wrote:
> 
> OK, after reading a comparison of MySQL and PostgreSQL I wonder whether
> to use MySQL. The only reasons for MySQL would be performance, more
> convenient management tools ("describe" I like, since like Oracle), and
> better data reliability. Reasons for Postgresql would be features
> (nested select, transactions), runs longer without crashing (??-guy said
> MySQL had to be restarted regularly after 60-90 days of constant use)
> and maybe finer-grained locking (not totally sure on that one). Reasons
> against postgresql (how to you spell/pronounce that?) would be that the
> reviewer had to restore databases 2-3 times in a couple from corruption,
> and a 8k/row limit. I guess it may not be a huge deal to me either way.
> Maybe with ongoing work on postgresql it will turn out to be fine.
> 
> Also, I'm bringing up the Java argument again for coding. Here's why:
> 1) vastly less timetaking to develop/maintain/debug than C/C++ (instant
> stacktrace with line numbers, every time it crashes or whenever you want)
> 2) performance as good or nearly so, for most purposes as far as I
> understand (esp w/ hotspot's compilation & real-time inlining
> optimizations; bottlenecks are almost always the network anyway, in my
> experience; my java apps usually don't use much CPU but spend most of
> their time waiting for server responses).
> 3) instantly cross-platform (no platform-specific ifdef headaches), so
> you can use it on NT and I can use it on Linux, etc. This is a big deal.
> At work I code on NT and run on Solaris, no extra effort required except
> classpaths in the startup script on Unix have ':' and NT has ';'--ok so
> 30 seconds of platform-specific work.
> 4) we are not writing device drivers now; in C++ I constantly have to
> think about being careful rather than the problem at hand.
> 5) their gui libraries are fine now, but I don't care about a gui much
> at this point anyway.
> 6) looks & feels like C++ in syntax so really not difficult at all to
> migrate over.
> 7) very elegant api's, libraries, and overall code organization
> 8) you can run a large variety of other languages in the JVM (python,
> scheme, lisp if desired). This could be a bonus when we start adding
> fancy features and end-user programming to the system, since you're
> really not tied to a specific language if you don't want to be.
> 9) they are teaching it more in schools and more people and vendors are
> migrating to it.
> 10) JDBC drivers let you swap databases in/out on the bottom, without
> worrying about platform-specific issues or always recoding.
> 11) you can distribute to multiple platforms with exact same files
> 
> Bottom line is I'm so short on time and I want to get work done, not
> dink around with things that just make you take longer with no
> observable benefit.
> 
> But I'm up for a debate if someone really wants!  ;)
> 
> Luke
> 
> _______________________________________________
> om-list mailing list
> om-list at onemodel.org
> http://www.pairlist.net/mailman/listinfo/om-list

-- 
Mark Butler	       ( butlerm at middle.net )
Software Engineer  
Epic Systems              
(801)-451-4583




More information about the om-list mailing list