125 Commits

Author SHA1 Message Date
fe0602d9d8 fix max msg size type issues on different arch (#1623) 2017-10-26 13:30:15 -07:00
c5f391bd6c Revert "cap max msg size to min(max_int, max_uint32) (#1598)" (#1619)
This reverts commit 5856538706dc3abc44dd5ba1a8bb19a0dfb1ab25.
2017-10-25 10:31:00 -07:00
5856538706 cap max msg size to min(max_int, max_uint32) (#1598) 2017-10-24 10:20:54 -07:00
a5986a5c88 Add functions to ClientConn so it satisfies an interface for generated code (#1599) 2017-10-20 14:21:31 -07:00
5c3d956e18 Re-add support for Go1.6 (#1603) 2017-10-20 12:05:20 -07:00
6f3b6ff46b Parse ServiceConfig JSON string (#1515) 2017-10-19 12:09:19 -07:00
16c41925b8 update fail fast documentation to remove retry language (#1586) 2017-10-17 14:35:11 -07:00
90947a8e84 Change version to 1.8.0-dev (#1573) 2017-10-11 11:03:49 -07:00
c8405557a4 Remove Go1.6 support (#1492) 2017-10-04 13:57:10 -07:00
59cb69e66d Fix misspells (#1531) 2017-09-20 14:55:57 -07:00
8233e124e4 Add new Resolver and Balancer APIs (gRFC L9) (#1408)
- Add package balancer and resolver.
 - Change ClientConn internals to new APIs and adds a wrapper for v1 balancer.
2017-08-31 10:59:09 -07:00
3a378f9deb Change version to 1.7.0-dev (#1496) 2017-08-30 13:32:29 -07:00
2b9fb51017 Fix for 32-bit architectures (#1471) 2017-08-25 15:09:36 -07:00
01089b2972 Remove buf copy when the compressor exist (#1427) 2017-08-25 12:26:38 -07:00
1308414496 put *gzip.Writer back to pool (#1441) 2017-08-14 15:23:10 -07:00
2b21bfb96b Change version to 1.6.x (#1382) 2017-07-20 13:19:54 -07:00
93166a0b0b Canonicalize https://grpc.io as the preferred URL prefix 2017-07-10 16:28:39 -07:00
1d797552ae Add support for grpc.SupportPackageIsVersion3 back (#1331)
* Support byte slice file descriptor as metadata and add SupportPackageIsVersion3 back

* add v3 test, generate testv3.pb.go with old codegen
2017-06-22 13:56:59 -07:00
ddbf6c46a6 autofix license notice 2017-06-08 14:42:19 +02:00
06c984861f Change version to 1.5.0-dev (#1288) 2017-06-07 15:15:26 -07:00
6fecf2831a Reopening: Server shouldn't Fatalf in case it fails to encode. (#1276)
* Server shouldn't Fatalf in case it fails to encode.
2017-06-02 12:32:37 -07:00
843116533a Revert "Server shouldn't Fatalf in case it fails to encode. (#1251)" (#1274)
This reverts commit d5bc85c1e9a36225ecc02757efcc874e13962973.
2017-06-01 12:34:28 -07:00
d5bc85c1e9 Server shouldn't Fatalf in case it fails to encode. (#1251)
* Server shouldn't Fatalf in case it fails to encode.

* golint

* post-review update
2017-06-01 11:57:45 -07:00
3a46d9d519 Avoid panic caused by stdlib context package errors (#1258) 2017-05-24 16:01:38 -07:00
6dff7c5f33 Expand stream's flow control in case of an active read. (#1248)
* First commit

* Imported tests from the original PR by @apolcyn.

* Formatting fixes.

* More formating fixes

* more golint

* Make logs more informative.

* post-review update

* Added test to check flow control accounts after sending large messages.

* post-review update

* Empty commit to kickstart travis.

* Post-review update.
2017-05-23 11:39:15 -07:00
cb64938381 fix minor issues 2017-05-19 16:02:02 -07:00
d19bbe846e change max message size functions name 2017-05-19 11:08:40 -07:00
504db8e582 merge master 2017-05-18 14:52:35 -07:00
ce595b8452 Implement EmptyCallOption 2017-05-17 14:47:38 -07:00
35d77ea991 merge master, resolve conflicts 2017-05-15 13:54:22 -07:00
bdf9a640e4 add timeout test, add check or pointer filed in callOption, fix minor issues 2017-05-15 13:51:11 -07:00
88a73d35c9 Adding dial options for PerRPCCredentials (#1225)
* Adding dial options for PerRPCCredentials

* Added tests for PerRPCCredentials

* Post-review updates

* post-review updates
2017-05-11 11:07:38 -07:00
600406e696 Use pooled gzip.{Writer,Reader} in gzip{Compressor,Decompressor} (#1217)
This change saves a lot of memory by reusing the underlying
gzip.{Writer,Reader}, which allocates up to 1.4mb at every instanciation
according to [1]. This was fixed by adding a Reset method by to the
object at [2].

The amount of memory (and GC time) saved is pretty high, as reported by
pprof:

      flat  flat%   sum%        cum   cum%
   28.33GB 85.70% 85.70%    32.74GB 99.05%  compress/flate.NewWriter

      flat  flat%   sum%        cum   cum%
   19.39MB 16.74% 16.74%    22.07MB 19.05%  compress/flate.NewWriter

And the benchmarks:

benchmark                           old ns/op     new ns/op     delta
BenchmarkGZIPCompressor1B-4         215170        22291         -89.64%
BenchmarkGZIPCompressor1KiB-4       225971        27213         -87.96%
BenchmarkGZIPCompressor8KiB-4       246696        54785         -77.79%
BenchmarkGZIPCompressor64KiB-4      444851        286924        -35.50%
BenchmarkGZIPCompressor512KiB-4     2279043       2115863       -7.16%
BenchmarkGZIPCompressor1MiB-4       4412989       4258635       -3.50%

benchmark                           old allocs     new allocs     delta
BenchmarkGZIPCompressor1B-4         17             0              -100.00%
BenchmarkGZIPCompressor1KiB-4       17             0              -100.00%
BenchmarkGZIPCompressor8KiB-4       17             0              -100.00%
BenchmarkGZIPCompressor64KiB-4      17             0              -100.00%
BenchmarkGZIPCompressor512KiB-4     17             0              -100.00%
BenchmarkGZIPCompressor1MiB-4       17             0              -100.00%

benchmark                           old bytes     new bytes     delta
BenchmarkGZIPCompressor1B-4         813872        8             -100.00%
BenchmarkGZIPCompressor1KiB-4       813872        16            -100.00%
BenchmarkGZIPCompressor8KiB-4       813875        27            -100.00%
BenchmarkGZIPCompressor64KiB-4      813918        190           -99.98%
BenchmarkGZIPCompressor512KiB-4     814928        1871          -99.77%
BenchmarkGZIPCompressor1MiB-4       820889        9735          -98.81%

[1] https://github.com/golang/go/issues/6138
[2] db12f9d4e4

Signed-off-by: Steeve Morin <steeve.morin@gmail.com>
2017-05-10 16:40:25 -07:00
3ea287058c Merge branch 'master' into service_config_pr 2017-05-07 16:49:32 -07:00
a40b8d44e0 Address the comments 2017-05-04 16:29:17 -07:00
0eb507a2ca Change version to 1.4.0-dev (#1212) 2017-04-28 15:32:14 -07:00
277e90a432 Client load report for grpclb. (#1200) 2017-04-27 10:43:38 -07:00
ecbc34aaca move server defaults, delete defer cancel() in stream.go 2017-04-26 17:39:57 -07:00
eaa9ccb053 minor comment change 2017-04-26 16:23:24 -07:00
9c5f260e67 make max size a pointer type and initialize function a CallOption 2017-04-26 15:50:58 -07:00
983d8372ea update the merge of client api and sc 2017-04-21 16:18:59 -07:00
bab6b617b7 merge master 2017-04-21 16:07:34 -07:00
955c867061 Support proxy with dialer (#1098)
With this change, the default dialer checks environment variables to see if proxy is needed. If so, it dials to the proxy and does an HTTP CONNECT handshake.
2017-04-17 16:08:50 -07:00
cb02ab4d25 change error message from InvalidArgument to ResourceExhausted 2017-04-13 16:51:56 -07:00
8788b75675 merge master resolve conflicts 2017-04-13 16:28:15 -07:00
0e8b58d22f use proto.Buffer API for protobuf codec and cache proto.Buffer structs (#1010)
* use a global sharded pool of proto.Buffer caches in protoCodec

* fix goimports

* make global buffer pool index counter atomic

* hack to remove alloc in encode_len_struct

* remove extra slice alloc in proto codec marshal

* replce magic number for proto size field length with constant

* replace custom cache with sync.Pool

* remove 1 line functions in codec.go and add protoCodec microbenchmarks

* add concurrent usage test for protoCodec

* fix golint.gofmt,goimport checks

* fix issues in codec.go and codec_test.go

* use go parallel benchmark helpers

* replace proto.Codec with a guess of size needed

* update Fatalf -> Errorf in tests

* wrap proto.Buffer along with cached last size into larger struct for pool use

* make wrapped proto buffer only a literal

* fix style and imports

* move b.Run into inner function

* reverse micro benchmark op order to unmarshal-marshal and fix benchmark setup-in-test bug

* add test for large message

* remove use of defer in codec.marshal

* revert recent changes to codec bencmarks

* move sub-benchmarks into >= go-1.7 only file

* add commentfor marshaler and tweak benchmark subtests for easier usage

* move build tag for go1.7 on benchmarks to inside file

* move build tag to top of file

* comment Codec, embed proto.Buffer into cached struct and add an int32 cap
2017-04-12 20:35:59 -07:00
fa2968617c Merge branch 'master' into service_config_pr 2017-04-06 14:12:34 -07:00
6f8b55318a fix the testMaxMsgSizeServerAPI failure 2017-04-06 14:08:04 -07:00
1d27587e10 Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
f02290b023 Merge branch 'master' into service_config_pr 2017-04-05 11:15:55 -07:00