From fd23adc794b7f3ad7efc3ef63d1c8e7364b9246d Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Sat, 24 May 2025 03:33:33 -0300 Subject: [PATCH] mdbx: lz4 fast --- node/store/mdbx.go | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/node/store/mdbx.go b/node/store/mdbx.go index 6100962..4eadd37 100644 --- a/node/store/mdbx.go +++ b/node/store/mdbx.go @@ -8,9 +8,9 @@ import ( "strconv" "sync/atomic" - "github.com/DataDog/zstd" "github.com/cockroachdb/pebble" "github.com/erigontech/mdbx-go/mdbx" + lz4 "github.com/pierrec/lz4/v4" "source.quilibrium.com/quilibrium/monorepo/node/config" ) @@ -20,11 +20,18 @@ func compressValue(value []byte) ([]byte, error) { if value == nil { return value, nil } - value, err := zstd.CompressLevel(nil, value, zstd.BestSpeed) - if err != nil { + var b bytes.Buffer + w := lz4.NewWriter(&b) + w.Apply(lz4.CompressionLevelOption(lz4.Fast)) + + if _, err := w.Write(value); err != nil { return nil, err } - return value, nil + + if err := w.Close(); err != nil { + return nil, err + } + return b.Bytes(), nil } // decompressValue decompresses a byte slice if it was compressed @@ -34,11 +41,17 @@ func decompressValue(value []byte) ([]byte, error) { if value == nil { return value, nil } - value, err := zstd.Decompress(nil, value) - if err != nil { + + // Create a zlib reader + r := lz4.NewReader(bytes.NewReader(value)) + + // Read the decompressed data + var b bytes.Buffer + if _, err := io.Copy(&b, r); err != nil { return nil, err } - return value, err + + return b.Bytes(), nil } type MDBXDB struct {