go-ethereum/ethdb
rjl493456442 7de748d3f6
all: implement path-based state scheme (#25963)
* all: implement path-based state scheme

* all: edits from review

* core/rawdb, trie/triedb/pathdb: review changes

* core, light, trie, eth, tests: reimplement pbss history

* core, trie/triedb/pathdb: track block number in state history

* trie/triedb/pathdb: add history documentation

* core, trie/triedb/pathdb: address comments from Peter's review

Important changes to list:

- Cache trie nodes by path in clean cache
- Remove root->id mappings when history is truncated

* trie/triedb/pathdb: fallback to disk if unexpect node in clean cache

* core/rawdb: fix tests

* trie/triedb/pathdb: rename metrics, change clean cache key

* trie/triedb: manage the clean cache inside of disk layer

* trie/triedb/pathdb: move journal function

* trie/triedb/path: fix tests

* trie/triedb/pathdb: fix journal

* trie/triedb/pathdb: fix history

* trie/triedb/pathdb: try to fix tests on windows

* core, trie: address comments

* trie/triedb/pathdb: fix test issues

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
2023-08-01 15:17:32 +03:00
..
dbtest ethdb/dbtest: use slices package for sorting (#27491) 2023-06-19 07:48:47 +02:00
leveldb ethdb/leveldb: update leveldb metrics collection (#27643) 2023-07-06 00:04:07 +02:00
memorydb ethdb/pebble: prevent shutdown-panic (#27238) 2023-05-19 08:36:21 -04:00
pebble ethdb/pebble: use sync mode for pebble writes (#27615) 2023-06-27 03:19:02 -04:00
remotedb all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
batch.go core, ethdb, tests, trie: implement NewBatchWithSize API for batcher (#24392) 2022-02-15 15:15:13 +02:00
database.go all: implement path-based state scheme (#25963) 2023-08-01 15:17:32 +03:00
iterator.go all: simplify and fix database iteration with prefix/start (#20808) 2020-04-15 14:08:53 +03:00
snapshot.go all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00