David Harris wrote:
> What about PostgreSQL (www.postgresql.org)? It looks like it has transaction
> management (commit, rollback) with the whole concurrency control thing. I
> don't know if has views. I've got a small project that I am figuring on
> using PostgreSQL for, so I'm curious to hear what people might have to say
> about it.
I was really excited about PostgreSQL before I knew much about databases
(not that I know that much now). I checked it out and it seemed cool...but
then I experimented with the likes of Sybase and Oracle. There are lots of
limitations to PostgreSQL, not the least of which was no referential
integrity last I checked (this may have changed). In addition to that,
though there were lots of other things that weren't dynamically changable
that were in the bigger RDBMs (dropping fields, changing data types on the
fly...stuff like that). There was some talk of questionable stability that
I heard that made me wary. All in all I have a lot of respect for Oracle the
database (not necessarily the company :), and I don't think PostgreSQL is
there yet, as much as I would like an open source DB to be.
> Another option to look at is Solid (www.solidtech.com). They just quoted me
> their Solid Embedded Server (their name for a database server) for $2,000
> per CPU. I used their database server a few years ago and it was very nice.
> Back then it cost only $200, too... :-)
>
> - David Harris
I've used Solid in the past as well. It seems more robust, etc than
PostgreSQL, but has issues too...some things can be changed dynamically
if you add things, but not remove (like fields). It has a weird idea of
transactions...you have to do a commit() after doing a select if you
want to see the latest data. You can't change table constraints after
a table is created (this gets complained about a lot. And finally, there
is something funny in the way it syncs data to disk. People who use Linux
are constantly applying some patch that changes the semantics of the fsync()
system call so that it's essentially non-blocking instead of blocking (like,
from what I understand, it should be). I don't know what to make of this
issue...it sounds like a gnarly technical problem from the linux kernel
archives I've seen it referenced in, and I've even seen Linus denounce that
DBs need this sort of functionality at all, although I honestly don't know
what the real deal is.
Anyway, all of this was with Solid 2.3, and with 3.0 out some issues may
be resolved. I'm pretty sure the fsync() stuff isn't (though this may be a
Linux issue...it's really hard to tell). Oh, and finally everyone was really
pissed at Solid for raising prices like x 10 out of the blue. I'm guessing
they
lost a lot of customers over it.
- Bill