Skip to content

Commit 47d77a0

Browse files
Wing924pracucci
authored andcommitted
Fix
Signed-off-by: Wing924 <[email protected]>
1 parent 0978fec commit 47d77a0

File tree

5 files changed

+34
-32
lines changed

5 files changed

+34
-32
lines changed

CHANGELOG.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,8 @@
8888
* [ENHANCEMENT] Flusher: Added `-flusher.exit-after-flush` option (defaults to true) to control whether Cortex should stop completely after Flusher has finished its work. #2877
8989
* [ENHANCEMENT] Added metrics `cortex_config_hash` and `cortex_runtime_config_hash` to expose hash of the currently active config file. #2874
9090
* [ENHANCEMENT] Logger: added JSON logging support, configured via the `-log.format=json` CLI flag or its respective YAML config option. #2386
91-
<<<<<<< HEAD
9291
* [ENHANCEMENT] Added new flags `-bigtable.grpc-compression`, `-ingester.client.grpc-compression`, `-querier.frontend-client.grpc-compression` to configure compression used by gRPC. Valid values are `gzip`, `snappy`, or empty string (no compression, default). #2940
93-
=======
9492
* [ENHANCEMENT] Clarify limitations of the `/api/v1/series`, `/api/v1/labels` and `/api/v1/label/{name}/values` endpoints. #2953
95-
>>>>>>> master
9693
* [BUGFIX] Fixed a bug in the index intersect code causing storage to return more chunks/series than required. #2796
9794
* [BUGFIX] Fixed the number of reported keys in the background cache queue. #2764
9895
* [BUGFIX] Fix race in processing of headers in sharded queries. #2762

docs/configuration/config-file-reference.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1774,14 +1774,15 @@ bigtable:
17741774
# CLI flag: -bigtable.grpc-max-send-msg-size
17751775
[max_send_msg_size: <int> | default = 16777216]
17761776

1777-
# Deprecated: Use gzip compression when sending messages.
1777+
# Deprecated: Use gzip compression when sending messages. If true,
1778+
# overrides grpc-compression flag.
17781779
# CLI flag: -bigtable.grpc-use-gzip-compression
17791780
[use_gzip_compression: <boolean> | default = false]
17801781

17811782
# Use compression when sending messages. Supported values are: 'gzip',
17821783
# 'snappy' and '' (disable compression)
17831784
# CLI flag: -bigtable.grpc-compression
1784-
[compression: <string> | default = ""]
1785+
[grpc_compression: <string> | default = ""]
17851786

17861787
# Rate limit for gRPC client; 0 means disabled.
17871788
# CLI flag: -bigtable.grpc-client-rate-limit
@@ -2270,14 +2271,15 @@ grpc_client_config:
22702271
# CLI flag: -ingester.client.grpc-max-send-msg-size
22712272
[max_send_msg_size: <int> | default = 16777216]
22722273
2273-
# Deprecated: Use gzip compression when sending messages.
2274+
# Deprecated: Use gzip compression when sending messages. If true, overrides
2275+
# grpc-compression flag.
22742276
# CLI flag: -ingester.client.grpc-use-gzip-compression
22752277
[use_gzip_compression: <boolean> | default = false]
22762278
22772279
# Use compression when sending messages. Supported values are: 'gzip',
22782280
# 'snappy' and '' (disable compression)
22792281
# CLI flag: -ingester.client.grpc-compression
2280-
[compression: <string> | default = ""]
2282+
[grpc_compression: <string> | default = ""]
22812283
22822284
# Rate limit for gRPC client; 0 means disabled.
22832285
# CLI flag: -ingester.client.grpc-client-rate-limit
@@ -2348,14 +2350,15 @@ grpc_client_config:
23482350
# CLI flag: -querier.frontend-client.grpc-max-send-msg-size
23492351
[max_send_msg_size: <int> | default = 16777216]
23502352
2351-
# Deprecated: Use gzip compression when sending messages.
2353+
# Deprecated: Use gzip compression when sending messages. If true, overrides
2354+
# grpc-compression flag.
23522355
# CLI flag: -querier.frontend-client.grpc-use-gzip-compression
23532356
[use_gzip_compression: <boolean> | default = false]
23542357
23552358
# Use compression when sending messages. Supported values are: 'gzip',
23562359
# 'snappy' and '' (disable compression)
23572360
# CLI flag: -querier.frontend-client.grpc-compression
2358-
[compression: <string> | default = ""]
2361+
[grpc_compression: <string> | default = ""]
23592362
23602363
# Rate limit for gRPC client; 0 means disabled.
23612364
# CLI flag: -querier.frontend-client.grpc-client-rate-limit

