1- Find the bottleneck and optimize the system by solving it before increasing the resources.
2- Distributing a set of tasks to set of resources and it's used to direct each request to appropriate server.
1) Find bottleneck. 1 server at $20/month should be enough for 1 million visitors. Try to optimize for 1 server first.
2) To direct users to which of the multiple database servers to use.
1. test! find the bottleneck and adjust based on that. If its the database you might need to introduce indexing, if it's the workers, make sure their functions/instructions are as efficient as possible, if none of the above you might need to introduce cashing at different stages of the web application.
Rule of Thumb for Scalability Issues:
Remember to "scale out, not up." It's better to distribute workload across multiple servers horizontally for better scalability.
Role of a Load Balancer and Why it's Used:
Load balancers distribute incoming requests among multiple servers, optimizing resource utilization and ensuring high availability by evenly spreading the workload.
1. Find the bottleneck. When the bottle neck is the hosting server, avail a server close to your target costumers. When the bottleneck is the workers, optimize the code (instructions) that they are executing by taking note of the Big O Notation. When the bottleneck is the database, optimize it first via indexing. Your web server should be based on your application. Event-based servers are good for providing services that caters which ever finishes first, while Thread-based servers follow the first in, first out (FIFO) principle. If it still gives a bottleneck, upgrade your hardware or more computers. Then implement load balancers to balance out loads (requests) and direct it to servers that are not that loaded.
2. Load balancers are like receptionists with added responsibility. They take the request and hands it to workers or "servers" that are less loaded. It solves the problem of one server getting overloaded of requests than the other.
I've learned that we should optimize a single server first and then if the requests get massive then that's when we add more servers and implement load balancers.
You have to find the bottle neck first that causig the issue and solve it. After you done that is still have issues then upgrade or add resources.
Load balancer are a set of tasj that is distributed to make process much faster.
Top Comments
1- Find the bottleneck and optimize the system by solving it before increasing the resources. 2- Distributing a set of tasks to set of resources and it's used to direct each request to appropriate server.
1) Find bottleneck. 1 server at $20/month should be enough for 1 million visitors. Try to optimize for 1 server first. 2) To direct users to which of the multiple database servers to use.
Other Comments
The best for system design interviews
1. test! find the bottleneck and adjust based on that. If its the database you might need to introduce indexing, if it's the workers, make sure their functions/instructions are as efficient as possible, if none of the above you might need to introduce cashing at different stages of the web application.
!
1.find the bottleneck of the problem and work on it. 2.distributes the incomming traffic to the appropriate end location.
Rule of Thumb for Scalability Issues: Remember to "scale out, not up." It's better to distribute workload across multiple servers horizontally for better scalability. Role of a Load Balancer and Why it's Used: Load balancers distribute incoming requests among multiple servers, optimizing resource utilization and ensuring high availability by evenly spreading the workload.
Should optimize a single server first and then if the requests get massive that time add more server and implement load balancers.
1. Find the bottleneck. When the bottle neck is the hosting server, avail a server close to your target costumers. When the bottleneck is the workers, optimize the code (instructions) that they are executing by taking note of the Big O Notation. When the bottleneck is the database, optimize it first via indexing. Your web server should be based on your application. Event-based servers are good for providing services that caters which ever finishes first, while Thread-based servers follow the first in, first out (FIFO) principle. If it still gives a bottleneck, upgrade your hardware or more computers. Then implement load balancers to balance out loads (requests) and direct it to servers that are not that loaded. 2. Load balancers are like receptionists with added responsibility. They take the request and hands it to workers or "servers" that are less loaded. It solves the problem of one server getting overloaded of requests than the other. I've learned that we should optimize a single server first and then if the requests get massive then that's when we add more servers and implement load balancers.
You have to find the bottle neck first that causig the issue and solve it. After you done that is still have issues then upgrade or add resources. Load balancer are a set of tasj that is distributed to make process much faster.