From 8542946a3312b9a592b9f8e7111c552910f959dd Mon Sep 17 00:00:00 2001 From: eleksir Date: Mon, 12 May 2025 19:16:48 +0300 Subject: [PATCH] Tune pebbledb a bit --- .golangci.yml | 63 ++++++++++++++++++++++++++++++++++++++++ cmd/seed-fortune/main.go | 5 ++-- cmd/seed-friday/main.go | 5 ++-- cmd/seed-proverb/main.go | 5 ++-- internal/lib/karma.go | 10 +++---- 5 files changed, 73 insertions(+), 15 deletions(-) create mode 100644 .golangci.yml diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..74e48a0 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,63 @@ +run: + tests: false + modules-download-mode: readonly + allow-parallel-runners: true + go: '1.24' +linters-settings: + gosec: + excludes: + # Оно не используется для повышения безопасности или каких-то таких секъюрых вещей, оно используется для выборки + # произвольного элемента из массива, так что ИДИ НАХУЙ с этой проверкой и не еби мозги липовой безопасностью. + - G404 # Insecure random number source (rand) +linters: + disable-all: true + enable: + - errcheck + - gosimple + - govet + - ineffassign + - staticcheck + - unused + - asasalint + - asciicheck + - bodyclose + - containedctx + - contextcheck + - decorder + - durationcheck + - errchkjson + - errorlint + - exhaustive + - exhaustruct + - gci + - ginkgolinter + - gocheckcompilerdirectives + - gocritic + - godot + - err113 + - gofmt + - goimports + - gosec + - gosmopolitan + - grouper + - importas + - ireturn + - makezero + - mirror + - nakedret + - nilerr + - nilnil + - nlreturn + - noctx + - nolintlint + - nonamedreturns + - predeclared + - promlinter + - reassign + - revive + - rowserrcheck + - stylecheck + - unconvert + - wastedassign + - whitespace + - wsl diff --git a/cmd/seed-fortune/main.go b/cmd/seed-fortune/main.go index 1356a8b..ec2e356 100644 --- a/cmd/seed-fortune/main.go +++ b/cmd/seed-fortune/main.go @@ -26,9 +26,8 @@ func main() { // Откроем все наши БД var options pebble.Options // По дефолту ограничение ставится на мегабайты данных, а не на количество файлов, поэтому с дефолтными настройками - // порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук, что нас не - // устраивает, поэтому немного снизим эту цифру до более приемлемых значений - options.L0CompactionFileThreshold = 8 + // порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук. + options.L0CompactionFileThreshold = 300 lib.PebbleDB.Fortune.Name = "fortune_db" lib.PebbleDB.Fortune.DB, err = pebble.Open(lib.Config.DataDir+"/"+lib.PebbleDB.Fortune.Name, &options) diff --git a/cmd/seed-friday/main.go b/cmd/seed-friday/main.go index 9a9bc5d..9c45020 100644 --- a/cmd/seed-friday/main.go +++ b/cmd/seed-friday/main.go @@ -20,9 +20,8 @@ func main() { // Откроем все нужные нам для работы базюльки var options pebble.Options // По дефолту ограничение ставится на мегабайты данных, а не на количество файлов, поэтому с дефолтными настройками - // порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук, что нас не - // устраивает, поэтому немного снизим эту цифру до более приемлемых значений - options.L0CompactionFileThreshold = 8 + // порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук. + options.L0CompactionFileThreshold = 300 lib.PebbleDB.Monday.Name = "monday" lib.PebbleDB.Monday.DB, err = pebble.Open(lib.Config.DataDir+"/friday_db/"+lib.PebbleDB.Monday.Name, &options) diff --git a/cmd/seed-proverb/main.go b/cmd/seed-proverb/main.go index c7efb60..da819f0 100644 --- a/cmd/seed-proverb/main.go +++ b/cmd/seed-proverb/main.go @@ -37,9 +37,8 @@ func main() { // Откроем все наши БД var options pebble.Options // По дефолту ограничение ставится на мегабайты данных, а не на количество файлов, поэтому с дефолтными настройками - // порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук, что нас не - // устраивает, поэтому немного снизим эту цифру до более приемлемых значений - options.L0CompactionFileThreshold = 8 + // порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук. + options.L0CompactionFileThreshold = 300 lib.PebbleDB.Proverb.Name = "proverb_db" lib.PebbleDB.Proverb.DB, err = pebble.Open(lib.Config.DataDir+"/"+lib.PebbleDB.Proverb.Name, &options) diff --git a/internal/lib/karma.go b/internal/lib/karma.go index cbe1da9..3a736b9 100644 --- a/internal/lib/karma.go +++ b/internal/lib/karma.go @@ -29,9 +29,8 @@ func changeKarma(chatID string, phrase string, action string) string { if _, ok := KarmaDB[database]; !ok { var options pebble.Options // По дефолту ограничение ставится на мегабайты данных, а не на количество файлов, поэтому с дефолтными - // настройками порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук, - // что нас не устраивает, поэтому немного снизим эту цифру до более приемлемых значений - options.L0CompactionFileThreshold = 8 + // настройками порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук. + options.L0CompactionFileThreshold = 300 KarmaDB[database], err = pebble.Open(Config.DataDir+"/"+database, &options) @@ -124,9 +123,8 @@ func getKarma(chatID string, phrase string) string { if _, ok := KarmaDB[database]; !ok { var options pebble.Options // По дефолту ограничение ставится на мегабайты данных, а не на количество файлов, поэтому с дефолтными - // настройками порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук, - // что нас не устраивает, поэтому немного снизим эту цифру до более приемлемых значений - options.L0CompactionFileThreshold = 8 + // настройками порождается огромное количество файлов. Умолчальное ограничение на количество файлов - 500 штук. + options.L0CompactionFileThreshold = 300 KarmaDB[database], err = pebble.Open(Config.DataDir+"/"+database, &options) if err != nil {