1
0
Fork 0

Switch to "BestSpeed" for all internode traffic

master
Philip O'Toole 9 months ago
parent af7fc1e883
commit b62e7960c9

@ -24,14 +24,18 @@ type Compressor struct {
// NewCompressor returns an instantiated Compressor that reads from r and
// compresses the data using gzip.
func NewCompressor(r io.Reader, bufSz int) *Compressor {
func NewCompressor(r io.Reader, bufSz int) (*Compressor, error) {
buf := new(bytes.Buffer)
gzw, err := gzip.NewWriterLevel(buf, gzip.BestSpeed)
if err != nil {
return nil, err
}
return &Compressor{
r: r,
bufSz: bufSz,
buf: buf,
gzw: gzip.NewWriter(buf),
}
gzw: gzw,
}, nil
}
// Read reads compressed data.

@ -11,7 +11,10 @@ import (
func Test_Compressor_SingleRead(t *testing.T) {
originalData := []byte("This is a test string, xxxxx -- xxxxxx -- test should compress")
reader := bytes.NewReader(originalData)
compressor := NewCompressor(reader, DefaultBufferSize)
compressor, err := NewCompressor(reader, DefaultBufferSize)
if err != nil {
t.Fatalf("Failed to create compressor: %v", err)
}
// Create a buffer to hold compressed data
compressedBuffer := make([]byte, DefaultBufferSize)
@ -41,7 +44,10 @@ func Test_Compressor_SingleRead(t *testing.T) {
func Test_Compressor_MultipleRead(t *testing.T) {
originalData := []byte("This is a test string, xxxxx -- xxxxxx -- test should compress")
reader := bytes.NewReader(originalData)
compressor := NewCompressor(reader, DefaultBufferSize)
compressor, err := NewCompressor(reader, DefaultBufferSize)
if err != nil {
t.Fatalf("Failed to create compressor: %v", err)
}
// Create a buffer to hold compressed data
compressedBuffer := new(bytes.Buffer)
@ -76,7 +82,10 @@ func Test_Compressor_MultipleRead(t *testing.T) {
func Test_Compressor_MultipleReadSmallBuffer(t *testing.T) {
originalData := []byte("This is a test string, xxxxx -- xxxxxx -- test should compress")
reader := bytes.NewReader(originalData)
compressor := NewCompressor(reader, 8)
compressor, err := NewCompressor(reader, 8)
if err != nil {
t.Fatalf("Failed to create compressor: %v", err)
}
// Create a buffer to hold compressed data
compressedBuffer := new(bytes.Buffer)
@ -121,7 +130,10 @@ func Test_Compressor_CompressFile(t *testing.T) {
}
// Compress it.
compressor := NewCompressor(srcFD, DefaultBufferSize)
compressor, err := NewCompressor(srcFD, DefaultBufferSize)
if err != nil {
t.Fatalf("Failed to create compressor: %v", err)
}
dstFD := mustOpenTempFile(t)
defer dstFD.Close()
_, err = io.Copy(dstFD, compressor)

@ -58,9 +58,12 @@ func Test_Decompressor_EndToEnd(t *testing.T) {
}
t.Errorf("failed to accept connection: %v", err)
}
compressor := NewCompressor(srcBuf, DefaultBufferSize)
compressor, err := NewCompressor(srcBuf, DefaultBufferSize)
if err != nil {
t.Fatalf("failed to create compressor: %v", err)
}
if _, err := io.Copy(conn, compressor); err != nil {
t.Errorf("failed to copy data: %v", err)
t.Fatalf("failed to copy data: %v", err)
}
conn.Close()
}

@ -1231,7 +1231,11 @@ func (s *Store) Backup(br *proto.BackupRequest, dst io.Writer) (retErr error) {
}
if br.Compress {
dstGz := gzip.NewWriter(dst)
var dstGz *gzip.Writer
dstGz, err = gzip.NewWriterLevel(dst, gzip.BestSpeed)
if err != nil {
return err
}
defer dstGz.Close()
_, err = io.Copy(dstGz, srcFD)
} else {

@ -82,7 +82,10 @@ func (n *NodeTransport) Close() error {
// the ReadCloser and streamed to the client.
func (n *NodeTransport) InstallSnapshot(id raft.ServerID, target raft.ServerAddress, args *raft.InstallSnapshotRequest,
resp *raft.InstallSnapshotResponse, data io.Reader) error {
gzipData := gzip.NewCompressor(data, gzip.DefaultBufferSize)
gzipData, err := gzip.NewCompressor(data, gzip.DefaultBufferSize)
if err != nil {
return err
}
defer gzipData.Close()
return n.NetworkTransport.InstallSnapshot(id, target, args, resp, gzipData)
}

Loading…
Cancel
Save