gary rong
93da0cf8a1
cmd, core, eth, light, trie: dump clean cache periodically ( #20391 )
...
* cmd, core, eth, light, trie: dump clean cache periodically
* eth: update config
* trie: minor fix
* core, trie: address comments
* eth: remove useless
* trie: print clean cache dump start too
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2020-07-28 16:30:31 +03:00
gary rong
6eef141aef
les: historical data garbage collection ( #19570 )
...
This change introduces garbage collection for the light client. Historical
chain data is deleted periodically. If you want to disable the GC, use
the --light.nopruning flag.
2020-07-13 11:02:54 +02:00
Marius van der Wijden
b482423e61
trie: reduce allocs in insertPreimage ( #21261 )
2020-06-24 21:56:27 +02:00
Martin Michlmayr
4f2784b38f
all: fix typos in comments ( #21118 )
2020-05-25 10:21:28 +02:00
Martin Holst Swende
af4080b4b7
trie: fix concurrent usage of secKeyBuf, ref #20920
2020-04-15 11:07:29 +02:00
Martin Holst Swende
5a9c96454e
trie: separate hashes and committer, collapse on commit
...
* trie: make db insert use size instead of full data
* core/state: minor optimization in state onleaf allocation
* trie: implement dedicated committer and hasher
* trie: use dedicated committer/hasher
* trie: linter nitpicks
* core/state, trie: avoid unnecessary storage trie load+commit
* trie: review feedback, mainly docs + minor changes
* trie: start deprecating old hasher
* trie: fix misspell+lint
* trie: deprecate hasher.go, make proof framework use new hasher
* trie: rename pure_committer/hasher to committer/hasher
* trie, core/state: fix review concerns
* trie: more review concerns
* trie: make commit collapse into hashnode, don't touch dirtyness
* trie: goimports fixes
* trie: remove panics
2020-02-03 17:28:30 +02:00
Martin Holst Swende
9b09c0fc83
* trie: utilize callbacks instead of amassing lists in ref/unref ( #20529 )
...
* trie/tests: add benchmarks and update trie tests
* trie: update benchmark tests
* trie: utilize callbacks instead of amassing lists of hashes in database ref/unref
* trie: replace remaining non-callback based accesses
2020-01-17 13:59:45 +02:00
Péter Szilágyi
13ccf6016e
trie: track dirty cache metrics, track clean writes on commit
2019-12-02 12:23:35 +02:00
gary rong
08611cfd75
trie: remove dead code ( #20405 )
2019-11-28 12:47:35 +02:00
gary rong
9d67222f4e
trie: replace bigcache with fastcache ( #19971 )
2019-11-25 10:58:15 +02:00
Felix Lange
0abcf03fde
trie: remove unused code ( #20366 )
2019-11-22 17:24:48 +02:00
gary rong
80469bea0c
all: integrate the freezer with fast sync
...
* all: freezer style syncing
core, eth, les, light: clean up freezer relative APIs
core, eth, les, trie, ethdb, light: clean a bit
core, eth, les, light: add unit tests
core, light: rewrite setHead function
core, eth: fix downloader unit tests
core: add receipt chain insertion test
core: use constant instead of hardcoding table name
core: fix rollback
core: fix setHead
core/rawdb: remove canonical block first and then iterate side chain
core/rawdb, ethdb: add hasAncient interface
eth/downloader: calculate ancient limit via cht first
core, eth, ethdb: lots of fixes
* eth/downloader: print ancient disable log only for fast sync
2019-05-16 10:39:32 +03:00
Péter Szilágyi
4a4abc41d4
trie: approximate the wasted cache metaspace closer
2019-04-12 11:43:16 +03:00
Péter Szilágyi
4bf0d11e7c
trie: there's no point in retrieving the metaroot
2019-04-05 13:09:28 +03:00
Martin Holst Swende
59e1953246
core, ethdb, trie: mode dirty data to clean cache on flush ( #19307 )
...
This PR is a more advanced form of the dirty-to-clean cacher (#18995 ),
where we reuse previous database write batches as datasets to uncache,
saving a dirty-trie-iteration and a dirty-trie-rlp-reencoding per block.
2019-03-26 15:48:31 +01:00
Martin Holst Swende
876f357364
trie: disable fnv64a hashing of hashes for bigcache ( #19314 )
...
* trie: disable fnv64a hashing of hashes for bigcache
* trie/database: add very important period
2019-03-22 17:13:28 +02:00
Péter Szilágyi
91eec1251c
cmd, core, eth, trie: get rid of trie cache generations ( #19262 )
...
* cmd, core, eth, trie: get rid of trie cache generations
* core, trie: get rid of remainder of cache gen boilerplate
2019-03-14 15:25:12 +02:00
Péter Szilágyi
054412e335
all: clean up and proerly abstract database access
2019-03-06 13:35:03 +02:00
Matthew Halpern
514a9472ad
trie: prefer nil slices over zero-length slices ( #19084 )
2019-02-19 14:50:11 +01:00
HackyMiner
bb7c786b09
trie: add missing unlock call in error case ( #18985 )
2019-02-04 12:42:46 +01:00
Martin Holst Swende
2843001ac2
trie: fix overflow in write cache parent tracking ( #18165 )
...
trie/database: fix overflow in parent tracking
2018-11-22 15:14:31 +02:00
Péter Szilágyi
434dd5bc00
cmd, core, eth, light, trie: add trie read caching layer
2018-11-15 12:22:13 +02:00
Péter Szilágyi
11bbc66082
eth, trie: fix tracer GC which accidentally pruned the metaroot
2018-08-09 12:33:30 +03:00
Mymskmkt
8051a0768a
trie: fix comment typo ( #17350 )
2018-08-08 16:08:40 +03:00
Péter Szilágyi
8a9c31a307
trie: handle removing the freshest node too
2018-07-30 16:31:17 +03:00
Péter Szilágyi
319098cc1c
trie: fix a temporary memory leak in the memcache
2018-07-02 15:47:33 +03:00
Péter Szilágyi
d926bf2c7e
trie: cache collapsed tries node, not rlp blobs ( #16876 )
...
The current trie memory database/cache that we do pruning on stores
trie nodes as binary rlp encoded blobs, and also stores the node
relationships/references for GC purposes. However, most of the trie
nodes (everything apart from a value node) is in essence just a
collection of references.
This PR switches out the RLP encoded trie blobs with the
collapsed-but-not-serialized trie nodes. This permits most of the
references to be recovered from within the node data structure,
avoiding the need to track them a second time (expensive memory wise).
2018-06-21 11:28:05 +02:00
Péter Szilágyi
a3267ed929
trie: don't report the root flushlist as an alloc
2018-06-11 14:32:13 +03:00
Péter Szilágyi
143c4341d8
core, eth, trie: streaming GC for the trie cache ( #16810 )
...
* core, eth, trie: streaming GC for the trie cache
* trie: track memcache statistics
2018-06-04 10:47:43 +03:00
Felix Lange
a5c0bbb4f4
all: update license information ( #16089 )
2018-02-14 13:49:11 +01:00
Péter Szilágyi
55599ee95d
core, trie: intermediate mempool between trie and database ( #15857 )
...
This commit reduces database I/O by not writing every state trie to disk.
2018-02-05 17:40:32 +01:00