Closed hannesm closed 2 years ago
Take P as a metavariable of a platform.
the revised plan is:
Internally, the server will have a queue for each platform (i.e. mutable queue is a map keyed by platform).
The add_to_queue will add the job to all queues that are suitable.
When a worker connects, it sends a Job_requested P
, and there is no queue for that worker (i.e. the map above does not carry a binding for P):
The job_to_script
now uses P (to select the template).
The client schedule requires a platform name, the client execute optionally gets a platform name.
The (platform) queues are never deleted, which means the server may consume more and more memory (and does more and more work in add_to_queue [which checks that a job with the same name does not already exist - that is good:)]).
supported as aacb963b11157612f7df3c676888c21d6e6c827b
after a discussion with @reynir, the plan is as follows:
To retain backwards compatibiity, the platform should be optional (also useful for unikernel builds). this should then as well clean up some bits and pieces in builder-web. I don't think a more elaborated thing than a string makes sense here.
I.e. the ASN.1 of client_hello2 (atm sequence2 (typ, version)) should be sequence3 (typ, version, optional utf8_string platform). Similar change for exec -- add an optional string to the sequence.
At the same time, we can remove the client_hello/server_hello (earlier versions) since we have upgraded our builders (woker & server) to the most recent versions anyways :)