nspcc-dev/neo-go

Allow configurable LevelDB options

开放

#3,829 创建于 2025年3月5日

 (2 条评论) (1 个反应) (0 位负责人)Go (108 个派生)auto 404
I2S4U4configenhancementgood first issue

仓库指标

星标
 (132 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

Is your feature request related to a problem? Please describe.

The current configuration for LevelDB creates too many files. It's possible to decrease the number of files by changing the CompactionTableSize on LevelDB. The large amount of files has a negative impact on our IT infrastructure.

Describe the solution you'd like

Level DB has some parameters that can be tweaked, such as WriteBufferSize, BlockSize, BlockCacheCapacity, CompactionTableSize, CompactionL0Trigger, and OpenFilesCacheCapacity. These values should be configurable through the config file.

Describe alternatives you've considered

I've tried running 'db dump', but it takes a long time to complete.

Additional context

I've implemented this feature here, without any kind of test. https://github.com/linkd-academy/neo-go/commit/8ca4a311c01f7627967bf6fe818083b02271bb96

Result with 5GB CompactionTableSize (may not be ideal, 1 GB could be better): Image

Changing some parameters made it run faster on my macOS. My computer was barely usable during synchronization.

Don't forget to add labels!

  • enhancement

贡献者指南