neoneo-go/pkg/core
Roman Khimov 35bdfc5eca storage: use two maps for MemoryStore
Simple and dumb as it is, this allows to separate contract storage from other
things and dramatically improve Seek() time over storage (even though it's
still unordered!) which in turn improves block processing speed.

        LevelDB             LevelDB (KeepOnlyLatest)  BoltDB              BoltDB (KeepOnlyLatest)
Master  real    16m27,936s  real    10m9,440s         real    16m39,369s  real    8m1,227s
        user    20m12,619s  user    26m13,925s        user    18m9,162s   user    18m5,846s
        sys     2m56,377s   sys     1m32,051s         sys     9m52,576s   sys     2m9,455s

2 maps  real    10m49,495s  real    8m53,342s         real    11m46,204s  real    5m56,043s
        user    14m19,922s  user    24m6,225s         user    13m25,691s  user    15m4,694s
        sys     1m53,021s   sys     1m23,006s         sys     4m31,735s   sys     2m8,714s

neo-bench performance is mostly unaffected, ~0.5% for 1-1 test and 4% for
10K-10K test both fall within regular test error range.
2022-02-16 15:55:48 +03:00
..
block *: store application long along with tx/block 2021-12-09 15:39:26 +03:00
blockchainer core: drop GetStandBy* methods 2022-01-31 23:14:38 +03:00
chaindump services/consensus: drop blockchainer.Blockchainer use 2022-01-14 19:57:16 +03:00
dao core, rpc: use Seek to iterate over NEP* transfers 2022-01-19 20:55:08 +03:00
fee vm: add PACKMAP/PACKSTRUCT, extend UNPACK 2021-11-12 17:19:59 +03:00
interop core: drop GetStandBy* methods 2022-01-31 23:14:38 +03:00
mempool mempool: use capacity parameter to avoid map reallocations 2021-12-01 21:36:25 +03:00
mempoolevent core: move mempool.Event to a separate package 2021-06-01 12:24:28 +03:00
mpt mpt: don't allocate for every key 2022-02-11 14:19:54 +03:00
native Merge pull request #2342 from nspcc-dev/fix-management-contract-callflags 2022-02-01 12:30:53 +03:00
state core, rpc: use Seek to iterate over NEP* transfers 2022-01-19 20:55:08 +03:00
stateroot stateroot: use a better word for logs 2022-02-14 17:29:21 +03:00
statesync mpt: modify refcounted storage scheme to make GC possible 2022-02-10 21:56:20 +03:00
storage storage: use two maps for MemoryStore 2022-02-16 15:55:48 +03:00
test_data nativetest: migrate Oracle contract tests to neotest 2022-01-14 17:56:10 +03:00
transaction transaction: microoptimize Hash() 2021-12-02 14:48:35 +03:00
bench_test.go core, rpc: use Seek to iterate over NEP* transfers 2022-01-19 20:55:08 +03:00
blockchain.go core: remove old storage items synchronously during jump 2022-02-16 13:03:13 +03:00
blockchain_test.go core: remove stale transfer entries, fix #2096 2022-02-15 15:51:03 +03:00
doc.go core: add Blockchain event subscription mechanism 2020-05-25 00:27:39 +03:00
helper_test.go rpc: add NEP11-D tests to server and client 2022-02-09 11:57:16 +03:00
interop_system.go Merge pull request #2323 from nspcc-dev/drop-blockchainer 2022-01-14 20:47:26 +03:00
interop_system_test.go nativetest: migrate Management contract tests to neotest 2022-01-14 17:56:04 +03:00
interops.go interop: implement System.Runtime.GetRandom 2021-07-15 16:00:01 +03:00
interops_test.go core: remove conflicting transactions wrt MaxTraceableBlocks 2021-08-18 13:31:47 +03:00
native_contract_test.go nativetest: migrate Management contract tests to neotest 2022-01-14 17:56:04 +03:00
native_designate_test.go nativetest: migrate Designation contract tests to neotest 2022-01-14 16:47:31 +03:00
native_management_test.go nativetest: migrate Management contract tests to neotest 2022-01-14 17:56:04 +03:00
native_neo_test.go nativetest: migrate NEO contract tests to neotest 2022-01-14 17:56:10 +03:00
native_policy_test.go nativetest: migrate Policy contract tests to neotest 2022-01-14 16:34:33 +03:00
notary_test.go network: decouple it from blockchainer.Blockchainer 2022-01-14 19:57:16 +03:00
oracle_test.go Merge pull request #2323 from nspcc-dev/drop-blockchainer 2022-01-14 20:47:26 +03:00
prometheus.go stateroot: move state-root related logic to core/stateroot 2021-03-09 13:48:29 +03:00
stateroot_test.go core: shrink blockchainer.StateRoot further, leave simple RO methods 2022-01-14 19:57:16 +03:00
statesync_test.go rpc: add NEP11-D tests to server and client 2022-02-09 11:57:16 +03:00
util.go core: drop GetStandBy* methods 2022-01-31 23:14:38 +03:00
util_test.go core/block: add Nonce field to header 2021-07-15 15:58:49 +03:00