Rob wrote:
> <failure analysis>
Thanks for digging into that.
> Suggested mitigation approaches to be applied in various arrangements:
I've converted most of these to trac tickets, as follows:
> 1. Migrate to Linode's SSD situation.
http://srobo.org/trac/ticket/2463, also updated
http://srobo.org/trac/ticket/1480 with the new x64 requirement.
> 2. Switch to a linode with more RAM. Having more free RAM for disk
> cache will benefit us considerably.
Not a ticket yet as I'm not sure how this fits there. Is this
something we definitely want to do? I'm guessing that this would cost
us more, so is it something that we want to do just for the
competition? If it is, how does this differ from #4?
> 3. Split load across multiple linodes.
http://srobo.org/trac/ticket/2465 exists to investigate this. We can
create further making it happen tickets later.
> 4. Upgrade the linode to a much more beefy one for just the
> duration of the competition. This appears to be possible now as
> linode have switched to hourly billing.
Also not a ticket yet as it appears to be similar to #2 which has
questions attached.
> 5. Ensure that git-repack is run against IDE repos
This feels like something we should do anyway;
http://srobo.org/trac/ticket/2466.
> 6. Reduce the IDE's git-related loading.
http://srobo.org/trac/ticket/2467
I expect that the majority of the loading comes from actions which are
part of the standard workflow anyway, since it does a git update
(wrapped in various autosave preserving functionality) as part of
pretty much all requests which use a user's repo. This is needed to
make sure the latest data is available.
That said, lots of the read-only operations now occur directly on the
bare master repos, which shouldn't be hit by that, but which would
still be hit by slow IO. In turn, since these still grab exclusive
locks rather than shared locks on the master repos, each will prevent
others from accessing the repo. How much of an issue that causes is
unclear, since the chances are that at the competition a given team
would only have a single IDE instance pointed at each project anyway.
Thanks,
Peter