Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What aspect of relational databases makes it difficult for them to scale sufficiently on services like Google App Engine?

Apparently the reason for the BigTable architecture has to do with the difficulty scaling relational databases when you're dealing with the massive number of servers that Google has to deal with.

But technically speaking what exactly makes it difficult for relational databases to scale?

In the enterprise data centers of large corporations they seem to be able to do this successfully so I'm wondering why it's not possible to simply do this at a greater order of magnitude in order for it to scale on Google's servers.

like image 448
pacman Avatar asked Jan 30 '10 05:01

pacman


People also ask

Why is it difficult to scale a relational database?

Scalability: Users have to scale relational database on powerful servers that are expensive and difficult to handle. To scale relational database it has to be distributed on to multiple servers. Handling tables across different servers is difficult . Complexity: In SQL server's data has to fit into tables anyhow.

What are the main problems with relational databases?

The relational data model doesn't fit in with every domain. Difficult schema evolution due to an inflexible data model. Weak distributed availability due to poor horizontal scalability. Performance hit due to joins, ACID transactions and strict consistency constraints (especially in distributed environments).

Why is RDBMS not scalable?

RDBMS systems guarantee consistency. Sharding makes the system tolerant to partitioning. From the theorem follows that the system can therefor not guarantee availability. That's why a standard RDBMS cannot scale very well: it won't be able to guarantee availability.

Does node js work with relational database?

Node. js supports all types of databases, including relational and NoSQL databases.


1 Answers

When you perform a query that involves relationships which are physically distributed, you have to pull that data for each relationship into a central place. That obviously won't scale well for large volumes of data.

A well set-up RDBMS server will perform the majority of it's queries on hot-pages in RAM, with little physical disk or network I/O.

If you are constrained by network I/O, then the benefits of relational data become lessened.

like image 157
Mitch Wheat Avatar answered Dec 23 '22 05:12

Mitch Wheat