go-ethereum/trie
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
..
database.go trie: cache collapsed tries node, not rlp blobs (#16876) 2018-06-21 11:28:05 +02:00
encoding.go trie: avoid unnecessary slicing on shortnode decoding (#16917) 2018-06-07 11:48:36 +03:00
encoding_test.go trie: rework and document key encoding 2017-04-25 02:14:31 +02:00
errors.go trie: more node iterator improvements (#14615) 2017-06-20 18:26:09 +02:00
hasher.go trie: cache collapsed tries node, not rlp blobs (#16876) 2018-06-21 11:28:05 +02:00
iterator.go trie: support proof generation from the iterator 2018-05-23 13:02:20 +03:00
iterator_test.go all: get rid of error when creating memory database (#16716) 2018-05-09 15:24:25 +03:00
node.go trie: cache collapsed tries node, not rlp blobs (#16876) 2018-06-21 11:28:05 +02:00
node_test.go trie, core/state: improve memory usage and performance (#3135) 2016-10-14 19:04:33 +03:00
proof.go trie: fixes to comply with golint (#16771) 2018-05-21 23:41:31 +03:00
proof_test.go trie: support proof generation from the iterator 2018-05-23 13:02:20 +03:00
secure_trie.go trie: fixes to comply with golint (#16771) 2018-05-21 23:41:31 +03:00
secure_trie_test.go all: get rid of error when creating memory database (#16716) 2018-05-09 15:24:25 +03:00
sync.go trie: rename TrieSync to Sync and improve hexToKeybytes (#16804) 2018-05-29 17:48:43 +02:00
sync_test.go trie: rename TrieSync to Sync and improve hexToKeybytes (#16804) 2018-05-29 17:48:43 +02:00
trie.go trie: cache collapsed tries node, not rlp blobs (#16876) 2018-06-21 11:28:05 +02:00
trie_test.go all: get rid of error when creating memory database (#16716) 2018-05-09 15:24:25 +03:00