neo-go/pkg
Roman Khimov 5fbe838fd4 core: add and use synchronous persist to avoid OOM
b9be892bf9 has made Persist asynchronous which
is very effective in allowing the system to continue processing
blocks/transactions while flushing things to disk. It at the same time is very
dangerous in that if the disk is slow and it takes much time to flush KV set
(more than persisting interval), there might be even bigger new KV set in
MemCachedStore by the time it finishes. Even if the system immediately starts
to flush this new data set it (being bigger) can take more time than the
previous one. And while doing so a new data set will appear in memory,
potentially again bigger than this.

So we can easily end up with the system going out of control, consuming more
and more memory and taking more and more time to persist a single set of
data. To avoid this we need to detect such condition and just wait for Persist
to really finish its job and release the resources.
2021-11-22 10:41:40 +03:00
..
compiler Merge pull request #2255 from nspcc-dev/compiler-noreturn-defers 2021-11-15 10:43:00 +03:00
config rpc: add server-side NEP-11 tracking API 2021-11-19 12:58:46 +03:00
consensus rpc: refactor calculatenetworkfee handler 2021-10-25 19:07:25 +03:00
core core: add and use synchronous persist to avoid OOM 2021-11-22 10:41:40 +03:00
crypto keys: reuse coordLen where appropriate 2021-08-26 17:30:04 +03:00
encoding util: move ArrayReverse into package of its own 2021-07-19 22:57:55 +03:00
interop compiler: remove custom logic for util builtins 2021-10-23 16:12:47 +03:00
io *: make tests use TempDir(), fix #1319 2021-08-26 17:29:40 +03:00
neotest neotest: extend Executor with DeployContractCheckFAULT 2021-11-18 12:28:04 +03:00
network network: fix data race in TestHandleMPTData, fix #2241 2021-11-15 12:37:01 +03:00
rpc rpc/client: accept address as util.Uint160 in GetNEPXXTransfers 2021-11-19 12:58:46 +03:00
services rpc: refactor calculatenetworkfee handler 2021-10-25 19:07:25 +03:00
smartcontract *: use NEP-XX naming consistently in docs/comments 2021-11-19 12:58:46 +03:00
util util: reduce allocations in util.Uint256DecodeStringLE 2021-08-17 16:53:39 +03:00
vm vm: add PACKMAP/PACKSTRUCT, extend UNPACK 2021-11-12 17:19:59 +03:00
wallet *: use NEP-XX naming consistently in docs/comments 2021-11-19 12:58:46 +03:00