lnd.xprv/channeldb/kvdb/etcd
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
..
bucket_test.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
bucket.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
db_test.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
db.go kvdb+etcd: extend kvdb and STM with stats 2020-05-22 11:26:25 +02:00
driver_test.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
driver.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
embed.go channeldb+kvdb: an extended STM on top of etcd clientv3 2020-05-22 11:26:24 +02:00
fixture_test.go channeldb+kvdb: an extended STM on top of etcd clientv3 2020-05-22 11:26:24 +02:00
readwrite_bucket_test.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
readwrite_bucket.go kvdb+etcd: only lock on bucket path mod revision for reads and writes 2020-05-22 11:26:25 +02:00
readwrite_cursor_test.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
readwrite_cursor.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
readwrite_tx_test.go channeldb+kvdb: walletdb/kvdb interface etcd implementation 2020-05-22 11:26:25 +02:00
readwrite_tx.go kvdb+etcd: only lock on bucket path mod revision for reads and writes 2020-05-22 11:26:25 +02:00
stm_test.go channeldb+kvdb: an extended STM on top of etcd clientv3 2020-05-22 11:26:24 +02:00
stm.go kvdb+etcd: only lock on bucket path mod revision for reads and writes 2020-05-22 11:26:25 +02:00
walletdb_interface_test.go channeldb+kvdb: add walletdb interface test 2020-05-22 11:26:25 +02:00