23 Commits

Author SHA1 Message Date
Doug Fawley
778860e606 testing: update Go to 1.19 (#5717) 2022-10-17 15:04:34 -07:00
Ronak Jain
7b817b4d18 client: set grpc-accept-encoding to full list of registered compressors (#5541) 2022-10-11 16:37:02 -07:00
Robin Liu
7567a5d965 documentation: fix typo in RegisterCodec godoc (#5306) 2022-04-13 10:15:49 -07:00
Menghan Li
dabedfb38b encoding/proto: do not panic when types do not match (#4218) 2021-02-23 09:47:33 -08:00
Doug Fawley
4e8458e5c6 protobuf: update all generated code to google.golang.org/protobuf (#3932) 2020-10-21 16:05:44 -07:00
Doug Fawley
7b167fd6ec encoding/proto: simplify & optimize proto codec (#3958) 2020-10-14 14:51:13 -07:00
Gaurav Gahlot
d9063e7af3 standardized experimental warnings (#3917) 2020-10-02 09:11:08 -07:00
Garrett Gutierrez
132187f04c Modified tests to use tlogger. (#3343)
* Modified tests to use tlogger.

* Fail on errors, with error expectations.

* Added expects and MixedCapsed grpclb_config tests

* Moved tlogger to grpctest, moved leakcheck tester to grpctest.go

* Added ExpectErrorN()

* Removed redundant leak checks

* Fixed new test

* Made tlogger globals into tlogger methods

* ErrorsLeft -> EndTest

* Removed some redundant lines

* Fixed error in test and empty map in EndTest
2020-02-06 13:03:20 -08:00
Menghan Li
8c50fc2565 revert buffer reuse (#3338)
* Revert "stream: fix returnBuffers race during retry (#3293)"

This reverts commit ede71d589c.

* Revert "codec/proto: reuse of marshal byte buffers (#3167)"

This reverts commit 642675125e.
2020-01-27 13:30:41 -08:00
Adhityaa Chandrasekar
642675125e codec/proto: reuse of marshal byte buffers (#3167)
Performance benchmarks can be found below. Obviously, a 8 KiB
request/response is tailored to showcase this improvement as this is
where codec buffer reuse shines, but I've run other benchmarks too (like
1-byte requests and responses) and there's no discernable impact on
performance.

We do not allow reuse of buffers when stat handlers or binlogs are
turned on. This is because those two may need access to the data and
payload even after the data has been written to the wire. In such cases,
we never return the data back to the pool.

A buffer reuse threshold of 1 KiB was determined after several
experiments. There's diminished returns when buffer reuse is enabled for
smaller messages (actually, a negative impact).

unary-networkMode_none-bufConn_false-keepalive_false-benchTime_40s-trace_false-latency_0s-kbps_0-MTU_0-maxConcurrentCalls_6-reqSize_8192B-respSize_8192B-compressor_off-channelz_false-preloader_false
               Title       Before        After Percentage
            TotalOps       839638       906223     7.93%
             SendOps            0            0      NaN%
             RecvOps            0            0      NaN%
            Bytes/op    103788.29     80592.47   -22.35%
           Allocs/op       183.33       189.30     3.27%
             ReqT/op 1375662899.20 1484755763.20     7.93%
            RespT/op 1375662899.20 1484755763.20     7.93%
            50th-Lat    238.746µs    225.019µs    -5.75%
            90th-Lat    514.253µs    456.439µs   -11.24%
            99th-Lat    711.083µs    702.466µs    -1.21%
             Avg-Lat     285.45µs    264.456µs    -7.35%
2019-12-20 09:41:23 -08:00
Bryan Boreham
dcd1c9748d Use exact size, if known, to allocate decompression buffer (#3048)
For large messages this generates far less garbage than ioutil.ReadAll().

Implement for gzip - RFC1952 requires it, and the Go implementation
checks it already (modulo 2^32).
2019-10-04 10:05:56 -07:00
ktr
0e83fbebe8 encoding: check whether encoding.Name() is empty before calling strings.ToLower (#2707) 2019-03-22 13:34:43 -07:00
Doug Fawley
59a2cfbdf9 Remove support for Go1.6-1.8 (#2428) 2018-11-01 15:43:42 -07:00
mmukhi
0bc7c3280e Revert "Less mem (#1987)" (#2049)
This reverts commit 7a8c989507.
2018-05-03 11:37:59 -07:00
mmukhi
3592bccfd9 interop: Fix unimplemented method test (#2040)
* Don't send nil requests.

* Fix import name and get rid of condition.

* Let registered encoder deal with nil requests.

* Break encode into encode and compress.
2018-05-02 16:08:12 -07:00
Karsten Weiss
35a2846daa Various simplifications (gosimple)
This fixes:
clientconn.go:948:3: should write m = cc.sc.Methods[method[:i+1]] instead of m, _ = cc.sc.Methods[method[:i+1]] (S1005)
encoding/proto/proto_test.go:43:5: should use !bytes.Equal(p.GetBody(), expectedBody) instead (S1004)
resolver/dns/dns_resolver.go:260:2: should merge variable declaration with assignment on next line (S1021)
resolver/dns/dns_resolver.go:344:2: should use 'return <expr>' instead of 'if <expr> { return <bool> }; return <bool>' (S1008)
2018-04-15 15:32:33 +02:00
Karsten Weiss
4d9544a0fd Simplify make() (gosimple)
This fixes:
benchmark/worker/benchmark_client.go:151:36: should use make([]*grpc.ClientConn, connCount) instead (S1019)
benchmark/worker/benchmark_client.go:231:47: should use make([]lockingHistogram, rpcCountPerConn * len(conns)) instead (S1019)
benchmark/worker/benchmark_client.go:343:39: should use make([]*stats.Histogram, len(bc.lockingHistograms)) instead (S1019)
benchmark/worker/benchmark_client.go:369:22: should use make([]uint32, len(mergedHistogram.Buckets)) instead (S1019)
encoding/encoding.go:85:47: should use make(map[string]Codec) instead (S1019)
proxy_test.go:116:26: should use make([]byte, len(msg)) instead (S1019)
2018-04-15 15:32:33 +02:00
yogeshpandey
2249df6df9 gzip: Add ability to set compression level (#1891) 2018-03-20 11:57:00 -07:00
Menghan Li
f9628db66d Fix lint error and typo (#1843) 2018-02-01 11:38:14 -08:00
dfawley
5ba054bf37 encoding: Introduce new method for registering and choosing codecs (#1813) 2018-01-23 11:39:40 -08:00
dfawley
08b7bd3beb gzip: add Name const to avoid typos in usage (#1804) 2018-01-17 13:28:07 -08:00
dfawley
816fa5b06f Add proper support for 'identity' encoding type (#1664) 2017-11-17 09:24:54 -08:00
Zhouyihai Ding
5db344a40a Introduce new Compressor/Decompressor API (#1428) 2017-10-31 10:21:13 -07:00