Commit Graph

165 Commits

Author SHA1 Message Date
Soheil Hassas Yeganeh ad1b3e5094 Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
grpc_byte_buffer_reader_next() copies and references the slice. This
is not always necessary since the caller will not use the slice
after destroying the byte buffer.

A prominent example is the protobuf parser, which
calls grpc_byte_buffer_reader_next() and immediately unrefs the slice
after the call. This ref() and unref() calls can be very expensive
in the hot path.

This commit introduces grpc_byte_buffer_reader_peek() which
essentialy return a pointer to the slice in the buffer, i.e.,
no copies, and no refs.

QPS of 1MiB 1 Channel callback benchmark increases by 5%.
More importantly insructions per cycle is increased by 10%.

Also add tests and benchmarks for byte_buffer_reader_peek()

This commit reaplies 509e77a5a3
2019-03-21 06:03:45 -04:00
Soheil Hassas Yeganeh c060d55cc7
Revert "Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing." 2019-03-05 14:01:01 -05:00
Soheil Hassas Yeganeh 509e77a5a3 Introduce grpc_byte_buffer_reader_peek and use it for Protobuf parsing.
grpc_byte_buffer_reader_next() copies and references the slice. This
is not always necessary since the caller will not use the slice
after destroying the byte buffer.

A prominent example is the protobuf parser, which
calls grpc_byte_buffer_reader_next() and immediately unrefs the slice
after the call. This ref() and unref() calls can be very expensive
in the hot path.

This commit introduces grpc_byte_buffer_reader_peek() which
essentialy return a pointer to the slice in the buffer, i.e.,
no copies, and no refs.

QPS of 1MiB 1 Channel callback benchmark increases by 5%.
More importantly insructions per cycle is increased by 10%.

