News for hackers. Stuff that matters.
Re:The sudden death and eternal life of Solaris by harry8 on Monday September 04, 2017 @07:16PM (#15171434)
Bryan Cantrill give a great lecture. I saw him give an overview of DTrace a decade or more ago and remain impressed. Check him out.

https://www.youtube.com/results?search_query=bryan+cantrill

It's sad that we live in a world where a company doing good , innovative and useful tech is gobbled up by a company like Oracle who should not exist and do largely on their ability to con ignorant senior management and even more ignorant boards of directors.

Is there ever a technical reason to use Oracle? If there is what percentage of Oracle sales does it account for? Ie if it really is non-zero I bet it's a single digit percentage. Woeful company from the top down is their reputation and they've earned it.

Re:The sudden death and eternal life of Solaris by ams6110 on Monday September 04, 2017 @07:50PM (#15171555)
The Oracle rdbms was at least for a while unmatched. It had programmability, functionality, and tunability that no other database had. If you needed what it provided, and could afford it, there was no real substitute.

Today, Postgres has come a long way, and distributed databases are much more developed. There is probably much less technical justification for using Oracle than there was 10+ years ago.

Also many companies would pay for Oracle and just use it for CRUD operations. That was throwing money away, no doubt.

Re:The sudden death and eternal life of Solaris by rodgerd on Monday September 04, 2017 @11:31PM (#15172322)
> The Oracle rdbms was at least for a while unmatched. It had programmability, functionality, and tunability that no other database had. If

That's never really been true. From day 1 it's been neck-and-neck with DB2.

Re:The sudden death and eternal life of Solaris by saiya-jin on Tuesday September 05, 2017 @04:23AM (#15173371)
from developer perspective, that's far from true. oracle was a polished product, DB2 was, well... IBM product, PITA in various forms (toolset, easy to use etc.)
Re:The sudden death and eternal life of Solaris by closeparen on Monday September 04, 2017 @08:41PM (#15171752)
Uh, doesn't everything you do with a database reduce to CRUD?

I understand that sometimes you do the composition of many CRUD operations, but this is still CRUD.

Re:The sudden death and eternal life of Solaris by 0xCMP on Monday September 04, 2017 @08:57PM (#15171808)
Literally everything you do with memory and disks can also be reduced to CRUD, but that is an extreme example to show my point: a DB does a lot more. A well written DB, in this case a good RDBMS, gives you stronger guarantees that data is saved and accessed in certain ways. That by itself is worth using a better one that gives you better guarantees.

But they also provide stronger typing and checking of the data. They provide a programming language neutral way to access the data quickly and efficiently. They index data to make queries on it faster. They do much of this automatically so you think it's all simple CRUD operations, but they also provide ways to explain what they're doing if it isn't working as expected. I can count the number of programs (not DBs) on my hand that I know of that can explain themselves accurately without needing a debugger.

Edit: I don't mean to be annoying. Most people on HN knew this and I'm not assuming you didn't, but while most people just use RDBMS for simple CRUD operations they're losing out on the power that these databases have been designed with.

Re:The sudden death and eternal life of Solaris by bpyne on Monday September 04, 2017 @09:39PM (#15171934)
Amen to everything you and arnarbi wrote.

However, I've come to dislike building business rules using the proprietary languages of the RDBMS vendors. In particular, I use Oracle and have been making a case with my employer to stop creating ties to Oracle by using PL/SQL as our house language. While it provides some efficiencies and can sometimes make coding easier, it can stifle development as easily.

I'm all for expressing data relationships in the RDBMS and using efficiency mechanisms like indexes and cost-based optimization. However, I now prefer business rules to be expressed outside the database.

[EDIT: Corrected anarbi to arnarbi.]

Re:The sudden death and eternal life of Solaris by aNoob7000 on Tuesday September 05, 2017 @09:06AM (#15174705)
As someone working at a company that decided to write most of their SQL code at the application layer, there are definite tradeoffs. Our application performance suffers because of the fear of vendor lock-in and the flexibility others thought that writing code at the application level would provide.

The question I pose to anyone consider this type of architecture is, how often do you switch database platforms?

Re:The sudden death and eternal life of Solaris by bpyne on Tuesday September 05, 2017 @09:56AM (#15175161)
The answer is almost never because the cost in time is too high for such a switch. It's the same question I posed 10 years ago. My view changed since coming to my current employer.

I work for a moderate-sized university. The applications I support require up-to-date information in order to test modifications. They are read-intensive with few writes within the database. We can afford only one test database for the entire university. We refresh the database from production only once a quarter, at most. My applications would benefit greatly by being able to switch URL's to the production database in order to test a mod. Since our code, written in PL/SQL, gets stored in the database that it runs on, we can't do such a thing without significant effort: dblinks or modifying package names to store in production for testing or a test schema or whatever else you can think up.

Another issue is that PL/SQL is not a robust language for modern development. Its type-system was designed for strictness, which is great in life-critical systems. But, there is no notion of inheritance and no ability to write generic collections.

To mimic inheritance, you can create objects backed by tables and inherit one from the other. It has the feel of being bolted on and yet another tie to Oracle.

One final issue is that PL/SQL is highly subject to the resource management of the Oracle kernel. Often, the kernel is extremely efficient. But, there are times when you need code running in a separate address space, preferably on a separate server. For instance, one application I wrote is a batch system that has a lot of processing rules built into it. Our database is tuned for OLTP. My application is categorized by the DBA's as data warehouse-oriented. Yet my application has to run hourly throughout the day and compete with resources necessary for the OLTP stuff. Putting it onto a separate server, away from Oracle's kernel management, would more than likely help a performance issue we have.

So, the answer to your question is the one you were looking for. But, my concern isn't necessarily switching database vendors.

Re:The sudden death and eternal life of Solaris by cmkrnl on Tuesday September 05, 2017 @10:13AM (#15175352)
I understand the cost of switching now. Was Postgres never an option? Do the uptime requirements call for RAC etc.?
Re:The sudden death and eternal life of Solaris by bpyne on Tuesday September 05, 2017 @10:55AM (#15175812)
Our Banner student information system is tied to Oracle. My applications all go against Banner data. Given the licensing cost for Oracle and our current round of cost-cutting, if Postgres was an option, we'd probably take it.
Re:The sudden death and eternal life of Solaris by jlgaddis on Tuesday September 05, 2017 @12:38PM (#15176810)
Several years ago at an .edu I had to deal with an upgrade from our current system to Banner. I truly feel for you. :)
Re:The sudden death and eternal life of Solaris by fulminatorz68 on Tuesday September 05, 2017 @09:45AM (#15175026)
Never. You have sufficient expertise to make the solution work and enough exposure to the code base to modify core if necessary. Oracle: never an option.
Re:The sudden death and eternal life of Solaris by gcb0 on Tuesday September 05, 2017 @10:51AM (#15175763)
postgre got a lot of adoption being a drop in replacement for mysql a while ago.
Re:The sudden death and eternal life of Solaris by mariusmg on Tuesday September 05, 2017 @05:40AM (#15173696)
>gives you stronger guarantees

Your DB either supports ACID or it doesn't. The term "stronger guarantees" is snake oil. It's either guaranteed or is not. That simple.

Re:The sudden death and eternal life of Solaris by 0xCMP on Tuesday September 05, 2017 @10:04AM (#15175249)
Yes, but it's made by fallible people, who may make mistakes in previously good software you update to, and it assumes a computer doesn't fail which can still happen (although very rarely now).
Re:The sudden death and eternal life of Solaris by closeparen on Monday September 04, 2017 @09:46PM (#15171951)
Do people really not mean types, referential integrity, indexes, transactions, queries, etc. when they say CRUD?

If table stakes for a database are more sophisticated than CRUD, what the hell is trivial enough to be CRUD then? Seems like a straw man.

Re:The sudden death and eternal life of Solaris by eropple on Monday September 04, 2017 @11:58PM (#15172418)
And referential integrity, transactions, and SQL types are only dimly important in a Rails app or something in Node using Sequelize.

Plenty of apps--perhaps more apps than not--use a database as a vaguely typed (MySQL out of strict mode barely gives a nod to them) multiplayer notepad.

Re:The sudden death and eternal life of Solaris by arnarbi on Monday September 04, 2017 @08:59PM (#15171819)
Not at all. RDBMS features were critical in getting performance and scale once upon a time. Sharding, access control, authentication, indexed views, fk relationships and other constraint enforcement, cascading updates and deletes, efficient data management with stored procs, caching, etc etc.

My first job was even writing dynamic web apps entirely in Informix.

Re:The sudden death and eternal life of Solaris by tarsinge on Tuesday September 05, 2017 @07:14AM (#15174067)
> once upon a time. RDBMS features were critical in getting performance and scale once upon a time. Sharding, access control, authentication, indexed views, fk relationships and other constraint enforcement, cascading updates and deletes...

Do you think of better ways to handle this nowadays? Is it more effective/maintainable to do this in the app layer?

Re:The sudden death and eternal life of Solaris by arnarbi on Tuesday September 05, 2017 @10:20AM (#15175421)
I think it depends on the situation. In many cases these can be handled at the app level, in particular relationships. If you use any kind of ORM, most of your queries will be on primary keys so there is less need for other indexes. Views are perhaps replaced by pre-processing data pipelines to some extent. I haven't seen database-level users or ACLs for a long time.

But I don't know, I don't really do this stuff anymore. At Google we certainly have storage and database systems with a lot of non-CRUD features (look at Spanner for example).

Re:The sudden death and eternal life of Solaris by tatersolid on Monday September 04, 2017 @08:25PM (#15171689)
The product that built Oracle the company, their RDBMS, is frankly one of the worst pieces of "enterprise" software I've ever encountered.

Oracle's only redeeming quality seems to be free golf at nice country clubs paid for by Oracle salespeople.

Re:The sudden death and eternal life of Solaris by pjmlp on Tuesday September 05, 2017 @02:25AM (#15172926)
Open source databases still don't have a developer environment that matches what Oracle or SQL Server offer.

Same applies to their stored procedures languages and deployment options.

Re:The sudden death and eternal life of Solaris by Tostino on Tuesday September 05, 2017 @08:01AM (#15174315)
See, once I actually started using pl/pgsql, I found it really powerful and a match for T-SQL. Never used PL/SQL though, so can't compare.
Re:The sudden death and eternal life of Solaris by pjmlp on Tuesday September 05, 2017 @08:27AM (#15174453)
And which PostgreSQL developer editor can match SQL Server Management Studio?

Because pgAdmin isn't it, specially after it became an Electron app.

Re:The sudden death and eternal life of Solaris by Tostino on Tuesday September 05, 2017 @08:32AM (#15174478)
You're not wrong there. I miss SSMS.

pgAdmin3 wasn't a terrible application. Nowhere near SSMS, but not terrible (other than stability... it's shit there).

pgAdmin4 is unusable.

Re:The sudden death and eternal life of Solaris by fulminatorz68 on Tuesday September 05, 2017 @09:48AM (#15175074)
Who actually uses these glorified IDEs? No one I've hired.
Re:The sudden death and eternal life of Solaris by jen20 on Tuesday September 05, 2017 @08:38AM (#15174515)
JetBrain's DataGrip is getting there for a wide variety of databases, including Postgres.
Re:The sudden death and eternal life of Solaris by snuxoll on Tuesday September 05, 2017 @12:09PM (#15176553)
+1 for DataGrip, I use in nearly exclusively for MSSQL and PostgreSQL (I only fire up SSMS when I need to manipulate some features of the database I can never remember the T-SQL incantation for, because Microsoft has to make shit as obtuse as possible).
Re:The sudden death and eternal life of Solaris by topkeker on Monday September 04, 2017 @07:42PM (#15171535)
Unfortunately the world doesn't run off technical ability though. Oracle is a mammoth because it's proficient at extracting value and profit from its businesses. Don't get me wrong, I agree with you in principle, but it's the equivalent of someone destroying artwork and making a gain from it and wondering how they get away with it when the world doesn't care about art, they care about money.
Re:The sudden death and eternal life of Solaris by ptero on Monday September 04, 2017 @08:18PM (#15171665)
IIRC, Oracle got a huge boost from US government as it was the semi-official database engine developed (for the Navy?) with taxpayer funds, then deployed (again with taxpayer funds). I'm not complaining, the US probably needed a better DB engine, but it was partly luck, partly backroom agreements that launched and supported Oracle for years. That said, maybe I got my facts badly mixed up.
Re:The sudden death and eternal life of Solaris by MrMorden on Monday September 04, 2017 @10:34PM (#15172114)
CIA. (Source: Larry Ellison, as quoted in Business Insider: http://www.businessinsider.com/the-cia-made-larry-ellison-a-...)

Which is why the villain in Charlie Stross's _The Jennifer Morgue_ is "Ellis Billington".

Re:The sudden death and eternal life of Solaris by frou_dh on Tuesday September 05, 2017 @07:23AM (#15174106)
I think it's SQLite that had Navy origins.
Re:The sudden death and eternal life of Solaris by ptero on Tuesday September 05, 2017 @08:04AM (#15174335)
You are probably right. I recall reading that Oracle development was funded by a DARPA-style mechanism, but I may have confused it with something. As MrMorden says in another comment it was likely the CIA who funded the development.