Hacker News new | past | comments | ask | show | jobs | submit login

Sure, in theory, but for right now Redis/Tokyo Tyrant/etc actually exist and are free.

Yes, there's a question of whether we are talking the right way to build systems, or which system you ought to use in production tomorrow. Building a whole "movement" around the simple lack of some software is a little short-sighted, IMHO.

BTW, Stonebraker's VoltDB (www.voltdb.com) is a high-performance OLTP engine, and apparently an alpha release will be open-sourced shortly (a few months, I believe).

the NoSQL movement is based around a recognition that many applications can sacrifice those in favor of performance and scalability.

You make it sound like the NoSQL people were the first to observe this. That is very far from the truth -- IMS, Codasyl, Berkeley DB, object-oriented DBs, etc. have all been around for a long time.




So, maybe you can clarify something for me.

Stonebraker cites Greenplum / Vertica / etc as examples of sql dbs that scale out. But all the ones he mentions are data warehouses that measure time from load to queriability in minutes. Not ms like the OLTP-focused nosql distributed systems.

And of course systems like RAC or pgcluster rely on a SAN, so that's not really playing the same game either.

Am I missing something? Feels like Stonebraker is cheating a little to make his point to me.


no your not missing anything. And I can speak from experience that RAC doesn't even help. We are in the progress of migrating from a RAC system to a NoSql system. RAC doesn't scale either.


Could you give more detail about what are you doing?


Suffice to say that RAC has been nothing but trouble since we moved to it from DB2 for scale reasons. Rather than pay a consultant tons of money to help us get it stable after less than a year on it we are now migrating off to a non-relational solution. I can't give more detail than that really. Maybe later I'll be able to get permission to post a blog post about it.


If you are scaling without a single image (which RAC gives you) then that's not playing the game either. Sharding is just re-implementing parallel query and partition elimination which you get out of the box with the major RDBMSs, and sacrificing the ability to do joins across shards (which you CAN do with real RDBMSs).

Also OLTP without ACID isn't playing either.


Vertica's load performance is quite impressive actually. Teradata also has installations doing high volume OLTP, not just OLAP.


"You make it sound like the NoSQL people were the first to observe this. That is very far from the truth -- IMS, Codasyl, Berkeley DB, object-oriented DBs, etc. have all been around for a long time."

Yes. The whole "NoSQL movement" doesn't make any sense until you recognize it not as a brilliant technical development, but as a backlash against hordes of people who always answered "What is the best way to store X?" with loud shouts of "SQL! And you're a moron if you disagree!" without ever examining the nature of X.

(Yeah, I'm obviously exaggerating. But only a bit. Don't even pretend that there haven't been people running around and shouting this at every available opportunity.)

"NoSQL" is ultimately more about the observation that relational databases indeed are not the be-all, end-all answer to every problem ever. In a technical sense they're not even remotely new; what's new is the cracking of the SQL dogma in common perception, brought on by an increasing number of workloads that SQL databases just can't handle economically. (Which is to say, even if there exists a SQL DB and a DB server that may meet some need, SQL doesn't win if the server is actually more expensive than using a "NoSQL" solution.)


"SQL! And you're a moron if you disagree!"

No-one ever said this, because no-one who actually knows anything about databases would think you store anything with a query language! It makes as much sense as answering "what filesystem should we use?" with "C!".

"NoSQL" is ultimately more about the observation that relational databases indeed are not the be-all

No, it's about thinking that MySQL is the be-all and end-all of relational database technology, whereas in feature terms it's 15-20 years behind the major players (indeed, only has basic functionality thanks to one of those players). When they come out with statements like "SQL doesn't scale" I look at RDBMSs storing >100T of data and/or handling >10,000 COMMITs/sec and I very quickly figure out who has actual experience and who doesn't.


Actually, there is a subtlety you've missed. We don't use relational databases. We use SQL, and endless variants thereof. I'd be a lot less grumpy about relational databases if there was a relational-but-not-SQL way of using them. Thought this grumpiness has nothing to do with the "NoSQL" issues, I just hate being stuck on 1970s syntax.

(No, this is not a complaint about "sets". It is in fact the opposite, that it doesn't support the truly relational style of programming anywhere near well enough!)

"When they come out with statements like "SQL doesn't scale" I look at RDBMSs storing >100T of data and/or handling >10,000 COMMITs/sec and I very quickly figure out who has actual experience and who doesn't."

And you're gliding right over the question of what is being stored, how it is being accessed, on what timeframe it is being accessed, what is being done with it, and how much it costs vs other options which is something I rather made a point of pointing out. A $10 million dollar solution to something that could have been solved with $0 and five hundred developer hours is not an acceptable solution. The fact that the expensive solution works isn't even relevant, really.

You know, all those pesky engineering details that SQL, sorry, RELATIONAL-uber-alles advocates always conveniently forget about. Nothing is free.


We don't use relational databases. We use SQL, and endless variants thereof. I'd be a lot less grumpy about relational databases if there was a relational-but-not-SQL way of using them.

Have you tried LINQ?

uber-alles advocates always conveniently forget about. Nothing is free

That is what I mean when I say sharding is just reimplementing features you get "for free" with a real database (in the sense that they're built in). There is also the cost of reinventing the wheel...


LINQ, so far as I know, backs to SQL, and thus inherits the inadequate relational aspects of SQL. The syntax is nicer, though, and also goes a long way towards demonstrating my point about the annoying inadequacies of SQL. Especially as I dig deeper into the functional world, the inability to meaningfully compose SQL statements is really getting annoying.

I am in the weird position of being both a relational snob and thinking that relational databases aren't the solution to everything.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: