graph/db: let ForEachNodeCached maybe fetch node addresses
Here we adjust the ForEachNodeCached graph DB method to pass in a node's addresses into the provided call-back if requested. This will allow us to improve the performance of node/channel iteration in the autopilot subserver.
This commit is contained in:
9 files changed
+96
-26
No files matched your search
+10
-3
@@ -83,11 +83,18 @@ type V1Store interface { //nolint:interfacebloat
|
||||
*models.ChannelEdgePolicy) error, reset func()) error
|
||||
|
||||
// ForEachNodeCached is similar to forEachNode, but it returns
|
||||
// DirectedChannel data to the call-back.
|
||||
// DirectedChannel data to the call-back. If withAddrs is true, then
|
||||
// the call-back will also be provided with the addresses associated
|
||||
// with the node. The address retrieval will likely result in an
|
||||
// additional round-trip to the database, so it should only be used if
|
||||
// the addresses are actually needed.
|
||||
//
|
||||
// NOTE: The callback contents MUST not be modified.
|
||||
ForEachNodeCached(ctx context.Context, cb func(node route.Vertex,
|
||||
chans map[uint64]*DirectedChannel) error, reset func()) error
|
||||
ForEachNodeCached(ctx context.Context, withAddrs bool,
|
||||
cb func(ctx context.Context, node route.Vertex,
|
||||
addrs []net.Addr,
|
||||
chans map[uint64]*DirectedChannel) error,
|
||||
reset func()) error
|
||||
|
||||
// ForEachNode iterates through all the stored vertices/nodes in the
|
||||
// graph, executing the passed callback with each node encountered. If
|
||||
|
||||
Reference in new issue
Block a user