aboutsummaryrefslogtreecommitdiffstats
path: root/trie/sync.go
Commit message (Collapse)AuthorAgeFilesLines
* core/state, eth/downloader, trie: reset fast-failure on progressPéter Szilágyi2016-10-311-6/+12
|
* trie: while fast syncing, don't keep trie nodes in memory (#3186)Péter Szilágyi2016-10-211-19/+13
|
* trie: ensure resolved nodes stay loadedFelix Lange2016-10-181-3/+3
| | | | | | | | Commit 40cdcf1183 broke the optimisation which kept nodes resolved during Get in the trie. The decoder assigned cache generation 0 unconditionally, causing resolved nodes to get flushed on Commit. This commit fixes it and adds two tests.
* trie: fix regression that linked all downloaded nodes togetherFelix Lange2016-10-151-0/+2
| | | | | | | The trie sync code links subtries using pointers into node structs. Since commit 40cdcf1183 nodes are no longer copied when unpacking from an interface value, causing all nodes to get linked up as the sync progresses. Fix it by breaking the pointer chain with an explicit copy.
* trie, core/state: improve memory usage and performance (#3135)Felix Lange2016-10-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * trie: store nodes as pointers This avoids memory copies when unwrapping node interface values. name old time/op new time/op delta Get 388ns ± 8% 215ns ± 2% -44.56% (p=0.000 n=15+15) GetDB 363ns ± 3% 202ns ± 2% -44.21% (p=0.000 n=15+15) UpdateBE 1.57µs ± 2% 1.29µs ± 3% -17.80% (p=0.000 n=13+15) UpdateLE 1.92µs ± 2% 1.61µs ± 2% -16.25% (p=0.000 n=14+14) HashBE 2.16µs ± 6% 2.18µs ± 6% ~ (p=0.436 n=15+15) HashLE 7.43µs ± 3% 7.21µs ± 3% -2.96% (p=0.000 n=15+13) * trie: close temporary databases in GetDB benchmark * trie: don't keep []byte from DB load around Nodes decoded from a DB load kept hashes and values as sub-slices of the DB value. This can be a problem because loading from leveldb often returns []byte with a cap that's larger than necessary, increasing memory usage. * trie: unload old cached nodes * trie, core/state: use cache unloading for account trie * trie: use explicit private flags (fixes Go 1.5 reflection issue). * trie: fixup cachegen overflow at request of nick * core/state: rename journal size constant
* Merge pull request #2627 from karalabe/concurrent-head-syncPéter Szilágyi2016-05-311-1/+6
|\ | | | | eth/downloader, trie: pull head state concurrently with chain
| * eth/downloader, trie: pull head state concurrently with chainPéter Szilágyi2016-05-271-1/+6
| |
* | core, core/state, trie: enterprise hand-tuned multi-level cachingPéter Szilágyi2016-05-261-6/+7
|/
* core, eth, trie: fix data races and merge/review issuesPéter Szilágyi2015-10-211-1/+1
|
* eth/downloader: concurrent receipt and state processingPéter Szilágyi2015-10-191-8/+60
|
* core, eth, trie: direct state trie synchronizationPéter Szilágyi2015-10-191-0/+233