--
You received this message because you are subscribed to the Google Groups "Remote Execution APIs Working Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to remote-execution...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/remote-execution-apis/CABh_MKnBbhGCuWz48hbPTXHGFgnwUahnq-pc0pbRrrDM4F28ZQ%40mail.gmail.com.
- Meta-comment: I like the clarity of this API. It's simple and easy to read, which would definitely make new implementations easier.
- You write "This allows a scheduler to automatically group workers based on certain properties (data center, rack, physical server, worker thread, etc.).", but the proto docs state "nor should individual elements be interpreted by the scheduler." I'm curious, how do you find this works out in practice? Does the scheduler truly ignore the semantic context of all properties and simple allow you to group by any key/value combination, or do you find you're interpreting these fields in practice?
- SynchronizeRequest.platform being a REAPI platform directly implicitly assumes one worker should match one platform. We don't find that at all - workers have many properties clients don't need to specify explicitly (eg. OS is usually implicit in something else more specific that the client is keying by, but a key property of the worker), and many properties are runtime-variable inputs from the Worker's perspective (e.g. `container-image` for us), making it highly variable what Platform a client specifies to select a given worker. (Our list for colour).
- Future proofing: when REAPI hits V3, what happens?
- Do you have anywhere to fit in server-provided context? Concrete example, we prefer to turn on new features server-side on a per-action basis, rather than bringing up a new worker with the new logic enabled for all actions it runs. We find it gives us more control, especially in how we roll out or roll back logic changes.
- One thing I'm not seeing that I think you'd benefit from adding is stats - things like precise timing (how long did input fetching take) and other interesting values (e.g. peak RAM). (See `CommandResult.metadata` for where we squeeze it in). We've found it to be fairly implementation-specific and so changes with the bot itself, but still heavily rely on this metadata for release validation, performance optimizations, etc.
So let me turn the question around: what server or client implementations do you want to standardize with, and would this protocol suffice for them? If not, what do you need to add? I find it most tractable to start with concrete use-cases and work outwards towards generality, so having two or three concrete examples to consider together and evaluate fit on would be helpful before we get to asking whether this API would be a good base for everyone. That's a very big and scary question :).
Hi Eric,On Thu, 2 Jan 2020 at 14:34, Eric Burnett <ericb...@google.com> wrote:
- Meta-comment: I like the clarity of this API. It's simple and easy to read, which would definitely make new implementations easier.
Thanks! \o/
So let me turn the question around: what server or client implementations do you want to standardize with, and would this protocol suffice for them? If not, what do you need to add? I find it most tractable to start with concrete use-cases and work outwards towards generality, so having two or three concrete examples to consider together and evaluate fit on would be helpful before we get to asking whether this API would be a good base for everyone. That's a very big and scary question :).That is a very fair question. So the backstory behind this is that Sander Striker at some point suggested that the common Open Source implementations of REAPI (Build{barn,grid,farm}) should work towards a common worker protocol. In particular, I think he is/was interested in using Buildbarn’s storage/scheduler in combination with Buildgrid’s workers. Is that all right, Sander?
That said, so far I haven’t been contacted by anyone else who is interested in running such heterogeneous setups. Other users of Buildbarn seem to be happy with the custom protocol that’s being used there.Sander, could you share with us whether this is still relevant to you? Is there still any interest in running a heterogeneous Buildbarn+Buildgrid setup on your end? If so, is there also any preparedness on the Buildgrid side to switch to a different protocol?
--EdEd Schouten <e...@nuxi.nl>
--
You received this message because you are subscribed to the Google Groups "Remote Execution APIs Working Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to remote-execution...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/remote-execution-apis/CABh_MKnxJdjNFymZg94mw1d9ysxG%3DbKVEjpMvK5coMQ_gLLgzA%40mail.gmail.com.
It’s interesting that you mention this. There is a change I’m planning on sending out to remote-apis in the nearby future:Basically, we’re attaching these kinds of statistics to ActionResult. That way the statistics get stored in the AC, meaning it’s all in one place. bb-browser is capable of displaying these statistics directly when opening up an AC entry.