Posts

Showing posts with the label DNS

Cache | System Design Part - 6

Image
In the last part of the SYSTEM DESIGN SERIES, we have gone through HIGH-LEVEL DESIGN , which gave us a clear picture of how a web request traverse from client to database layer, In this part we will be focusing on Cache, which helps in reducing the response time of the web requests. Cache is in-memory storage in which it will store results of frequently accessed data in the memory so that the response time for the upcoming requests will be drastically reduced Every time a web request is made, there will be a couple of database calls that will be done to fetch the data, Having frequent database calls can impact the response time and user experience, Hence to mitigate this problem we are introducing Cache in the web layer Cache Tier Cache tier is a temporary storage layer that can provide a quick response compared to the database. some of the benefits of having a cache tier are  System Performance. it can be scaled independently. It reduces the workload of databases. Every time we ge...

Database Replication | System Design Part - 4

Image
In the previous article, we have discussed about  LoadBalancer and how it plays a key role in web servers scalability, Now in this part 4 of SYSTEM DESIGN SERIES , we will be talking about database replication which provides high performance, availability, and reliability for databases The definition of database replication is very precisely quoted by Wikipedia, so let's see that first  “ Database replication can be used in many database management systems, usually with a master/slave relationship between the original (master) and the copies (slaves )” The master database generally deals with all the modifying operations like [write, update, delete], on the other hand, the slave database will deal with reading operations, All the modifications happening in the master database will be synced with salve databases in real-time. In any application the number of read operations will be twice or thrice more compared to write / update operations hence we will be having more slave da...

LoadBalancer | System Design Part - 3

Image
This is part 3 of the SYSTEM DESIGN SERIES . where we will be discussing about  LoadBalancer. From the previous parts ( Single Server Setup / Databases ), we have had an understanding of how the request traverse from user to a web server and to the database, Now let's check whether our system is capable of providing failover or how it handles if the webserver goes down With the increase in the traffic, the load on the server will be drastically increased and it leads to more latency in the requests. which will impact the user experience or the server gets crashed because of a high bump in the traffic.  If the server is offline in that case, the user will not be able to access the website. To avoid this we can add multiple servers, but how come can we route the user requests to the servers which we have added?  Here comes the LoadBalancer, It will help us in routing the user requests to the right server based on the availability and load on the server. After introducing a...