Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am curious, say for example:

Facebook is the client of Akamai CDN.

So, now when I login to my Facebook page, I see all the content (vid, image, text etc) and I click on a video to view it. Now, Facebook is the client to Akami to get the content.

So, when a request is made from Facebook to Akami, does Akamai dump the vid/image from their data centers to Facebook's data centers where they reside for a while (depending on their heuristics) and flushed after some time?

Or, I see that video (stream it) directly from Akamai's server?

UPDATE1

Data resides in CDN permanently (agreed), but is a copy of the content sent to Facebook's data centers too

UPDATE2

Ok, so as per Josh's answer, this image of Akamai's architecture, can I say, "IMAGE" is actually stored in akamai's server and the reference of the Image (the URL) is in the Facebook HTML page we see?

enter image description here

share|improve this question
1  
@zengr: Yes, that's correct, the HTML comes from facebook and references images stored on Akami's servers. –  Josh Apr 14 '10 at 17:25
add comment

3 Answers

up vote 1 down vote accepted

Akamai's configuration is highly configurable, but normally, you can define what type of content you want to store, and for how long (on Akamai's network and on the user's browser). Akamai also has a multi-teir system, so that if a users makes a request from a local Akamai server, if it doesn't have the content, it will request it from a parent tier. If that parent doesn't have it, the parent tier will request it from the grandparent tier. After that, the Akamai grandparent tier would from request it from the origin. Once it pulls the content and sends it to the user, it will store it in cache (at every tier). Any subsequent requests are handled by the Akamai network. If that content not requested again, it's purged from the cache eventually. If it's a busy Akamai server, unused content will get purged quicker than if it's not as busy.

I don't believe that Akamai has the ability to store user content on their servers, their network is not designed for that. When you upload an image to Facebook, you're uploading it to Facebook's server (I remember reading a whitepaper on Facebooks custom filesystem to handle image requests).

On a normal website, Akamai could take up to 95% of the traffic off the origin, depending on configuration. On something like this, I don't think it'd be as high, but any percentage would help.

At first thought, I would assume that Akamai wouldn't be able to help much, a normal users profile elements are not accessed enough to make a difference. But as I think more about it, if you're pretty popular user in your area, having your pictures cached on the local Akamai server may help when other people accessing your FB profile thru the same local Akamai server.

The real benefit of using Akamai would be on a celebrity's page, or a companies page, or just the static elements (css/js) of Facebook's site. Anything of high volume

So, given all that, my assumption is that for normal user's profiles, when you upload them to Facebook, they're stored on Facebook's servers. When you request them, Akamai goes back to Facebook's origin servers, pulls them and puts them into cache. If your neighbor goes to look at them, they'd be on the same ISP (ideally) and would pull them off the Akamai cache server that resides (ideally) in your ISP.

All that being said, I know nothing of Facebook's Akamai configuration, so they may have something completely custom and outside the norm.

share|improve this answer
add comment

Generally the way it works is that all the content is stored on the primary server (Facebook in your example), and the CDN network caches a copy of the data being requested. So you request it from Akamai, which requests if from Facebook if they don't have it cached, or just serve it from their cache. So the next person who requests that data gets it from Akamai's cache, reducing load on Facebook's servers. Much like a browser cache.

See the Wikipedia article on Akamai, specifically:

Akamai transparently mirrors content—sometimes all site content including HTML, CSS, and software downloads, and sometimes just media objects such as audio, graphics, animation, and video—from customer servers. Though the domain name (but not subdomain) is the same, the IP address points to an Akamai server rather than the customer's server

I have worked a large company that produced "active" CDN networks, where there was a central server containing all the media and many content delivery servers. Media would be uploaded to the master server and it would contact all the slaves and push the new content to them. But this sort of CDN is designed for serving content over known-high-bandwidth links -- for example, if you have a central office and many branch locations. Each branch has a fast Ethernet network, so their CDN servers sync with the central server over the (slow) internet. But this is a different concept from Akamai.

share|improve this answer
add comment

The resource exists permanently (until the client removes it) within the CDN's storage, and it is retrieved from there when requested by a browser.

share|improve this answer
    
Yes, I agree, it resides in CDN permanently, but is a copy of the content sent to Facebook's data centers too? –  zengr Apr 14 '10 at 1:17
    
@zengr: The content originates on Facebook's servers, and the CDN mirrors it from there –  Josh Apr 14 '10 at 1:28
    
This doesn't address his question about uploading content. –  Roy Rico Apr 14 '10 at 7:30
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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