Database Scaling

When a system grows it’s data also grows with it requiring the database to be scaled in order to handle loads of data. The two broad approches for scaling a database is vertical scaling and horizontal scaling. Same as in scaling an application server vertical database scaling refers to allocating more resources to the database server and horizonal scaling referes to techiniques like database replication and database sharding However as in every system design it all depends on the context....

Scaling for Millions of Users

Scenario : A system that caters large number of users with a web front-end and a mobile app. Things to consider Choice of Database For most cases relational database like MySQL would work Things to consider when going for NoSQL Application requires super law latency Unstructured data or data has no relations Need to store a massive amount of data Scale the application tier Decide whether horizontal or vertical scaling Vertical scaling is limited by CPU, Memory, Space and cost Horizontal scaling require adding new components like load balancers and changing the application to be able to share load Scale the database (database-scaling)...