Closed Bug 1208292 Opened 9 years ago Closed 8 years ago

permanent location for SETA data that supports both taskcluster and buildbot

Categories

(Infrastructure & Operations Graveyard :: CIDuty, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1243123

People

(Reporter: kmoir, Unassigned)

References

Details

SETA data is used to coalesce tests on select branches

The data is parsed from this server
http://alertmanager.allizom.org/data/setadetails
and our buildbot BRANCH dictionaries are updated to reflect the tests than can be skipped.

In bug 1208186, we discuss the need to move this to a production server because the current one is just for development.

I'm working on bug 1176784 to store these configs the buildbot configs so reconfigs are not dependent on the server with this data if it should be unavailable.  

However, given that this functionality will also be needed in taskcluster, perhaps it should be in a location that is accessible to both systems.  Joel suggested today that these configs be stored in tree and updated from the database as needed.  

Thoughts?
Selena, who would you suggest I talk to on the taskcluster side of things regarding coalescing requirements?
Flags: needinfo?(sdeckelmann)
Blocks: 1176784
Let's talk to :jonasfj when he's back from PTO next week.

I like Joel's line of thinking! :)
Flags: needinfo?(sdeckelmann)
Sounds good, thanks Selena
:jonasfj what are your thoughts on this?  Would it be easier to setup a meeting to discuss?
Flags: needinfo?(jopsen)
I'm not entirely sure what these configs are... or what they are used for. I got the impression that:
 A) SETA was about scheduling some tasks less frequently based on statistics, and
 B) coalescing was about merging tasks after they are scheduled, if the queue of pending tasks is long
I guess both might be viewed by the end-user as coalescence. But if (B) doesn't need stats from SETA,
then perhaps we can use terms:
  *static-coalescence* to mean (A), and
  *dynamic-coalescence* to mean (B)
Better terms are welcome, I just need to know what we're talking about.

----
Assuming this is correct, stats/decisions/data from SETA is probably something we need to inject into
the decision task that schedules tasks initially (ie. the place we decide to statically 
coalesce some tasks).

And then stats/decisions/data from SETA doesn't seem to be needed inside the coalescence service that
monitors number of pending tasks and collaborates with workers on dynamic coalescence when there is a
lot of pending tasks. 

> Joel suggested today that these configs be stored in tree and updated from the database as needed.
If the above is correct, and these configs/stats/decisions/data can fit elegantly into the tree,
this seems like a very good solution, as nothing will be affected if SETA crashes.
If the failure case of SETA is that we rely on old stats, that seems very robust! :)
(I won't imagine we could rely on old stats for days, if not weeks)

I generally (sometimes irrationally) fear all forms of mutable storage that isn't managed,
highly available, under SLA and offering tangible scalability targets. So not introducing a new one
would be great. If decision tasks called out to SETA for stats/data/decisions/configs, that would be
a new thing.

---
Unrelated: not sure how you get your data, but we do have pulse exchanges with everything. But if you
get from treeherder you should be fine.
Flags: needinfo?(jopsen)
Thanks Jonas for the information.  Joel, where and in what format do you propose storing these configs in tree?
Flags: needinfo?(jmaher)
I am thinking something like our runtimes which are updated manually as needed:
https://dxr.mozilla.org/mozilla-central/source/testing/runtimes

What we would do here is add a .json file which would match the output of the api.  The problem is that we have branch specifics, maybe we could create .json file with either branch names like mozilla-inbound.json, or just have the json be:
{'mozilla-inbound': jsondata,
 'fx-team': jsondata}

Give me some general direction and we can make it work.  I imagine from the buildbot side we could pull from in-tree/hg, I know mozharness could easily do that, not sure if buildbot proper can easily do that.
Flags: needinfo?(jmaher)
Should we dupe this to bug 1243123?
I think we should dup this bug, we have instances that work with api endpoints for both taskcluster and buildbot, so I think this is a duplicate :)
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
Component: Platform Support → Buildduty
Product: Release Engineering → Infrastructure & Operations
Product: Infrastructure & Operations → Infrastructure & Operations Graveyard
You need to log in before you can comment on or make changes to this bug.