Skip to content

Commit b15c743

Browse files
authored
[utils/compression] Remove gzip compressor (#2839)
1 parent f02d463 commit b15c743

File tree

11 files changed

+333
-492
lines changed

11 files changed

+333
-492
lines changed

config/config.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ var (
8888
errCannotReadDirectory = errors.New("cannot read directory")
8989
errUnmarshalling = errors.New("unmarshalling failed")
9090
errFileDoesNotExist = errors.New("file does not exist")
91-
errGzipDeprecatedMsg = errors.New("gzip compression is not supported, use zstd or no compression")
9291
)
9392

9493
func getConsensusConfig(v *viper.Viper) snowball.Parameters {
@@ -266,9 +265,6 @@ func getNetworkConfig(
266265
if err != nil {
267266
return network.Config{}, err
268267
}
269-
if compressionType == compression.TypeGzip {
270-
return network.Config{}, errGzipDeprecatedMsg
271-
}
272268

273269
allowPrivateIPs := !constants.ProductionNetworkIDs.Contains(networkID)
274270
if v.IsSet(NetworkAllowPrivateIPsKey) {

message/messages.go

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,6 @@ func (m *outboundMessage) BytesSavedCompression() int {
131131
type msgBuilder struct {
132132
log logging.Logger
133133

134-
// TODO: Remove gzip once v1.11.x is out.
135-
gzipCompressor compression.Compressor
136-
gzipDecompressTimeMetrics map[Op]metric.Averager
137-
138134
zstdCompressor compression.Compressor
139135
zstdCompressTimeMetrics map[Op]metric.Averager
140136
zstdDecompressTimeMetrics map[Op]metric.Averager
@@ -148,10 +144,6 @@ func newMsgBuilder(
148144
metrics prometheus.Registerer,
149145
maxMessageTimeout time.Duration,
150146
) (*msgBuilder, error) {
151-
gzipCompressor, err := compression.NewGzipCompressor(constants.DefaultMaxMessageSize)
152-
if err != nil {
153-
return nil, err
154-
}
155147
zstdCompressor, err := compression.NewZstdCompressor(constants.DefaultMaxMessageSize)
156148
if err != nil {
157149
return nil, err
@@ -160,9 +152,6 @@ func newMsgBuilder(
160152
mb := &msgBuilder{
161153
log: log,
162154

163-
gzipCompressor: gzipCompressor,
164-
gzipDecompressTimeMetrics: make(map[Op]metric.Averager, len(ExternalOps)),
165-
166155
zstdCompressor: zstdCompressor,
167156
zstdCompressTimeMetrics: make(map[Op]metric.Averager, len(ExternalOps)),
168157
zstdDecompressTimeMetrics: make(map[Op]metric.Averager, len(ExternalOps)),
@@ -172,13 +161,6 @@ func newMsgBuilder(
172161

173162
errs := wrappers.Errs{}
174163
for _, op := range ExternalOps {
175-
mb.gzipDecompressTimeMetrics[op] = metric.NewAveragerWithErrs(
176-
namespace,
177-
fmt.Sprintf("gzip_%s_decompress_time", op),
178-
fmt.Sprintf("time (in ns) to decompress %s messages with gzip", op),
179-
metrics,
180-
&errs,
181-
)
182164
mb.zstdCompressTimeMetrics[op] = metric.NewAveragerWithErrs(
183165
namespace,
184166
fmt.Sprintf("zstd_%s_compress_time", op),
@@ -271,14 +253,9 @@ func (mb *msgBuilder) unmarshal(b []byte) (*p2p.Message, int, Op, error) {
271253
opToDecompressTimeMetrics map[Op]metric.Averager
272254
compressor compression.Compressor
273255
compressedBytes []byte
274-
gzipCompressed = m.GetCompressedGzip()
275256
zstdCompressed = m.GetCompressedZstd()
276257
)
277258
switch {
278-
case len(gzipCompressed) > 0:
279-
opToDecompressTimeMetrics = mb.gzipDecompressTimeMetrics
280-
compressor = mb.gzipCompressor
281-
compressedBytes = gzipCompressed
282259
case len(zstdCompressed) > 0:
283260
opToDecompressTimeMetrics = mb.zstdDecompressTimeMetrics
284261
compressor = mb.zstdCompressor

proto/p2p/p2p.proto

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,12 @@ option go_package = "github.com/ava-labs/avalanchego/proto/pb/p2p";
88
// Represents peer-to-peer messages.
99
// Only one type can be non-null.
1010
message Message {
11+
reserved 1; // Until E upgrade is activated.
1112
reserved 36; // Next unused field number.
1213
// NOTES
1314
// Use "oneof" for each message type and set rest to null if not used.
1415
// That is because when the compression is enabled, we don't want to include uncompressed fields.
1516
oneof message {
16-
// Gzip-compressed bytes of a "p2p.Message" whose "oneof" "message" field is
17-
// NOT compressed_* BUT one of the message types (e.g. ping, pong, etc.).
18-
// This field is only set if the message type supports compression.
19-
bytes compressed_gzip = 1;
20-
2117
// zstd-compressed bytes of a "p2p.Message" whose "oneof" "message" field is
2218
// NOT compressed_* BUT one of the message types (e.g. ping, pong, etc.).
2319
// This field is only set if the message type supports compression.

proto/pb/p2p/p2p.pb.go

Lines changed: 323 additions & 343 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

utils/compression/compressor_test.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,13 @@ var (
2424
TypeNone: func(int64) (Compressor, error) { //nolint:unparam // an error is needed to be returned to compile
2525
return NewNoCompressor(), nil
2626
},
27-
TypeGzip: NewGzipCompressor,
2827
TypeZstd: NewZstdCompressor,
2928
}
3029

31-
//go:embed gzip_zip_bomb.bin
32-
gzipZipBomb []byte
33-
3430
//go:embed zstd_zip_bomb.bin
3531
zstdZipBomb []byte
3632

3733
zipBombs = map[Type][]byte{
38-
TypeGzip: gzipZipBomb,
3934
TypeZstd: zstdZipBomb,
4035
}
4136
)
@@ -154,10 +149,6 @@ func TestNewCompressorWithInvalidLimit(t *testing.T) {
154149
}
155150
}
156151

157-
func FuzzGzipCompressor(f *testing.F) {
158-
fuzzHelper(f, TypeGzip)
159-
}
160-
161152
func FuzzZstdCompressor(f *testing.F) {
162153
fuzzHelper(f, TypeZstd)
163154
}
@@ -168,9 +159,6 @@ func fuzzHelper(f *testing.F, compressionType Type) {
168159
err error
169160
)
170161
switch compressionType {
171-
case TypeGzip:
172-
compressor, err = NewGzipCompressor(maxMessageSize)
173-
require.NoError(f, err)
174162
case TypeZstd:
175163
compressor, err = NewZstdCompressor(maxMessageSize)
176164
require.NoError(f, err)

utils/compression/gzip_compressor.go

Lines changed: 0 additions & 91 deletions
This file was deleted.
-2 MB
Binary file not shown.

utils/compression/no_compressor.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,14 @@ var _ Compressor = (*noCompressor)(nil)
77

88
type noCompressor struct{}
99

10-
// Compress returns [msg]
1110
func (*noCompressor) Compress(msg []byte) ([]byte, error) {
1211
return msg, nil
1312
}
1413

15-
// Decompress returns [msg].
1614
func (*noCompressor) Decompress(msg []byte) ([]byte, error) {
1715
return msg, nil
1816
}
1917

20-
// NewNoCompressor returns a Compressor that does nothing
2118
func NewNoCompressor() Compressor {
2219
return &noCompressor{}
2320
}

utils/compression/type.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,13 @@ type Type byte
1414

1515
const (
1616
TypeNone Type = iota + 1
17-
TypeGzip // Remove once v1.11.x is out.
1817
TypeZstd
1918
)
2019

2120
func (t Type) String() string {
2221
switch t {
2322
case TypeNone:
2423
return "none"
25-
case TypeGzip:
26-
return "gzip"
2724
case TypeZstd:
2825
return "zstd"
2926
default:
@@ -35,8 +32,6 @@ func TypeFromString(s string) (Type, error) {
3532
switch s {
3633
case TypeNone.String():
3734
return TypeNone, nil
38-
case TypeGzip.String():
39-
return TypeGzip, nil
4035
case TypeZstd.String():
4136
return TypeZstd, nil
4237
default:

utils/compression/type_test.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func TestTypeString(t *testing.T) {
1313
require := require.New(t)
1414

15-
for _, compressionType := range []Type{TypeNone, TypeGzip, TypeZstd} {
15+
for _, compressionType := range []Type{TypeNone, TypeZstd} {
1616
s := compressionType.String()
1717
parsedType, err := TypeFromString(s)
1818
require.NoError(err)
@@ -34,10 +34,6 @@ func TestTypeMarshalJSON(t *testing.T) {
3434
Type: TypeNone,
3535
expected: `"none"`,
3636
},
37-
{
38-
Type: TypeGzip,
39-
expected: `"gzip"`,
40-
},
4137
{
4238
Type: TypeZstd,
4339
expected: `"zstd"`,

0 commit comments

Comments
 (0)