0
$\begingroup$

enter image description here

There are clusters of LAN connected computer systems. California cluster has cached "viral video" at first stage, when client near California requested the file firstly.

Now, another client near California requests "viral video".

The benefit here is that there would be no network latency and subsequently no network traffic.

Since network latency>file transmission and request time, this is beneficial.

Network has 1 few user. So network is more scalable to 1 extra user.

How many users are using the network doesn't affect the response time for the client.

How many nodes are there doesn't affect the response time for client.

I don't get how less network traffic is helping for scalability?

Text Book Explanation-:

enter image description here

$\endgroup$

1 Answer 1

1
$\begingroup$

The benefit here is that there would be no network latency and subsequently no network traffic.

This is slightly incorrect, there would definitely be some network latency since within clusters we have separate machines connected by LAN, although the intra cluster latency would be very less compared to inter cluster latency.

I don't get how less network traffic is helping for scalability?

Consider the scenario where a client requests for a file not available at the cluster, so the cluster then fetches the file from its location via the network. If such requests increase in number, the inter cluster network traffic increases, and the respective clients are waiting till the file is fetched and served. So your throughput(no. of clients served per unit time) would drop as compared to when the file is cached at the clusters in which case, there would be less network traffic. This would mean you are able to scale to more users when the file is cached(low network traffic) as compared to when it is not cached(higher network traffic).

Of course both the scenarios occur together, the initial requests aren't cached so the throughput is low, which increases as more requests are cached and users request for them (no. of users > no. of files)

How many users are using the network doesn't affect the response time for the client.

This holds only up to a certain limit, if the rate of incoming requests is >>> rate at which they are served, then its easy to see the bottleneck.

How many users are using the network doesn't affect the response time for the client.

This is considering that the architecture within the cluster can efficiently serve the requests irrespective of the number of nodes, it sort of gives an upper bound of time taken to serve a request that is cached. A request would arrive at one of the nodes. Assume a simple ring architecture, then in order to find which node has the copy of the requested file, the upper bound would be given by querying all nodes in the ring. As the number of nodes increase, this upper bound would increase, but it wouldn't effect the client as it is unaware of the internals of the DFS.

$\endgroup$
3
  • $\begingroup$ 1) but rate of incoming req will never be >>> than rate they're served if we use file caching and user is requesting those cached files. also do you have some mathematical relations for your claim(I can understand the logical reason) 2) why wouldn't no. of node increment not affect client, he will experience a delay in response if there are 100 nodes compared to 10 nodes, assuming the worst case i.e last node has the data and we are using 1,2,3,4,5,6,7,8...100 type of search. $\endgroup$
    – altoid
    Jul 6, 2022 at 14:35
  • $\begingroup$ how can you say the rate of incoming requests will never overshoot? Also not all the requests can be cached, the cache once filled up will need to be evicted to allow new requests and will fetch it over the intercluster network, which is a different topic. This is an observation from designing distributed systems, if what you claim was true then you'd never see websites(relying on distributed systems) crash or slow down. $\endgroup$
    – Rinkesh P
    Jul 6, 2022 at 16:22
  • $\begingroup$ And yes you are right that adding nodes would increase the response time(ideally, but the architecture is designed to minimize this), but it won't be the case that at one moment you have 10 nodes in the cluster and the next moment 100, so while being serviced you wouldn't feel the difference. You cant determine the performance simply by looking at the architecture, there is load balancing and other factors and not every machine is exactly in the same condition. Unless you somehow compare the response times of every node of every cluster in an isolated condition, you can't claim any results. $\endgroup$
    – Rinkesh P
    Jul 6, 2022 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.