92

One of the big plusses for nosql DBMS is that they can cluster more easily. Supposedly with NoSQL you can create hundreds of cheap machines that store different pieces of data and query it all at once.

My question is this, why can't relational DBMS do this like mysql or sql server? Is it that the vendors just haven't figured out a technical way to do this with their existing product, or is there some issue with the relational model that prevents this from being feasible? What is so great about the NoSQL way of storing and accessing data (key/value, documents, etc) that makes clustering easier, if this is true at all?

ConcernedOfTunbridgeWells
  • 17,011
  • 2
  • 57
  • 71
fregas
  • 1,051
  • 1
  • 9
  • 7
  • 9
    Storing different bits of data over different machines (sharding) is technically incredibly easy, compared to something like Oracle RAC which can run on up to 63 nodes each presenting the same database, all being ACID compliant etc. "Clustering" in NoSQL is easy because there's no ACID, they use their own proprietary APIs and they're relatively simple. – Philᵀᴹ Feb 17 '13 at 16:29
  • 6
  • RAC is still a shared-disk architecture. It still requires a central SAN switch so any of the DBMS nodes can see any of the storage. You can have multiple SAN controllers making it a M:M architecture, though. Teradata is a shared-nothing architecture but it is optimised for data warehouse applications and you can still replicate portions of the database (e.g. dimension tables) across all of the nodes. Netezza is even less helpful. You have to load the individual segments of a partitioned table separately.
  • – ConcernedOfTunbridgeWells Feb 17 '13 at 17:08
  • 1
    So i have read and understood (most of) concerned's reply below. The issue seems to have much more to do with ACID then it does with the relational model. Are there solutions that use the relational model, even if they are not fully acid compliant, in the same way NoSQL is? It seems like NoSQL should really be named NoACID as it has nothing to do with sql or relational model, and everything to do with consistency, atomicity, data access and storage locations, etc. – fregas Feb 22 '13 at 22:33
  • 7
    @fregas - NoSQL doesn't have any formal definition. It's just a buzzword applied to various database management systems. Quorum replication (A.K.A. eventual consistency) is used by many such systems (although by no means all) as a performance optimisation. I'm not aware of any RDBMS product that uses quorum replication - certainly none of the mainstream ones do. There's no theoretical reason why it couldn't be done, but it would be rather complex and of questionable value given the level of scalability that can be achieved by shared disk systems anyway. – ConcernedOfTunbridgeWells Feb 22 '13 at 23:06
  • @ConcernedOfTunbridgeWells Quorum Replication is inconsistent with ACID though which is why it won't be done. – Chris Travers Feb 23 '13 at 14:14
  • 2
    @fregas I agree with you. Same is case, when people say "NoSQL avoid joins to give quicker results". But joins are avoided by denormalization. If denormalization is OK, then joins can be avoided even in RDBMS !!. So to extend your thought they should be NoACID-Denormalized-Datadump. It is just data dump of any structure; it can be inconsistent; it may not be durable. In short NoSQL accept no restriction and call themselves DIFFERENT !! very misleading. – Kaushik Lele Jun 06 '15 at 11:32
  • @ChrisTravers MySQL replication by default follows eventual consistency. – asn Jul 07 '23 at 06:22