Skip to content
This repository has been archived by the owner on Oct 17, 2018. It is now read-only.

Commit

Permalink
Use no pool in encoder/decoder by default (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
cw9 committed Oct 8, 2018
1 parent 743c7f8 commit 4851e27
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 15 deletions.
12 changes: 10 additions & 2 deletions consumer/config_test.go
Expand Up @@ -24,6 +24,8 @@ import (
"testing"
"time"

"github.com/m3db/m3x/instrument"

"github.com/stretchr/testify/require"
yaml "gopkg.in/yaml.v2"
)
Expand All @@ -38,14 +40,20 @@ connectionWriteBufferSize: 200
connectionReadBufferSize: 300
encoder:
maxMessageSize: 100
bytesPool:
watermark:
low: 0.001
decoder:
maxMessageSize: 200
bytesPool:
watermark:
high: 0.002
`

var cfg Configuration
require.NoError(t, yaml.Unmarshal([]byte(str), &cfg))

opts := cfg.NewOptions(nil)
opts := cfg.NewOptions(instrument.NewOptions())
require.Equal(t, 5, opts.MessagePoolOptions().Size())
require.Equal(t, 100*time.Millisecond, opts.AckFlushInterval())
require.Equal(t, 100, opts.AckBufferSize())
Expand All @@ -55,5 +63,5 @@ decoder:
require.NotNil(t, opts.EncoderOptions().BytesPool())
require.Equal(t, 200, opts.DecoderOptions().MaxMessageSize())
require.NotNil(t, opts.EncoderOptions().BytesPool())
require.Nil(t, opts.InstrumentOptions())
require.Equal(t, instrument.NewOptions(), opts.InstrumentOptions())
}
2 changes: 0 additions & 2 deletions producer/config/writer_test.go
Expand Up @@ -121,7 +121,5 @@ decoder:
require.Equal(t, 2*time.Millisecond, wOpts.AckErrorRetryOptions().InitialBackoff())
require.Equal(t, 5*time.Second, wOpts.ConnectionOptions().DialTimeout())
require.Equal(t, 100, wOpts.EncoderOptions().MaxMessageSize())
require.NotNil(t, wOpts.EncoderOptions().BytesPool())
require.Equal(t, 200, wOpts.DecoderOptions().MaxMessageSize())
require.NotNil(t, wOpts.DecoderOptions().BytesPool())
}
9 changes: 0 additions & 9 deletions protocol/proto/options.go
Expand Up @@ -26,20 +26,11 @@ import (

var (
defaultMaxMessageSize = 4 * 1024 * 1024 // 4MB.
defaultByteBuckets = []pool.Bucket{
{Capacity: 4, Count: 4}, // Number of bytes for size.
{Capacity: 512, Count: 2}, // Number of bytes for message.
{Capacity: 1024, Count: 2}, // Number of bytes for ack with 100 metadata.
{Capacity: 2048, Count: 1}, // Number of bytes in case of large message or ack.
}
)

// NewOptions creates a new Options.
func NewOptions() Options {
pool := pool.NewBytesPool(defaultByteBuckets, nil)
pool.Init()
return &options{
bytesPool: pool,
maxMessageSize: defaultMaxMessageSize,
}
}
Expand Down
4 changes: 2 additions & 2 deletions protocol/proto/roundtrip_test.go
Expand Up @@ -32,12 +32,12 @@ import (
)

func TestBaseEncodeDecodeRoundTripWithoutPool(t *testing.T) {
enc := NewEncoder(NewOptions().SetBytesPool(nil)).(*encoder)
enc := NewEncoder(NewOptions()).(*encoder)
require.Equal(t, 4, len(enc.buffer))
require.Equal(t, 4, cap(enc.buffer))
require.Empty(t, enc.Bytes())
r := bytes.NewReader(nil)
dec := NewDecoder(r, NewOptions().SetBytesPool(nil)).(*decoder)
dec := NewDecoder(r, NewOptions()).(*decoder)
require.Equal(t, 4, len(dec.buffer))
require.Equal(t, 4, cap(dec.buffer))
encodeMsg := msgpb.Message{
Expand Down

0 comments on commit 4851e27

Please sign in to comment.