lnd.xprv/channeldb/kvdb
Andras Banki-Horvath 02f9d91e49 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.
2020-05-22 11:26:25 +02:00
..
etcd kvdb+etcd: only lock on bucket path mod revision for reads and writes 2020-05-22 11:26:25 +02:00
backend.go kvdb+etcd: enable channeldb testing with both bdb/etcd 2020-05-22 11:26:25 +02:00
bbolt.go channeldb/kvdb: create new package for an abstract kv store 2020-03-18 19:34:45 -07:00
etcd.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
interface.go kvdb+etcd: extend kvdb and STM with stats 2020-05-22 11:26:25 +02:00
kvdb_test_bdb.go kvdb+etcd: enable channeldb testing with both bdb/etcd 2020-05-22 11:26:25 +02:00
kvdb_test_etcd.go kvdb+etcd: enable channeldb testing with both bdb/etcd 2020-05-22 11:26:25 +02:00