mirror of
https://github.com/QuilibriumNetwork/ceremonyclient.git
synced 2026-03-06 16:57:45 +08:00
mdbx: lz4 fast
This commit is contained in:
parent
7674199ad8
commit
fd23adc794
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user