Hey Everyone,
> Do you have so many giant files or why do you need to saturate a 20 Gbps network?
I'm not the original author but on my very small monorepo I have a
single binary that is >500MB that is signed and packaged as a part of
my build pipeline in another part of my build. This 500MB binary is
often touched by our engineers. it's a binary pushed to an IoT device
that contains a lot of stuff. To hit 20Gbps I'd need to (assuming 0
overhead)....
(20 gbps) / (500 megabytes) =
5 hertz
... build this binary about ~5 times per second (assuming each build
modifies this massive binary). This is obviously the wrong way to use
bazel but it's easy to see how some more reasonable workflows could be
affected by bottlenecks in this area. For example, suppose you have a
`*_test` that depends on 10x 50mb binaries that you'd like to test on
an architecture that is different from your dev environment (dev x86
and test on arm for an android use case). Running bazel-watcher
against this `*_test` could pretty easily get you to 5
executions/second with just a few developers + CI running.
This is a bit contrived as it assumes no local disk cache on the RBEs
but as you scale in engineers and number of RBE nodes it's possible to
see how each time you schedule this test you could land on a node that
has never executed your job before and as such has never warmed its
local cache of this binary.
Also, while experimenting at home, I've experienced some pain points
with rules_docker where containers being used in integration tests can
end up being pretty big.
Thanks,
- Josh
> To view this discussion on the web visit
https://groups.google.com/d/msgid/bazel-dev/CAO8_sf%3DyJ4fH_36Kf0DP2FU4LdL3PCuBM_3JTnV7o2CgM81LiQ%40mail.gmail.com.