Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In-memory graph cache for faster pathfinding #5642

Merged
merged 15 commits into from
Oct 4, 2021

Commits on Sep 29, 2021

  1. Configuration menu
    Copy the full SHA
    639faee View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    292b8e1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    60cccf8 View commit details
    Browse the repository at this point in the history
  4. channeldb+funding: move opening channel state to DB

    The funding manager doesn't need to know the details of the underlying
    storage of the opening channel state, so we move the actual store and
    retrieval into the channel database.
    guggero committed Sep 29, 2021
    Configuration menu
    Copy the full SHA
    c1f686f View commit details
    Browse the repository at this point in the history
  5. multi: extract address source into interface

    As a preparation to have the method for querying the addresses of a node
    separate from the channel state, we extract that method out into its own
    interface.
    guggero committed Sep 29, 2021
    Configuration menu
    Copy the full SHA
    ddea833 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    11cf421 View commit details
    Browse the repository at this point in the history
  7. multi: further decouple graph

    To further separate the channel graph from the channel state, we
    refactor the AddrsForNode method to use the graphs's public methods
    instead of directly accessing any buckets. This makes sure that we can
    have the channel state cached with just its buckets while not using a
    kvdb level cache for the graph.
    At the same time we refactor the graph's test to also be less dependent
    upon the channel state DB.
    guggero committed Sep 29, 2021
    Configuration menu
    Copy the full SHA
    d6fa912 View commit details
    Browse the repository at this point in the history
  8. channeldb+routing: add in-memory graph

    Adds an in-memory channel graph cache for faster pathfinding.
    
    Original PoC by: Joost Jager
    Co-Authored by: Oliver Gugger
    joostjager authored and guggero committed Sep 29, 2021
    Configuration menu
    Copy the full SHA
    369c09b View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    15d3f62 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    1d1c42f View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    bf27d05 View commit details
    Browse the repository at this point in the history
  12. lnd+channeldb: pre-allocate cache size

    To avoid the channel map needing to be re-grown while we fill the cache
    initially, we might as well pre-allocate it with a somewhat sane value
    to decrease the number of grow events.
    guggero committed Sep 29, 2021
    Configuration menu
    Copy the full SHA
    a95a372 View commit details
    Browse the repository at this point in the history
  13. docs: add release notes

    guggero committed Sep 29, 2021
    Configuration menu
    Copy the full SHA
    a5202a8 View commit details
    Browse the repository at this point in the history
  14. channeldb: optimize memory usage of initial cache fill

    With this commit we use an optimized version of the node iteration that
    causes fewer memory allocations by only loading the part of the graph
    node that we actually need to know for the cache.
    guggero committed Sep 29, 2021
    Configuration menu
    Copy the full SHA
    6240851 View commit details
    Browse the repository at this point in the history
  15. itest: fix flake in update_channel_status itest

    This commit fixes a flake in the channel status update itest that
    occurred if Carol got a channel edge update for a channel before it
    heard of the channel in the first place. To avoid that, we wait for
    Carol to sync her graph before sending out channel edge or policy
    updates.
    
    As always when we touch itest code, we bring the formatting and use of
    the require library up to date.
    guggero committed Sep 29, 2021
    Configuration menu
    Copy the full SHA
    493262e View commit details
    Browse the repository at this point in the history