Data splitting

drpr0ctologist at drpr0ctologist at
Tue Aug 7 13:55:10 UTC 2007

> When you get a request, you pass it on to your backend node (which can
> be running anything you want, ie Apache or whatever).
> The backend node that it talks to will talk to mogilefsd, and get the
> location of the file. You can then do any logic you need in there (ie,
> access control and the like). Your code on the backend node can then
> return X-REPROXY-URL with the mogstored paths that your backend node got
> out of mogilefsd.
> Your backend node then moves on to something else, and perlbal/mogstored
> take care of spitting the file out back to the client.
> By doing this setup, you gain horizontal scalability (You can add more
> and more nodes, as you need more capacity), as well as a better ability
> to deal with failure if one of your mogstored server fails (you have all
> those files on other nodes).

Ok it's making sense to me now! Thanks!

So basically, a request goes something like this:

client ( -> Perlbal -> Apache -> Mogilefsd ->
Apache (returns with something like serverA:1234.fid) -> Perlbal -> client

Is that correct?  If so, wouldn't that lead to more load on the Apache,
since it would have to dynamically translate to
something Mogilefsd can understand and find in its database?

I'm guessing though, that there's some way for Perlbal to talk directly to
Mogilefsd, so that it can completely bypass Apache?
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the mogilefs mailing list