Also add tests and benchmarks for byte_buffer_reader_peek()
2019-03-04 14:17:46 -05:00
yang-g 456f748b2f Revert "Merge pull request #18146 from grpc/revert-17308-shutdown"
This reverts commit 9079e98dfc, reversing
changes made to 76a38bfcc2.
2019-02-25 10:11:06 -08:00
Yang Gao 4bc2ca4de6
Revert "Move grpc_shutdown internals to a detached thread" 2019-02-22 16:34:24 -08:00
yang-g 545c555d31 Rename new public API 2019-02-14 14:22:40 -08:00
yang-g 233406d450 generate projects 2019-02-13 11:29:40 -08:00
Yihua Zhang a3d997cbdc Add a TLS credential surface API (experimental) 2019-01-29 10:04:28 -08:00
ncteisen 693f46841a Add GetServer to core 2018-10-24 17:31:30 -07:00
Vijay Pai a46ddf4a09 Remove grpc_use_signal which is no longer relevant 2018-10-10 08:38:15 -07:00
ncteisen 3545d754d5 Channelz get server sockets support 2018-10-02 09:55:00 -07:00
ncteisen 0a650eae58 regenerate projects 2018-09-19 07:41:59 -07:00
ncteisen 6076b1d798 Merge branch 'channelz-subchannels' into channelz-server 2018-08-28 12:55:40 -07:00
ncteisen 4b5b019d56 Merge branch 'master' of https://github.com/grpc/grpc into channelz-subchannels 2018-08-28 12:53:57 -07:00
Eric Gribkoff b59d8674d2 Python post-fork handler: exit if grpc shutdown fails 2018-08-22 13:07:22 -07:00
ncteisen 632b58cb82 regenerate projects 2018-08-15 11:13:41 -07:00
Vijay Pai 4b42288905
Merge pull request #16302 from vjpai/callback_cq
EXPERIMENTAL: Infrastructure for callback-based core CQ
2018-08-14 09:37:58 -07:00
ncteisen c850354423 Merge branch 'master' of https://github.com/grpc/grpc into channelz-subchannels 2018-08-11 21:19:14 -04:00
Vijay Pai e84096bbe5 Experimental infrastructure for callback-based CQ 2018-08-10 14:33:22 -07:00
Sree Kuchibhotla f63b51be86 Merge branch 'master' into rq-threads-2 2018-08-09 12:13:41 -07:00
Mark D. Roth f7e72560b6 Add experimental API for resetting connection backoff. 2018-08-06 14:46:53 -07:00
Sree Kuchibhotla bdd13cb0ae
Revert "Revert "Restrict the number of threads in C++ sync server"" 2018-08-01 11:22:40 -07:00
Nicolas Noble bea98c3c1b
Revert "Restrict the number of threads in C++ sync server" 2018-07-31 21:12:45 -07:00
ncteisen 864e68e96d Fix channel trace polymorphism 2018-07-27 02:27:58 -07:00
Sree Kuchibhotla 9bc8ee42c2 generate_projects.sh 2018-07-25 10:58:33 -07:00
ncteisen b86a744751 Expose GetChannel and GetTopChannels Core API 2018-07-18 15:03:31 -07:00
yihuaz 252d3f3b46
Merge pull request #15909 from yihuazhang/local_channel_credentials
Implement local channel/server credentials
2018-07-06 05:44:09 -07:00
Yihua Zhang c5f1eda10f implement loca credentials 2018-07-02 13:29:27 -07:00
ncteisen 8db7788d46 Merge branch 'master' of https://github.com/grpc/grpc into serialization 2018-06-28 00:12:02 -07:00
ncteisen 93a90e6132 Support codegen generic on server side 2018-06-20 07:59:05 -07:00
ncteisen 16280c7398 Remove unused API 2018-06-08 09:44:25 -07:00
Noah Eisen 70f7558a18 re generate project 2018-06-07 13:03:32 -07:00
ncteisen ec482847b2 re run generate projects 2018-06-05 16:59:25 -07:00
ncteisen c3c6e064b3 Add basic support for GetChannel 2018-06-05 16:59:25 -07:00
Yihua Zhang fe2fa0c1c8 Add C++ experimental API extensions for ALTS C stack 2018-04-16 15:11:32 -07:00
Jan Tattermusch 3095e350ac regenerate projects using tools/buildgen/generate_projects.sh 2018-04-05 09:41:03 +02:00
Noah Eisen dc93b71e53
Merge pull request #14751 from ncteisen/channel-tracing
[Fix Forward]: Channel Tracing Implementation; Part 1
2018-03-21 16:49:12 -07:00
Ruslan Nigmatullin 99d0cee31b regenerate projects 2018-03-20 09:18:29 -07:00
ncteisen 3b42f83068 Revert "Revert "Channel Tracing Implementation; Part 1""
This reverts commit f2bea3725f.
2018-03-19 13:22:35 -07:00
Noah Eisen f2bea3725f
Revert "Channel Tracing Implementation; Part 1" 2018-03-19 12:05:18 -07:00
ncteisen ee013d25b3 Fix build and sanity 2018-03-02 11:38:32 -08:00
Vijay Pai c745690caf Internalize gpr_thd except for id and currentid 2018-02-12 11:44:52 -08:00
Vijay Pai 18b9133f31 Merge branch 'master' into gpr_review 2018-02-08 12:18:09 -08:00
Vijay Pai 239b7d4b0b Merge branch 'master' into gpr_review 2018-02-08 11:08:41 -08:00
Vijay Pai 573717bc8d Merge branch 'master' into gpr_review3 2018-02-08 10:21:11 -08:00
Vijay Pai 32748c1b2a Merge branch 'master' into gpr_review3 2018-02-08 10:06:23 -08:00
Vijay Pai b1ef84a7fd Merge branch 'master' into gpr_review_host_port 2018-02-07 11:12:35 -08:00
Muxi Yan cda058de8e build projects 2018-02-06 18:17:42 -08:00
Vijay Pai 1acfaca3e6 Merge branch 'master' into gpr_review_host_port 2018-02-02 11:21:07 -08:00
Vijay Pai d4d0a30c6f Privatize useful.h and avl.h 2018-02-02 09:16:44 -08:00