Web Scalability Book Flashcards
a DNS service that allows domain names to be resolved to IP addresses based on the location of the customer.
GeoDNS: may serve different IP addresses based on the location of the client. A client connecting from Europe may get a different IP address than the client connecting from Australia. As a result, clients from both Europe and Australia could connect to the web servers hosted closer to their location. In short, the goal is to direct the customer to the closest data center to minimize network latency.
an HTTP cache server located near the customer, allowing the customer to partially cache the HTTP traffic.
“Edge Cache”:
Requests from the customer’s browser go to the edge-cache server. The server can then decide to serve the page from the cache, or it can decide to assemble the missing pieces of the page by sending background requests to your web servers. It can also decide that the page is uncacheable and delegate fully to your web servers. Edge-cache servers can serve entire pages or cache fragments of HTTP responses.
a software or hardware component that distributes traffic coming to a single IP address over multiple servers
A load balancer
_ _ are used to share the load evenly among multiple servers and to allow dynamic addition and removal of machines.
Load balancers
a DNS server feature allowing you to resolve a single domain name to one of many IP addresses.
Round-robin DNS:
allows you to map the domain name to multiple IP addresses, each IP pointing to a different machine. Then each time a client asks for the name resolution, DNS responds with one of the IP addresses. The goal is to direct traffic from each client to one of the web servers - different clients may be connected to different servers without realizing it, once a client receives an IP address, it will only communicate with the selected server.
Considered the ‘holy grail’ of scalability as it overcomes the increasing cost of capacity associated with scaling by buying stronger hardware
Horizontal Scalability
just replacing piece of hardware with stronger or faster piece of hardware
Vertical scalability
“C____ is a server / service focused on reducing the latency and resources needed to generate the result by serving previously generated content. C____-ing is a very important technique for scalability.”
Cache / caching
The process of dividing a system based on functionality to scale it independently is called f________ p________ing.
The process of dividing a system based on functionality to scale it independently is called -. functional partitioning. <-
By integrating your web application with a CDN provider, you can significantly reduce the amount of b____ your servers need.
By integrating your web application with a CDN provider, you can significantly reduce the amount of bandwidth your servers need.
L._.s are used to synchronize access between execution threads to shared resources like memory or files.
*Locks are used to synchronize access between execution threads to shared resources like memory or files.
Lock c________ is a performance bottleneck caused by inefficient lock management
Lock contention is a performance bottleneck caused by inefficient lock management