Yuri, great question. It's mostly an issue of scale. Let me explain a bit about how heroku works. At a high level, each dyno is it's own process on a railgun (that's our EC2 server instance for ruby processing). Your app can have 1+ dyno, running across a large cluster of railgun servers. The individual dyno process and railgun process are volatile based on load, ec2 fuzzyness, etc. To use EBS, we would have to somehow connect the right store to the right dyno at the right time, with that changing second by second across many tens of thousands of dynos. On top of that, when one app starts getting high traffic, you'd find that the EBS would be WAY too slow to actually write to and still maintain performance, so adding dynos would actually start to slow your application down. An EBS can only handle ~ 200 writes/second. Next we'd be talking about raiding EBS (which is what we do for our database), but that just gets crazy if you need to constantly move the EBS mount point.
This boils down to a "share nothing" discussion. (http://en.wikipedia.org/wiki/Shared_nothing_architecture ). Yes, the DB is a shared point, but we've been able to come up with some constraints that make it performant. We haven't figured out a way to do that with file systems yet. Oren On Oct 7, 2009, at 12:53 PM, Yuri Niyazov wrote: > > Heroku runs on ec2, no? What prevents exposure of an EBS block to an > app? > > On Tue, Oct 6, 2009 at 5:32 PM, Oren Teich <[email protected]> wrote: >> >> Hi Neil, >> There aren't any plans for shared storage right now. I wish I could >> say otherwise. The big challenge is that we're able to achieve our >> scaling and overall cool features by imposing certain constraints. A >> read-only file system is one of those. If we had a shared >> filesystem, >> we wouldn't be able to offer the scalability or performance that >> makes >> our platform so unique. There are some interesting plugins that some >> 3rd partys have in development that will capture filesystem requests >> and send them to S3 instead. Hopefully as these come out they might >> help address some of the constraints for you. >> >> Believe me, I wish we could figure out a way to give you a writeable >> filesystem! >> >> Good luck, >> Oren >> >> On Oct 6, 2009, at 2:53 AM, Neil wrote: >> >>> >>> One of the big issues we have with Heroku as a business at the >>> moment >>> is the read-only file system and the fact that this then renders >>> some >>> of our legacy apps, and our CMS of choice, BrowserCMS, unable to be >>> deployed without some serious hacker-age. >>> >>> Question is, are there any plans at all for some sort of shared >>> storage, where I can somehow define a directory or two that should >>> be >>> shared across all dyno's serving my application, as well as across >>> all >>> deploys of my application? >>> >>> For me, this is a major thing, and it would be good to remove one of >>> the big barriers that people might have. >>>> >> >> >>> >> > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Heroku" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/heroku?hl=en -~----------~----~----~----~------~----~------~--~---
