Jean de Klerk
61c3ec866d
docs: clarify SendMsg/CloseSend usage ( #2418 )
2018-11-01 12:29:53 -06:00
lyuxuan
105f61423e
health: Client LB channel health checking ( #2387 )
2018-11-01 10:49:35 -07:00
Menghan Li
24638f5984
binarylog: call binary log in Client and Server ( #2388 )
...
Also includes:
- Export `NewLoggerFromConfigString` so it can be also used when config string is specified in another way (e.g. command line flag)
- Export `Logger` so user can install custom sink
- Add temp file sink implementation
2018-10-31 10:21:20 -07:00
Doug Fawley
c195587d96
balancer: add trailer metadata to DoneInfo ( #2359 )
2018-10-10 13:21:08 -07:00
dfawley
8ce7e6babb
stream: never return errors from CloseSend ( #2312 )
2018-09-19 08:44:26 -07:00
dfawley
e193757038
internal/transport: remove some unused fields from structs ( #2213 )
...
- Flush and Authority are never read by the transport.
- Authority is used indirectly; move it to dialOptions.
- Delay is only set to false.
2018-07-13 09:56:47 -07:00
dfawley
11b582728a
transport: move to internal to make room for new, public transport API ( #2212 )
...
This is a breaking change, but the transport package was never intended for use outside of grpc. Any current users that we are aware of are incorrect or have a preferred alternative.
2018-07-11 11:22:45 -07:00
Mike Cheng
f57a529f33
balancer: add rpc method to PickOptions ( #2204 )
...
Provide additional context to Pickers that wish to make decisions based on the RPC method.
Relevant issue: https://github.com/grpc/grpc-go/issues/2103
2018-07-11 10:18:09 -07:00
Jean de Klerk
50de898e66
deprecate stream, move documentation to client|server stream ( #2198 )
...
docs: deprecate stream, move documentation to client|server stream
Deprecate Stream, and move the methods and documention to ServerStream
and ClientStream. This is due to the fact that there are different
semantics for SendMsg, and it's quite confusing to document one method
for two things. Furthermore, Stream is not actually used in any way
other than to be inherited by ClientStream and ServerStream.
Relevant issue: #2159
2018-07-09 16:46:25 -07:00
dfawley
40cd6b15e2
stream: in withRetry, block until Status is valid and check on io.EOF ( #2199 )
...
Also, return an error if SendMsg is called after CloseSend.
2018-07-03 14:07:07 -07:00
dfawley
d35d006431
Fix flaky test: TestClientStreamingError ( #2192 )
2018-07-02 10:08:26 -07:00
dfawley
40a879c23a
client: Implement gRFC A6: configurable client-side retry support ( #2111 )
2018-06-27 16:18:41 -07:00
Jean de Klerk
f9bde863c2
documentation: clarify SendMsg documentation ( #2171 )
...
documentation: clarify SendMsg documentation
Relevant issue: #2159
2018-06-27 16:16:07 -07:00
lyuxuan
b28608a9db
channelz: move APIs to internal except channelz service ( #2157 )
2018-06-18 17:59:08 -07:00
Jean de Klerk
bfe419798a
clarify CloseSend vs CloseAndRecv; better formatting ( #2071 )
...
clarify CloseSend vs CloseAndRecv; better formatting
2018-05-29 11:35:11 -07:00
dfawley
091a800143
split encode into three functions ( #2058 )
2018-05-11 13:47:10 -07:00
Jean de Klerk
b75baa103c
small documentation addition to NewStream ( #2060 )
2018-05-11 08:43:47 -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
mmukhi
7a8c989507
Less mem ( #1987 )
...
* Export changes to OSS.
* First commit.
* Cherry-pick.
* Documentation.
* Post review updates.
2018-04-30 09:54:33 -07:00
lyuxuan
4166ea7dad
Stage 2: Channelz metric collection ( #1909 )
2018-04-23 11:22:25 -07:00
Karsten Weiss
95bbf69653
Remove redundant return statements (gosimple)
...
This fixes:
balancer/base/balancer.go:149:2: redundant return statement (S1023)
balancer_v1_wrapper.go:260:2: redundant return statement (S1023)
balancer_v1_wrapper.go:273:2: redundant return statement (S1023)
balancer_v1_wrapper.go:285:2: redundant return statement (S1023)
benchmark/benchmark.go:68:2: redundant return statement (S1023)
clientconn.go:1461:2: redundant return statement (S1023)
grpclb.go:223:2: redundant return statement (S1023)
grpclb.go:260:2: redundant return statement (S1023)
grpclb_util.go:201:2: redundant return statement (S1023)
rpc_util.go:278:50: redundant return statement (S1023)
rpc_util.go:296:56: redundant return statement (S1023)
rpc_util.go:314:56: redundant return statement (S1023)
rpc_util.go:333:53: redundant return statement (S1023)
rpc_util.go:354:52: redundant return statement (S1023)
rpc_util.go:387:56: redundant return statement (S1023)
rpc_util.go:416:53: redundant return statement (S1023)
stream.go:651:2: redundant return statement (S1023)
2018-04-15 12:43:34 +02:00
dfawley
2eae9d0c74
server: add grpc.Method function for extracting method from context ( #1961 )
2018-04-02 13:08:04 -07:00
Joshua Humphries
1a70180f35
client: Fix race when using both client-side default CallOptions and per-call CallOptions ( #1948 )
2018-03-29 10:34:29 -07:00
Joshua Humphries
57640c0e6f
Allow storing alternate transport.ServerStream implementations in context ( #1904 )
2018-03-20 17:02:32 -07:00
Joshua Humphries
fa28bef939
client: export types implementing CallOptions for access by interceptors ( #1902 )
2018-03-16 15:57:34 -07:00
dfawley
13975c0702
stream: split per-attempt data from clientStream ( #1900 )
...
This is pre-work to implementing retry support. Each retry attempt will have its own csAttempt. The fields left in clientStream are the same across all attempts.
2018-03-12 13:27:54 -07:00
Brian Tiger Chow
2c2d834e8e
stats: add BeginTime to stats.End ( #1907 )
2018-03-12 09:16:36 -07:00
Jean de Klerk
9aba04495f
server: Convert all non-status errors to codes.Unknown ( #1881 )
...
- convertCode utilized errors that were not allowed by the library per 9d0bc30edb/doc/statuscodes.md
- Relevant issue: #1672
2018-03-08 13:46:26 -08:00
dfawley
365770fcbd
streams: Stop cleaning up after orphaned streams ( #1854 )
...
This change introduces some behavior changes that should not impact users that
are following the proper stream protocol. Specifically, one of the following
conditions must be satisfied:
1. The user calls Close on the ClientConn.
2. The user cancels the context provided to NewClientStream, or its deadline
expires. (Note that it if the context is no longer needed before the deadline
expires, it is still recommended to call cancel to prevent bloat.) It is always
recommended to cancel contexts when they are no longer needed, and to
never use the background context directly, so all users should always be
doing this.
3. The user calls RecvMsg (or Recv in generated code) until a non-nil error is
returned.
4. The user receives any error from Header or SendMsg (or Send in generated
code) besides io.EOF. If none of the above happen, this will leak a goroutine
and a context, and grpc will not call the optionally-configured stats handler
with a stats.End message.
Before this change, if a user created a stream and the server ended the stream,
the stats handler would be invoked with a stats.End containing the final status
of the stream. Subsequent calls to RecvMsg would then trigger the stats handler
with InPayloads, which may be unexpected by stats handlers.
2018-02-08 10:51:16 -08:00
dfawley
d09ec43545
Implement unary functionality using streams ( #1835 )
2018-02-05 12:54:13 -08:00
Menghan Li
424e3e9894
Stream: do not cancel ctx created with service config timeout ( #1838 )
2018-02-02 10:35:15 -08:00
dfawley
5ba054bf37
encoding: Introduce new method for registering and choosing codecs ( #1813 )
2018-01-23 11:39:40 -08:00
Menghan Li
6913ad5cae
Document that all errors from RPCs are status errors ( #1782 )
2018-01-05 15:37:05 -08:00
Ewan Chou
c998149a22
Avoid copying headers/trailers in unary RPCs unless requested by CallOptions ( #1775 )
...
CPU profile shows that header copy takes a large proportion of CPU usage in a gRPC Call.
If the header is not needed, we don't need to pay the cost.
2018-01-03 09:13:06 -08:00
Daniel Nephin
4e393e0b21
grpc: fix deprecation comments to conform to standard ( #1691 )
2017-12-18 09:23:42 -08:00
Menghan Li
2ef021f78d
New grpclb implementation ( #1558 )
...
The new grpclb supports fallback to backends if remote balancer is unavailable
2017-11-27 11:16:26 -08:00
Gyu-Ho Lee
6253aa9397
set context timeout when Timeout value >= 0 ( #1678 )
...
To be consistent with call.go/invoke
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-20 13:49:49 -08:00
dfawley
816fa5b06f
Add proper support for 'identity' encoding type ( #1664 )
2017-11-17 09:24:54 -08:00
dfawley
8ff8683602
Implement transparent retries for gRFC A6 ( #1597 )
2017-11-06 13:45:11 -08:00
Zhouyihai Ding
5db344a40a
Introduce new Compressor/Decompressor API ( #1428 )
2017-10-31 10:21:13 -07:00
lyuxuan
a4ff4e29c4
Get method string from stream ( #1588 )
2017-10-26 16:03:44 -07:00
dfawley
a5986a5c88
Add functions to ClientConn so it satisfies an interface for generated code ( #1599 )
2017-10-20 14:21:31 -07:00
Menghan Li
4bbdf230d7
New implementation of roundrobin and pickfirst ( #1506 )
2017-10-02 09:22:57 -07:00
mmukhi
894322f00c
Dedicated goroutine for writing. ( #1498 )
2017-09-14 13:44:14 -07:00
Menghan Li
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
dfawley
e60698345e
Fix context warnings from govet. ( #1486 )
...
Pre-req work for #1484
2017-08-29 11:04:15 -07:00
ZhouyihaiDing
01089b2972
Remove buf copy when the compressor exist ( #1427 )
2017-08-25 12:26:38 -07:00
lyuxuan
9d99afc2fd
Automatic WriteStatus for RecvMsg/SendMsg error on server side ( #1409 )
...
automatically WriteStatus if there's any error when RecvMsg/SendMsg on server side.
2017-08-14 12:24:23 -07:00
Cesar Ghali
86ec6baad9
Populate callInfo.peer object for streaming RPCs ( #1356 )
2017-07-11 13:56:13 -07:00