1. 2

    I learned of this project some time ago when you posted about it in one of the “what are you working on” posts. Since then I’ve been waiting to use this since I only really use ansible twice a year, and on those opportunities, I have to work remotely over a very slow and convoluted connection (bouncing through multiple hosts and traveling down a home DSL connection and then a PtP WiFi link in someones garage). When I use ansible there are time constraints, the infra in the garage is only online for so long every weekend, so ansible runs that take 40 minutes or longer are super annoying (especially when this is the developing and testing stage). This project looks promising to me, I plan on using it very soon for my work and I hope to see improvements to my productivity as a result, thanks!

    1. 1

      Its network profile has “evolved” (read: regressed!) a little since those early days, but it should still be a massive improvement over a slow connection. Running against a local VM with simulated high latency works fine, though I’ve never ran a direct comparison of vanilla vs. Mitogen with this setup.

      That’s a really fun case you have there – would love a bug report even just to let me know how the experience went.

      edit: that’s probably a little unfair. Roundtrips have reduced significantly, but to support that the module RPC has increased in size quite a bit. For now it needs to include the full list of dependency names. As a worst-case example, the RPC for the “setup” module is 4KiB uncompressed / 1KiB compressed, due to its huge dependency list. As a more regular case, a typical RPC for the “shell” module is 1177 uncompressed / 631 bytes compressed.

      A lot of this is actually noise and could be reduced to once-per-run rather than once-per-invocation, but it requires a better “synchronizing broadcast” primitive in the core library, and all my attempts to make a generic one so far have turned out ugly

    1. 5

      Aiming to keep my word and have a non-alpha release of Mitogen for Ansible out today. I don’t think anyone really cares, but slips have a habit of snowballing, so I’m forcing myself to the original crowdfunding schedule as much as possible.

      Naturally it is the worst day to bump into a design problem in a task that should have taken 30 minutes, but also it was the most obvious day it would happen on :)

      1. 1

        I’m glad I stumbled across your comment, this project looks really cool and is very useful to me, also recommended to my buddies at the org I volunteer for :)