Updates:
Cc: mal.chromium [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]

Comment #4 on issue 22839 by maruelatchromium: Create a new StatusReceiverMultiService that sends BuildStatus to AppEngine
http://code.google.com/p/chromium/issues/detail?id=22839

Some side-effects that are interesting and didn't realize when first writing this feature request. I'm glad I left it on the shelf for a while, I think the concept is better now.

Features:
- The buildbot masters really push data as it is generated (on each event) to the GAE instance. - The instance is *not* a status proxy. By using status push on the masters, the instance should precomputes a fair amount of data. In short, the instance *never* pulls anything from buildbot. - The instance can work as an aggregator. Multiple masters can connect to it and the instance can
show an unified view independent on which master the build occured.
- BlobStore (which wasn't available in September '09) can be used to serve most static content.
- Scales better.
- No DDoS issues.
- Removes most proxy maintenance. Less dedicated hardware.
- Perf analyzers, Gatekeeper, etc can be pushed to GAE. Much less server maintenance. - We can split masters really into a lot of small masters but that reduces slave sharing
capability.
- Reduce CPU, I/O (which is significant) and memory usage on masters.
- Can be deployed progressively along side current status.

Downfalls:
- We loose much more status when GAE goes down. In fact, we actively loose status data when GAE
datastore is read-only. Workarounds:
- The buildbots needs to keep unpushed data until pushed, even across buildbot restarts. Fairly
trivial to pickle/unpickle as json.
- We can still keep a WebStatus when GAE is down to not be completely blind but with splitted
masters, it's not as efficient.
- Fair amount of effort required. Not that much on buildbot's side, more server's and UI rewrite
on GAE side.
- Needs custom backup solution.
- Needs to implement specific code for the "live" stdio links. Can be sent to the current proxies a build.chromium.org in the meantime until a nice solution is developed. Once a stdio is closed,
it can be served from BlobStore instead.

Opinions?

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
-- 
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs

Reply via email to