LWN: Comments on "SCALE 8x: Relational vs. non-relational" https://lwn.net/Articles/376626/ This is a special feed containing comments posted to the individual LWN article titled "SCALE 8x: Relational vs. non-relational". en-us Wed, 01 Oct 2025 18:22:30 +0000 Wed, 01 Oct 2025 18:22:30 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/378461/ https://lwn.net/Articles/378461/ dmag <div class="FormattedComment"> <font class="QuotedText">&gt; Seems to me like you want postgres to be able to just morph into any other type of database</font><br> <p> No, I didn't mean that. I wouldn't want Postgres to add all of those features, because it would be lots of extra complexity to get some "simple" features.<br> <p> I was pointing out some limitations of current systems (since most people are still in the denial stage, saying "what's wrong with the RDBMS?") The fundamental concept behind the NoSQL movement is "we need new tools in the toolbox", and there are a lot of "new tools" to explore.<br> <p> </div> Fri, 12 Mar 2010 19:44:26 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/378336/ https://lwn.net/Articles/378336/ robert_s <div class="FormattedComment"> Seems to me like you want postgres to be able to just morph into any other type of database instantly at your whim, no matter how fundamentally different some of the ideas behind them are.<br> </div> Fri, 12 Mar 2010 00:54:28 +0000 The unfortunate "NoSQL" moniker and Polyglot Persistence https://lwn.net/Articles/378210/ https://lwn.net/Articles/378210/ jwmittag <p>I always thought the NoSQL moniker was a quite unfortunate choice of naming, because it conveys exactly the <em>opposite</em> of what the whole NoSQL movement (another not quite so fortunate moniker) is all about: choosing the right tool for the job. Ruling out an entire class of databases is certainly <em>not</em> about choosing the right tool for the job. In fact, it is <em>exactly</em> what the NoSQL movement complains about.</p><p>A much better name would be the "Not-automatically-SQL" movement or "Not-only-SQL" movement. Or, as Ben Scofield calls it, <a href='http://BenScofield.Com/2009/09/polyglot-persistence/'>"polyglot persistence"</a> (in analogy to the polyglot programming movement, which has been very successful in bringing the point across that there are domains where Java might not be automatically the best choice). What polyglot persistence is <em>really</em> about is changing the persistence question from "Which Edition of Oracle is the right tool for job" to "Which data organization, query algorithms, atomicity level, consistency level, isolation level, durability level is the right tool for the job". It is <em>also</em> about offering fast, scalable, dependable, robust, mature persistence solutions for every point in that design space, but the first goal is the more important one, IMHO.</p> Thu, 11 Mar 2010 14:05:01 +0000 Regarding hierarchical RDBMS https://lwn.net/Articles/378185/ https://lwn.net/Articles/378185/ gvy I've met at least two bright examples of non-relational RDBMS which did shine where My|Pg or Ora just would not: <ul> <li><a rel="nofollow" href="http://daylight.com/">Daylight</a> for cheminformatics just blew off whatever I could even primitively benchmark with mysql/postgresql back then (2001/2002) by *orders* in speed, not even trying to compare the exact problem domain value (e.g. <a rel="nofollow" href="http://www.daylight.com/dayhtml/doc/theory/theory.finger.html">fingerprints</a>); <li><a rel="nofollow" href="http://fis-gtm.com">GT.M</a> (remember MUMPS?) and temporal model users (whether in hospital IT or business) might have a good laugh with "If the data being stored has a life independent of the specific application and needs to be available to new applications down the road, SQL-relational is probably the right choice".<br>There was e.g. a discussion on sql.ru describing the details of a migration off a "legacy" hierarchical system to Java and Oracle -- which "doubled the performance" (forgetting to mention the need to go dual Xeon 51xx and external storage from something like dual Pentium with SCSI). </ul> Basically, if you have to do things like "this attribute holds a value changing the *meaning* of that attribute", then you just reinvented a hierarchical database where adding another leaf might be less pain and overhead. And you might have wanted to look a bit wider. :) Thu, 11 Mar 2010 10:35:24 +0000 Minor MS Access point https://lwn.net/Articles/377845/ https://lwn.net/Articles/377845/ smitty_one_each <div class="FormattedComment"> The ADODB.Connection object does support transactions:<br> <a href="http://msdn.microsoft.com/en-us/library/ms807955.aspx">http://msdn.microsoft.com/en-us/library/ms807955.aspx</a><br> Not that we'd go admitting familiarity with Redmond products, mind you.<br> </div> Tue, 09 Mar 2010 14:28:06 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377668/ https://lwn.net/Articles/377668/ dmag <div class="FormattedComment"> I think the "revolutionary" isn't so much a label for the technology, but the fact that people are "bucking the trend" socially. The RDBMS has been the "gold standard" for the last 30 years. But the RDBMS market has basically stopped innovating. Trust me, I LOVE postgres, but it's lacking a lot of useful features. such as:<br> <p> - Ability to just "add nodes" to help performance, without massive administration overhead. This is non-trivial: You need merkel trees, vector clocks, gossip protocols, etc. See Cassandra and Riak (and the Dynamo paper).<br> <p> - Ability to answer queries quickly - The RDBMS has tons of overhead, such as query parsing, index selection, query optimization, etc. Some of the Key-Value stores can answer a query before an RDBMS is finished figuring out what the query is.<br> <p> - Ability to forget about the database enforcing schema -- that's the application's domain. (In the old days, the database had to enforce constraints because it was the "integration point". Now every app has an API, so the database is only used by one app.)<br> <p> - Ability to forget about writing to disk. Writing to disk means you have to run disk-based recovery (fsck, special recovery code, etc.) It's slow and especially useless in the cloud (on EC2, you can instantly loose your disk and you don't get it back). Instead, if you want HA, you should do replication with fail-over (in multiple data centers.)<br> <p> - Ability to forget about consistency - It's *much* easier to achieve HA if you drop consistency. Consistency isn't always a business requirement. (See Amazon, see airline overbooking policies)<br> <p> </div> Mon, 08 Mar 2010 00:32:43 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377666/ https://lwn.net/Articles/377666/ tack <div class="FormattedComment"> Your reporting is fine (excellent, in fact). The GP and I have clearly read a different article.<br> <p> Your wording most certainly did not "lump together MySQL and MS Access." The only legitimate complaint concerning MySQL (InnoDB supports transactions) has been pointed out and defended (MySQL+MyISAM is the default, and therefore "the most popular database"). <br> </div> Sun, 07 Mar 2010 23:01:19 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377659/ https://lwn.net/Articles/377659/ bronson <div class="FormattedComment"> Or, what if your queries don't easily translate into SQL's SELECT and UPDATE model?<br> <p> I had this last year: the data itself fit perfectly into tables with foreign keys. Problem is, we were trying to allow marketing people to slice and dice it in fairly arbitrary ways, and their needs would change from week to week.<br> <p> This was typical data warehouse-type stuff. Compute the monetary total of all orders for customers from this region. If that's above a value provided by marketing, then what's the average zip code and standard deviation for the remaining customers who have dogs, etc. (you get the idea)<br> <p> I wish I had done the whole thing in MongoDB using map-reduce. I think it would have been a lot faster, both to develop and to run. I wouldn't have to spend as much time figuring out which indices, counter caches, and denormalization that would be needed to make this week's reports complete in time.<br> <p> So, even if your data model is nicely tabular, that doesn't mean your usage patterns will be!<br> <p> </div> Sun, 07 Mar 2010 16:53:12 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377655/ https://lwn.net/Articles/377655/ kleptog <div class="FormattedComment"> That's not entirely true. SQL has concepts like "tables", "columns" and "rows" which, if your database doesn't have them, is going to make it really hard to make SQL function at all. (SQL assumes a fairly rigid structure)<br> <p> For example, suppose your database consists of a objects with attributes, dynamically created, which can contains references to other objects, not necessarily of the same types. Maybe there are no "types" at all and all objects are exactly as they come. They may reference other objects arbitrarily.<br> <p> While you might try to make something that looks like SQL for such a database, but it's unlikely to be practical.<br> <p> I think NoSQL should be reserved for databases which don't follow the relational model at all, and thus are unsuitable for SQL even if you wanted it to.<br> </div> Sun, 07 Mar 2010 14:17:13 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377647/ https://lwn.net/Articles/377647/ njs <div class="FormattedComment"> <font class="QuotedText">&gt; I'm having a hard time even trying to come up with any examples of revolutionary software changes</font><br> <p> rsync? Diffie-Helman/RSA?<br> <p> The GPL?<br> <p> But yeah, it's like the old rule about fields whose name contains the word "science"...<br> </div> Sun, 07 Mar 2010 07:46:52 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377513/ https://lwn.net/Articles/377513/ jake <div class="FormattedComment"> <font class="QuotedText">&gt; he came off sounding like some unstable and embittered crank, resentful</font><br> <font class="QuotedText">&gt; of the success of the competition and consumed with putting them down </font><br> <font class="QuotedText">&gt; at every opportunity.</font><br> <p> Wow, I am going to have to disagree. While Josh was a tiny bit PostgreSQL partisan in his talk, he was most certainly not unstable or embittered. If my report makes him seem that way, then I reported poorly, for which you (and he) have my apologies.<br> <p> jake<br> <p> </div> Fri, 05 Mar 2010 19:34:26 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377510/ https://lwn.net/Articles/377510/ einstein <div class="FormattedComment"> While he made some good points, the anti-mysql propoganda was a bit much - lumping mysql together with ms access with a straight face, claiming that mysql lacks transaction support, he came off sounding like some unstable and embittered crank, resentful of the success of the competition and consumed with putting them down at every opportunity.<br> <p> Just for the record, from the official mysql documentation: <a href="http://dev.mysql.com/doc/refman/5.0/en/commit.html">http://dev.mysql.com/doc/refman/5.0/en/commit.html</a><br> <p> Comparing the postgres of tomorrow with the mysql of 1997, way to go!<br> <p> <p> </div> Fri, 05 Mar 2010 19:15:20 +0000 MySQL *does* have transactions https://lwn.net/Articles/377508/ https://lwn.net/Articles/377508/ dps <div class="FormattedComment"> It is a pity that the MySQL was claimed not to do transactions. MySQL has supported transactions, if you use InnoDB tables, for *many years*. Unlike most other databases MySQL also supports lighter weight table types that do not support transactions.<br> <p> I have actual experience that demonstrates rolling back many updates of several tables works as advertised. If you are looking for things missing from MySQL then OLTP support is probably a good place to start looking.<br> <p> I suspect that the OLTP support is MySQL is somewhere between nonexistent and minimal but my knowledge might be out of date.<br> </div> Fri, 05 Mar 2010 19:13:07 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377502/ https://lwn.net/Articles/377502/ dps <div class="FormattedComment"> Before using a database it is import to ask whether a database fit the problem. If you want to build a structure containing all or most of a set of data my answer would usually be ¨no¨.<br> <p> If you want fast access to small portion of a large data set then databases obviously fit. Whatever the interface all databases offer efficient ways to find the portion of the data you want. The relational and security features of SQL databases are potentially valuable for some applications.<br> <p> While I have not explored them in detail what I have seen of XML and NoSQL databases strikes me as inferior to the SQL alternative in almost all respects. The only exception is Berkley DB which is good in many instances where SQL would be serious overkill.<br> <p> </div> Fri, 05 Mar 2010 17:37:02 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377478/ https://lwn.net/Articles/377478/ rgoates <div class="FormattedComment"> The GOODS database engine should be mentioned, though it never seemed to reach usage critical mass. I used it around the year 2000 and found it to be a reasonable alternative to commercial object oriented database engines of the time. You could even build a geographically distributed database with it, and its direct links between objects made complicated data schemas very tractable compared to a relational approach. A pity that its creator seemed to lose interest in it after it matured. He did some great work.<br> <p> </div> Fri, 05 Mar 2010 14:52:26 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377428/ https://lwn.net/Articles/377428/ skissane <div class="FormattedComment"> SQL is just a query language. You can query anything you want with SQL, if you are willing to write the required code - a SQL parser, and code to execute the queries.<br> <p> Likewise, any query language you want, you can use to query a SQL database. Once more, you just need to write the parser for your favourite query language, and some code to execute it.<br> <p> In both cases, you may be able to reuse the target systems query engine to some extent, but may need to supplement it with your own code in some cases. For example, if I want to map SQL to LDAP, LDAP has equivalents to SELECT, FROM, WHERE, ORDER BY (if I use the sort control); but LDAP has no equivalents to JOIN or aggregates, so you'd have to write your own code for those.<br> <p> SQL is not my favourite language -- if I was designing it, I would make the syntax much less COBOL-ish. I think its a pity we don't use something like QUEL or Tutorial D or BS12's query language. On the other hand, its the industry standard.<br> <p> But please, no more trying to distinguish databases based on whether they support SQL or not. Any database can support SQL, or any other query language you want -- at most, its just a question of whether the database has that support builtin, or if you have to build it yourself. Its just an interface issue.<br> <p> And also, too many people attack "relational" databases when they really mean to attack various real world implementations of relational theory. Most of their gripes are really with the implementations rather than the theory, and often the solution is not to junk the theory, but to improve the accuracy of its implementations.<br> </div> Fri, 05 Mar 2010 06:03:28 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377299/ https://lwn.net/Articles/377299/ iabervon <div class="FormattedComment"> There are plenty of revolutionary software changes. None of them work, and they won't work until a number of evolutionary changes make them viable. Static typing, automatic garbage collection, parameterized typing, and type inference were all revolutionary at different times, and were all unusable for generations before they had evolved to the point where people could use them, be able to do what they need to do, and get the benefits from the change.<br> <p> When something claims to be revolutionary, the claim is generally really that its evolution has just made the revolutionary change available to people who want a system that works and don't want to redesign their application regularly to account for recent discoveries.<br> <p> </div> Thu, 04 Mar 2010 17:30:32 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377259/ https://lwn.net/Articles/377259/ felixfix <div class="FormattedComment"> Maybe he could have been a bit more pedantic and said "the most popular installation of the most popular database" but the answer is the same: it is the most popular database.<br> </div> Thu, 04 Mar 2010 15:30:04 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377242/ https://lwn.net/Articles/377242/ nye <div class="FormattedComment"> <font class="QuotedText">&gt;The new systems are not revolutionary, just evolutionary.</font><br> <p> It seems a truism that any product described by its adherents as 'revolutionary' isn't.<br> <p> (Off the top of my head I'm having a hard time even trying to come up with any examples of revolutionary software changes - this is in part the reason why I think sw patents are fundamentally wrong.)<br> </div> Thu, 04 Mar 2010 14:14:28 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377196/ https://lwn.net/Articles/377196/ irabinovitch Session audio is available online as an <a href="http://audio.socallinuxexpo.org/Saturday/Beginners/talk%20%231%20(Josh%20Berkus).mp3">mp3</a> Thu, 04 Mar 2010 09:07:46 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377177/ https://lwn.net/Articles/377177/ ringerc <p>Also: Whichever database system(s) you choose, <b>you need to learn about them and understand them</b>.</p> <p>This is particularly true for more powerful (and complex) systems like relational databases, but still applies to even simple key-value stores. You don't just need to understand the system, though, but also established techniques and ideas about how to best use the system(s) you've chosen.</p> <p>I see this a lot on the PostgreSQL mailing lists. For example, people will ask "why is my bulk data load so slow" and it'll turn out they're doing a million individual INSERT statements, one per record, over a high latency network - and they're running each as a standalone transaction. Each sequentially-executed statement requires at least one network round trip, plus an fsync() to make sure the data has hit disk before the server can reply with a completion notice, so <i>of course</i> it's slow. Get them to use COPY, or batch the inserts into large multi-VALUEd blocks inside one transaction and suddenly it's a thousand times as fast.</p> <p>In addition to that sort of thing - learning about how to best use the technology you've chosen - you also need to understand how to manage the data. Some simpler non-relational databases may not require formal schema definitions, but you still need to understand how data will be stored, retrieved, pruned, etc - and failing to plan for that will lead to a nightmare down the track.</p> Thu, 04 Mar 2010 05:35:29 +0000 SCALE 8x: Relational vs. non-relational https://lwn.net/Articles/377176/ https://lwn.net/Articles/377176/ ringerc <i>"Transaction support is something that many open source people don't know about because the most popular database (MySQL) doesn't implement it."</i> <p>... if you're talking about ancient MySQL 3.x, sure.</p> <p>It'd be rather more accurate to say "... because the default MyISAM storage system used by the popular MySQL database doesn't support it."</p> <p>I only hope the quote is inaccurate or an oversimplified paraphrase, because I'd expect better of him.</p> <p>I'm a PostgreSQL user for good reasons, but I still get bugged by people pushing outdated misinformation about MySQL. It has more than its fair share of *real* faults and limitations; no need to hang onto ones that're thankfully in the past :-P</p> Thu, 04 Mar 2010 05:20:49 +0000 PostgreSQL conference https://lwn.net/Articles/377165/ https://lwn.net/Articles/377165/ Webexcess <div class="FormattedComment"> Seems relevant that PGCon just opened its registration: <a href="http://www.pgcon.org/2010/">http://www.pgcon.org/2010/</a> <br> </div> Thu, 04 Mar 2010 03:19:54 +0000