lnd.xprv/autopilot
Conner Fromknecht 4599b0eac3
autopilot/agent: track pending connections
This commit modifies the autopilot agent to track
all pending connection requests, and forgo further
attempts if a connection is already present.
Previously, the agent would try and establish
hundreds of requests to a node, especially if the
connections were timing out and not returning.

This resulted in an OOM OMM when cranking up
maxchannels to 200, since there would be close
to 10k pending connections before the program was
terminated. The issue was compounded by periodic
batch timeouts, causing autopilot to try and
process thousands of triggers for failing
connections to the same peer.

With these fixes, autopilot will skip nodes that we
are trying to connect to during heuristic selection.
The CPU and memory utilization have been significantly
reduced as a result.
2018-09-05 20:10:34 -07:00
..
agent_test.go autopilot: use updateBalance rather than tracking balance explicitly 2018-08-29 02:06:02 -07:00
agent.go autopilot/agent: track pending connections 2018-09-05 20:10:34 -07:00
graph.go autopilot: optimize heavy loaded agent by fetching raw bytes for ChannelEdge 2018-09-04 16:43:07 -07:00
interface.go autopilot: update the Node interface to return a raw bytes, not the key 2018-08-29 15:44:47 -07:00
log.go autopilot: "Look ma no hands!", introducing autopilot mode 2017-08-10 21:14:55 -07:00
prefattach_test.go autopilot: update the Node interface to return a raw bytes, not the key 2018-08-29 15:44:47 -07:00
prefattach.go autopilot: update the Node interface to return a raw bytes, not the key 2018-08-29 15:44:47 -07:00