Skip to main content
 

Here's another dev tools success story that I just had to share!

Oz is a big binary. It's so big that it can't get enough disk I/O to start up in some data centers. So it was decided: slim down Oz.

Since I hang around the demolition-derby mailing list I thought I'd give it a try. I started by applying some strict_java_deps to our backends and found a few small things.

Then.. I saw _Linguini_ by @110803933729866443698 -- what an awesome tool. It helped by narrowing down a bunch of bad dependencies. A quick posting to oz-eng and I had help -- @114507985003245977880 jumped in and trimmed focus backend. Then the taco-cabana team jumped in: @111311211176505375030 trimmed deps on mapreduce and others. (Yay, no more compiled in mysql!) We were down 4k deps!

Some more quality time with Linguini revealed that we were still dependent on bigtable and colossus. These were coming from multiple places -- _apps/people/activity_, _gdata_ etc.. I started cleaning up these and ran the CL through the new TAP multi-project submit queue from my overlayfs client. Glorious! 2k tests run and passed.

Next up: _//java/com/google/focus/util:util_ had a dependency on _gdata_, which linked to a generic filesystem dep that pulled in the kitchen sink.

Global Submit Queue to the rescue! I was able to run my CL through a massive amount of tests and actually caught an issue. Fixed it and submitted -- Oz and the 7000 other targets that depend on focus/util:util benefit.

Oz is now down to *50933* deps according to the stats that @118060091464830878219 is tracking. Once a few more transitive dependencies are cleaned up we'll be able to slice off another 2k deps too.

Thanks to everyone for the great tools. I feel my productivity rising already :)