* badger v2 investigation
* buf pool - use native New method and avoid double checks
* db.Open prototype
* db.Tx/Bucket/Cursor prototypes
* Chained config
* Item concept added
* save changes to test on master
* make hack resumable
* Design document v0
* Cursor concept
* less brackets syntax of cursor builder
* benchmarks
* cleanup fs
* test for context cancelations
* test for context cancelations
* test for cursor.Prefix option
* add ForEachKey method
* add ForEachKey method
* add naming explanation
* experiment of non-pointers cursor/bucket
* .Bucket() and .Cursor() doesn't returns error
* .Bucket() and .Cursor() doesn't returns error
* .Bucket() and .Cursor() doesn't returns error
* remove CursorOpts concept
* more test-cases
* simplify open api
* Tx, Bucket, Cursor - now are interfaces
* Tx, Bucket, Cursor - now are interfaces
* switch to interfaces
* rebase master
Co-authored-by: alex.sharov <alex.sharov@lazada.com>
* squash commits
* enable storage cache
* make linter happy
* fix subtree prefix len check
* save cahnges to test master
* remove restriction on prefix len
* fix comparison of last bits
* fix wrong alignment
* remove debug prints
* commit current state
* commit current state
* avoid changing state of resolver from multiwalk
* remove debug code
* remove debug code
* remove debug code
* remove unnecessary copy
* make code more readable
* reduce rebuildHashes initial resolution
* fix test after rebase to master
* make code more readable
* improve pruner
* pruner add IntermediateCache bucket
* fix panic in Walk on short keys
* reduce allocations for storage keys decompression by increasing default buffer size
* re-run CI
* fix iterator behaviour
* rename cache to hash for unification
* re-run ci
* avoid using underlying DB
* hash all subtree nodes before unload
* fix getNode method
* need to check node type, not parent - before put to hashBucket
* return back parent type check, doesn't work without it.
* don't recalculate hash again
* move unloadFunc from trie to pruner
* rename bucket to shorter name
* rename bucket to shorter name
* clean
* rebase to master
* add env INTERMEDIATE_TRIE_CACHE
* try to use assert.New() pattern
* Fix "maligned" linter warnings to reduce space consumption of structs:
core/types/accounts/account.go:18:14: struct of size 136 bytes could be of size 128 bytes (maligned)
type Account struct {
--
trie/node.go:44:10: struct of size 80 bytes could be of size 72 bytes (maligned)
duoNode struct {
--
trie/resolve_set.go:28:17: struct of size 56 bytes could be of size 48 bytes (maligned)
type ResolveSet struct {
--
trie/resolver.go:34:15: struct of size 88 bytes could be of size 72 bytes (maligned)
type Resolver struct {
--
trie/visual.go:32:17: struct of size 104 bytes could be of size 96 bytes (maligned)
type VisualOpts struct {
* added prefix tree to analyses to reduce memory usage
* make new partition every day
* merge concepts of reporter and snapshot
* tests for .FirstKey() and .NextKey()
* Switch to boltDB with Yield
Yield boltdb transaction regularly to not block memory map resizing
* Add test for Yield
* Refer to tagged version of bolt
- rollback must catch local variable, if you write value to lastError variable
- then you can't do "return" - because it closing connection and client can't send CmdLastError
- somewhere error values was ommited in loging