Skip to content

Commit

Permalink
Pool zstd encoding/decoding
Browse files Browse the repository at this point in the history
  • Loading branch information
zalegrala committed Oct 18, 2024
1 parent 67be243 commit ead0ddb
Showing 1 changed file with 7 additions and 26 deletions.
33 changes: 7 additions & 26 deletions tempodb/backend/tenantindex.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@ import (

proto "github.com/gogo/protobuf/proto"
"github.com/klauspost/compress/gzip"
"github.com/klauspost/compress/zstd"
)

const (
internalFilename = "index.json"
)

var _ proto.Message = (*TenantIndex)(nil)
var (
_ proto.Message = (*TenantIndex)(nil)
Zstd = &ZstdCodec{}
)

func newTenantIndex(meta []*BlockMeta, compactedMeta []*CompactedBlockMeta) *TenantIndex {
return &TenantIndex{
Expand Down Expand Up @@ -63,38 +65,17 @@ func (b *TenantIndex) unmarshal(buffer []byte) error {
}

func (b *TenantIndex) marshalPb() ([]byte, error) {
buffer := &bytes.Buffer{}

z, err := zstd.NewWriter(buffer)
if err != nil {
return nil, err
}

pbBytes, err := proto.Marshal(b)
if err != nil {
return nil, err
}

if _, err = z.Write(pbBytes); err != nil {
return nil, err
}
if err = z.Flush(); err != nil {
return nil, err
}
if err = z.Close(); err != nil {
return nil, err
}

return buffer.Bytes(), nil
buffer := []byte{}
return Zstd.Encode(pbBytes, buffer)
}

func (b *TenantIndex) unmarshalPb(buffer []byte) error {
decoder, err := zstd.NewReader(nil, zstd.WithDecoderConcurrency(0))
if err != nil {
return fmt.Errorf("error creating zstd decoder: %w", err)
}

bb, err := decoder.DecodeAll(buffer, nil)
bb, err := Zstd.Decode(buffer)
if err != nil {
return fmt.Errorf("error decoding zstd: %w", err)
}
Expand Down

0 comments on commit ead0ddb

Please sign in to comment.