As mentioned in class the economic motivations driving computing make for interesting analysis. It is often far more economical for large companies to by more computing power than to invest in writing better code to replace outdated or legacy code. While this works for the short term, I wonder if in the long term, if computing power plateaus but demand continues to rise, if this trend will be reversed.
As Moore's Law plateaus (and with it, maximum efficiency on a single core), and energy costs plateau as well, will computing power also plateau? Or is there another factor that might drive computing power?
Or, perhaps: will computing power always be a bottleneck?
@grizt Many people predict that a lot of advancements in computing hardware will be coming from novel ideas that break conventional rules. Different quantum mechanics used for chip design, superconducting chips, new materials, 3D IC, etc.
Computing might start to move more into the cloud, so while our personal computing power may be limited we can just offload our problem to someone else with more power.
Many times has it been boldly stated that "Moore's Law is dead," but it's still not dead yet! Sure it might be hard to shrink below 7nm, but who knows what ideas might cast the saving line.
"Scale out" means we use more servers to handle requests. We also call it "horizontal scaling".
"Scale up" means we use better servers to handle requests. We also call it "vertical scaling".
I was sometimes confused with these two terms before.
We have seen so far that we work by increasing the number of processes and sometimes even having a load balancer at a higher level. However, we still only have a single database. I was wondering if multiple processes accessing a database requires any sort of synchronization that would cause bottlenecks.
@chuangxuean I think the same problems apply to having duplicate databases as having multiple processes accessing a single database. Reads are not a concern, but writes must be synchronized and come with coherence/consistency problems. Services for accessing databases often have many processes for servicing requests, but the question of scaling the system for even higher demand remains.
What happens when you scale the load balancer as well? I know load balancer only redirects request, so probably one load balancer will be enough for the majority of use cases.
I am imagining in a very big site, we might want to have also multiple load balancers. For example, we put one load balancer in asia, and one in US. How would that affect things? Does that mean load balancer has a "group" of machine to redirect to? Can multiple load balancer share multiple "groups" ?
@bysreg stackoverflow actually posted about their hardware setup today! Take a look to see just how one company does it.
@bysreg also, i think elastic load balance (elb) does the scale for load balancer: the load balancer itself would scale out when there is a burst of requests.