Commit Graph

4 Commits (8121530144addbe09f6877c91777096498758786)

Author SHA1 Message Date
David Wilson 8121530144 core: replace Queue with Latch
On Python 2.x, operations on pthread objects with a timeout set actually
cause internal polling. When polling fails to yield a positive result,
it quickly backs off to a 50ms loop, which results in a huge amount of
latency throughout.

Instead, give up using Queue.Queue.get(timeout=...) and replace it with
the UNIX self-pipe trick. Knocks another 45% off my.yml in the Ansible
examples directory against a local VM.

This has the potential to burn a *lot* of file descriptors, but hell,
it's not the 1940s any more, RAM is all but infinite. I can live with
that.

This gets things down to around 75ms per playbook step, still hunting
for additional sources of latency.
7 years ago
David Wilson d3e79fc240 ansible: support become:True and become_user 7 years ago
David Wilson 3a96389d08 ansible: automatically configure connection plug-in. 7 years ago
David Wilson 8598ff07b3 ansible: restructure to avoid intermediate imports 7 years ago