mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-12-22 09:19:08 +00:00
119ca27994
Previously, the `blockQueuer` routine, which enqueues blocks into `bQueue`, could be blocked on enqueing newer blocks if older blocks downloading is delayed by NeoFS. The `blocksCh` channel, acting as a queue ordered by download speed, conflicted with the BQueue requirement for strict sequential enqueuing (expecting an exact range of blocks), resulting in a deadlock that stalled the process. Before with default config settings: ``` 2024-11-27T17:12:19.348+0300 INFO persisted to disk {"blocks": 0, "keys": 116, "headerHeight": 0, "blockHeight": 0, "took": "15 .509083ms"} 2024-11-27T17:19:39.574+0300 INFO persisted to disk {"blocks": 16, "keys": 11107, "headerHeight": 216768, "blockHeight": 216768, "took": "62.762041ms"} ``` Average block persistence speed: 492.40 block/s Average blocks number for each persist log: 584.28 After: ``` 2024-11-27T17:29:03.362+0300 INFO persisted to disk {"blocks": 0, "keys": 116, "headerHeight": 0, "blockHeight": 0, "took": "19 .485084ms"} 2024-11-27T17:34:58.527+0300 INFO persisted to disk {"blocks": 16, "keys": 11109, "headerHeight": 216770, "blockHeight": 216769, "took": "52.43925ms"} ``` Average block persistence speed: 610.33 block/s Average blocks number for each persist log: 752.61 Close #3699 Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io> |
||
---|---|---|
.. | ||
cli.md | ||
compiler.md | ||
consensus.md | ||
conventions.md | ||
labels.md | ||
neofs-blockstorage.md | ||
node-configuration.md | ||
notary.md | ||
notifications.md | ||
oracle.md | ||
release-instruction.md | ||
rpc.md | ||
stateroots.md | ||
vm.md |