M2Y wrote: > Hello, > > I am a CS graduate and I have a brief idea of Postgres and Oracle. > But, I dont have an in-depth knowledge in any of them. I have a couple > of questions and > > I want to compare both of them in terms of functionality, performance, > advantages and disadvantages. > > Why most enterprises prefer Oracle than Postgres even though it is > free and has a decent enough user community. One significant factor is scaling and clustering. Right now, PostgreSQL has network-based master-to-slave(s) clustering using Slony that permits slaves to operate online read-only as reporting servers etc. It also covers failover with the use of an external heartbeat/STONITH setup. However, it's not completely transparent to the application and it's not seen as "part of postgresql". There are some other options that I'm largely unfamiliar with out there, but right now it seems that Slony is the way to go with Pg. Oracle, by contrast, has multiple-master clustering on shared storage (which can be iSCSI, FireWire, SAS, SCSI, or basically whatever else you like) with a network side-channel for inter-node messaging. All nodes can be active readers and writers in cooperation. I haven't used it and can't speak for its performance, reliability or admin-friendliness, but it seems to see very wide use in large systems. I'm pretty sure they also support master->slave replication and failover, etc. Multiple master clustering offers scaling options other than upgrading your DB server to add more disks/RAM/CPU, or moving reporting onto a separate read-only slave, so it'd be very nice to have on any project where serious growth looks likely. That's not to say you can't build some pretty big systems with Pg (and they certainly exist) ... but the scale-out options added by multiple-master clustering will certainly weigh decisions between the two database systems for some types of loads. -- Craig Ringer