Storage Scalability

Go to Problems

Steps to approach a problem

It is recommended you follow the following steps to solving 

  • Feature expectations ( First 2 mins ) : 
    As said earlier, there is no wrong design. There are just good and bad designs and the same solution can be a good design for one use case and a bad design for the other. It is extremely important hence to get a very clear understanding of whats the requirement for the question.
  • Estimations ( 2-5 mins ) 
    Next step is usually to estimate the scale required for the system. The goal of this step is to understand the level of sharding required ( if any ) and to zero down on the design goals for the system. 
    For example, if the total data required for the system fits on a single machine, we might not need to go into sharding and the complications that go with a distributed system design. 
    OR if the most frequently used data fits on a single machine, in which case caching could be done on a single machine.

  • Design Goals ( 1 mins ) 
    Figure out what are the most important goals for the system. It is possible that there are systems which are latency systems in which case a solution that does not account for it, might lead to bad design.
  • Skeleton of the design ( 4 - 5 mins ) 
    30-40 mins is not enough time to discuss every single component in detail. As such, a good strategy is to discuss a very high level with the interviewer and go into a deep dive of components as enquired by the interviewer.

  • Deep dive ( 20-30 mins ) 
    This is an extension of the previous section.

All of the problem discussions follow the exact same pattern on InterviewBit.

Serious about Learning System Design ?

Learn this and a lot more with Scaler Academy's industry vetted curriculum which covers System Design in depth.

Problems

Title Difficulty Average time to read Asked in
Design Cache Medium 40 minutes
Sharding a Database Medium 35 minutes
Highly Available Database Hard 50 minutes
Highly Consistent Database Hard 50 minutes