pkg/util/grpc/encoding/snappy/snappy.go

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,12 @@ func newCompressor() *compressor {
2424
c := &compressor{}
2525
c.readersPool = sync.Pool{
2626
New: func() interface{} {
27-
return &reader{
28-
pool: &c.readersPool,
29-
Reader: snappy.NewReader(nil),
30-
}
27+
return snappy.NewReader(nil)
3128
},
3229
}
3330
c.writersPool = sync.Pool{
3431
New: func() interface{} {
35-
return &writeCloser{
36-
pool: &c.writersPool,
37-
Writer: snappy.NewBufferedWriter(nil),
38-
}
32+
return snappy.NewBufferedWriter(nil)
3933
},
4034
}
4135
return c
@@ -46,36 +40,44 @@ func (c *compressor) Name() string {
4640
}
4741

4842
func (c *compressor) Compress(w io.Writer) (io.WriteCloser, error) {
49-
wr := c.writersPool.Get().(*writeCloser)
43+
wr := c.writersPool.Get().(*snappy.Writer)
5044
wr.Reset(w)
51-
return wr, nil
45+
return writeCloser{wr, &c.writersPool}, nil
5246
}
5347

5448
func (c *compressor) Decompress(r io.Reader) (io.Reader, error) {
55-
dr := c.readersPool.Get().(*reader)
49+
dr := c.readersPool.Get().(*snappy.Reader)
5650
dr.Reset(r)
57-
return dr, nil
51+
return reader{dr, &c.readersPool}, nil
5852
}
5953

6054
type writeCloser struct {
6155
*snappy.Writer
6256
pool *sync.Pool
6357
}
6458

65-
func (w *writeCloser) Close() error {
66-
defer w.pool.Put(w)
67-
return w.Writer.Close()
59+
func (w writeCloser) Close() error {
60+
defer func() {
61+
w.Writer.Reset(nil)
62+
w.pool.Put(w.Writer)
63+
}()
64+
65+
if w.Writer != nil {
66+
return w.Writer.Close()
67+
}
68+
return nil
6869
}
6970

7071
type reader struct {
71-
*snappy.Reader
72-
pool *sync.Pool
72+
reader *snappy.Reader
73+
pool *sync.Pool
7374
}
7475

75-
func (r *reader) Read(p []byte) (n int, err error) {
76-
n, err = r.Reader.Read(p)
76+
func (r reader) Read(p []byte) (n int, err error) {
77+
n, err = r.reader.Read(p)
7778
if err == io.EOF {
78-
r.pool.Put(r)
79+
r.reader.Reset(nil)
80+
r.pool.Put(r.reader)
7981
}
8082
return n, err
8183
}

pkg/util/grpc/encoding/snappy/snappy_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ func TestSnappy(t *testing.T) {
4747
func BenchmarkSnappyCompress(b *testing.B) {
4848
data := []byte(strings.Repeat("123456789", 1024))
4949
c := newCompressor()
50-
w, _ := c.Compress(ioutil.Discard)
5150
b.ResetTimer()
5251
for i := 0; i < b.N; i++ {
52+
w, _ := c.Compress(ioutil.Discard)
5353
_, _ = w.Write(data)
5454
_ = w.Close()
5555
}

pkg/util/grpcclient/grpcclient.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
type Config struct {
2121
MaxRecvMsgSize int `yaml:"max_recv_msg_size"`
2222
MaxSendMsgSize int `yaml:"max_send_msg_size"`
23-
UseGzipCompression bool `yaml:"use_gzip_compression"`
23+
UseGzipCompression bool `yaml:"use_gzip_compression"` // TODO: Remove this deprecated option in v1.6.0.
2424
GRPCCompression string `yaml:"grpc_compression"`
2525
RateLimit float64 `yaml:"rate_limit"`
2626
RateLimitBurst int `yaml:"rate_limit_burst"`
@@ -68,7 +68,7 @@ func (cfg *Config) CallOptions() []grpc.CallOption {
6868
opts = append(opts, grpc.MaxCallSendMsgSize(cfg.MaxSendMsgSize))
6969
compression := cfg.GRPCCompression
7070
if cfg.UseGzipCompression {
71-
compression = "gzip"
71+
compression = gzip.Name
7272
}
7373
if compression != "" {
7474
opts = append(opts, grpc.UseCompressor(compression))

0 commit comments

Comments
 (0)