So - I'm definitely not willing to go as far as the GP was with their statement, but Oracle's database technology is pretty amazing. I love postgres, Spark, NoSQL, etc. and think the progress they have made is amazing, but Oracle's database from a raw featureset is incredible.
- Shared-something database clustering - true scale-out database clustering without writing sharding logic into your application, worrying about hot spots, or sacrificing significant performance due to overhead
- query offload to storage for bulk reads
- Flashback - someone wrote a bad update that might have messed with some data? You can tell the database to set your view of the database back to before that update to verify, and then decide if you want to move the whole database back, or just extract the records that were changed by that query
- fine-grained permissioning - have a table with credit card numbers in it? Give everyone access to it, but the credit card numbers are all obfuscated
- replication - block-level? statement-level? real-time? real-time with delay? Whatever you want. In fact, you can say "Hey, replicate this database to another datacenter, don't make it synchronous, but don't let it get more than 10 minutes out of sync"
- also, btw, when you need to failover that database, if you're feeling really brave, oracle can do the whole thing for you automatically, because their database client will notify a watcher that a majority of them have lost the necessary access to the database, but can talk to the standby, and the watcher handles the failover
I could go on and on. There's just so much intelligence in the Oracle database platform. Would I ever pay for it? No, it's better to build applications that don't need that level of sophistication. But if you're a big company who doesn't want to write software to be smart about data storage and recovery, Oracle does an amazing job at just guaranteeing your data won't go away.
On the business apps side of things, I think their software is mostly terrible, but I also think that they do focus on problems that OSS typically has not. If you are a manufacturer of satellites, there is probably not an OSS ERP solution that will work for you. If you need to store 300,000 personnel records, there's probably not an OSS HCM solution for you.
None of this means that they're not eventually doomed nor that they're not shitty, but it is very fair to say that their software deals with hard problems that OSS has not typically focused on.
Great comment, thanks for the details on the specific tech - this is rarely captured in the regular "just replace Oracle with PGSQL" threads on HN.
I think you can add to this the fact that Oracle has been hardening the platform and building/fixing edge cases for 30 years. This goes a long way to preventing procurement departments from moving away from the "no-one got fired for buying <dinosaur-x>" model.
I heard a crazy stat that 99% of Oracle's business ($36B revenue, $9B profit) comes from the top 0.01% of customers (basically the US Govt and the Fortune 10). The average OSS start up is not going to materially affect this.
The real problem (solvable with tech? maybe?) is changing the culture in which big orgs evaluate and procure IT. Otherwise Oracle will just be an attractive exit for startups rather than competition that can be threatened...
> I heard a crazy stat that 99% of Oracle's business ($36B revenue, $9B profit) comes from the top 0.01% of customers (basically the US Govt and the Fortune 10). The average OSS start up is not going to materially affect this.
That's almost certainly not true, given my experience with Oracle's business. I think it's fine to say that 90% of Oracle's business comes from the Global 1000, but I know what some F500 bills from Oracle were, and they were in the $100m-$200m/year range, so you need a much broader spread to get to 36b
They've done an awful job of hardening their platform. Cease and desist letters to those who give them reproducible test cases because they violated some sort of copyright/license term does not harden anything other than the arteries of DBAs everywhere.
Yes I agree with Oracle's database technology being amazing. It was born in an era when disk space was expensive and the only data storing mechanism that most developers know was transactional ACID SQL stores. However we are living in an era when disk is cheap, data volumes grew way beyond a single node capacity and we have a handful of different approaches when it comes to store data on disk. We also have much better understanding on tradeoffs in this world (CAP, etc.).
I have moved a bunch of companies from MySQL/Oracle to scalable key-value stores having much better operational characteristics than the SQL ones. Was it hard? Hell yes, we had to educate developers about not having transactions, network partitions, order of operations and a bunch of things that solutions like OracleDB hides from you. Was it worth it? Absolutely, we had 99.99% yearly uptime while the previous SQL based solution was somewhere in the 90.00 - 95.00 range. Did we save money? Absolutely, the licensing cost and the fact that we do not need beefy boxes around payed off. Is this relevant to the subject as Oracle is in trouble or not? I am not sure. If the most of money coming from the government and fortune 100 than probably not.
I am in the same boat like other here on HN, I prefer to build systems myself that I understand 100%, and trying to avoid using technology like Oracle as much as I can based on the experience with support and the pricing. Again, I mostly work with startups and companies where the budget cannot be blown on SQL licenses.
The biggest caveat for oracle and other proprietary solutions is the /dynamic/ licensing/pricing models having an effect on architecture based on disk, cpu and other paremeters.
With OSS solutions, postgres/mariadb etc I have the flexibility of deploying as many nodes, disks, cpu, machines as I want without thinking of how will effect the price, and without worrying of a sales organization tracking my use. That's why I don't worry about clustering, partitioning, linking and many other features lacking.
If I'm going to plan for 100M to 2B monthly active users for a growing organization Oracle/Ms SQL aren't an option at all. For small scale of up to 10K users, they seem to have a use case for "legacy" organizations.
There are two reasons several of my clients have chosen Oracle over Postgres.
#1: Training. Oracle does training very well. If need new DBAs in-house (for security reasons etc), they got huge array of options available. The most effective options are also insanely expensive. Once paid 400k€ to get two new DBAs. They became very good at it.
#2: Clustering. Postgres is nowhere near what Oracle offers. Even with the newest releases. What Oracle offers is real multi-master synchronized replication with proper distributed locks, low latency, and it's maintainable and easy to setup. Postgres has still 5-10 years to do before they will reach feature parity on today's Oracle.
You're absolutely right about the feature set of Oracle, it really is impressive. With every release Postgres gains more of the killer features of Oracle but there is still a long way to go.
In addition to your list above I would also like to mention partitioning. it is available now in Postgres but it is much weaker than what Oracle offers, although it does improve with every release. I would love to see row movement in Postgres.
Coming from an Oracle environment and now working primarily with Postgres I notice that Postgres is much nicer to developers where Oracle seems much more oriented to DBAs. Oracle has nice tools around things like partitioning and sharding but it doesn't even have a boolean datatype! Postgres has a full selection of datatypes, indexes and handy functions like row_to_json().
Thanks for this. I've heard good things about their DB and appreciate you writing down things you've liked about it. I can see the viability there given the other comment that .01% of customers provide the majority revenue, if they need this level of sophistication.
- Shared-something database clustering - true scale-out database clustering without writing sharding logic into your application, worrying about hot spots, or sacrificing significant performance due to overhead
- query offload to storage for bulk reads
- Flashback - someone wrote a bad update that might have messed with some data? You can tell the database to set your view of the database back to before that update to verify, and then decide if you want to move the whole database back, or just extract the records that were changed by that query
- fine-grained permissioning - have a table with credit card numbers in it? Give everyone access to it, but the credit card numbers are all obfuscated
- replication - block-level? statement-level? real-time? real-time with delay? Whatever you want. In fact, you can say "Hey, replicate this database to another datacenter, don't make it synchronous, but don't let it get more than 10 minutes out of sync"
- also, btw, when you need to failover that database, if you're feeling really brave, oracle can do the whole thing for you automatically, because their database client will notify a watcher that a majority of them have lost the necessary access to the database, but can talk to the standby, and the watcher handles the failover
I could go on and on. There's just so much intelligence in the Oracle database platform. Would I ever pay for it? No, it's better to build applications that don't need that level of sophistication. But if you're a big company who doesn't want to write software to be smart about data storage and recovery, Oracle does an amazing job at just guaranteeing your data won't go away.
On the business apps side of things, I think their software is mostly terrible, but I also think that they do focus on problems that OSS typically has not. If you are a manufacturer of satellites, there is probably not an OSS ERP solution that will work for you. If you need to store 300,000 personnel records, there's probably not an OSS HCM solution for you.
None of this means that they're not eventually doomed nor that they're not shitty, but it is very fair to say that their software deals with hard problems that OSS has not typically focused on.