Question

We have a data streaming application which uses local caching to reduce future downloads. The full datasets are larger than what is streamed to the end user - i.e. just the bits the end user wants to see. The concept is pretty much like a browser, except the streamed data is exclusively jpg and png.

The usage patterns are sporadic and unpredictable. There are download spikes on initial usage while the cache is populated. What would be the theoretical and practical/experimental means of modelling and measuring the bandwidth usage of this application. We have size values of the source datasets, but little knowledge of the usage patterns.

Was it helpful?

Solution

There is not enough information to derive a useful theoretical model for bandwidth usage. If you know something about the rollout pattern, you could attempt to model the distribution of spikes. Is this a closed user group that will all get the app within a short period of time? Will you sell to individual customers that in turn will roll out to a number of employees? Are you selling to consumers? All of these will impact the distribution of peaks.

As for the steady-state bandwidth requirements, that depends a great deal on usage patterns (do they frequently re-use the same data or frequently seek new data?) This is a great thing to determine during a beta program. Log usage patterns locally and/or on the server for beta users, and try to get beta users that are representative of the overall user community.

Finally, to manage spikes in consumption, consider deploying your content on a service such as Amazon CloudFront. This allows you to pay for the bandwidth you actually use, but scale as needed to handle peaks in demand.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top