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

kvdb wrapper for etcd #4015

Merged
merged 15 commits into from
May 22, 2020
Merged

kvdb wrapper for etcd #4015

merged 15 commits into from
May 22, 2020

Commits on May 22, 2020

  1. channeldb+kvdb: an extended STM on top of etcd clientv3

    This commit adds an extended STM, similar to what available in etcd's
    clientv3 module. This incarnation of said STM supports additional
    features, like positioning in key intervals while taking into account
    deletes and writes as well. This is a preliminary work to support all
    features of the kvdb interface.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    137dee0 View commit details
    Browse the repository at this point in the history
  2. channeldb+kvdb: walletdb/kvdb interface etcd implementation

    This commit adds a full interface implementation of the walletdb/kvdb
    interface with detailed tests.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    6a24a03 View commit details
    Browse the repository at this point in the history
  3. channeldb+kvdb: add walletdb interface test

    This commit adds walletdb interface test suite to the existing test set.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    3b75256 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    248a00f View commit details
    Browse the repository at this point in the history
  5. kvdb+etcd: extend kvdb and STM with stats

    The commit itslef adds stats to the transactions such that we can see
    how LND behaves with and etcd backend.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    859a457 View commit details
    Browse the repository at this point in the history
  6. lncfg: add configuration for user specified db backend

    This commit extends lncfg to support user specified database backend.
    This supports configuration for both bolt and etcd (while only allowing
    one or the other).
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    9d57c1a View commit details
    Browse the repository at this point in the history
  7. channeldb+lnd: make channeldb backend configurable

    This commit adds support for user configured channeldb backend.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    0e3629e View commit details
    Browse the repository at this point in the history
  8. kvdb+etcd: only lock on bucket path mod revision for reads and writes

    This commit reduces the compare set size the STM will submit in
    transactions by adding only the bucket keys along the bucket path to a
    specific lock set. This lock set then used to filter the read set,
    effectively removing all read only keys from the transaction predicate
    that are not bucket keys.
    By tracking if a read-write tx actually changes something, we can also
    "bump" the mod revision of the bucket keys.
    With this trick we essentially implement a read-write lock for our
    bucket structure greatly reducing transaction processing time.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    02f9d91 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    23fcb59 View commit details
    Browse the repository at this point in the history
  10. kvdb+channeldb: create ExtendedBackend interface to allow rich tx logic

    This commit adds the ExtendedBackend interface which is an extension to
    the walletdb.DB interface. This paves the way to using etcd.db.View and
    etcd.db.Update in the global View and Update functions without much code
    rewrite.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    b54f8a1 View commit details
    Browse the repository at this point in the history
  11. lncfg+etcd: add TLS config

    This commit extends lncfg with etcd TLS config and passes these
    parameters to the etcd client upon construction.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    3ef331e View commit details
    Browse the repository at this point in the history
  12. kvdb+lncfg: fully move etcd behind build tag

    This commit separates all etcd related sources (sans a few stubs and
    config) from the rest of the source tree and makes compilation conditional
    depending on whether the kvdb_etcd build tag is specified.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    85aee9b View commit details
    Browse the repository at this point in the history
  13. channeldb: silence linter

    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    bce0597 View commit details
    Browse the repository at this point in the history
  14. etcd: add namespace support to separate key spaces

    This commit extends etcd db with namespaces without additional storage
    space requirements. This is simply done by instead of using an all zero
    root bucket id, we use the sha256 hash of the name space as our root
    bucket id.
    bhandras committed May 22, 2020
    Configuration menu
    Copy the full SHA
    c3fcfd1 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    b53475d View commit details
    Browse the repository at this point in the history