thrift/lib/go/thrift
Yuxuan 'fishy' Wang 397645ac24 THRIFT-5069: Make TDeserializer resource pool friendly
Client: go

This change improves performance when using TDeserializer with a
resource pool. See https://issues.apache.org/jira/browse/THRIFT-5069 for
more context.

Also add TSerializerPool and TDeserializerPool, which are thread-safe
versions of TSerializer and TDeserializer. Benchmark result shows that
they are both faster and use less memory than the plain version:

    $ go test -bench Serializer -benchmem
    goos: darwin
    goarch: amd64
    BenchmarkSerializer/baseline-8            577558              1930 ns/op             512 B/op          6 allocs/op
    BenchmarkSerializer/plain-8               452712              2638 ns/op            2976 B/op         16 allocs/op
    BenchmarkSerializer/pool-8                591698              2032 ns/op             512 B/op          6 allocs/op
    PASS
2020-01-18 20:55:51 +00:00
..
application_exception_test.go THRIFT-4516: Fix "go vet" warnings for Go 1.10 2018-03-15 14:16:10 +01:00
application_exception.go THRIFT-4612: THeader support in go library 2019-06-19 22:52:24 +02:00
binary_protocol_test.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
binary_protocol.go THRIFT-4908: remove reader&writer in Golang's TBinaryProtocol 2019-07-15 12:46:25 +01:00
buffered_transport_test.go THRIFT-2083 Improve the go lib: Testcase for buffered Transport 2013-07-26 23:05:00 +02:00
buffered_transport.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
client.go THRIFT-4914: Send context THeaders for client writes 2019-08-19 08:18:22 +01:00
common_test.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
compact_protocol_test.go Remove checking of remaining bytes in the Go library. 2018-09-02 07:01:14 -04:00
compact_protocol.go Remove checking of remaining bytes in the Go library. 2018-09-02 07:01:14 -04:00
context.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
debug_protocol.go THRIFT-4985: Refactor logging in Go library 2019-10-24 21:23:30 +01:00
deserializer.go THRIFT-5069: Make TDeserializer resource pool friendly 2020-01-18 20:55:51 +00:00
exception_test.go THRIFT-2854 Go Struct writer and reader looses important error information 2014-11-30 15:24:08 +01:00
exception.go 'make style' applied 2014-12-01 11:26:07 +01:00
field.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
framed_transport_test.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
framed_transport.go THRIFT-4612: THeader support in go library 2019-06-19 22:52:24 +02:00
header_context_test.go THRIFT-4914: Send context THeaders for client writes 2019-08-19 08:18:22 +01:00
header_context.go THRIFT-4914: Send context THeaders for client writes 2019-08-19 08:18:22 +01:00
header_protocol_test.go THRIFT-4612: THeader support in go library 2019-06-19 22:52:24 +02:00
header_protocol.go THRIFT-4914: Add GetResponseHeadersFromClient helper function 2019-11-09 22:21:09 +00:00
header_transport_test.go THRIFT-4914: Add THeader to context for server reads 2019-08-05 21:03:02 +01:00
header_transport.go THRIFT-4612: Avoid double wrapping THeaderTransport 2019-08-05 12:59:08 +01:00
http_client_test.go THttpClient now utilizes a package level shared HTTP client and optionally allows users of the library to specify one. 2015-11-17 22:44:26 +01:00
http_client.go Fix "thruth" typo 2019-11-03 18:39:38 +01:00
http_transport.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
iostream_transport_test.go THRIFT-2852 Better Open/IsOpen/Close behavior for StreamTransport. 2014-11-24 22:55:42 +01:00
iostream_transport.go Fix "thruth" typo 2019-11-03 18:39:38 +01:00
json_protocol_test.go THRIFT-4516: Fix "go vet" warnings for Go 1.10 2018-03-15 14:16:10 +01:00
json_protocol.go additional test for TSimpleJSONProtocol 2019-02-24 17:19:09 +01:00
logger.go THRIFT-4985: Refactor logging in Go library 2019-10-24 21:23:30 +01:00
lowlevel_benchmarks_test.go THRIFT-4215 Golang TTransportFactory Pattern Squelches Errors 2017-06-05 14:22:06 +02:00
memory_buffer_test.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
memory_buffer.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
messagetype.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
multiplexed_protocol.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
numeric.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
pointerize.go Add pointer helpers for missing types 2019-07-27 16:48:57 -04:00
processor_factory.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
protocol_exception.go THRIFT-4215 Golang TTransportFactory Pattern Squelches Errors 2017-06-05 14:22:06 +02:00
protocol_factory.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
protocol_test.go Remove checking of remaining bytes in the Go library. 2018-09-02 07:01:14 -04:00
protocol.go THRIFT-4024, THRIFT-4783: throw when skipping invalid type (#1742) 2019-02-14 16:46:38 -05:00
response_helper_test.go THRIFT-4914: Add TResponseHelper 2019-11-09 19:20:09 +00:00
response_helper.go THRIFT-4914: Add TResponseHelper 2019-11-09 19:20:09 +00:00
rich_transport_test.go THRIFT-4215 Golang TTransportFactory Pattern Squelches Errors 2017-06-05 14:22:06 +02:00
rich_transport.go THRIFT-4215 Golang TTransportFactory Pattern Squelches Errors 2017-06-05 14:22:06 +02:00
serializer_test.go THRIFT-5069: Make TDeserializer resource pool friendly 2020-01-18 20:55:51 +00:00
serializer_types_test.go Merge remote-tracking branch 'origin/0.12.0' into consume-0.12.0 2018-12-30 11:06:00 -05:00
serializer.go THRIFT-5069: Make TDeserializer resource pool friendly 2020-01-18 20:55:51 +00:00
server_socket_test.go THRIFT-4237 Fix data races in Go TServerSocket 2017-07-01 16:05:10 +02:00
server_socket.go THRIFT-4659: Fix race when closing server socket (#1645) 2018-12-11 09:44:44 +01:00
server_test.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
server_transport.go THRIFT-2012 Modernizing Go 2013-06-18 22:25:07 +02:00
server.go THRIFT-4236 Support context in go generated code 2017-07-22 19:42:48 +02:00
simple_json_protocol_test.go additional test for TSimpleJSONProtocol 2019-02-24 17:19:09 +01:00
simple_json_protocol.go additional test for TSimpleJSONProtocol 2019-02-24 17:19:09 +01:00
simple_server_test.go THRIFT-4537: TSimpleServer can exit AcceptLoop() without releasing lock 2018-03-30 08:48:15 +02:00
simple_server.go THRIFT-4914: Add TResponseHelper 2019-11-09 19:20:09 +00:00
socket.go spelling mistake, perhaps (#1803) [ci skip 2019-05-20 07:20:42 -04:00
ssl_server_socket.go THRIFT-4084: Add a SSL/TLS negotiation check to crossfeature to verify SSLv3 is not active and that at least one of TLSv1.0 through 1.2 are accepted. 2017-02-20 08:52:11 -05:00
ssl_socket.go Fix "thruth" typo 2019-11-03 18:39:38 +01:00
transport_exception_test.go Added some more missing ASF headers, fixed go/test makefile structure 2014-04-16 00:27:31 +02:00
transport_exception.go THRIFT-2337 Golang does not report TIMED_OUT exceptions 2014-01-30 20:57:08 +01:00
transport_factory.go THRIFT-4215 Golang TTransportFactory Pattern Squelches Errors 2017-06-05 14:22:06 +02:00
transport_test.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
transport.go THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility. 2018-03-12 18:35:17 -04:00
type.go THRIFT-3809 wrong/unused BINARY type code 2016-04-29 23:29:26 +02:00
zlib_transport_test.go THRIFT-4346: Allow go ZlibTransportFactory to wrap other factories 2017-09-27 12:46:19 -07:00
zlib_transport.go THRIFT-4985: Refactor logging in Go library 2019-10-24 21:23:30 +01:00